Netsuite добавить кнопку создать новый заказ на покупку в форме дела

Новичок в netsuite, и я пытаюсь использовать систему дел как систему заказов на работу для нашей компании по управлению имуществом. Я хочу иметь возможность создать заказ на поставку из истории болезни и автоматически связать его. Я уже установил пользовательское поле в заказе на покупку, чтобы связать дело, однако я пытаюсь создать кнопку создания заказа на покупку в форме дела.

Я понимаю, что должен создать suitescript, а затем присоединить его к вложенной вкладке настраиваемых действий в настройке формы, мне нужна помощь в написании файла suitescript.

3 ответа

Решение

Чтобы добавить кнопку в "Записи случая", установите пользовательское событие перед загрузкой для записи случая. Событие пользователя будет примерно таким:

function BeforeLoadCase(type, form) {
try {
    form.setScript('customscript_create_po');
    form.addButton('custpage_custombutton', 'Create PO', 'CreatePO()');
}
catch (err) {
    nlapiLogExecution('error', 'BeforeLoadCase', err);
}}

customscript_create_po: это клиентский скрипт, который открывает новую запись заказа на покупку по нажатию кнопки. Его код выглядит следующим образом:

function CreatePO() {
var url = nlapiResolveURL('record', 'purchaseorder', null, 'edit') + '?case_id=' + nlapiGetRecordId();
window.open(url, "New Purchase Order");}

Теперь в заказе на поставку разверните пользовательское событие (до загрузки), код примерно такой:

function BeforeLoadPO(type, form, request) {
if (type == 'create' && request.getParameter('case_id') != null) {
    var caseRecord = nlapiLoadRecord('supportcase', request.getParameter('case_id'));

}}

Используйте этот код вместо:

window.location.href = nlapiResolveURL('record','purchaseorder') + '?record.custbody1=' + nlapiGetRecordId();

Этот код должен перенаправить вас на вашу форму заказа, а затем предварительно заполнить настраиваемое поле для вас.

Ваш скрипт должен выглядеть так

location.href = nlapiResolveURL('record','purchaseorder',null,'edit') + '?case_id=' + nlapiGetRecordId();

Более того, вам нужно обработать этот параметр строки запроса до события загрузки заказа на поставку и установить его в своем настраиваемом поле.

Другие вопросы по тегам