繁体   English   中英

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

[英]Netsuite SuiteScript : Button to open new transaction from custom record and Default fields

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

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

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

用户事件:

define([],

功能() {

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 出口 = {};

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;

});

任何人都知道我将如何实现我的目标?

先感谢您。

您也可以尝试添加“记录”。 当您将其作为参数传递时,作为自定义字段的前缀。 例如'invtrnfr.nl?record.batchId=1'

这也适用于标准字段。

参考: https://blog.prolecto.com/2018/05/20/drive-values-to-netsuite-forms-and-other-url-tricks/

额外说明:您可能还需要检查 url.resolveDomain 和 url.resolveTaskLink 以构建 URL。 :)

这里有两种方法可以让你做到这一点。

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

'&yourparamname='+ idvalue 到打开事务 window 的 URL

如果您将参数传递到 URL 中,则可以使用部署到事务页面的 onInit 脚本将参数从 URL 中取出,然后随心所欲。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM