规则中的Odata更新操作

2020-08-15 13:01发布

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

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


嗨,

是否可以在规则中调用odata更新操作? 我收到错误mdk.trace.core:错误:定义路径"/img/path/to/action"无效或缺少,所以我猜我的字符串中缺少了什么? 我用

 pageProxy.executeAction('/path/to/odata/update/action')
 

最诚挚的问候,

Bryan David Asuncion

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

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


嗨,

是否可以在规则中调用odata更新操作? 我收到错误mdk.trace.core:错误:定义路径"/img/path/to/action"无效或缺少,所以我猜我的字符串中缺少了什么? 我用

 pageProxy.executeAction('/path/to/odata/update/action')
 

最诚挚的问候,

Bryan David Asuncion

付费偷看设置
发送
4条回答
jovirus
1楼 · 2020-08-15 13:39.采纳回答

是的,有可能。 请确保正确的路径,例如

pageProxy.executeAction('/myMDKProject/Actions/ODataUpdate.action');

野沐沐
2楼-- · 2020-08-15 13:40

您好Jitendra,

我有一个对象表,如图所示

screenshot-20200709-115109.jpg

当我单击一个项目时,我想通过odata更新来将其状态更新为"接受/拒绝",或者至少我认为由于绑定了项目,所以我不得不通过odata更新它。 在本教程中,我们将介绍如何通过创建odata操作并将其绑定到可编辑字段的特定命名UI元素(UIEelementName#Value)来更新odata对象,而不是在不使用这些UI元素时如何进行操作。

风早神人
3楼-- · 2020-08-15 13:46

布莱恩·亚松森

首先,您可以拥有两个 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(); }); }}

您应该能够更新状态。 希望这对您有所帮助。

Nan4612
4楼-- · 2020-08-15 13:38

嗨,Jitendra,

非常感谢您的帮助! 我仍然有一个错误,但是我已经接受了答案,因为我在问题中发布的错误已得到修复,并且我认为当前问题不再与您的答案相关。 但是无论如何我还是会问还是发表一个新问题。 现在,我得到一个"错误:查询应该只返回一个实体。它返回4"。 所以我的问题是{@ odata.ReadLink}是将操作绑定到绑定项还是应该添加查询过滤器,例如" $ filter = Id eq {Id}"?<=我知道这是错误的,但是我不知道如何 将绑定项传递给查询过滤器。

一周热门 更多>