【问题标题】:How to get all custom fields of a particular record type in Netsuite using RESTlet?如何使用 RESTlet 在 Netsuite 中获取特定记录类型的所有自定义字段?
【发布时间】:2020-09-12 06:37:19
【问题描述】:

我可以使用 RESTlet 创建客户、潜在客户和联系人。但是我的代码被创建带有必需选项的自定义字段的人使用。当我尝试创建客户时,我收到了自定义必填字段的错误。

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

【问题讨论】:

    标签: netsuite


    【解决方案1】:

    你可以使用

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

    【讨论】:

    • 什么是记录prasun?
    • getAllFields 返回一维数组,其中只有记录类型的所有字段的名称
    • fields.forEach(function(fldName){ var fld = record.getField(fldName);...
    • 我逐行测试了输出。所以只有困惑。代码工作得很好 prasun。也感谢 bknights。
    • 我必须创建基于标准和自定义字段的动态控件才能从用户那里获取值,所以我需要有关字段的更多详细信息,例如具有默认值的文本框,在 netsuite 中使用可用值选择(下拉) .
    【解决方案2】:

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

    首先是忽略必填字段。您查看您的代码的工作是将信息输入 Netsuite,而用户必须对未来的更新负责。您可以通过告诉 Netsuite 在您的代码保存必填字段时忽略它们来做到这一点:

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

    或者我向restlet添加一个文本区域参数,配置restlet的人必须输入一个你想要做某事的额外字段列表(例如,在对话框中显示并设为必填)

    【讨论】:

      猜你喜欢
      • 2016-01-15
      • 1970-01-01
      • 2018-12-24
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多