2017-02-23 120 views
0

上午大师,通过SuiteScript从采购订单创建项目收益

我在创建一个模块来处理多PO合并出货量(FX进口)的过程中,编写脚本接收多个POS每到岸成本线。

我使用SuiteScript API 1.0

然而,当我创建项目收据记录(以及包括PO#在createdfrom领域创造从红外到PO的链接,复制PO的过程中,线红外线,我不断得到SSS_INVALID_SUBLIST_OPERATION错误

有问题的代码如下:。

  // ** set body fields 
     receiptRec.setFieldValue('location',purchRec.getFieldValue('location')); 
     receiptRec.setFieldValue('entity',purchRec.getFieldValue('entity')); 
     receiptRec.setFieldValue('createdfrom',purchRec.getFieldValue('internalid')); 
     receiptRec.setFieldValue('currency',purchRec.getFieldValue('currency')); 
     receiptRec.setFieldValue('exchangerate',purchRec.getFieldValue('exchangerate')); 
     receiptRec.setFieldValue('isbasecurrency',purchRec.getFieldValue('isbasecurrency')); 
     receiptRec.setFieldValue('exchangerate',purchRec.getFieldValue('exchangerate')); 
     receiptRec.setFieldValue('landedcostperline','T'); 

     log ('Receipt Record:'); log(receiptRec); 
     // ** copy item lines 
     var POlines = purchRec.getLineItemCount('item'); 
     for (line=1 ; line<=POlines; line++) { 
      var fulfill = purchRec.getLineItemValue('item','fulfillable',line); log('Fulfill?? '+fulfill) 
      if (fulfill == 'T') { 
       log('Fill From PO Line #'+line); 
       receiptRec.selectNewLineItem('item');                  log('Debug 1'); 
       receiptRec.setCurrentLineItemValue('item','item',purchRec.getLineItemValue('item','item',line));   log('Debug 2'); 
       receiptRec.setCurrentLineItemValue('item','itemreceive','T',line);           log('Debug 3'); 
       receiptRec.setCurrentLineItemValue('item','quantity',purchRec.getLineItemValue('item','quantity',line)); log('Debug 4'); 
       receiptRec.setCurrentLineItemValue('item','rate',purchRec.getLineItemValue('item','rate',line));   log('Debug 5'); 
       receiptRec.setCurrentLineItemValue('item','taxcode',purchRec.getLineItemValue('item','taxcode',line));  log('Debug 6'); 
       receiptRec.setCurrentLineItemValue('item','units',purchRec.getLineItemValue('item','units',line));   log('Debug 7'); 
       receiptRec.commitLineItem('item');                   log('Debug 8'); 
      } 
     } 

的错误是在selectNewLineItem('item')点触发

receiptRec是新创建的itemreceipt记录。 purchRec是现有的采购订单记录。

拔出我留下的小毛发!

我在这里错过了什么?

感谢帮助!

回答

4

您无法在Netsuite中“创建”新的收货记录。您需要使用nlapiTransformRecord('purchaseorder', purchaseorderid, 'itemreceipt')将采购订单“转换”为项目收据。这将自动复制所有行项目,然后您可以遍历它们以完全更改数量或删除行,但不能添加新行。

请参阅this link以获取更多信息。

相关问题