NetSuite > 将 HTML 模板渲染到 Suitelet > 如何将数组作为选择字段的下拉值传递

问题描述 投票:0回答:1

我有一个 NetSuite Suitelet,它将使用 HTML 文件呈现页面,数据源位于 Suitelet 中:

var renderer = render.create();
renderer.templateContent = file.load(<file id>).getContents();
renderer.addCustomDataSource({format:render.DataSource.OBJECT, alias:"DATA", data: DATA});
renderer.renderToResponse({response:scriptContext.response});

在 HTML 代码中,有 2 个选择字段应列出来自 NetSuite 的交易编号:

<select id="workorderIDInput" name="workorderIDInput">
   <option value="">Select a Work Order</option>
</select>

我想在 Suitelet 中使用搜索,并将搜索结果作为选择选项在 HTML 中使用。我已经通过搜索收集交易号,并将该数组添加到渲染器的“DATA”数据源中:

var workorders = loadWorkOrders();
function loadWorkOrders(scriptContext){

    try {

        var workOrderIds = [];
        var searchId = 6427;
        // var currentScript = runtime.getCurrentScript();
        // var searchId = currentScript.getParameter({
        //  name: 'custscript_wo_search_id'
        // });
        var woSearch = search.load({
            id: searchId
        });
        woSearch.run().each(function(result){

            var woTranNum = result.getValue('tranid');
            workOrderIds.push(woTranNum);
            return true;

        });

        // log.debug('Work Order IDs', workOrderIds);

        return workOrderIds;

    } catch (e) {

        log.error('loadWorkOrders error', e);

    }
}

这可以实现吗?还有另一种方法,我将调用端点来提供数组并循环并从 chatGPT 创建选项元素,但我仍在尝试使其工作。这个问题似乎是直接方法,无需创建单独的端点来获取下拉列表所需的值

还有另一种方法,我将调用端点来提供数组并循环并从 chatGPT 创建选项元素,但我仍在努力使其工作。这个问题似乎是直接方法,无需创建单独的端点来获取下拉列表所需的值

javascript html forms netsuite
1个回答
0
投票

您当然可以做您所要求的事情,尽管您所描述的将是一个相当静态的页面(在每次选择时重新渲染?)

在 NetSuite 中嵌入复杂的 UI 时,我通常会创建一个 React 应用程序并将其嵌入。请参阅React JS 和 Suitelet

然后,React 应用程序使用所有 AJAX 调用的“action”查询参数回调 suitelet(相同的源和根 url)。

您可以通过这种方式将大量交互转移到“正常”UI 工作。

© www.soinside.com 2019 - 2024. All rights reserved.