SAP MDK-使用自定义规则遍历实体的每个记录

2020-08-15 18:42发布

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

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


我正在研究一个自定义规则,以仅显示基于逻辑的特定记录。 首先,我将从离线odata服务中读取实体的所有记录,然后遍历每条记录以检查其是否通过逻辑条件。 仅通过的记录将显示在页面中。 我用分区表来显示列表

在下面的代码中,我可以获取实体的数量。 我尝试遍历每条记录并在表中显示返回记录。

导出默认功能WorkOrderListQuery(sectionProxy){
 返回sectionProxy.count('/SAPSampleDemo/Services/testDemo.service','MyWorkOrderHeaders','').then((count)=> {
 返回计数;
     });
 }
   

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

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


我正在研究一个自定义规则,以仅显示基于逻辑的特定记录。 首先,我将从离线odata服务中读取实体的所有记录,然后遍历每条记录以检查其是否通过逻辑条件。 仅通过的记录将显示在页面中。 我用分区表来显示列表

在下面的代码中,我可以获取实体的数量。 我尝试遍历每条记录并在表中显示返回记录。

导出默认功能WorkOrderListQuery(sectionProxy){
 返回sectionProxy.count('/SAPSampleDemo/Services/testDemo.service','MyWorkOrderHeaders','').then((count)=> {
 返回计数;
     });
 }
   
付费偷看设置
发送
4条回答
当学会了学习
1楼-- · 2020-08-15 19:43

嗨,

您可以使用read方法来获取记录, https://help.sap.com/doc/69c2ce3e50454264acf9cafe6c6e442c/Latest/en-US/docs-en/reference/apidoc/interfaces/icontrolproxy.html#read 然后可以在应用适当的检查后返回结果集。

此致

Ashish

能不能别闹
2楼-- · 2020-08-15 19:31

除此之外,您还可以在QueryOptions中使用$ filter构造来过滤出结果。 这在存在大量数据列表且您可能只需要记录的子集的情况下将很有帮助。

SAP德到
3楼-- · 2020-08-15 19:19

您好, Ashish Jain

我使用Read方法来获取记录,但是如何遍历结果数据。

在下面的代码中,我使用了alert语句来检查输出数据,但是没有任何效果。 如何从read方法的结果中获取属性" OrderNumber"?

导出默认功能WorkOrderListQuery(sectionProxy){
 var res = sectionProxy.read('/SAPSampleDemo/Services/testDemo.service','MyWorkOrderHeaders',''," $ filter = OrderType eq'5'");
 alert(" length:" + res.length); //输出=> [未定义]
 alert(" result:" + res); //输出=> [对象承诺]
 对于(var i = 0; i <5; i ++)
 {
 alert(" row:" + res [" OrderNumber"])); //输出=> [未定义]
 }
 var cnt = sectionProxy.count('/SAPSampleDemo/Services/testDemo.service','MyWorkOrderHeaders','').then((count)=> {
 返回计数;
     });
 alert(cnt); //输出=> 100
 }


 
渐行渐远_HoldOn
4楼-- · 2020-08-15 19:38

嗨,弗朗西斯,

读取和计数API均返回JavaScript promise对象。 您应该使用" then"函数等待其解析以访问其结果。

我假设您正在对象表的" Target"属性中分配此查询,例如

< pre>"目标":"/SAPSampleDemo/Rules/WorkOrderListQuery.js"

然后,规则应如下所示:

导出默认功能WorkOrderListQuery(sectionProxy){
 
   var readPromise = sectionProxy.read('/SAPSampleDemo/Services/testDemo.service','MyWorkOrderHeaders',''," $ filter = OrderType eq'5'");
 
  //读取API返回承诺,您必须等待该承诺被解析才能访问其结果
  //您还必须返回诺言,以便MDK也将等待规则的结果
   返回readPromise.then((结果)=> {
    //结果是一个ObservableArray(https://docs.nativescript.org/ns-framework-modules/observable-array)
     alert(" length:" + result.length);
     var returnArray = [];
     对于(var i = 0; i                                                                     

一周热门 更多>