3

我是 Suitelet 的新手。我的目标是从销售订单重定向到 Form Suitelet。我创建了一个 file.js 以从用户事件脚本重定向到套件。

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
					});
				} }

在该代码之后,我没有在表单上获得销售订单的数据。我没有得到我想要的结果。getParameter返回空值。

在此处输入图像描述

如果您有任何想法可以帮助我,我将不胜感激。

4

2 回答 2

4

当您使用该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
    };
});

套房

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
    };
});

结果是: 在此处输入图像描述

于 2017-12-12T22:24:31.863 回答
-1

您好,请查看以下代码:

用户事件:

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
            };

        });
于 2019-09-19T06:29:28.573 回答