Rescheduling using Scheduled Script

define(['N/search','N/record','N/runtime','N/task'],
    
    (search,record,runtime,task) => {

        /**
         * Defines the Scheduled script trigger point.
         * @param {Object} scriptContext
         * @param {string} scriptContext.type - Script execution context. Use values from the scriptContext.InvocationType enum.
         * @since 2015.2
         */
        const execute = (scriptContext) => {
            try{
               
                  var script = runtime.getCurrentScript();
                  var startIndex = script.getParameter({name:'custscript_jj_start_index'});
                  log.debug('start index',startIndex);
                  var endIndex = script.getParameter({name:'custscript_jj_end_index'});
                  log.debug('endIndex',endIndex);
                    var itemSearchObj = search.create({
                    type: "item",
                    filters:
                        [
                          
                            ["formulatext: {custitem_jj_item_image}","isempty",""],
                            "AND",
                           ["subsidiary","anyof","2","1","11"]
                           
                        ],
                    columns:
                        [
                            search.createColumn({
                                name: "itemid",
                                sort: search.Sort.ASC,
                                label: "Name"
                            }),
                            search.createColumn({name: "displayname", label: "Display Name"}),
                            search.createColumn({name: "type", label: "Type"}),
                            search.createColumn({name: "internalid", label: "Internal ID"}),
                         
                        ]
                });
                var searchResultCount2 = itemSearchObj.runPaged().count;
                log.debug("itemSearchObj result count",searchResultCount2);


                var myResultSet = itemSearchObj.run();
                var resultRange = myResultSet.getRange({
                    start: startIndex,
                    end: endIndex
                });
                for (var i = 0; i < resultRange.length; i++) {
                    
                    var itemName = resultRange[i].getValue(itemSearchObj.columns[0]);
                    log.debug('itemName',itemName);
                  
                    
                }


                var remainingUsage = script.getRemainingUsage();
                log.debug('remainingUsage',remainingUsage)

                if(remainingUsage<10000){
                    reSchedule(endIndex +1,endIndex +150)
                 }

            }
            catch (e) {
                log.debug('catchError', e)
            }
        }
        function reSchedule(endRange,nextRange){
            try{
                log.debug('in reSchedule')
                var ssTask = task.create({
                    taskType: task.TaskType.SCHEDULED_SCRIPT,
                    scriptId: 2842,
                    deploymentId: "customdeploy_jj_ss_populate_img",
                    params: {
                        custscript_jj_start_index: endRange,
                        custscript_jj_end_index: nextRange
                    }
                });
                var scriptTaskId = ssTask.submit();
            }
            catch (e) {
                log.debug('catchError', e)
            }

        }

        return {execute}

    });

		

Leave a comment

Your email address will not be published. Required fields are marked *