对SuiteScript 1.0行级字段源代码进行故障排除(列表/记录)

时间:2018-09-11 20:43:47

标签: javascript netsuite suitescript

我是一位经验不足的技术开发人员,正在使用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);
}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

Praveen Kumar对于缺少必需的参数的回答是正确的,但是您认为脚本还有很多其他问题。

旁注:

  • nlobjRecord的getFieldValue和getFieldText方法不大写。
  • 出于性能原因,您可以/应该使用搜索从作业记录中获取所需的值。除非您要更改记录,否则仅为了获取字段值而加载记录是浪费的。
  • 您的搜索过滤器可能应该基于作业记录中实体ID的 value (不是文本)。
  • 您想要的搜索列可能无效(我认为工作记录上可能没有“关注度”字段)。
  • 获取搜索结果不正确。

您想要这样的东西:

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

尽管如此,从您的描述来看,我仍然认为您不需要进行搜索。一旦有了部门(再次使用precord.getFieldValue),我想您所需要的就是:

record.setFieldValue('department', pdepartment);

或者,如果您要设置行级部门,则将有所不同。

这是哪种脚本?我想提出更多建议,但这取决于正在发生的事情。