我想知道 FileNet 如何计算插入到对象存储表中的每条记录的 GUID(即 object_id)。
我想通过使用 SQL 中的插入语句(使用 SQL Server 2008)在事件表中插入一条记录,但我不知道在新记录的 object_id 字段中插入什么 GUID。有没有人做过这样的事情?
或者使用 SQL 在对象存储的表中手动插入记录是一个非常糟糕的主意?
我想知道 FileNet 如何计算插入到对象存储表中的每条记录的 GUID(即 object_id)。
我想通过使用 SQL 中的插入语句(使用 SQL Server 2008)在事件表中插入一条记录,但我不知道在新记录的 object_id 字段中插入什么 GUID。有没有人做过这样的事情?
或者使用 SQL 在对象存储的表中手动插入记录是一个非常糟糕的主意?
在 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 的外观不同。
不建议手动将值插入数据库。使用 ACCE/API 触发事件。
每个事件记录都有一个唯一的 ID,并且有一个事件计数器、源对象 ID、版本系列。您需要在手动插入之前考虑所有这些,进入 GUID,这些存储在不同的 DB 品牌的不同字节顺序中,在 MS SQL 中,GUID 存储时没有' { '&' } '。我建议从 FN 对象触发事件,以便 CPE 可以将所需的记录写入 DB。