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

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

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

Когда пользователь изменяет карточку документа, подписывает, создает или удаляет версию, в событиях типа карточки документа формируются данные для экспорта. Вычисления в событиях синхронизируемого типа карточки запускают синхронизацию документа.

На основе данных справочника Настройки систем-получателей для межсистемных процессов функции вычисляют список систем-получателей.

Для отправки сообщения запускается серверное событие DCIOnDataSynchronization. Если сообщение отправляется в несколько систем, то для каждой системы-получателя запускается отдельное серверное событие.

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

Примечание

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

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

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

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