Открыть всплывающее окно до или после нажатия кнопки Workflow в Netsuite

У меня есть этот код (сценарий Userevent), который отлично работает с моей пользовательской кнопкой,

function beforeLoad_addButton(type, form) {
    var url = nlapiResolveURL('SUITELET', '543', 'customdeploy1')+'&entity=' + nlapiGetRecordId() +  '&recordType=' + nlapiGetRecordType();
    var script = "win = window.open('" + url + "', 'win', 'resizable=0,scrollbars=0,width=450,height=300');";
    form.addButton('custpage_buttonalert', 'Add Memo', script);
}

но теперь я хочу открыть это всплывающее окно (Suitelet) с другой кнопки, созданной с рабочим процессом. Как я могу закрепить действие onclick на кнопке, созданной с рабочим процессом, не прерывая рабочий процесс.

1 ответ

  1. Мне удалось сделать это так:

    function beforeLoad_addButton(type, form) {
        var url = nlapiResolveURL('SUITELET', '424', 'customdeploy1')+'&entity=' + nlapiGetRecordId() +  '&recordType=' + nlapiGetRecordType();
        var script = "win = window.open('" + url + "', 'win', 'resizable=0,scrollbars=0,width=450,height=300');";
        form.addButton('custpage_buttonalert', 'Add Memo', script);
    
        var ids = ['custpageworkflow105', 'custpageworkflow128', 'custpageworkflow148', 'custpageworkflow106', 'custpageworkflow129', 'custpageworkflow149', 'custpageworkflow107', 'custpageworkflow130', 'custpageworkflow150'];
        var script1 = '';
    
        script1 += '<script>';
    
        ids.forEach(function(entry) {
                script1 += 'jQuery("#' + entry + '").click(function() {'+ script +'});';
        });
    
        script1 += '</script>'
    
    
        var newInlineHtmlField = form.addField('custpage_myinline','inlinehtml','',null,null);
            newInlineHtmlField.setDefaultValue(script1);
    }
    

    Я вставляю Javascript в форму. Здесь массив «ids» содержит идентификатор кнопки рабочего процесса. При нажатии на одну из кнопок выполняется код в переменной script1, после чего выполняется рабочий процесс.