如何在Netsuite中使用RESTlet传递多选自定义字段的值?

Pra*_*bhu 0 restlet netsuite

我可以传递选择,文本框等的值,但不能用于多选.我可以更新多选的值.但我不能通过传递多选的值来创建记录.

这是代码:

$datastring = array(
        "gu_action"=> "create",
        "recordtype"=>"vendor",
        "companyname"=>"Jerald Vend",
        'subsidiary'=>1,
        'custentity36'=>1
);
Run Code Online (Sandbox Code Playgroud)

custentity36是多选控制.它的标签是课程

当我通过单值时,它工作正常.当我尝试传递多个值的多个值时,如下面的代码,我收到错误,如"请输入值:课程"

$datastring = array(
        "gu_action"=> "create",
        "recordtype"=>"vendor",
        "companyname"=>"Jerald Vend",
        'subsidiary'=>1,
        'custentity36'=>array(1,3)
);
Run Code Online (Sandbox Code Playgroud)

该守则是:https://gist.githubusercontent.com/ganeshprabhus/a3ebd67712913df3de29/raw/3a6df6a3af8642fceacb3a4b8e519ad96a054e69/ns_script.js

小智 5

您传递的值格式正确.在这种情况下,RESTlet代码应具有处理多选字段的兼容性.RESTlet中使用的字段设置值api应该是

nlapiSetFieldValues()
Run Code Online (Sandbox Code Playgroud)

这是api可用于设置多选字段值.根据您分享的github引用.在create_record函数下

/********************** Creation *********************************/
function create_record(datain) {
    var err = new Object();

    // Validate if mandatory record type is set in the request
    if (!datain.recordtype) {
        err.status = "Failed";
        err.message = "Missing recordtype";
        return err;
    }

    var record = nlapiCreateRecord(datain.recordtype);

    for ( var fieldname in datain) {
        if (datain.hasOwnProperty(fieldname)) {
            if (fieldname != 'recordtype' && fieldname != 'id') {
                var value = datain[fieldname];
                // ignore other type of parameters
                if (value && typeof value != 'object') {
Run Code Online (Sandbox Code Playgroud)

record.setFieldValue(fieldname,value);

}
            } //recordtype and id checking ends
        }
    } //for ends

    var recordId = nlapiSubmitRecord(record);
    nlapiLogExecution('DEBUG', 'id=' + recordId);

    var nlobj = nlapiLoadRecord(datain.recordtype, recordId);
    return nlobj;
}
Run Code Online (Sandbox Code Playgroud)

引用的代码应该是

record.setFieldValues(fieldname,value) // fieldname : custentity36 , value : 1,3
Run Code Online (Sandbox Code Playgroud)