gpt4 book ai didi

error-handling - 如何在Kapsel离线应用程序中访问SAP OData消息?

转载 作者:行者123 更新时间:2023-12-03 08:45:59 24 4
gpt4 key购买 nike

我们正在开发一个SAP Fiori应用程序,该应用程序将在Launchpad上使用,并与SAP SDK及其Kapsel插件一起作为可离线使用的混合应用程序。目前,我们面临的一个问题是ODATA消息处理。

在网关上,我们使用消息管理器向响应中添加其他信息

" ABAP snippet, random Gateway entity method
[...]
DATA(lo_message_container) = me->mo_context->get_message_container( ).
lo_message_container->add_message(
iv_msg_type = /iwbep/cl_cos_logger=>warning
iv_msg_number = '123'
iv_msg_id = 'ZFOO'
).

" optional, only used for 'true' errors
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
message_container = lo_message_container.

在Fiori应用程序中,我们可以直接从消息管理器访问这些数据。数据可以应用于MessageView控件。
// Fiori part (Desktop, online)
var aMessageData = sap.ui.getCore().getMessageManager().getMessageModel().getData();

但是,我们的离线应用程序始终具有空消息模型。同步或刷新后,消息模型始终为空-即使在后端触发消息生成方法之后也是如此。
获取某种消息的唯一方法是引发/iwbep/cx_mgw_busi_exception并传递消息容器。可以在/ErrorArchive实体中以未解析的状态找到消息,并读取消息以备将来使用。
// Hybrid App part, offline, after sync and flush
this.getModel().read("/ErrorArchive", { success: .... })

这种方法将我们限制为否定的“值得异常(exception)”消息。我们还必须对应用程序的某些部分进行两次编码(台式机与Offlne应用程序)。

因此:脱机同步和刷新后是否有“适当”的权限来访问那些消息?

最佳答案

为了分析问题,您可以使用此博客中所示的工具ILOData:
Step by Step with the SAP Cloud Platform SDK for Android — Part 6c — Using ILOData

注意,ILOData是Kapsel SDK的一部分,因此,尽管以上博客是适用于Android的SAP Cloud Platform SDK系列文章的一部分,但它也适用于Kapsel应用程序。
ILOData是基于命令行的工具,使您可以对脱机存储执行OData请求和查询。
它充当离线OData客户端,而无需应用程序。
因此,它是用于测试后端系统中的数据以及验证应用行为的一个很好的工具。
如果客户端在其设备上的某些条目有问题,则可以使用sendStore方法检索设备上的脱机存储,然后可以使用ILOData来查询数据库。

This blog about Kapsel Offline OData plugin可能也有帮助。

关于error-handling - 如何在Kapsel离线应用程序中访问SAP OData消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54399381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com