问题:
我正在处理Inventory Detail记录的客户端脚本(pageInit条目)(id:inventorydetail),但是当从Item Receipt记录加载此记录(inventorydetail)时,我需要此脚本才能运行 ONLY (不是物品履行或任何其他)。
有没有办法在脚本执行期间获取' super '记录类型,还是可以在Ntesuite UI中指定此逻辑(仅在项目接收的上下文中运行库存明细)?
注意:
在任何用户更改之前,脚本必须在库存明细窗体内更改(或至少设置默认值),或者理想情况下,它应捕获用户更改并执行某些操作。最好是SuiteScript2.0。
答案 0 :(得分:3)
我不确定NetSuite是否有适合它的API。将要检查。但是如果没有NetSuite API,我们可以通过JavaScript DOM实现它。您可以使用window.parent.location.path
来获取关于从哪条记录中打开子记录的引用。
答案 1 :(得分:0)
另一种解决方案是使用用户事件脚本。
清单详细信息不被视为NetSuite上的记录,因此您无法对其应用用户事件脚本。它是一个子记录,您可以将其视为具有多个属性的字段。
您可能必须将脚本作为用户事件脚本应用于“项目收据”记录。您的脚本必须更新“BEFORE LOAD FUNCTION”用户事件的库存明细。这意味着默认值将填充在库存明细中,但在用户保存物料收据记录之前不会保存到数据库中。
在SuiteScript 2中,获取ItemReceipt上每一行的广告资源详细信息子记录,并根据需要更改值:
var inventoryDetailRecord = itemReceipt.getSublistSubrecord({
sublistId: 'item',
fieldId: 'inventorydetail',
line: i
});
inventoryDetailRecord.setSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'issueinventorynumber',
value: serialId,
line: 0
});
此解决方案的缺点是您将在子记录上填充数据,即使未查看子记录 - 这可能不太理想,具体取决于您要执行的操作。
答案 2 :(得分:0)
您可以在清单详细信息附带的脚本上使用SS 1.0命令来引用父级(窗口):
parent.nlapiGetRecordType()