刷新有效,但不会清除sap.islocal()标志(适用于Android的SAP Cloud Platform SDK)

2020-08-22 12:00发布

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

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


您好,

我正在使用OData Offline API开发基于Android应用程序的SAP Cloud Platform SDK。

该应用程序设计为始终处于"脱机"模式,除非用户单击同步按钮,然后单击该按钮,然后执行upload(),然后执行成功,然后再执行download()。

我创建了批处理请求,并使用upload()方法更新到服务器。 它到达服务器并创建成功也响应。

问题:update(upload())之后,数据没有从请求队列中删除。 请在网关端找到附加的请求和响应有效负载。 请帮助我。

致谢

罗摩克里希纳。 阿拉木图

(58.7 kB)

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

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


您好,

我正在使用OData Offline API开发基于Android应用程序的SAP Cloud Platform SDK。

该应用程序设计为始终处于"脱机"模式,除非用户单击同步按钮,然后单击该按钮,然后执行upload(),然后执行成功,然后再执行download()。

我创建了批处理请求,并使用upload()方法更新到服务器。 它到达服务器并创建成功也响应。

问题:update(upload())之后,数据没有从请求队列中删除。 请在网关端找到附加的请求和响应有效负载。 请帮助我。

致谢

罗摩克里希纳。 阿拉木图

(58.7 kB)
付费偷看设置
发送
5条回答
clever101
1楼-- · 2020-08-22 12:46

你好罗摩克里希那。 阿玛提

在下一次下载中删除成功的请求,因此除非用户根本不执行下载,否则数据大小不会一直增加。

作为建议,上传和下载通常一起执行,因为下载可能会从服务器返回更新的值,例如新创建的主键(服务器可能具有键生成逻辑)和生成的属性值。

https://developers.sap.com/教程/cp-sdk-android-wizard-app-offline.html

请参阅上面的教程中的SAPServiceManager.java示例。

关于您的担忧:

如果在第一次上传之后还有第二次上传,这些请求将被过滤掉,它们将不会发送到Gateway。 唯一的代价就是过滤掉已发送的请求。

成本很小,想象很长时间没有执行下载,在1000个旧(已发送)请求中有5个新请求,从1005个请求中选择5个的成本不大。

请求队列的大小几乎不能增长到1000。

关于为何将请求保留在那里的原因:

在下一次下载之前,已更改的实体仍处于"本地"状态。 它们的属性值可能与服务器不同。

如果我们在上传后立即删除请求,我们可能会感到困惑:"我们发送了请求吗?有错吗?为什么我的请求队列为空"?请求队列信息将保留以供分析。

在下一次下载中将本地实体替换为服务器实体时,就不用担心了。

您可能会问,网关响应发生了什么?

考虑现实:

1。 网络连接可能会中断上传操作,因为如果网关正在处理大量请求,网络连接可能会花费很长时间。

2。 某些网关响应未发送正确的结果,即响应与数据库事实不匹配。

例如 进行后期操作。 程序员可能会忘记在响应有效负载中包含生成字段,因为它们成功地从请求有效负载中复制了这些字段,而没有从数据库中读取数据或在成功提交到数据库后调用Get API。

与在线方案不同,网关响应由客户端立即解释,网关响应由CPMS在离线方案中解释。 有用的信息将在此处提取,并在下一次下载中使用。 例如 本地临时密钥和服务器生成的密钥的映射信息。 但是,由于CPMS服务器为许多用户提供服务,并且响应可能不包含生成的字段,因此响应有效载荷本身并未持久保存。

因此,与在线方案相比,我们需要下载API。

最诚挚的问候,

尼克

huskylover
2楼-- · 2020-08-22 12:39

嗨,团队,

请更新以上评论。 任何东西的代码都在我这边错过了。

致谢

罗摩克里希纳。 Amathi

clasier
3楼-- · 2020-08-22 12:32

您好,

请帮助我们。 我们想发布到应用程序生产环境。

致谢

罗摩克里希纳。 阿玛提

绿领巾童鞋
4楼-- · 2020-08-22 12:41

你好,罗摩克里希那。 阿玛提

在上载和下一次下载(刷新)之间,请求队列将处于上载(或说已上载)状态,并且不会被删除。

下次下载(刷新)将重新应用服务器信息,删除成功请求的请求队列。

此致

尼克

lukcy2020
5楼-- · 2020-08-22 12:25

嗨尼克,

上载数据请求后,队列记录更改为状态" 1"。第二次仅上载状态" 0"记录仅成功上载。 我的疑问是,当状态为" 1"时,我的请求队列是否会删除。 如果未删除,则请求队列数据将继续增加。 数据大小增加。

示例:我们的SAP团队提供了一项服务SalesOrderSet,它提供了空白记录/空响应。 我们执行相同的实体设置批处理请求并获得批处理响应成功。 为什么其未清除请求队列的状态为" 1"

致谢

罗摩克里希纳。 阿拉木图

一周热门 更多>