我可以为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)
);
答案 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;
}