SuiteScript 2.0: получение значений параметров, переданных из заказа на продажу в пакет, с помощью getParameter
Я новичок в Suitelet. Моя цель - перенаправить заказ на продажу в форму Suitelet. Я создаю файл.js для перенаправления из сценария userevent в пакет.
function afterSubmit(scriptContext) {
if (scriptContext.type != 'delete') {
var salesOrder = scriptContext.newRecord;
var orderId = salesOrder.getValue('tranid');
var customer = salesOrder.getValue('entity');
var date = salesOrder.getValue('trandate');
var total = salesOrder.getValue('total');
var financePrice = salesOrder
.getValue('custbody_rmb_financing_price');
var internalid = salesOrder.id;
var arrParams = {
custparam_orderid : orderId,
custparam_customer : customer,
custparam_date : date,
custparam_total : total,
custparam_financeprice : financePrice,
custparam_id : internalid
};
salesOrder.save({
ignoreMandatoryFields : true
});
redirect.toSuitelet({
scriptId : 'customscript_rmb_salesorderfinance_suite',
deploymentId : 'customdeploy_rmb_salesorderfinance_suite',
params : arrParams
});
}
}
function(serverWidget, http, runtime, record) {
/**
* 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 processSalesOrderFinancing(context) {
if (context.request.method == 'GET') {
var form = serverWidget.createForm('Sales Order Financing');
form
.addField({
id : 'custpage__sdr_financing_help',
type : 'help',
label : 'Please assign a price to the financing of this sales order, then click Submit Financing'
});
var scriptObj = runtime.getCurrentScript();
var stOrder =
scriptObj.getParameter("custparam_orderid");
var stCustomer = scriptObj.getParameter("custparam_customer");
var stDate = scriptObj.getParameter("custparam_date");
var stTotal = scriptObj.getParameter("custparam_total");
var orderid = form.addField({
id : 'custpage_rmb_order',
type : 'text',
label : 'order#'
});
form.updateDefaultValues({
custpage_rmb_order : stOrder
});
orderid.updateDisplayType({
displayType : serverWidget.FieldDisplayType.INLINE
});
var customer = form.addField({
id : 'custpage_rmb_customer',
type : 'text',
label : 'Customer:Project'
});
form.updateDefaultValues({
custpage_rmb_customer : stCustomer
});
customer.updateDisplayType({
displayType : serverWidget.FieldDisplayType.INLINE
});
var date = form.addField({
id : 'custpage_rmb_date',
type : 'date',
label : 'Date'
});
date.updateDisplayType({
displayType : serverWidget.FieldDisplayType.INLINE
});
form.updateDefaultValues({
custpage_rmb_date : stDate
});
var total = form.addField({
id : 'custpage_rmb_total',
type : 'currency',
label : 'Total'
});
form.updateDefaultValues({
custpage_rmb_total : stTotal
});
total.updateDisplayType({
displayType : serverWidget.FieldDisplayType.INLINE
});
var financeprice = form.addField({
id : 'custpage_rmb_fprice',
type : 'currency',
label : 'Finance Price'
});
var salesID = form.addField({
id : 'custpage_rmb_orderid',
type : 'text',
label : 'LABEL'
});
salesID.updateDisplayType({
displayType : serverWidget.FieldDisplayType.HIDDEN
});
form.addSubmitButton('Submit Financing RMB');
context.response.writePage({
pageObject : form
});
} }
1 ответ
Когда вы используете runtime.getCurrentScript().getParameter()
функция, вы пытаетесь получить параметры, которые определены в записи развертывания скрипта.
Когда вы используете redirect.toSuitelet()
функционировать и передать в params
Это добавит эти параметры в конец URL. Для доступа к параметрам оттуда в вашем Suitlet, вы должны использовать
var stCustomer = context.request.parameters['custparam_customer'];
РЕДАКТИРОВАТЬ, чтобы добавить полный пример:
Сценарий пользовательских событий
define(['N/log', 'N/redirect'], function (log, redirect) {
function afterSubmit() {
var arrParams = {
custparam_customer: 1234
};
redirect.toSuitelet({
scriptId: 'customscript_suitelet_test',
deploymentId: 'customdeploy_suitelet_test',
parameters: arrParams
});
}
return {
afterSubmit: afterSubmit
};
});
Suitelet
define(['N/log', 'N/ui/serverWidget'], function (log, ui) {
function onRequest(context) {
if (context.request.method === 'GET') {
var form = buildForm();
context.response.writePage(form);
}
function buildForm() {
var form = ui.createForm({title: 'Test Params'});
var customerField = form.addField({
id: 'custpage_customer',
type: 'text',
label: 'Customer Param'
}).updateDisplayType({ displayType: ui.FieldDisplayType.INLINE });
customerField.defaultValue = context.request.parameters['custparam_customer'];
return form;
}
}
return {
onRequest: onRequest
};
});
Привет, пожалуйста, найдите код ниже:
Пользовательское событие:
define(['N/record','N/redirect'],
function(record,redirect) {
function afterSubmit(scriptContext) {
if (scriptContext.type != 'delete') {
var salesOrder = scriptContext.newRecord;
var orderId = salesOrder.getValue('tranid');
var customer = salesOrder.getValue('entity');
var date = salesOrder.getValue('trandate');
var total = salesOrder.getValue('total');
var financePrice = salesOrder.getValue('custbody_rmb_financing_price');
var internalid = salesOrder.id;
var arrParams = {
custparam_orderid : orderId,
custparam_customer : customer,
custparam_date : date,
custparam_total : total,
custparam_financeprice : financePrice,
custparam_id : internalid
};
/* salesOrder.save({
ignoreMandatoryFields : true
}); */
redirect.toSuitelet({
scriptId : 'customscript_sut_so_test',
deploymentId : 'customdeploy_sut_so_test',
parameters : {
'custparam_orderid' : orderId,
'custparam_customer' : customer,
'custparam_date' : date,
'custparam_total' : total,
custparam_financeprice : financePrice,
'custparam_id' : internalid
}
});
}
}
return {
// beforeLoad: beforeLoad,
// beforeSubmit: beforeSubmit,
afterSubmit: afterSubmit
};
});
Люкс:
define(['N/record', 'N/runtime', 'N/search', 'N/ui/serverWidget'],
function(record, runtime, search, serverWidget) {
function onRequest(context) {
if (context.request.method == 'GET') {
var form = serverWidget.createForm('Sales Order Financing');
form.addField({
id : 'custpage__sdr_financing_help',
type : 'help',
label : 'Please assign a price to the financing of this sales order, then click Submit Financing'
});
var scriptObj = context.request.parameters;
var stOrder = scriptObj.custparam_orderid;
var stCustomer = scriptObj.custparam_customer;
var stDate = scriptObj.custparam_date;
var stTotal = scriptObj.custparam_total;
var orderid = form.addField({
id : 'custpage_rmb_order',
type : 'text',
label : 'order#'
});
form.updateDefaultValues({
custpage_rmb_order : stOrder
});
orderid.updateDisplayType({
displayType : serverWidget.FieldDisplayType.INLINE
});
var customer = form.addField({
id : 'custpage_rmb_customer',
type : 'text',
label : 'Customer:Project'
});
form.updateDefaultValues({
custpage_rmb_customer : stCustomer
});
customer.updateDisplayType({
displayType : serverWidget.FieldDisplayType.INLINE
});
var date = form.addField({
id : 'custpage_rmb_date',
type : 'text',
label : 'Date'
});
date.updateDisplayType({
displayType : serverWidget.FieldDisplayType.INLINE
});
form.updateDefaultValues({
custpage_rmb_date : stDate
});
var total = form.addField({
id : 'custpage_rmb_total',
type : 'currency',
label : 'Total'
});
form.updateDefaultValues({
custpage_rmb_total : stTotal
});
total.updateDisplayType({
displayType : serverWidget.FieldDisplayType.INLINE
});
var financeprice = form.addField({
id : 'custpage_rmb_fprice',
type : 'currency',
label : 'Finance Price'
});
var salesID = form.addField({
id : 'custpage_rmb_orderid',
type : 'text',
label : 'LABEL'
});
salesID.updateDisplayType({
displayType : serverWidget.FieldDisplayType.HIDDEN
});
}
context.response.writePage(form);
}
return {
onRequest: onRequest
};
});