如何使用netsuite suitescript 2.0版本为多选字段设置值?

时间:2017-04-23 06:48:47

标签: javascript arrays netsuite multi-select suitescript

我想在该字段中使用现有值设置多选的值。 (即)如果Filed具有值“A,B”意味着我想用现有值添加新值“c”那么,结果将是“A,B,C”。

我使用“N / Record”模块SubmitFields API来设置多选字段的值,如下所示

CODE:SuiteScript 2.0版本:

初始代码:

var strArrayValue = new Array();
    strArrayValue [0] = "A";
    strArrayValue [1] = "B";
    strArrayValue [2] = "C";


record.submitFields({
         type:'purchaseorder',
         id:56,
         values:{

         custbody_multiselectfield: strArrayValue 

         },
         options: {
            enableSourcing: false,
            ignoreMandatoryFields : true
          }

});

它显示如下错误:“您输入了无效类型参数:arg 4”

更新代码:

 var strArrayValue = new Array();
        strArrayValue [0] = "A";
        strArrayValue [1] = "B";
        strArrayValue [2] = "C";

   var PORec = record.load({               // Loading Purchase Order Recod

                type:"purchaseorder",
                id:56,
                isDynamic: true

                 )};

        PORec.setValue('custbody_multiselectfield',strArrayValue ); // Setting Value (Array List) for Multi-Select Fields

        PORec.save();    // Saving Loaded Record

它还显示错误:“无效的custbody_multiselectfield参考键31567,31568”

但是如果我将Value添加为String而不是String Array,则只设置单个值(即)覆盖先前的值。 例如:多选只有“C”值而不是“A,B,C”值。

任何人都可以帮助解决这个问题。

2 个答案:

答案 0 :(得分:8)

根据NetSuite的文档,您无法使用此api方法编辑或提交选择字段 - 仅支持内联编辑的字段(请参阅SuiteAnswer ID:45158)。您可能必须使用record.load()加载记录,修改值,然后使用record.save()提交。

编辑:在回答更新的问题时,这里唯一出现的问题是您尝试按字段的显示值设置值,其中setValue()期望值的内部ID。您可以使用相关的内部ID更改正在填充的值,也可以将其更改为使用setText()方法:

var strArrayValue = new Array();
        strArrayValue [0] = "A";
        strArrayValue [1] = "B";
        strArrayValue [2] = "C";

   var PORec = record.load({               // Loading Purchase Order Recod

                type:"purchaseorder",
                id:56,
                isDynamic: true

                 });

        PORec.setText('custbody_multiselectfield',strArrayValue ); // Setting Value (Array List) for Multi-Select Fields

        PORec.save();    // Saving Loaded Record

我测试了这两种方法并且都适合我。

答案 1 :(得分:0)

如果使用客户端脚本,则设置多选值很简单。就我而言,我正在寻找一名员工的下属。对于每个结果,我将下级(员工记录)的internalid推送到一个数组。然后在“员工”类型的多选字段中,设置如下所示的值:

var subordinates = [];

// do search and push internalids of employees

currentRecord.setValue({
  fieldId: 'custrecord_emp_subordinates',
  value: subordinates
});

希望这对某人有帮助!