netsuite - NetSuite 记录的 `ID` 和 `Internal ID` 有什么区别?

标签 netsuite

根据弹出的帮助:

ID

This field's value represents the script ID, used to identify this record for scripting purposes. It is a text field.

内部ID

This field's value is a read-only system-generated unique identifier. It is an integer field.

  • 这两个字段似乎唯一标识记录类型。
  • 一个是字符串,一个是整数。
  • 字符串ID用于搜索和 加载记录,但我也看到过使用Internal ID 从列表的角度引用记录类型。

任何人都可以提供使用两个标识符背后的原因以及在编写脚本时何时使用其中一个标识符吗?

最佳答案

主要区别在于您(作为自定义记录或脚本的创建者)可以完全控制文本 ID。您可以建立定义这些 ID 的模式和最佳实践,这将使开发人员只需查看字符串 ID 即可轻松识别记录类型。您无法控制数字 ID。在查看代码时,如果代码如下所示,我可以更轻松地确定我引用的记录:

nlapiSearchRecord('customrecord_product', null, filters, columns);
nlapiResolveURL('SUITELET', 'customscript_sl_orderservice', 'customdeploy_sl_orderservice')

而不是查看:

nlapiSearchRecord(118, null, filters, columns);
nlapiResolveURL('SUITELET', 13, 1)

我什至不确定第二个 nlapiSearchRecord 是否真的有效,但我知道 nlapiResolveURL 可以这样写。

也就是说,如果您只是让 NetSuite 生成文本 ID,您最终会得到像 customrecord1 这样的通用 ID,我认为它并不比数字 ID 更有用。明确指定您自己的 ID 是一个很好的做法。

此外,数字 ID可能因环境而异(例如,沙盒可能与生产环境不同,直到发生后续刷新)。如果您遵循良好的迁移实践,那么文本 ID 永远不会因环境而异,因此您的代码不必根据环境来决定使用哪个 ID。

我很少发现自己通过数字 ID 引用任何记录,无论是 native 记录还是自定义记录;脚本始终使用文本 ID 来引用记录类型。

关于netsuite - NetSuite 记录的 `ID` 和 `Internal ID` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23740604/

相关文章:

javascript - 在 NetSuite 中使用 JavaScript 读取 XLS/XLSX 数据

eclipse - SuiteCloud IDE 验证器忽略列表

netsuite - 我们可以使用 NetSuite suitescript 从 SFTP 文件夹中读取数据吗?

javascript - 如何访问 Netsuite 中 MapReduce 脚本的 Map 方法上的 getInputMethod 返回的数据(搜索、对象)

sql - Netsuite SQL 表达式

java - 我们可以访问Oracle NetSuite旧云版本吗?

javascript - 如何在 SuiteScript 2.0 中的创建模式下重定向到自定义记录?

javascript - SuiteScript 2.0 在提交之前更新自定义行字段

python - 有没有人能够让 suds soap 库与 NetSuite WSDL 一起工作?

c# - 无法在 C# 中登录我的 netsuite 帐户