2017-05-24 72 views
0

需要帮助将“包裹”添加到项目执行记录以允许CSR查看在哪些跟踪编号下装运了哪些项目。我可以实例化ItemFulfillment记录和ItemFulfillmentPackageList对象,但ItemFulfillmentPackageList对象始终为空 - 无法弄清楚如何将ItemFulfillmentPackage对象添加到集合。我已经尝试过将各种方法分配给ItemFulfillmentPackageList对象,但没有运气。创建一个ItemFulfillmentPakage对象数组是最新的尝试。这是我的代码。通过跟踪更新NetSuite项目执行记录

   foreach (DataRow dr in dt.Rows) 
       { 
        try 
        { 
         ItemFulfillment ifRecord = new ItemFulfillment(); 
         ifRecord.packageList = new ItemFulfillmentPackageList(); 
         ifRecord.internalId = dr["Item Fulfillment Internal ID"].ToString(); 

         ItemFulfillmentPackage ifp = new ItemFulfillmentPackage(); 

         ifp.packageDescr = dr["Package Description"].ToString(); 
         ifp.packageTrackingNumber = dr["detail_tracking_information"].ToString(); 

         ItemFulfillmentPackageList ifpl = new ItemFulfillmentPackageList(); 

         Object[] objPackages = new Object[1]; 
         objPackages[1] = ifp; 

         ifpl = (ItemFulfillmentPackageList)objPackages; 

         ifRecord.packageList = ifpl; 

         ifpl.replaceAll = false; 

         WriteResponse res = _service.update(ifRecord); 

         if (res.status.isSuccess) 
         { 
          ; 
         } 
         else if (res.status.isSuccessSpecified) 
         { 
          ; 
         } 
         else 
          displayError(res.status.statusDetail); 
        } 
        catch (Exception ex) 
        { 
         _logger.error(String.Format("Error in updateItemFulfillment DR method. {0}", ex.Message)); 
         throw new Exception(String.Format("Error in updateItemFulfillment DR method. {0}", ex.Message)); 
        } 
       } 

回答

0

确保您配置搜索首选项,以使bodyFieldsOnly为true;默认情况下它的设置为false,并且不会加载子列表项。

0

我有同样的问题。我最终做的是创建项目实现事务处理以及所有相关的行级别信息并将其添加到NetSuite中。

在此之后,我搜索我刚刚添加的项目实现并将追踪信息添加到记录中。我通过检查哪个包字段不等于null并将信息添加到该包列表来执行此操作。

在我的情况下,每个订单只使用一个追踪号码,所有包裹都会包含这个号码。您可以修改它以根据需要添加跟踪参考。

称为“msg”的变量是包含所有送货信息的装运通知。

我的代码:

TransactionSearch xactionSearch = new TransactionSearch(); 

TransactionSearchBasic xactionBasic = new TransactionSearchBasic(); 
xactionBasic.createdFrom = new SearchMultiSelectField(); 
[email protected] = SearchMultiSelectFieldOperator.anyOf; 
xactionBasic.createdFrom.operatorSpecified = true; 
xactionBasic.createdFrom.searchValue = new RecordRef[1]; 
xactionBasic.createdFrom.searchValue[0] = new RecordRef { internalId = "SO Internal ID"}; 

xactionSearch.basic = xactionBasic; 
if (useTba = "true".Equals(_custSettings["login.useTba"])) 
    login(); 
SearchResult res = _service.search(xactionSearch); 
ReadResponse res2 = new ReadResponse(); 

for (int i = 0; i < res.recordList.Length; i++) 
{ 
    if (res.recordList[i] is ItemFulfillment) 
    { 
     if (useTba = "true".Equals(_custSettings["login.useTba"])) 
     login(); 
     res2 = _service.get(new RecordRef { internalId = ((ItemFulfillment)res.recordList[i]).internalId, type = RecordType.itemFulfillment, typeSpecified = true }); 
    } 
} 

     ItemFulfillment item = (ItemFulfillment)res2.record; 
     ItemFulfillment NewItem = new ItemFulfillment { internalId = item.internalId }; 

     //Fedex 
     if (item.packageFedExList != null) 
     { 
      if (item.packageFedExList.packageFedEx != null) 
      { 
       for (int i = 0; i < item.packageFedExList.packageFedEx.Length; i++) 
       { 
        item.packageFedExList.packageFedEx[i].packageTrackingNumberFedEx = msg.trackingRef; 
       } 
      } 
      NewItem.packageFedExList = item.packageFedExList; 
     } 


     if (item.packageList != null) 
     { 
      if (item.packageList.package != null) 
      { 
       for (int i = 0; i < item.packageList.package.Length; i++) 
       { 
        item.packageList.package[i].packageTrackingNumber = msg.trackingRef; 
       } 
      } 
      NewItem.packageList = item.packageList; 
     } 

     //UPS 
     if (item.packageUpsList != null) 
     { 
      if (item.packageUpsList.packageUps != null) 
      { 
       for (int i = 0; i < item.packageUpsList.packageUps.Length; i++) 
       { 
        item.packageUpsList.packageUps[i].packageTrackingNumberUps = msg.trackingRef; 
       } 
      } 
      NewItem.packageUpsList = item.packageUpsList; 
     } 

     //Usps 
     if (item.packageUspsList != null) 
     { 
      if (item.packageUspsList.packageUsps != null) 
      { 
       for (int i = 0; i < item.packageUspsList.packageUsps.Length; i++) 
       { 
        item.packageUspsList.packageUsps[i].packageTrackingNumberUsps = msg.trackingRef; 
       } 
      } 
      NewItem.packageUspsList = item.packageUspsList; 
     } 

     if (useTba = "true".Equals(_custSettings["login.useTba"])) 
      login(); 
     _service.update(NewItem);