有没有办法找出当前的Netsuite记录是否是setscript中另一条记录的子记录?

时间:2018-05-18 10:03:39

标签: netsuite suitescript

问题:
我正在处理Inventory Detail记录的客户端脚本(pageInit条目)(id:inventorydetail),但是当从Item Receipt记录加载此记录(inventorydetail)时,我需要此脚本才能运行 ONLY (不是物品履行或任何其他)。

有没有办法在脚本执行期间获取' super '记录类型,还是可以在Ntesuite UI中指定此逻辑(仅在项目接收的上下文中运行库存明细)?

注意:
在任何用户更改之前,脚本必须在库存明细窗体内更改(或至少设置默认值),或者理想情况下,它应捕获用户更改并执行某些操作。最好是SuiteScript2.0。

3 个答案:

答案 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()