Сценарий Netsuite график сохранен поиск - PullRequest
0 голосов
/ 10 марта 2020
/**
* @NApiVersion 2.x
* @NScriptType ScheduledScript
* @NModuleScope SameAccount
*/
define(['N/search','N/record','N/file'],

function(search,record,file) {

/**
 * Definition of the Scheduled script trigger point.
 *
 *@param {search} search
 *@param {record} record
 *@param {file} file
 * @param {Object} scriptContext
 * @param {string} scriptContext.type - The context in which the script is executed. It is one of the values from the scriptContext.InvocationType enum.
 * @Since 2015.2
 */
function execute(context) {

    var currentdate=new Date().getTime();
    var arr=[];
    arr.push(currentdate);


    for(i in arr){
        if(arr.length==1){
            var cmpdate=arr[i];
        }
        var cmpdate=arr[i--];
    }

    var sosearch=search.create({type:search.Type.TRANSACTION,
        filters:[
                ['type',search.Operator.ANYOF,'SalesOrd'],'and',
                ['mainline',search.Operator.IS,true],'and',
                ['formuladate',search.Operator.AFTER,cmpdate]                   
                ],
    columns:['salesoreder']

    });

  var searchresult=sosearch.run().each(function(result) {
        var soid= result.getValue({
            name: 'internalid'
});
  });

  for(r in searchresult){
      var sorec=record.load({type:'salesorder',id:searchresult[r]});
      var myfile=file.create({name:maqsofile,fileType:file.Type.CSV,contents:sorec})
      myfile.folder=520;
      myfile.save();
  }    
}
return {
    execute: execute
};

});

** Я пытаюсь выполнить сохраненный поиск, чтобы при каждом запуске сценария я получал заказы на продажу, созданные в течение этого периода времени (например, через каждые 30 м), после этого я буду создавать файлы этого заказ на продажу. Идея заключается в том, что при сравнении даты создания записи последнего запуска с текущим временем даты это текущее время будет сравниваться со следующим временем текущей даты для следующего запуска, но проблема заключается в том, что я не могу сравнить форматы дат т.е. новый Date () с датой, которую я пытаюсь использовать при создании сохраненного поиска. **

1 Ответ

1 голос
/ 10 марта 2020

Я рекомендую создать параметр сценария в запланированном сценарии, например, custscript_last_search_thru_date. Затем обновите параметр после запуска поиска, чтобы его можно было использовать в качестве даты начала при следующем запуске сценария.

var searchStartDate = runtime.getCurrentScript().getParameter({name: 'custscript_last_search_thru_date'});
var searchEndDate=new Date();

filters.push(search.createFilter({
    name: 'datecreated',
    operator: search.Operator.AFTER,
    values: searchStartDate.getTime()
}));

filters.push(search.createFilter({
    name: 'datecreated',
    operator: search.Operator.ONORBEFORE,
    values: searchEndDate.getTime()
}));

// Run search and do stuff

record.submitFields({
    type: 'scriptdeployment',
    id: deploymentId,
    values: {
        custscript_last_search_thru_date : searchEndDate
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...