我有一个 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 创建选项元素,但我仍在努力使其工作。这个问题似乎是直接方法,无需创建单独的端点来获取下拉列表所需的值
您当然可以做您所要求的事情,尽管您所描述的将是一个相当静态的页面(在每次选择时重新渲染?)
在 NetSuite 中嵌入复杂的 UI 时,我通常会创建一个 React 应用程序并将其嵌入。请参阅React JS 和 Suitelet
然后,React 应用程序使用所有 AJAX 调用的“action”查询参数回调 suitelet(相同的源和根 url)。
您可以通过这种方式将大量交互转移到“正常”UI 工作。