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

时间:2016-05-12 23:19:42

标签: database guid filenet-p8 filenet-content-engine

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

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

或者使用SQL手动在对象库中的表中插入记录是一个非常糟糕的主意?

2 个答案:

答案 0 :(得分:1)

在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触发事件。

答案 1 :(得分:0)

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