SuiteScript1.0客户端脚本能否调用getFieldText等服务端函数?
SuiteScript 1.0 客户端获取成本类别字段文本值解决方案
SuiteScript 1.0 客户端环境没有原生提供getFieldText类的直接方法,可通过以下两种方案实现需求:
方案1:编辑模式下直接读取表单DOM
适用于脚本运行在记录编辑页面的场景,无需额外调用搜索接口:
- 先通过
nlapiGetFieldValue()方法拿到成本类别字段的存储值(内部ID) - 再读取下拉选项的展示文本,示例代码如下:
// 替换为你实际使用的成本类别字段ID const costCategoryFieldId = 'custbody_cost_category'; const fieldElement = document.getElementById(nlapiGetField(costCategoryFieldId).getId()); const costCategoryText = fieldElement.options[fieldElement.selectedIndex].text;
注意:该方法仅适用于编辑模式,查看模式下字段无下拉DOM结构,无法生效。
方案2:调用客户端搜索接口拉取文本(全模式兼容)
兼容查看、编辑两种页面模式,适用所有字段类型:
- 先通过
nlapiGetFieldValue()拿到成本类别的内部ID - 调用SuiteScript 1.0客户端支持的
nlapiSearchRecord查询对应记录的名称字段,示例代码如下:
// 替换为你实际使用的成本类别字段ID const costCategoryFieldId = 'custbody_cost_category'; const costCategoryId = nlapiGetFieldValue(costCategoryFieldId); let costCategoryText = ''; if (costCategoryId) { // 标准成本类别记录类型ID为costcategory,自定义记录请替换为对应ID const searchResult = nlapiSearchRecord('costcategory', costCategoryId, null, [new nlobjSearchColumn('name')]); if (searchResult?.length) { costCategoryText = searchResult[0].getValue('name'); } }
补充:如果你的成本类别是自定义记录类型,把
nlapiSearchRecord的第一个参数替换为对应的自定义记录类型ID即可。
内容的提问来源于stack exchange,提问作者Nick the coder
相关产品推荐
相关产品推荐

