UWP离线OData-同步事件

2020-09-13 04:20发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在使用SMP 3.1 SDK开发基于脱机OData的UWP应用程序。

无论何时应用程序同步(通过RefreshAsync或FlushQueuedRequestsAsync方法),我都希望获得有关同步状态的一些反馈:

-在刷新期间,我想知道何时创建,更新或删除实体

-在刷新期间,我想通知实体何时提交给OData服务

我能找到的唯一一种反馈是RequestErrorDelegate,它仅在发生错误时才有用。

脱机OData(UWP)是否具有此反馈功能(发布/订阅,事件)? 如果没有,我将不得不编写一些效率很低的逻辑来实现客户需求。

亲切的问候,

迈克

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在使用SMP 3.1 SDK开发基于脱机OData的UWP应用程序。

无论何时应用程序同步(通过RefreshAsync或FlushQueuedRequestsAsync方法),我都希望获得有关同步状态的一些反馈:

-在刷新期间,我想知道何时创建,更新或删除实体

-在刷新期间,我想通知实体何时提交给OData服务

我能找到的唯一一种反馈是RequestErrorDelegate,它仅在发生错误时才有用。

脱机OData(UWP)是否具有此反馈功能(发布/订阅,事件)? 如果没有,我将不得不编写一些效率很低的逻辑来实现客户需求。

亲切的问候,

迈克

付费偷看设置
发送
4条回答
渐行渐远_HoldOn
1楼-- · 2020-09-13 04:52

嗨,迈克,

您可以从同步调用中获得两种反馈。 在同步过程中,您可以获得状态信息和有关数据传输本身的详细信息,但没有上下文信息。 在此处记录:

https://help.sap。 com/doc/c6071906728446d08fc030aec280a329/3.1/en-US/Windows/html/index.html

您可以访问以下状态:

开业商店开始营业。 初始化初始化新商店的资源。 填充在中间层创建并填充商店。 下载下载填充的商店。 打开商店已成功打开。 已关闭该商店已被用户关闭,但仍在营业。 错误商店在打开时遇到错误。 PendingRefresh 执行刷新时,商店已关闭。

有可能通过触发新的刷新来继续挂起的刷新。

PendingFlush 刷新请求队列时,商店已关闭。

有可能通过触发新的刷新来继续挂起的刷新。

在"正在下载"时,您将收到有关正在接收的字节的其他信息。 通常以某种方式将此信息转发给用户。 请注意,在下载开始之前,您不一定会获得有关总下载大小的信息。

上传本地更改后,您可以访问脱机存储的ErrorLog来查看/检查来自后端的所有响应。 这包括到受影响实体的链接。

其他信息可在此处找到:

https://help.sap.com/ reader/42dc90f1e1ed45d9aafad60c80646d10/3.1.1/zh-CN/6f38926c58b34ec9bd931a7f9799de52.html

希望有帮助。

-马丁

xfwsx85
2楼-- · 2020-09-13 04:51

嗨马丁,

感谢您的详尽回答,但它不能回答我的问题。

我知道存储的状态和错误日志,但是这些并不能为我提供检查刷新期间是否已从脱机存储中插入,更新或删除特定实体的选项。

我需要此信息,以便能够响应已下载的新数据(例如工作单),以便在无需用户交互的情况下发送回状态信息。

亲切的问候,

迈克

追夢秋陽
3楼-- · 2020-09-13 04:40
当前无法创建,更新或删除实体时得到通知。 我们正在研究一个过滤查询sap.upsertedlastdownload,它将允许您获取该信息(但仅关于最后一次刷新;如果发出另一个刷新,则该信息将被覆盖,它仅返回最新刷新的结果 )。

但是,我不确定我是否完全理解您的要求。 在刷新之前,您可以查询sap.islocal实体,是否足够? 需要说明的是,sap.islocal对于已在本地修改但尚未提交的实体以及已修改并提交但尚未从后端检索到的实体都是正确的。 我们正在处理一个新查询,即sap.hasPendingChanges,仅对在本地修改但尚未提交的实体有效。

请注意,我们正在使用或已经存在的所有这些技术都不会使用基于事件的系统来按实体通知您,您将需要使用现有的进度通知回调系统进行刷新和 刷新,然后使用查询来确定哪些实体与您相关。 因此,您可以从中创建自己的特定于实体的基于事件的系统,但是它并不存在。

奄奄一息的小鱼
4楼-- · 2020-09-13 04:43

嗨,大卫,

要求是能够在发生特定情况时做出响应。 例如,如果客户端应用程序接收到新的工作订单实体,则我们需要能够通过创建状态更新实体来对此做出响应,而无需用户交互。

此功能很容易在我们以前的基于MBO的移动解决方案中构建,但是对于离线OData来说,这似乎是一项艰巨的任务。 释放sap.upsertedlastdownload时,我们可以使用一种方法来确定新接收到的数据。

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答