我可以传递选择,文本框等的值,但不能用于多选.我可以更新多选的值.但我不能通过传递多选的值来创建记录.
这是代码:
$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)
| 归档时间: |
|
| 查看次数: |
893 次 |
| 最近记录: |