suitescript 2.0无法评估

时间:2018-12-20 19:47:38

标签: suitescript2.0

我是新手速写作者,无法弄清楚我在做什么错。我正在尝试加载一个非常简单的suitescript 2.0脚本来计算自定义表中的值。我可以很好地上传脚本文件,但是在创建脚本记录时,出现以下错误:无法评估脚本:{"type":"error.SuiteScriptModuleLoaderError","name":"UNEXPECTED_ERROR","message":"missing : after property id (SS_SCRIPT_FOR_METADATA#22)","stack":[]}

这是代码

/**
 *@NApiVersion 2.x
 *@NScriptType ClientScript
 */
define(['N/currentRecord'],
    function fieldChanged(context) {
        var fieldName=context.currentRecord.fieldID;
    //return if not one of these fields
    if (fieldName!=='custrecord_am_ehir_emp_prem_percent' &&
    fieldName!=='custrecord_am_ehir_dep_prem_percent' &&
            fieldName!=='custrecord_am_ehir_total_month_prem') 
            return false;
        else
            //get premium and percent values
        var totalPremium=currentRecord.getValue(
            {fieldID:'custrecord_am_ehir_total_month_prem'
            });
        var employeeOnlyPremium=currentRecord.getValue(
            {fieldID:'custrecord_am_ehir_emp_only_prem'
            });
        var employeePercent=currentRecord.getValue(
            {fieldID:'custrecord_am_ehir_emp_prem_percent'
            });
        var dependentPercent=currentRecord.getValue(
            {fieldID:'custrecord_am_ehir_dep_prem_percent'
            });
        var employeePremium=totalPremium*employeePercent;
        var dependentPremium=(to1talPremium-employeeOnlyPremium)*dependentPercent;
        var companyPremium=totalPremium-employeePremium-dependentPremium;
        //set field values
        currentRecord.setValue(
            {fieldID:'custrecord_am_ehir_emp_month_prem',employeePremium
            });
        currentRecord.setValue(
            {fieldID:'custrecord_am_ehir_dep_month_prem',dependentPremium
            });
        currentRecord.setValue(
            {fieldID:'custrecord_am_ehir_co_month_prem',companyPremium
            });
        return {fieldChanged:fieldChanged};
    }
);

4 个答案:

答案 0 :(得分:0)

罗伯特

属性名称是“ fieldId”而不是“ fieldID”。我认为这是导致错误的原因。

关于, 路易斯·莫赖斯(Luiz Morais)

答案 1 :(得分:0)

我在您的脚本中看到一些代码错误

  1. 就像Luiz提到的那样,将“ fieldID”更改为“ fieldId”
  2. 第30行有一个错字,“ to1talPremium”,我相信是“ totalPremium”
  3. currentRecord.setValue函数应后跟2个参数{fieldId:``,value:''}

    currentRecord.setValue(
        {
            fieldId: 'custrecord_am_ehir_emp_month_prem', employeePremium
        });
    

如果使用SuiteScript 2.0,此代码将不起作用 试试这个

currentRecord.setValue({
            fieldId: 'custrecord_am_ehir_emp_month_prem', 
            value: employeePremium
        });

如果您还有其他问题,请告诉我。

答案 2 :(得分:0)

我认为代码应该↓

/**
 *@NApiVersion 2.x
 *@NScriptType ClientScript
 */
define(['N/currentRecord'],
function(currentRecord){
     function fieldChanged(context) {}
     return {fieldChanged:fieldChanged}
})

答案 3 :(得分:-1)

您的代码有几个问题

  1. 它是 fieldId ,而不是 fieldID fieldid

例如

var totalPremium = currentRecord.getValue({
  fieldId: 'custrecord_am_ehir_total_month_prem'
});
  1. 要使用SS2.0设置值,您需要传递包含2个属性的对象 fieldId value

因此,要设置一个值,您需要执行以下操作。

currentRecord.setValue({
  fieldId:'custrecord_am_ehir_emp_month_prem', 
  value: employeePremium
});

有关更多信息,请参阅NetSuite帮助中的Record Module