Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Запуск синхронизации

В карточке записи справочника Виды межсистемных процессов в поле Тип справочника указывается синхронизируемый справочник. Запись справочника Виды межсистемных процессов должна быть действующей.

Когда пользователь изменяет или удаляет запись справочника, в событиях «Запись. Сохранение После», «Запись. Удаление после» вызывается функция DCISynchronizeRecord. На основе данных справочника Настройки систем-получателей для межсистемных процессов функция вычисляет имена видов межсистемных процессов и список систем-получателей.

Для отправки сообщения запускается серверное событие DCIOnReferenceRecordSynchronization. В параметрах серверного события передается имя вида межсистемного процесса, получатель, глобальный ИД измененной или удаленной записи. Для каждой системы-получателя запускается отдельное серверное событие.

Отправка сообщения

Серверное событие DCIOnReferenceRecordSynchronization отправляет сообщение, используя обработчик DCIReferenceRecordSynchronizationHandler.

Порядок отправки сообщения:

1.Ищется незавершенный межсистемный процесс для синхронизируемой записи справочника. Ее глобальный ИД передается в параметр RecordGlobalId серверного события. Если процесс найден, то сообщение отправляется в рамках найденного процесса. Если не найден, то создается новый процесс.
2.На время отправки сообщения процесс блокируется.
3.Отправляется сообщение системе-получателю с помощью функции DCIInternalSendProcessMessage:
создается объект сообщения IProcessMessage и заполняются необходимые свойства;
если есть ведущее сообщение, то проверяется, отправлено ли оно. Если не отправлено, то отправка текущего сообщения откладывается. В этом случае генерируется исключение;
сообщение отправляется в адаптер к Directum:
выполняется обработчик отправки сообщения;
сообщение сохраняется, его состояние меняется на Отправлено.

Примечание

В режиме отладки обработчик отправки сообщения не выполняется, а статус сообщения меняется на Отладка.

4.Разблокируется процесс для дальнейшей отправки или приема сообщений.

Получение сообщения

После обработки входящего сообщения адаптером к Directum в системе-получателе запускается серверное событие DCIOnReceiveProcessMessage. Оно использует обработчик DCIReceiveProcessMessageHandler. В параметрах обработчика передается глобальный ИД сообщения.

Порядок получения сообщения:

1.Ищется сообщение по глобальному ИД.
2.По сообщению определяется межсистемный процесс.
3.На время приема сообщения процесс блокируется.
4.Принимается входящее сообщение:
выполняется обработчик сообщения;
состояние сообщения меняется на Принято.

Если при выполнении обработчика приема сообщения возникает ошибка, то статус сообщения меняется на Ошибка. Текст ошибки записывается в поле Примечание.

Примечание

В режиме отладки обработчик приема сообщения не выполняется, а статус сообщения меняется на Отладка.

5.Разблокируется процесс для дальнейшей отправки или приема сообщений.

После того, как сообщение успешно принято, оно подтверждается:

заполняется поле Дата подтверждения;
состояние сообщения меняется на Подтверждено.
© Компания Directum, 2020 Сообщество пользователей Directum
.navbar > a:hover { background: #FFD73B; }