在NetSuite中我收到错误“子列表inventorynumber字段inventorynumber不是子记录字段”

时间:2017-12-01 18:48:24

标签: netsuite

我们没有设置库存分配。我正在尝试创建一个新的返回授权记录。我可以附加该项目,但我似乎无法更新项目中的字段或使用序列号填充inventorynumber。如果您手动填充表单上的字段,它可以工作,但我不能让它在restlet中工作。

当尝试填充库存编号时,我收到错误“子列表库存编号字段库存编号不是子记录字段”。

// create new rma record
var rmarecord=nlapiCreateRecord('returnauthorization');
rmarecord.setFieldValue('customform','116'); // form is RMA
rmarecord.setFieldValue('department', '55'); 
rmarecord.setFieldValue('class', '56'); 
rmarecord.setFieldValue('location', '20'); 
rmarecord.setFieldValue('otherrefnum', datain.ponumber);
rmarecord.setFieldValue('custbody2', datain.rma);
rmarecord.setFieldValue('custbody3', datain.problemdesc);
rmarecord.setFieldValue('entity', datain.customerid);

// Select Line Item
rmarecord.selectNewLineItem('item');
rmarecord.setCurrentLineItemValue('item', 'item', itemrecordid);
rmarecord.setCurrentLineItemValue('item', 'rate', '0');
rmarecord.setCurrentLineItemValue('item', 'amount', '0');
rmarecord.setCurrentLineItemValue('item', 'quantity', '1');
rmarecord.setCurrentLineItemValue('item', 'pricelevel', '0'); // Custom

var inventorydetailrecord = rmarecord.createCurrentLineItemSubrecord('item', 'inventorynumber');

inventorydetailrecord.selectNewLineItem('inventorynumber');
inventorydetailrecord.setCurrentLineItemValue('inventorynumber', 'inventorynumber', datain.serial);
inventorydetailrecord.commitLineItem('inventorynumber');
inventorydetailrecord.commit(); 

rmarecord.commitLineItem('item');

var rmaid = nlapiSubmitRecord(rmarecord,false,true);

2 个答案:

答案 0 :(得分:0)

尝试

inventorydetailrecord.setCurrentLineItemValue('inventorynumber','inventorydetail',datain.serial);

答案 1 :(得分:0)

<强>编辑: 我刚刚注意到你写过你没有使用库存分配。 在这种情况下,您没有库存明细子记录,而是尝试将值设置为名为“serialnumbers”的字段:

var inventorydetailrecord = rmarecord.createCurrentLineItemSubrecord('item', 'inventorydetail');
inventorydetailrecord.selectNewLineItem('inventoryassignment');
inventorydetailrecord.setCurrentLineItemValue('inventoryassignment', 'receiptinventorynumber', datain.serial);
inventorydetailrecord.commitLineItem('inventoryassignment');
inventorydetailrecord.commit(); 

无论如何,如果您决定使用库存分配,请在下面找到有关库存明细子记录的说明。

子记录字段ID是“inventorydetail”

库存明细子记录中的子列表ID称为“库存分配”。

库存分配子列表中的序列号字段ID是“receiptinventorynumber”。

请参阅下面的代码段,以便更新子记录中的SN:

@Autowired
BetterObjectPrinter<Integer> integerBetterObjectPrinter;

@Autowired
BetterObjectPrinter<String> stringBetterObjectPrinter;


public interface ObjectPrinter<T> {

    public String print(T obj);
}

@Component
public class IntegerPrinter implements ObjectPrinter<Integer> {

    public String print(Integer obj) {
        return obj.toString();
    }
}

@Component
public class StringPrinter implements ObjectPrinter<String> {

    public String print(String obj) {
        return obj.toString();
    }
}


@Component
public class BetterObjectPrinter<T> {

    @Autowired
    ObjectPrinter<T> objectPrinter;

    public String print(T obj) {
        return objectPrinter.print(obj);
    }
}