FileNet如何计算对象库中所有表中所有记录的GUID(object_id)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (80)

我想知道FileNet如何计算插入对象存储库中的表中的每个记录的GUID(即object_id)。

我想在SQL中使用插入语句(使用SQL Server 2008)在事件表中插入记录,但我不知道要在新记录的object_id字段中插入什么GUID。有没有人曾经做过这样的事情?

或者使用SQL手动在对象库中的表中插入记录?

提问于
用户回答回答于

每个事件记录都有一个唯一的ID,并且有一个事件计数器,源对象ID,版本系列。您需要在手动插入之前考虑所有这些,进入GUID,这些存储在不同数据库品牌的不同字节顺序中,在MS SQL中,GUID存储时没​​有“ { ”和“ } ”。我建议从FN对象中分离事件,以便CPE可以将所需的记录写入DB。

用户回答回答于

在5.2.1之前的版本中,分配给对象的唯一标识符是使用生成完全随机值的算法生成的。在5.2.1版本中,可以使用新算法生成顺序ID。顺序ID具有基于时间和计数器的部分,其与随机部分组合,使得连续创建的ID按照底层数据库应用的自然顺序是顺序的(单调的)。

ObjectStore接口上的新UseSequentialIds属性指定在该对象库中创建新对象时,对象存储是否应分配随机ID或顺序ID。索引数据库列或包含顺序ID的主键上具有聚簇索引的表可以比完全随机ID更紧凑地存储和管理更高效,因此可能提供性能优势和空间节省。

此属性的默认值为true(分配顺序ID)。如果不希望对象库中的新对象具有顺序ID,请将UseSequentialIds属性的值设置为false。

您使用ACCE或通过API获取的GUID与存储在数据库表中的object_id的GUID不同,因为使用了位反转。

不建议手动将值插入数据库。使用ACCE / API触发事件。

扫码关注云+社区

领取腾讯云代金券