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

时间:2016-04-05 05:51:19

标签: restlet netsuite

我可以为select,text box等传递值,但不能用于多选。我可以更新多选的值。但我无法通过传递多选的值来创建记录。

这是代码:

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

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

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

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

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

1 个答案:

答案 0 :(得分:5)

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

end sub

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

nlapiSetFieldValues()
  

record.setFieldValue(fieldname,value);

/********************** 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') {

引用的代码应为

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

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

    var nlobj = nlapiLoadRecord(datain.recordtype, recordId);
    return nlobj;
}