Ошибка при запуске запланированного сценария из сценария формы суллета в Suitescript 2.0?

Ошибка запуска запланированного сценария из сценария формы суллета в Suitescript 2.0?

Я новичок в suitescripts. Я сделал скрипт формы Suitelet с 3 полями, которые будут действовать как фильтры в запланированном скрипте. Запланированный скрипт отправки файла PDF на определенное электронное письмо после фильтрации 3 значений скрипта масти из моего сохраненного поиска. Когда я нажимаю кнопку в форме суллета, после ввода полей запланированный сценарий продолжает обрабатываться в течение 1 часа, а затем завершается ошибкой. Я думаю, что я поместил неправильные фильтры в загрузку сохраненного поиска в моем запланированном скрипте. Сохраненный поиск (customsearch_mx_itemsearch) без каких-либо фильтров или критериев. Пожалуйста, помогите, если кто-нибудь знает. Спасибо

Моя Сюжетная форма Сценарий:

 define(['N/ui/serverWidget', 'N/search', 'N/render', 'N/runtime', 'N/file', 'N/task'], function (ui, search, render, runtime, file, task) { /** * main function for suitelet * @param {object} ctx */ function onRequest(ctx) { var req = ctx.request; var res = ctx.response; var param = req.parameters; /** * create form is creating the UI for report generation */ if (req.method === 'GET') { // createForm(req, res, param); createForm(req, res, param); } else { generateReport(req, res, param); } } // REQUEST function createForm(req, res, param) { if (req.method === 'GET') { var form = ui.createForm({ title: 'Generate Item Report' }); var item = form.addField({ id: 'custpage_selectitem', type: ui.FieldType.SELECT, label: 'Select Item', source: 'item' }); item.isMandatory = true; var gender = form.addField({ id: 'custpage_selectgender', type: ui.FieldType.SELECT, label: 'Select Gender', source: 'customrecord6' }); gender.isMandatory = true; var fromDate = form.addField({ id: 'custpage_selectdate', // type: ui.FieldType.DATETIME, type: ui.FieldType.DATE, label: 'Select Date/Time', }); form.addSubmitButton({ label: 'Generate Report' }); res.writePage(form); } } // RESPONCE function generateReport(req, res, param) { var param = req.parameters; log.debug('parameters', param); var script = runtime.getCurrentScript(); var filters = { 'isgender': param.custpage_selectgender, 'isItem': param.custpage_selectitem, 'fromDate': param.custpage_selectdate }; log.debug('filters', filters); var scriptTask = task.create({ taskType: task.TaskType.SCHEDULED_SCRIPT }); // scriptTask.scriptId = 3920; scriptTask.scriptId = 'customscript_mx_itemreport_ss'; scriptTask.deploymentId = 'customdeploy_mx_itemreport_ss'; scriptTask.params = { custscript_searchfilter_report: JSON.stringify(filters) }; log.debug('workingtillhere'); var scriptTaskId = scriptTask.submit(); res.write("Your report is being generated. It will be emailed to you shortly.") } return { onRequest: onRequest }; }); 

Мой запланированный скрипт:

 define(['N/ui/serverWidget', 'N/search', 'N/render', 'N/runtime', 'N/file', 'N/email'], function (ui, search, render, runtime, file, email) { function execute() { try { generateReport(); } catch (e) { log.error('generateReport ERROR', e); } } function generateReport(req, res, param) { var slfilters = runtime.getCurrentScript().getParameter({ name: 'custscript_searchfilter_report' }); log.debug('slfilters', slfilters); if (!!slfilters) { slfilters = JSON.parse(slfilters); } log.debug('slfilters2', slfilters); var getUser = runtime.getCurrentUser(); var gender = slfilters.isgender log.debug('gender', gender) var item = slfilters.isItem log.debug('item', item) var item = getItems(item, gender); log.debug('items table', item) var xmlTemplateFile = file.load(3918); var template = script.getParameter({ name: 'custscript_template' }); var renderer = render.create(); renderer.templateContent = xmlTemplateFile.getContents(); var customSources = { alias: 'searchdata', format: render.DataSource.JSON, data: JSON.stringify({ value: item, }) }; renderer.addCustomDataSource(customSources); var xml = renderer.renderAsString(); var pdf = render.xmlToPdf({ "xmlString": xml }); email.send({ author: 317, recipients: 'aniswtf@gmail.com', subject: 'Item Report', body: 'Report Generated: ', attachments: [pdf] }); } // // ─── GET RESULTS ─────────────────────────────────────────────────── // const getResults = function (set) { var results = []; var i = 0; while (true) { var result = set.getRange({ "start": i, "end": i   1000 }); if (!result) break; results = results.concat(result); if (result.length {amp}lt; 1000) break; i  = 1000; } return results; }; // // ─── GET ITEMS ─────────────────────────────────────────────────── // function getItems(item, gender) { try { var itemSearch = search.load({ id: 'customsearch_mx_itemsearch' }); var defaultFilters = itemSearch.filters; var arrFilters = []; arrFilters.push(search.createFilter({ name: 'custitem5',//gender operator: 'anyof', values: [gender] })); arrFilters.push(search.createFilter({ name: 'internalid', operator: 'anyof', values: [item] })); //defaultFilters.push(arrFilters) defaultFilters = defaultFilters.concat(arrFilters); var results = getResults(itemSearch.run()).map(function (x) { return { 'category': x.getText({ name: "custitem10", join: "parent" }), 'season': x.getValue({ name: "custitem11", join: "parent" }), 'riselabel': x.getValue({ name: "custitem_itemriselabel", join: "parent" }), 'fit': x.getValue({ name: "custitem9", join: "parent" }), 'name': x.getValue({ //sku name: "itemid", join: "parent" }), 'style': x.getValue({ name: "custitem8", join: "parent" }), 'inseam': x.getValue({ name: "custitem7", join: "parent" }), 'wash': x.getValue({ name: "custitem_washname", join: "parent" }), }; }); return results; } catch (e) { log.error('error in getItems', e) } } return { execute: execute }; }); 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector