有没有办法查明当前的 Netsuite 记录是否是 suitescript 中另一条记录的子记录?
Is there a way to find out if current Netsuite record is a subrecord of another record inside suitescript?
问题:
我正在为库存详细记录(id:inventorydetail)开发客户端脚本(pageInit 条目),但是我需要这个脚本 运行 ONLY 当这个记录(inventorydetail)是从项目收据记录(不是项目履行或任何其他)加载。
有没有办法在脚本执行期间获取“super”记录类型,或者我可以指定此逻辑(运行 仅在收货上下文中用于库存详细信息) 在 Ntesuite UI?
注:
在任何用户更改之前,脚本必须更改(或至少设置默认值)清单详细信息表单中的值,或者理想情况下,它应该捕获用户更改并执行一些操作。 SuiteScript2.0 最好。
我不确定 NetSuite 是否有 API。将不得不检查。但是如果没有NetSuiteAPI我们可以通过JavaScriptDOM来实现。您可以使用 window.parent.location.path
,您将从中获取子记录已打开的记录的引用。
另一种解决方案是使用用户事件脚本。
库存详细信息不被视为 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
});
此解决方案的缺点是您将在子记录上填充数据,即使未查看子记录 - 这可能并不理想,具体取决于您想要做什么。
您可以在附加到库存详细信息的脚本上使用 SS 1.0 命令,引用父项 (window):
parent.nlapiGetRecordType()
问题:
我正在为库存详细记录(id:inventorydetail)开发客户端脚本(pageInit 条目),但是我需要这个脚本 运行 ONLY 当这个记录(inventorydetail)是从项目收据记录(不是项目履行或任何其他)加载。
有没有办法在脚本执行期间获取“super”记录类型,或者我可以指定此逻辑(运行 仅在收货上下文中用于库存详细信息) 在 Ntesuite UI?
注:
在任何用户更改之前,脚本必须更改(或至少设置默认值)清单详细信息表单中的值,或者理想情况下,它应该捕获用户更改并执行一些操作。 SuiteScript2.0 最好。
我不确定 NetSuite 是否有 API。将不得不检查。但是如果没有NetSuiteAPI我们可以通过JavaScriptDOM来实现。您可以使用 window.parent.location.path
,您将从中获取子记录已打开的记录的引用。
另一种解决方案是使用用户事件脚本。
库存详细信息不被视为 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
});
此解决方案的缺点是您将在子记录上填充数据,即使未查看子记录 - 这可能并不理想,具体取决于您想要做什么。
您可以在附加到库存详细信息的脚本上使用 SS 1.0 命令,引用父项 (window):
parent.nlapiGetRecordType()