Netsuite:如何将变量从客户端脚本传递到 suitelet?
Netsuite: How to pass variable from client script to suitelet?
我只是一个初学者,如有任何愚蠢的错误,请原谅我。
我有两段代码,一段是client script page init,另一段是suitlet script。我想做的是在 suitelet 脚本上创建一个表单和一个子列表,然后使用客户端脚本 getValue 函数将现有记录字段传递给子列表表单。
这可能吗?以及如何?
这是我的主要代码:
(payrollf是子列表的保存搜索函数)
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
*/
define(['N/log', 'N/record','N/search', 'N/ui/serverWidget'],
/**
* @param {log} log
* @param {search} search
* @param {serverWidget} serverWidget
* @param {record} record
*/
function(log, record, search, serverWidget) {
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object} context
* @param {ServerRequest} context.request - Encapsulation of the incoming request
* @param {ServerResponse} context.response - Encapsulation of the Suitelet response
* @Since 2015.2
*/
function onRequest(context) {
var request=context.request;
var response=context.response;
var form=serverWidget.createForm({
title:'Payroll Initiation'
});
var sublist = form.addSublist({
id: 'custpage_payrollsublist',
type: serverWidget.SublistType.LIST,
label: 'Payroll Sublist'
});
var payrollf=payroll();
sublist.addField({
id: 'custpage_amnt',
label: 'Amount',
type: serverWidget.FieldType.TEXT
})
sublist.addField({
id: 'custpage_date1',
label: 'Effective From',
type: serverWidget.FieldType.DATE
})
sublist.addField({
id: 'custpage_rate',
label: 'Rate',
type: serverWidget.FieldType.TEXT
})
sublist.addField({
id: 'custpage_date2',
label: 'Effective Through',
type: serverWidget.FieldType.DATE
})
var path= form.clientScriptModulePath='SuiteScripts/ClientSuitlet.js';
payrollf.run().each(function(){
var counter=0;
sublist.setSublistValue({
id: 'custpage_amnt',
line: counter,
value: path.Amount,
});
sublist.setSublistValue({
id: 'custpage_rate',
line: counter,
value: Rate,
});
sublist.setSublistValue({
id: 'custpage_date1',
line: counter,
value: date1,
});
sublist.setSublistValue({
id: 'custpage_date2',
line: counter,
value: date2,
});
counter++;
return true;
});
response.writePage(form);
}
Client Script code on page initialization:
function pageInit(context) {
var currRecord=context.currentRecord;
var Amount=currRecord.getValue('amnt');
var Rate=currRecord.getValue('rate');
var date1=currRecord.getValue('date1');
var date2=currRecord.getValue('date2');
}
您可以通过调用 suitelet 将数据从客户端传递到子列表,例如:
var subsidiaryId = rec.getValue('fieldId'); //Read data from suitelet
var suiteUrl = url.resolveScript({
scriptId: 'customscript_xxxxxxx',
deploymentId: 'customdeploy_xxxxxxxx',
// set the script Id and the deployment Id for the suitelet you want to pass the value to.
params : {
custscript_xxxxxx_subsidiary : subsidiaryId, //define a parameter and pass the value to it
}
});
window.location.href = suiteUrl; // replace current window OR
window.open(suiteUrl,"socialPopupWindow","location=no,width=900,height=900,scrollbars=yes,top=100,left=400,resizable = no");//open it a a new window
在您的 Suitelet 中,您可以读取传递的参数。
var sub = request.parameters.custscript_xxxxxx_subsidiary;
我只是一个初学者,如有任何愚蠢的错误,请原谅我。
我有两段代码,一段是client script page init,另一段是suitlet script。我想做的是在 suitelet 脚本上创建一个表单和一个子列表,然后使用客户端脚本 getValue 函数将现有记录字段传递给子列表表单。
这可能吗?以及如何?
这是我的主要代码: (payrollf是子列表的保存搜索函数)
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
*/
define(['N/log', 'N/record','N/search', 'N/ui/serverWidget'],
/**
* @param {log} log
* @param {search} search
* @param {serverWidget} serverWidget
* @param {record} record
*/
function(log, record, search, serverWidget) {
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object} context
* @param {ServerRequest} context.request - Encapsulation of the incoming request
* @param {ServerResponse} context.response - Encapsulation of the Suitelet response
* @Since 2015.2
*/
function onRequest(context) {
var request=context.request;
var response=context.response;
var form=serverWidget.createForm({
title:'Payroll Initiation'
});
var sublist = form.addSublist({
id: 'custpage_payrollsublist',
type: serverWidget.SublistType.LIST,
label: 'Payroll Sublist'
});
var payrollf=payroll();
sublist.addField({
id: 'custpage_amnt',
label: 'Amount',
type: serverWidget.FieldType.TEXT
})
sublist.addField({
id: 'custpage_date1',
label: 'Effective From',
type: serverWidget.FieldType.DATE
})
sublist.addField({
id: 'custpage_rate',
label: 'Rate',
type: serverWidget.FieldType.TEXT
})
sublist.addField({
id: 'custpage_date2',
label: 'Effective Through',
type: serverWidget.FieldType.DATE
})
var path= form.clientScriptModulePath='SuiteScripts/ClientSuitlet.js';
payrollf.run().each(function(){
var counter=0;
sublist.setSublistValue({
id: 'custpage_amnt',
line: counter,
value: path.Amount,
});
sublist.setSublistValue({
id: 'custpage_rate',
line: counter,
value: Rate,
});
sublist.setSublistValue({
id: 'custpage_date1',
line: counter,
value: date1,
});
sublist.setSublistValue({
id: 'custpage_date2',
line: counter,
value: date2,
});
counter++;
return true;
});
response.writePage(form);
}
Client Script code on page initialization:
function pageInit(context) {
var currRecord=context.currentRecord;
var Amount=currRecord.getValue('amnt');
var Rate=currRecord.getValue('rate');
var date1=currRecord.getValue('date1');
var date2=currRecord.getValue('date2');
}
您可以通过调用 suitelet 将数据从客户端传递到子列表,例如:
var subsidiaryId = rec.getValue('fieldId'); //Read data from suitelet
var suiteUrl = url.resolveScript({
scriptId: 'customscript_xxxxxxx',
deploymentId: 'customdeploy_xxxxxxxx',
// set the script Id and the deployment Id for the suitelet you want to pass the value to.
params : {
custscript_xxxxxx_subsidiary : subsidiaryId, //define a parameter and pass the value to it
}
});
window.location.href = suiteUrl; // replace current window OR
window.open(suiteUrl,"socialPopupWindow","location=no,width=900,height=900,scrollbars=yes,top=100,left=400,resizable = no");//open it a a new window
在您的 Suitelet 中,您可以读取传递的参数。
var sub = request.parameters.custscript_xxxxxx_subsidiary;