运行 SuiteScript 时出现 MapReduce Netsuite 错误

问题描述 投票:0回答:1

遇到一个让我发疯的问题,有人知道出了什么问题吗?尝试对 NetSuite 系统中的当前 S/O 进行映射缩减,调用已保存的搜索。

错误 无法评估脚本:{"type":"error.SuiteScriptModuleLoaderError","name":"UNEXPECTED_ERROR","message":"missing ; before statements (SS_SCRIPT_FOR_METADATA#73)","stack":[]}

/**
*@NApiVersion 2.x
*@NScriptType MapReduceScript
@NModuleScope SameAccount
*/
 define(['N/record']), 
 function (record){

    function getInputData(inputContext) {
   try{
         
            var mySearch = record.load({
                id: 'customsearch_my_so_search'
            });
            mySearch.run().each (function(result) {
                var entity= result.getValue({
                    name: 'entity'
                });
                var subsidiary = result.getValue({
                    name: 'subsidiary'
                });
                return true;
            })
        }
        catch(e){
            log.debug('Error in GET INPUT DATA',e);
        };
    }

    function map (mapContext) {
        try{
            var searchResult = JSON.parse(mapContext.value);
            var salesOrderId = searchResult.id;
            var objRecord = recordId.load({
                fromType: recordId.Type.SALES_ORDER,
                fromId: salesOrderId,
                isDynamic: true,
                isClosed: true
            });
            
            var recordId = objRecord.save({
                enableSourcing: true,
                ignoreMandatoryFields: true
            });
            context.write({
                key : salesOrderId
            });
        }
        catch(e){
            log.error('Exception in MAP is', e);
        }
    }
    function summarize(summary) {
        try{
            var type = summary.toString();
            log.audit(type + 'Document Number' + summary.usage);
            log.audit(type + 'Internal ID' + summary.usage);
            log.audit(type + 'Status' + summary.usage);
            log.audit(type + 'Line Unique Key' + summary.usage);
            log.audit()
        }catch(e){
            log.error("Exception in SUMMARIZE",e);
        }
    }
   
   
    return {
        getInputData:getInputData,
        map:map, 
        summarize:summarize,
     
    }
});
mapreduce netsuite
1个回答
0
投票

您需要对代码进行一些更改。 使用 N/search 模块在脚本中加载保存搜索或创建搜索。

    /**
    *@NApiVersion 2.x
    *@NScriptType MapReduceScript
    @NModuleScope SameAccount
    */
     define(['N/record','N/search']), 
 function (record,search){

    function getInputData(inputContext) {
   try{
         
            var mySearch = search.load({
                id: 'save search id'
            });
            mySearch.run().each (function(result) {
                var entity= result.getValue({
                    name: 'entity'
                });
                var subsidiary = result.getValue({
                    name: 'subsidiary'
                });
                return true;
            })
        }
        catch(e){
            log.debug('Error in GET INPUT DATA',e);
        };
    }

    return {
        getInputData:getInputData,
        map:map, 
        summarize:summarize,
     
    }
});

希望这对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.