【发布时间】:2020-09-12 06:37:19
【问题描述】:
我可以使用 RESTlet 创建客户、潜在客户和联系人。但是我的代码被创建带有必需选项的自定义字段的人使用。当我尝试创建客户时,我收到了自定义必填字段的错误。
我也想传递自定义必填字段的数据。如何使用 RESTlet 知道按必需和非必需分类的所有自定义字段?
【问题讨论】:
标签: netsuite
我可以使用 RESTlet 创建客户、潜在客户和联系人。但是我的代码被创建带有必需选项的自定义字段的人使用。当我尝试创建客户时,我收到了自定义必填字段的错误。
我也想传递自定义必填字段的数据。如何使用 RESTlet 知道按必需和非必需分类的所有自定义字段?
【问题讨论】:
标签: netsuite
你可以使用
var record = nlapiCreateRecord(RECORD_TYPE);
var fields = record.getAllFields();
var requiredFields = [];
fields.forEach(function(fieldName){
var field = record.getField(fieldName);
//I am not very sure, its true or T but, below code will work
if(field.mandatory === true || field.mandatory === 'T'){
requiredFields.push(field.getName()) //getLabel() for UI label, as getName returns id;
}
});
//requiredFields 数组是你需要的。
【讨论】:
fields.forEach(function(fldName){ var fld = record.getField(fldName);...
实际上在这种情况下,我采用两种方法之一(或将它们结合起来):
首先是忽略必填字段。您查看您的代码的工作是将信息输入 Netsuite,而用户必须对未来的更新负责。您可以通过告诉 Netsuite 在您的代码保存必填字段时忽略它们来做到这一点:
nlapiSubmitRecord(nlobjRecord, doSourcing, ignoreMandatoryFields); //doSourcing and ignoreMandatoryFields are booleans
或者我向restlet添加一个文本区域参数,配置restlet的人必须输入一个你想要做某事的额外字段列表(例如,在对话框中显示并设为必填)
【讨论】: