Netsuite SuiteScript: кнопка для открытия новой транзакции из настраиваемой записи и полей по умолчанию - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь создать кнопки в пользовательской записи, называемой пакетной обработкой, которая позволила бы мне создавать заказы на работу и перемещения запасов. Кнопки просто открывают новую страницу и не сохраняют новую транзакцию, а просто перенаправляют на новую страницу транзакции.

В этих транзакциях есть настраиваемое поле, называемое Пакетом обработки, которое представляет собой список настраиваемой записи, и я хочу, чтобы в этом поле по умолчанию был указан идентификатор пакета, в котором была нажата кнопка.

У меня есть скрипт 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'],

function (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;

});

Кто-нибудь знает как я смогу достичь своей цели?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 09 июня 2020

Вы также можете попробовать добавить запись. в качестве префикса вашего настраиваемого поля, когда вы передаете его в качестве параметра. Например, 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. :)

0 голосов
/ 27 мая 2020

Вот два способа сделать это.

  1. Передайте параметр в открытом URL-адресе, добавив

'& yourparamname =' + idvalue к URL-адресу, открывающему окно транзакции

Если вы передайте параметр в URL-адрес, затем вы можете использовать сценарий onInit, развернутый на странице транзакции, чтобы получить параметр из URL-адреса и делать все, что вам нравится.

Вы можете использовать window.opener.nlapiGetFieldValue (yourfield) для получения значений со страницы, с которой появилось всплывающее окно, а затем использовать это значение для установки поля на странице транзакции.

Это всего два пути. Надеюсь, это поможет.

...