在Netsuite中单击“工作流程”按钮之前或之后打开弹出窗口

时间:2017-01-17 21:02:44

标签: suitescript

我有这个代码(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);
}

但现在我想从使用Workflow创建的另一个按钮打开此弹出窗口(Suitelet)。如何在不中断工作流的情况下,在使用工作流创建的按钮上挂钩onclick操作。

1 个答案:

答案 0 :(得分:0)

我设法做到了这样:

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。在这里,&#34; ids&#34;数组包含工作流程按钮ID。单击其中一个按钮时,将执行script1变量中的代码,然后执行工作流程。