簡體   English   中英

netsuite suitescript 2.0版如何設置多選字段的值?

[英]How to set value for the multi-select field using netsuite suitescript 2.0 version?

我想使用該字段中的現有值設置多選值。 (即)如果 Filed 的值為“A,B”,則意味着我想添加具有現有值的新值“c”,因此,結果將為“A,B,C”。

我使用“N/Record”模塊 SubmitFields API 來設置多選字段的值,如下所示

代碼: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'reference key 31567,31568”

但是,如果我將值添加為字符串而不是字符串數組,它只會設置單個值(即)覆蓋以前的值。 例如:多選只有“C”值而不是“A、B、C”值。

任何人都可以幫助解決這個問題。

根據 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

我測試了這兩種方法,並且都對我有用。

如果使用客戶端腳本設置多選值很簡單。 就我而言,我正在尋找一名員工的下屬。 對於每個結果,我將下屬(員工記錄)的internalid推送到一個數組。 然后在我的“員工”類型的多選字段上,我設置如下值:

var subordinates = [];

// do search and push internalids of employees

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

希望這對某人有幫助!

如果每次要更新多選字段值時都加載記錄,則可以獲取字段中的數據並將其存儲在變量中。

var multiSelectData = record.getValue({
   fieldId:''
});

數據將采用數組形式,因此您可以將數據推送到數組中。

multiSelectData.push(yourData);

最后,你可以提交這個變量並保存記錄。

record.setValue({
   fieldId:'',
   value: multiSelectData
});

注意 - 請注意數據類型。 如果需要,可以進行類型轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM