Netsuite SuiteScript:从自定义记录和默认字段中打开新事务的按钮

问题描述 投票:0回答:1

我正在尝试在称为处理批次的自定义记录上创建按钮,这将允许我创建工作订单和库存转移。这些按钮只会打开一个新页面,而不会保存新交易,只是重定向到新交易页面。

在这些事务上,有一个名为Processing batch的自定义字段,它是自定义记录的列表,我希望该字段默认为单击按钮的批次的ID。

我有一个用于按钮的usereventscript和一个用于打开链接的客户端脚本。

用户事件:

define([],

function(){

function beforeLoad(context) {
    context.form.addButton({
        id: "custpage_workorderbutton",
        label: "Create New Work Order",
        functionName: "newWorkOrder"
    });
    context.form.addButton({
        id: "custpage_inventoryTransferButton",
        label: "Create New Inventory Transfer",
        functionName: "newInventoryTransfer"
    });
    context.form.clientScriptModulePath = "SuiteScripts/CreateNewWO.js";
}


return {
    beforeLoad: beforeLoad,
};

});

客户端脚本:(为测试目的而定义了对话框,但不需要)

define(['N/ui/dialog'],

功能(对话框){var exports = {};

function pageInit(context) {

}
function newWorkOrder(){
    window.open("https://6236296.app.netsuite.com/app/accounting/transactions/workord.nl?whence=");
}

function newInventoryTransfer(){
    window.open("https://6236296.app.netsuite.com/app/accounting/transactions/invtrnfr.nl?whence=");
}

exports.newInventoryTransfer = newInventoryTransfer;
exports.newWorkOrder = newWorkOrder;
exports.pageInit = pageInit;

return exports;

});

任何人都对我将如何实现自己的目标有见识?

谢谢你。

javascript netsuite suitescript2.0
1个回答
0
投票

以下是您执行此操作的两种方法。

  1. [通过添加在打开的URL中传递参数

'&yourparamname ='+ idvalue代表正在打开交易窗口的URL

如果将参数传递到URL中,则可以使用部署到事务页面的onInit脚本来从URL中获取参数并根据需要执行操作。

  1. 您可以使用window.opener.nlapiGetFieldValue(yourfield)从弹出窗口所在的页面中获取值,然后使用该值来设置交易页面上的字段

这些只是两种方式。我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.