如何从客户发票中检索ShipFromItemLocation

2020-08-15 17:18发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我在SAP Cloud Stud...

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

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


我在SAP Cloud Studio中的代码:

 var dataLocation;
 var data = CustomerInvoice.Retrieve(this.GetFirst()。ID);
 if(data.IsSet())
 {
    if(data.Item.GetFirst()。IsSet())
    {
 if(data.Item.GetFirst()。ItemOriginCustomerInvoiceItemReference.IsSet())
 {
 if(data.Item.GetFirst()。ItemOriginCustomerInvoiceItemReference.CorrespondingCustomerInvoiceRequestItem.IsSet())
 {
 if(data.Item.GetFirst()。ItemOriginCustomerInvoiceItemReference.CorrespondingCustomerInvoiceRequestItem.ShipFromItemLocation.IsSet())
 {
 dataLocation = data.Item.GetFirst()。ItemOriginCustomerInvoiceItemReference.CorrespondingCustomerInvoiceRequestItem.ShipFromItemLocation.LocationID.content;
 }
 }
 }
    }
 }
 

ItemOriginCustomerInvoiceItemReference的对象不检索数据。 在表格中打印出ShipFromItemLocation具有值。

2条回答
微wx笑
2020-08-15 17:39

嗨,我没有答案,但是我有重要的评论。 因此,我将其发布为评论:

-如果您的代码是在"启用了质量"的情况下创建的,则"此"是一个集合。 您应该将其视为可以包含一个或多个对象。 否则,如果稍后在此代码中使用多个对象调用您的代码,则只会处理第一个对象。

-不要重复节点导航:如果要两次编写" data.Item.GetFirst()",请将其放在变量上。 否则,ByD将两次获取该节点,这会降低性能。

-使用更多描述性的变量名。 像"发票"而不是"数据"。 一旦代码变大,这将有助于阅读。

示例:

 foreach(此处为var obj)
 {
   var invLocation;
   var inv = CustomerInvoice.Retrieve(obj.ID);
   如果(inv.IsSet())
   {
     var invFirstItem = inv.Item.GetFirst();
     如果(invFirstItem.IsSet())
     {
       var ref = invFirstItem.ItemOriginCustomerInvoiceItemReference;
       如果(ref.IsSet())
       {
         var reqItem = ref.CorrespondingCustomerInvoiceRequestItem;
         如果(reqItem.IsSet())
         {
           var shipLoc = reqItem.ShipFromItemLocation;
           如果(shipLoc.IsSet())
           {
             invLocation = shipLoc.LocationID.content;
           }
         }
       }
     }
   }
 } 

这将在以后为您提供很多帮助。

一周热门 更多>