NetSuite Online HTML 表格 - link 在 NetSuite 中列出

NetSuite Online HTML Form - link to list within NetSuite

我有一个在线 html 表单,它使用 select 字段从现有记录列表(特别是邮政编码)中选择一条记录,然后自动填充表单上的其他字段地址。这一切都很好,除了表单上的下拉列表到目前为止只上升了。我需要知道这是否是 html 下拉列表的限制,或者首先可以将多少条记录传递给列表? 此外,理想情况下,如果有一种方法可以通过自动完成来完成,那么当您开始输入邮政编码时,它只会显示以所述字符开头的那些 - 这可能吗?

我会为您的在线表单设置自定义 html 模板。然后您可以隐藏标准字段并包含自定义文本输入字段。将事件处理程序附加到自定义字段以通过 suitelet 进行查找。如果自动填充已经开始工作,那么您的事件处理程序可以在匹配完成后更新隐藏的标准字段,以便 Netsuite 的内置采购工作。

一个示例套件。 get...函数 return 任何可以被您的页面 JSON 使用的东西。

function service(request, response) {
    var obj = {
        success: true
    };
    try {
        var step = request.getParameter('step') || 'start';
        switch (step) {
            case 'start':
                obj.choices = getChoiceRoots(request.getParameter('itemid'), request.getParameter('treeName'));
                break;
            case 'other':
                obj.choices = getChoiceChildren(request.getParameterValues('choiceIds[]') || request.getParameterValues('choiceIds'));
                break;
            default:
                throw "Unexpected step: " + step;
        }
    } catch (e) {
        obj.success = false;
        obj.message = e.message || e.toString();
        nlapiLogExecution('ERROR', "error getting choices", (e.message || e.toString()) + "<br> " + request.getURL() + (e.getStackTrace ? "<br> " + e.getStackTrace().join("<br> ") : ''));
    }
    _sendJS(request, response, obj);

    function _sendJS(request, response, respObject) {
        response.setContentType('JAVASCRIPT'); //'application/json');
        var callbackFcn = request.getParameter("jsoncallback") || request.getParameter('callback');
        if (callbackFcn) {
            response.writeLine(callbackFcn + "(" + JSON.stringify(respObject) + ");");
        } else response.writeLine(JSON.stringify(respObject));
    }
}

然后在您的页面上会有一个使用 suitelet 的脚本。 (suitelet 需要在没有登录的情况下可用,观众需要是全部。

自定义模板或关联脚本文件中的代码类似于:

//suiteletURL will look like https://forms.netsuite.com. RegExp makes that root relative to the domain you are on. 
//This is not actually necessary when using JSONP but it can be useful in some circumstances so I left it in this example.

$.getJSON(suiteletURL.replace(new RegExp(".*://[^/]+/"), '/')+"&"+$.param(params) +"&callback=?",
    function(d, txtStatus,xhr){
        if(d.errorCode){
            if(fail){
                fail(xhr, txtStatus, null);
            }else{
                showMessage("#appMessage", d.errorMessage || ("Request Failed with code: "+xhr.responseJSON.errorCode));
            }
        }else{
            success(d, txtStatus, xhr); // your custom success handler. d is already an object; no parsing necessary.
        }
    });