2020-08-15 13:01发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
是否可以在规则中调用odata更新操作? 我收到错误mdk.trace.core:错误:定义路径"/img/path/to/action"无效或缺少,所以我猜我的字符串中缺少了什么? 我用
pageProxy.executeAction('/path/to/odata/update/action')
最诚挚的问候,
Bryan David Asuncion
是的,有可能。 请确保正确的路径,例如
:
pageProxy.executeAction('/myMDKProject/Actions/ODataUpdate.action');
您好Jitendra,
我有一个对象表,如图所示
screenshot-20200709-115109.jpg
当我单击一个项目时,我想通过odata更新来将其状态更新为"接受/拒绝",或者至少我认为由于绑定了项目,所以我不得不通过odata更新它。 在本教程中,我们将介绍如何通过创建odata操作并将其绑定到可编辑字段的特定命名UI元素(UIEelementName#Value)来更新odata对象,而不是在不使用这些UI元素时如何进行操作。
布莱恩·亚松森
首先,您可以拥有两个 UpdateEntity操作,例如UpdateStatusAccept.action,UpdateStatusReject.action 下面是UpdateStatusAccept.action的示例,您可以对UpdateStatusReject.action进行另一个更新(更改属性>状态)
{ " OnFailure":"/DemoApp/Actions/UpdateStatusFailure.action", "属性":{ "状态":"接受" }, "目标":{ " EntitySet":"客户", " ReadLink":" {@ odata.readLink}", "服务":"/img/DemoApp/Services/serv.service" }, " _Type":" Action.Type.ODataService.UpdateEntity" }
您可以在页面的对象单元的OnPress中触发以下规则。
导出默认功能UpdateStatus(context){ 让pageProxy = context.getPageProxy(); //pageProxy.getActionBinding()将给出您//pressed的行的绑定。 这里状态是OData属性 var currentStatus = pageProxy.getActionBinding()。Status; 如果(currentStatus ===" ACCEPTED"){ 返回pageProxy.executeAction("/img/DemoApp/Actions/UpdateStatusReject.action")。then((result)=> { //当结果返回promise时,将新数据集设置为绑定 pageProxy._context.binding = result.data; //重绘节表以反映更改 //SectionTable0是control.Type.SectionedTable的_Name属性 //您可以在页面元数据(或WebIDE的代码编辑器)中找到它 返回pageProxy.getControl('SectionedTable0')。redraw(); }); }其他{ 返回pageProxy.executeAction("/img/DemoApp/Actions/UpdateStatusAccept.action")。then((result)=> { pageProxy._context.binding = result.data; 返回pageProxy.getControl('SectionedTable0')。redraw(); }); }}
您应该能够更新状态。 希望这对您有所帮助。
嗨,Jitendra,
非常感谢您的帮助! 我仍然有一个错误,但是我已经接受了答案,因为我在问题中发布的错误已得到修复,并且我认为当前问题不再与您的答案相关。 但是无论如何我还是会问还是发表一个新问题。 现在,我得到一个"错误:查询应该只返回一个实体。它返回4"。 所以我的问题是{@ odata.ReadLink}是将操作绑定到绑定项还是应该添加查询过滤器,例如" $ filter = Id eq {Id}"?<=我知道这是错误的,但是我不知道如何 将绑定项传递给查询过滤器。
最多设置5个标签!
是的,有可能。 请确保正确的路径,例如
:
pageProxy.executeAction('/myMDKProject/Actions/ODataUpdate.action');
您好Jitendra,
我有一个对象表,如图所示
screenshot-20200709-115109.jpg
当我单击一个项目时,我想通过odata更新来将其状态更新为"接受/拒绝",或者至少我认为由于绑定了项目,所以我不得不通过odata更新它。 在本教程中,我们将介绍如何通过创建odata操作并将其绑定到可编辑字段的特定命名UI元素(UIEelementName#Value)来更新odata对象,而不是在不使用这些UI元素时如何进行操作。
布莱恩·亚松森
首先,您可以拥有两个 UpdateEntity操作,例如UpdateStatusAccept.action,UpdateStatusReject.action
下面是UpdateStatusAccept.action的示例,您可以对UpdateStatusReject.action进行另一个更新(更改属性>状态)
您可以在页面的对象单元的OnPress中触发以下规则。
您应该能够更新状态。 希望这对您有所帮助。
嗨,Jitendra,
非常感谢您的帮助! 我仍然有一个错误,但是我已经接受了答案,因为我在问题中发布的错误已得到修复,并且我认为当前问题不再与您的答案相关。 但是无论如何我还是会问还是发表一个新问题。 现在,我得到一个"错误:查询应该只返回一个实体。它返回4"。 所以我的问题是{@ odata.ReadLink}是将操作绑定到绑定项还是应该添加查询过滤器,例如" $ filter = Id eq {Id}"?<=我知道这是错误的,但是我不知道如何 将绑定项传递给查询过滤器。
一周热门 更多>