点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,
我正在使用OData Offline API开发基于Android应用程序的SAP Cloud Platform SDK。
该应用程序设计为始终处于"脱机"模式,除非用户单击同步按钮,然后单击该按钮,然后执行upload(),然后执行成功,然后再执行download()。
我创建了批处理请求,并使用upload()方法更新到服务器。 它到达服务器并创建成功也响应。问题:update(upload())之后,数据没有从请求队列中删除。 请在网关端找到附加的请求和响应有效负载。 请帮助我。
致谢
罗摩克里希纳。 阿拉木图
(58.7 kB)
你好罗摩克里希那。 阿玛提
在下一次下载中删除成功的请求,因此除非用户根本不执行下载,否则数据大小不会一直增加。
作为建议,上传和下载通常一起执行,因为下载可能会从服务器返回更新的值,例如新创建的主键(服务器可能具有键生成逻辑)和生成的属性值。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。
最诚挚的问候,
尼克
嗨,团队,
请更新以上评论。 任何东西的代码都在我这边错过了。
致谢
罗摩克里希纳。 Amathi
您好,
请帮助我们。 我们想发布到应用程序生产环境。
致谢
罗摩克里希纳。 阿玛提
你好,罗摩克里希那。 阿玛提
在上载和下一次下载(刷新)之间,请求队列将处于上载(或说已上载)状态,并且不会被删除。
下次下载(刷新)将重新应用服务器信息,删除成功请求的请求队列。
此致
尼克
嗨尼克,
上载数据请求后,队列记录更改为状态" 1"。第二次仅上载状态" 0"记录仅成功上载。 我的疑问是,当状态为" 1"时,我的请求队列是否会删除。 如果未删除,则请求队列数据将继续增加。 数据大小增加。
示例:我们的SAP团队提供了一项服务SalesOrderSet,它提供了空白记录/空响应。 我们执行相同的实体设置批处理请求并获得批处理响应成功。 为什么其未清除请求队列的状态为" 1"
致谢
罗摩克里希纳。 阿拉木图
一周热门 更多>