点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
当我从列表中选择一个项目时,我正在尝试执行更新odata操作。 我知道该项目已绑定到页面
{ "属性":{ " IsActive":" true" }, "目标":{ " EntitySet":" CompanyProfiles", " ReadLink":" {@ odata.readLink}", "服务":"/img/DOEDocumentMonitoring/Services/DOEDocumentMonitoring.service" }, " _Type":" Action.Type.ODataService.UpdateEntity" }
这是mu update odata操作。 如何将所选项目绑定到此? 是否需要在查询选项中传递ID,例如" $ filter = Id eq?" ? 在这里我该怎么做? 当前,当我执行它时,我得到一个错误:
错误:查询应该只返回一个实体。 它返回了4
我认为发生的是odata操作正在尝试更新所有4个项目,因此我应该以某种方式将所选项目绑定到该操作。
Hi Bryan
executionAction函数是异步的并且返回一个Promise对象,您必须从规则中返回该Promise对象,以便MDK将确保在执行规则时actionBinding仍然可用。 例如 返回pageProxy.executeAction(...)
嗨,比尔,
感谢您的回复。 是的,我有自己的客户端,我刚刚打开了odata跟踪。 这是对的吗?
我在哪里可以看到结果? 我对SAP MDK相当陌生,因此对它所提供的服务一无所知。
以防万一,这是我的规则代码
这是附加到对象表的OnPress事件的,因此当我按元素时,将调用此规则。 绑定本身是正确的,因为console.log显示正确的对象。 问题是执行动作本身时,我在第一篇文章中输入了代码。
Bryan
是的,您只需要唯一地定位一条记录 为您的更新。 通常,{@ odata.readLink}是对单个记录的唯一引用。 从错误看来,它并不是唯一地指向一个记录。 在不了解您的服务和应用程序的情况下,很难肯定地说出更多信息。
如果您已经建立了自己的客户端,那么我建议您在BrandedSettings.json中打开odata跟踪,以更好地了解发生了什么。
-Bill
正确,您启用DebugSettings。 我通常将我的设置如下,以避免过多我不关心的事情。
该信息将记录到客户端日志中。 如果您是在终端提示符下的仿真器/模拟器中运行客户端,那么您还会看到是否也在此回显。
是否可以共享元数据(通常可以)和
命令也是如此?
-Bill
比尔,
这是console.log的示例输出:
当然,当我按列表中的其他项目时,数据将有所不同。 另外,我已经发送了元数据,感谢您抽出宝贵的时间对此进行回复。
一周热门 更多>