NetSuite记录的“ID”和“内部ID”有什么区别?

时间:2014-05-19 14:40:16

标签: netsuite

根据帮助弹出:

ID

  

此字段的值表示用于标识此字段的脚本ID   用于编写脚本的记录。这是一个文本字段。

内部ID

  

该字段的值是只读系统生成的唯一标识符。   这是一个整数字段。

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

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

1 个答案:

答案 0 :(得分:2)

主要区别在于您(作为自定义记录或脚本的创建者)完全控制文本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引用任何记录,无论是本机记录还是自定义记录;脚本始终使用文本ID来引用记录类型。