如何使用RESTlet获取Netsuite中特定记录类型的所有自定义字段?

如何使用RESTlet获取Netsuite中特定记录类型的所有自定义字段?,netsuite,Netsuite,我可以使用RESTlet创建客户、潜在客户和联系人。但我的代码是由使用必需选项创建自定义字段的人使用的。当我试图创建一个客户时,我得到了自定义必填字段的错误信息 我也想传递自定义必填字段的数据。如何使用RESTlet了解按必填字段和无必填字段分类的所有自定义字段?您可以使用 var record = nlapiCreateRecord(RECORD_TYPE); var fields = record.getAllFields(); var requiredFields = []; fields

我可以使用RESTlet创建客户、潜在客户和联系人。但我的代码是由使用必需选项创建自定义字段的人使用的。当我试图创建一个客户时,我得到了自定义必填字段的错误信息

我也想传递自定义必填字段的数据。如何使用RESTlet了解按必填字段和无必填字段分类的所有自定义字段?

您可以使用

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数组是您需要的。

您可以使用

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数组是您需要的。

实际上,在这种情况下,我采用两种方法之一(或将它们结合起来):

首先是忽略必填字段。您认为代码的任务是将信息输入Netsuite,用户必须负责将来的更新。要做到这一点,请告诉Netsuite在代码保存必填字段时忽略这些字段:

nlapiSubmitRecord(nlobjRecord, doSourcing, ignoreMandatoryFields); //doSourcing and ignoreMandatoryFields are booleans

或者我向restlet添加一个文本区域参数,配置restlet的人员必须在其中输入一个要处理的额外字段列表(例如,在对话框中显示并使其成为必需)

实际上,在这种情况下,我采用两种方法之一(或将它们结合起来):

首先是忽略必填字段。您认为代码的任务是将信息输入Netsuite,用户必须负责将来的更新。要做到这一点,请告诉Netsuite在代码保存必填字段时忽略这些字段:

nlapiSubmitRecord(nlobjRecord, doSourcing, ignoreMandatoryFields); //doSourcing and ignoreMandatoryFields are booleans

或者我向restlet添加一个文本区域参数,配置restlet的人员必须在其中输入要处理的额外字段列表(例如,在对话框中显示并使其成为必需)

什么是record prasun?getAllFields返回一维数组,其中只包含记录类型的所有字段的名称
fields.forEach(function(fldName){var fld=record.getField(fldName);…
我逐行测试了输出。所以只得到了一些混乱。代码运行得很好。也感谢prasun。我必须基于标准和自定义字段创建动态控件,以便从用户处获取值,所以我需要有关字段的更多详细信息,例如带有默认值的文本框,选择(下拉)在netsuite中具有可用值。什么是record prasun?getAllFields返回一维数组,该数组只包含记录类型
fields.forEach(函数(fldName){var fld=record.getField(fldName)的所有字段的名称…
我逐行测试了输出。所以只得到了混乱。代码运行得很好prasun。也谢谢你。我必须基于标准和自定义字段创建动态控件,以从用户处获取值,所以我需要有关字段的更多详细信息,如带有默认值的文本框,在netsuite中使用可用值选择(下拉菜单)。