【问题标题】:SuiteScript 2.x entry point scripts must implement one script type functionSuiteScript 2.x 入口点脚本必须实现一种脚本类型函数
【发布时间】:2022-01-15 23:59:30
【问题描述】:

我在销售订单中添加了一个名为 Membership 的字段,该字段将来自客户记录。然后,当该字段设置为会员级别(例如精英​​会员)时,它会自动将折扣项目字段设置为特定折扣项目....我遇到一个通知说 SuiteScript 2.x 入口点脚本必须实现一个脚本类型函数我该如何解决这个问题?

/**
 *@NApiVersion 2.x
 *@NScriptType ClientScript
 */
define(["N/currentRecord", "N/runtime"], function(currentRecord,runtime) {

    function pageInit(context) {

     const record = currentRecord.get()  // Get value of Membership Field   
     const user = runtime.getCurrentUser().name
    }
    
    var membership = currentRecord.getField({
        fieldId : "custentity1",
    })

    if(membership == "Elite"){
        //Setting up discount
        record.setValue({
            fieldId: "discountitem", //fieldId of the Discount Item 
            value: 137 // Internal ID of the Discount Item
        })}

        else {
            record.setValue({
                fieldId: "discount item",
                value: 0
            });
        }

        return {
            pageInit : pageInit
        }
});    

【问题讨论】:

  • 尝试将 2.x 更改为 2.1 或将 const 更改为 var

标签: javascript netsuite suitescript suitescript2.0


【解决方案1】:

我在最初几天遇到了这个错误。 将@NApiVersion 更改为2.1。每当我们使用最新的 ES 功能(let、const、forEach、...)时,将 api 版本 JSDocTag 分配给 2.1。如果问题仍然存在,请告诉我。

【讨论】:

    【解决方案2】:

    您的逻辑必须存在于函数中,即入口点函数中。在您的代码中,它位于函数之外(PageInit 函数)。因此出现错误。

    试试这个 -

    /** 
      *@NApiVersion 2.0
      *@NScriptType ClientScript
    */ 
    
    define(["N/currentRecord", "N/runtime"], function(currentRecord,runtime) {
    
        function pageInit(context) {
    
            const record = currentRecord.get();  // Get value of Membership Field   
            const user = runtime.getCurrentUser().name;
    
            var membership = currentRecord.getField({
                fieldId : "custentity1"
            });
               
            if(membership == "Elite"){
                //Setting up discount
                record.setValue({
                    fieldId: "discountitem", //fieldId of the Discount Item 
                    value: 137 // Internal ID of the Discount Item
                });
            } else {
                record.setValue({
                    fieldId: "discount item",
                    value: 0
                });
            }
        }
           
        return {
            pageInit : pageInit
        }
    });
    

    如有问题请告诉我。

    【讨论】:

      【解决方案3】:

      您的代码需要在入口点中才能对销售订单记录产生影响,听起来您想使用 fieldChanged 入口点,请在帮助文档中查看。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-08
        • 1970-01-01
        相关资源
        最近更新 更多