2016-05-12 1 views
0

Мне было интересно, как FileNet вычисляет GUID (т. Е. Object_id) каждой записи, которая вставлена ​​в таблицу в хранилище объектов.Как FileNet вычисляет GUID (object_id) для всех записей во всех таблицах в хранилище объектов?

Я хочу вставить запись в таблицу событий с помощью инструкции insert в SQL (с использованием SQL Server 2008), но я не знаю, какой GUID следует вставить в поле object_id для новой записи. Кто-нибудь когда-либо делал что-то подобное раньше?

Или это очень плохая идея вручную вставить запись в таблицу в хранилище объектов с помощью SQL?

ответ

0

Уникальный идентификатор, присвоенный каждой записи события, и есть счетчик событий, идентификатор исходного объекта, серия версий. Вам нужно рассмотреть все эти вопросы перед вставкой вручную, приходя к GUID, они хранятся в разных байтовых заказах для разных брендов БД. В MS SQL GUID хранится без «» { '&' } '. Я рекомендую инициировать событие из объектов FN, чтобы CPE мог записать нужную запись в БД.

1

В выпусках до 5.2.1 уникальные идентификаторы, назначенные объектам, были сгенерированы с использованием алгоритма, который производит полностью случайные значения. В версии 5.2.1 доступен новый алгоритм, который создает последовательные идентификаторы. Последовательные идентификаторы имеют часть времени и счетчика, которая объединена со случайной частью таким образом, что последовательно созданные идентификаторы являются последовательными (монотонными) для естественного упорядочения, применяемого базовой базой данных.

Новое свойство UseSequentialIds на интерфейсе ObjectStore указывает, должно ли хранилище объектов назначать случайные или последовательные идентификаторы, когда новый объект создается в этом хранилище объектов. Индексированный столбец базы данных или таблица с кластеризованным индексом первичного ключа, содержащего последовательные идентификаторы, могут храниться более компактно и управляться более эффективно, чем полностью случайные идентификаторы, следовательно, потенциально обеспечивая преимущество в производительности и экономию пространства.

Значение по умолчанию для этого свойства истинно (назначьте последовательные идентификаторы). Если вы не хотите, чтобы новые объекты в хранилище объектов имели последовательные идентификаторы, установите для свойства UseSequentialIds значение false.

GUID, который вы получаете из ACCE или через API, отличается от вида object_id, хранящегося в таблицах базы данных, при использовании разворота бит.

Не рекомендуется вводить значение вручную в базу данных. Используйте ACCE/API для запуска событий.

+1

GUID, видимые через интерфейсы CE и БД, ничем не отличаются друг от друга. Это вопрос сохранения и представления их. GUID - это просто 128-битное число. – fnt