admin管理员组文章数量:1313121
I am new to Suitelet. My object is to redirect from Sales Order to Form Suitelet. I create a file.js to redirect from a userevent script to a suitelet.
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
});
}
}
I am new to Suitelet. My object is to redirect from Sales Order to Form Suitelet. I create a file.js to redirect from a userevent script to a suitelet.
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
});
}
}
I create another file to redirect and display data of sales order.
function(serverWidget, http, runtime, record) {
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object}
* context
* @param {ServerRequest}
* context.request - Encapsulation of the ining
* 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
});
} }
After that code, I don't get the data of sales order on the
the form. I don't get the result that I want. getParameter
returns null.
If you have any ideas to help me, I will be thankful.
Share Improve this question edited Aug 6, 2019 at 18:23 Wyck 11.8k8 gold badges48 silver badges80 bronze badges asked Dec 12, 2017 at 13:55 spring_flowerspring_flower 711 gold badge1 silver badge9 bronze badges2 Answers
Reset to default 5When you use the runtime.getCurrentScript().getParameter()
function, you're trying to retrieve the parameters that are defined on the script deployment record.
When you use the redirect.toSuitelet()
function and pass in the params
property, it will append those parameters to the end of the URL. To access the parameters from there in your Suitlet, you should use
var stCustomer = context.request.parameters['custparam_customer'];
EDIT to add full example:
User Event Script
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
};
});
Results in:
Hi please find the below code:
User Event:
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
};
});
Suitelet:
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
};
});
本文标签:
版权声明:本文标题:javascript - SuiteScript 2.0 : Retrieve the values of the parameters passed from the sales order into the suitelet using the get 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741928106a2405413.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论