RE: How to get suitelet parameter in scheduled script?
I have created scheduled script to create custom sublist. Now I want to post sublist data to scheduled script. I have created task. But now I am not getting sublist data parameter value in scheduled script. Please Help!
//Suitelet code
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* … more options …
*/
define([‘N/ui/serverWidget’, ‘N/record’, ‘N/search’, ‘N/runtime’,’N/task’], function (serverWidget, record, search, runtime,task) {
function onRequest(context) {
var request = context.request;
var response = context.response;
if (request.method === ‘GET’) {
try {
var form = serverWidget.createForm({ title: ‘Funds Form’ });
log.debug(“form”, form);
var script=runtime.getCurrentScript();
//log.debug(“script”,script);
var scriptId= script.id;
log.debug(“scriptId”,scriptId)
form.addSubmitButton({ label: ‘Transfer Funds’ });
//Sublist Code Bigin…….
var empSublist = form.addSublist({
id: ‘custpage_payroll’,
type: serverWidget.SublistType.LIST,
label: ‘EMPLOYEE PAYROLL INFORMATION’
});
empSublist.addField({
id: ‘custpage_sublistemployee’,
type: serverWidget.FieldType.TEXT,
label: ‘Employee’
});
empSublist.addField({
id: ‘custpage_sublistnetpay’,
type: serverWidget.FieldType.CURRENCY,
label: ‘Net Pay’
});
empSublist.addField({
id: ‘custpage_sublisttaxdeduction’,
type: serverWidget.FieldType.CURRENCY,
label: ‘Tax Deduction’
});
empSublist.addField({
id: ‘custpage_sublisttotal’,
type: serverWidget.FieldType.CURRENCY,
label: ‘Total’
});
var empData = [ { emp: ‘mona’, netPay: 7000, tax: 50, total: 7050 }, { emp: ‘Riya’,netPay: 5000, tax: 40, total: 5050 }];
for (var i = 0; i < empData.length; i++) {
empSublist.setSublistValue({
id: ‘custpage_sublistemployee’,
line: i,
value: empData[i].emp
});
empSublist.setSublistValue({
id: ‘custpage_sublistnetpay’,
line: i,
value: empData[i].netPay
});
empSublist.setSublistValue({
id: ‘custpage_sublisttaxdeduction’,
line: i,
value: empData[i].tax
});
empSublist.setSublistValue({
id: ‘custpage_sublisttotal’,
line: i,
value: empData[i].total
});
}
response.writePage(form);
} catch (error) {
log.debug(‘Error’, error);
}
} else if (context.request.method === ‘POST’) {
log.debug(“Suitelet is posting.”)
var empData = [];
var lineCount = request.getLineCount({
group: ‘custpage_payroll’
});
for (var i = 0; i < lineCount; i++) {
empData.push({
emp: request.getSublistValue({
group: ‘custpage_payroll’,
name: ‘custpage_sublistemployee’,
line: i
}),
netPay: request.getSublistValue({
group: ‘custpage_payroll’,
name: ‘custpage_sublistnetpay’,
line: i
}),
tax: request.getSublistValue({
group: ‘custpage_payroll’,
name: ‘custpage_sublisttaxdeduction’,
line: i
})
});
}
log.debug(“empData”,empData);
var scriptTask = task.create({
taskType: task.TaskType.SCHEDULED_SCRIPT,
scriptId: “customscript_scheduler_get_sublist_data”,
deploymentId: “customdeploy_scheduler_get_sublist_data”,
params: {
‘custscriptcustscript_emp_data’: JSON.stringify(empData)
}
});
var scriptTaskId = scriptTask.submit();
log.debug(“scriptTaskId”, scriptTaskId);
}
}
return{
onRequest:onRequest
}
})
//Scheduled script code
/**
*@NApiVersion 2.x
*@NScriptType ScheduledScript
*/
define([‘N/runtime’, ‘N/record’, ‘N/search’, ‘N/config’, ‘N/ui/serverWidget’,’N/redirect’,’N/url’],
function(runtime, record, search, config, serverWidget,redirect,url) {
function execute(context) {
try{
var getParameter=runtime.getCurrentScript().getParameter({name: ‘custscriptcustscript_emp_data’});
log.debug(“getParameter”,getParameter);
}catch(error)
{
log.debug(“error”,error);
}
}
return{
execute:execute
}
});
Hi Maira,
Do your have output at line log.debug(“empData”,empData); ?
When I see your process, you will save empData with object inside.
When we use object you need to declare parameter then continue to value, reference object you can see here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
Sample in your code should like this
for (var i = 0; i < lineCount; i++) { var emp = request.getSublistValue({ group: ‘custpage_payroll’, name: ‘custpage_sublistemployee’, line: i }), var netPay = request.getSublistValue({ group: ‘custpage_payroll’, name: ‘custpage_sublistnetpay’, line: i }), var tax = request.getSublistValue({ group: ‘custpage_payroll’, name: ‘custpage_sublisttaxdeduction’, line: i }) // when use Object, need to declare parameter and value empData.push({ 'emp' : emp, 'netPay' : netPay, 'tax' : tax }); } log.debug(“empData”,empData);