【问题标题】:Troubleshooting SuiteScript 1.0 Line Level Field Sourcing Code (List/Record)SuiteScript 1.0 行级字段源代码(列表/记录)疑难解答
【发布时间】:2018-09-14 00:02:59
【问题描述】:

我是一名缺乏经验的技术开发人员,正在使用 SuiteScript 1.0 开发我的第一个 SuiteScript。我收到SSS_MISSING_REQD_ARGUMENT 错误,但我确信我的代码中还有更多错误。该脚本的目的是从合并的记录中填充费用记录行项目上的部门字段。最终用户将在费用行上选择一个项目,脚本应在项目记录(自定义字段)上查找部门并将值添加到本机部门字段。代码复制如下。

function ProjectSegment ()
{
    var record = nlapiLoadRecord(nlapiGetRecordType(), nlapiGetRecordId());

    var recordID = nlapiGetRecordId(record);

    //internal ID of project record
    var project = nlapiGetField ('custcol_nra_expense_project');

    //load project record
    var precord = nlapiLoadRecord('job', project);

    //get department on project record (internal ID)
    var pdepartment = precord.GetFieldValue('custentity_nra_dept_project');

    //get project name from project record
    var projectName = precord.GetFieldText('entityid');

    //load existing search
    var search = nlapiLoadSearch('job','customsearch161');

    //add filter to include project name
    search.addFilter(new nlobjSearchFilter('entityid',null,'is',projectName));

    //run search
    var resultSet = search.runSearch();

    //get department line
    var departmentResult = new nlobjSearchColumn('custentity_nra_dept_project');

    //set value
    nlapiSetFieldTexts('job','department',1,departmentResult)

    //record.commitLineItem('department');
    nlapiSubmitRecord(record, true);
}

【问题讨论】:

    标签: javascript netsuite suitescript


    【解决方案1】:

    //项目记录的内部ID var project = nlapiGetFieldValue ('custcol_nra_expense_project');

    【讨论】:

      【解决方案2】:

      Praveen Kumar 对缺少必需参数的回答是正确的,但正如您所推测的那样,脚本还有许多其他问题。

      旁注:

      • nlobjRecord 的 getFieldValue 和 getFieldText 方法不大写。
      • 出于性能原因,您可以/应该使用搜索从工作记录中获取所需的值。加载记录只是为了获取字段值是一种浪费,除非您打算更改记录。
      • 您的搜索过滤器可能应该基于职位记录中 entityid 的 (而非文本)。
      • 您想要的搜索列可能无效(我认为 custentity 字段不会出现在工作记录中)。
      • 获取的搜索结果不正确。

      你想要这样的东西:

      var result = resultSet.getResults(0, 1);
      if (result) {
          var department = result.getValue('custentity_nra_dept_project');
          // etc.
      }
      

      尽管如此,根据您的描述,我认为您无论如何都不需要搜索。一旦你有了 pdepartment(同样,使用 precord.getFieldValue),我想你所需要的就是:

      record.setFieldValue('department', pdepartment);
      

      或者如果你设置的是行级部门,那就不同了。

      这是什么脚本?我想提出更多建议,但这取决于具体情况。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-27
        • 1970-01-01
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多