管理OfflineODataDefiningQuery的生命周期

2020-08-26 14:37发布

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

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


您好,有关OfflineODataDefiningQuery的快速问题。

您如何在离线应用中管理它的生命周期?

OfflineODataProvider具有"添加和删除"定义查询,但是没有API可以获取已经定义的内容。

请求的API:GetDefiningQueries()

示例:用户登录到您的应用,并根据用户角色或位置(您将根据其位置定义其他DQ),这需要初始DQ才能读取User实体..

如果有一天,用户从一个位置转到另一个位置,则由于不再需要该定义查询,因此您需要删除该查询。

我可以轻松地将DQ保存为用户默认设置,但这不是最新技术

让我知道是否有更好的解决方案,否则我会将事件记录到SAP以公开此API

谢谢

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

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


您好,有关OfflineODataDefiningQuery的快速问题。

您如何在离线应用中管理它的生命周期?

OfflineODataProvider具有"添加和删除"定义查询,但是没有API可以获取已经定义的内容。

请求的API:GetDefiningQueries()

示例:用户登录到您的应用,并根据用户角色或位置(您将根据其位置定义其他DQ),这需要初始DQ才能读取User实体..

如果有一天,用户从一个位置转到另一个位置,则由于不再需要该定义查询,因此您需要删除该查询。

我可以轻松地将DQ保存为用户默认设置,但这不是最新技术

让我知道是否有更好的解决方案,否则我会将事件记录到SAP以公开此API

谢谢

付费偷看设置
发送
4条回答
My梦
1楼-- · 2020-08-26 15:26

嗨,谢谢您的反馈,非常感谢

尼克,是的,我看过这些API描述,我认为将定义的查询转储到控制台的API不会对我们有帮助。/p>

很遗憾,但是没错,到目前为止,您不知道我们使用此SDK会有多少时间...所有这些限制将使我们接近放弃离线SDK,我们将使用纯CoreData并进行管理 Stan,离线我们自己(CoreData现在支持新的Combine框架)

斯坦,谢谢,我会为此制造一个事件,我认为这些功能应该存在...

我的 想法

当我打开离线商店时,所有定义的查询都将发送到后端,我讨厌那,我们不想...

我们想控制 哪一个可以....

我们每天或每周有一次下载请求,我们不希望每次离线商店都打开时发送请求...

也定义请求是一场噩梦,因为我们事先不知道 离线存储看起来像,我们知道OData模式,但是直到运行时才知道具有特定参数的URL,大多数URL是在运行时构建的……

对我而言,每次都没有意义 我需要查询新的东西,我必须先关闭离线商店,添加新的定义请求,然后重新打开商店...就像我说的那样,我无法反省哪些定义请求已添加到商店或清理它们

仅在考虑元数据文档的情况下构建数据库模式,开发人员应完全负责填充它而不定义请求...

这些是我的第一印象,也是 我们正在考虑迁移的可能原因

核心数据提取请求的速度似乎比OData本地DataQuery快10倍,我不知道这是否是因为我没有参照约束,但我将尝试对这些基准进行基准测试 最终...我花了2秒钟的时间在c中读取了2-3个扩展的少量实体 矿石数据总是少于1秒...

如果我说有什么话不对,请随时挑战我:-)

Alex

# p#

定义查询目前无法删除。 我建议填写跟踪记录。

BR Stan

小c菟菟
2楼-- · 2020-08-26 15:31

是的,目前离线状态下不支持删除定义查询,但这是内部讨论。 您可以按照Stan的建议创建BCP进行跟踪。

clasier
3楼-- · 2020-08-26 15:15

有一个API可转储定义查询:logDefiningQueries,对您有帮助吗?

API帮助:转储定义查询(作为JSON对象),这些查询已添加到脱机存储中以进行记录。

定义查询随时都不容易删除。

任何定义查询都可以在首次下载之前安全删除。

只能在首次打开OfflineODataProvider之前删除类型1和2的定义查询。

可以在打开OfflineODataProvider之前或之后删除类型3的定义查询。

类型1-一种定义性查询,用于标识一个或多个实体,其中{@ linkOfflineODataDefiningQuery#isAutomaticallyRetrievesStreams()automaticRetrievesStreams}属性设置为false。 在这种情况下,即使定义查询标识了媒体实体,也不会下载媒体流。

类型2-一种定义性查询,用于标识一个或多个实体,其中某些实体可能是媒体实体,并且其中{@ linkOfflineODataDefiningQuery#isAutomaticallyRetrievesStreams()automaticRetrievesStreams}属性设置为true。 在这种情况下,媒体实体的媒体流也将被下载。

类型3-标识单个媒体实体的定义查询,并且{@ linkOfflineODataDefiningQuery#isAutomaticallyRetrievesStreams()automaticRetrievesStreams}属性设置为true。 在这种情况下指定的URL必须是媒体实体的读取链接,而不是媒体流的读取链接。 例如,如果媒体实体的读取链接为Documents(101),而媒体流的读取链接为Documents(101)/$ value,则定义查询的预期URL为Documents(101)。

当用户更改为新职位时,您可能需要清除存储并重新打开。

SAP砖家
4楼-- · 2020-08-26 15:31

我在某件事上的错误,我今天继续测试,发现定义的请求是 仅在第一个离线商店打开时发送,之后就不发送

一周热门 更多>