Основной принцип действия ИР
- Сигнализация об изменениях в CM либо при выполнении каких-то действий - в интерфейсе интегратора создается входящий сигнал;
- Обогащение данных - в ИР описывается механизм получения данных о сущности, по которой был создан сигнал;
- Обработка/преобразование данных - конкретные действия в рамках текущего сценария;
- Передача данных - обычно в какую-то внешнюю систему.
ИР может работать не только по сигналам об изменении объектов в CM, но и, например, обрабатывать файлы в файловой системе или на почте.
Порты для обмена данными
- JMS - получение сигналов в интеграторе по chlog-ам из CM и передача JMS-сообщений во внешние системы;
- Mail Server - получение сигналов в интеграторе по почтовым письмам;
- HTTP - прием/передача данных с помощью http-запросов;
- File Server - получение сигналов в интегратор посредством обработки файлов в файловой системе на текущем сервере.
Базовые периодические задачи, реализованные в рамках интегратора
- CollectingGroupMessagesTask - один из общих этапов маршрута: задача сборки транспортных сообщений с частями файлов в полные файлы;
- FolderPortProcessingTask - периодическая задача, реализующая создание сообщений из файлов в папке. Если в порте File Server установлен "Тип группировки" = "CUSTOM", то нужно указать обработчик папки, в добавок к этому необходимо создать бин с именем обработчика и указать класс обработчика. Класс обработчика наследуется с ru.intertrust.cmi.service.processing.tasks.GenericFolderProcessor. Если тип группировки не CUSTOM, то используется базовый обработчик GenericFolderProcessor;
- JmsMessageSendingTask - один из этапов маршрута: общая задача отправки JMS-сообщений на основе объектов cmi_msg_out в очередь. Отправка выполняется с периодичностью в минуту.
Для отправки берутся все записи cmi_msg_out при следующих условиях:- Сообщение готово к отправке (State=TRANSFER_READY);
- Сообщение имеет связь Recipient с участником интеграции - адресатом (cmi_actor), а через него - с экземпляром системы;
- Сообщение связано с активным (Enabled) Маршрутом/Сценарием/ИР;
- Сообщение связано с выходом (выходной конечной точкой) маршрута (сущность cmi_end_point или производная от нее с атрибутом Type=OUTPUT);
- Данный выход подключен к активному (Enabled) JMS-порту (cmi_port_jms или производный тип), а этот порт - к тому же экземпляру (cmi_instance);
- У cmi_msg_out есть хоть один связанный объект cmi_content c Out=true и, возможно, дополнительные атрибуты сообщения в дочерних записях cmi_content_ext_attr.
- MailProcessingTask - периодическая задача, реализующая создание сообщений из почтовых писем в папке на почтовом сервере. Если в порте Mail Server указан протокол IMAP, то можно указать почтовую папку для забора писем. Если папка не указана или используется другой протокол, то для забора писем используется папка INBOX
- MessageSplittingTask - один из этапов маршрута: общая задача разбора оригинальных "целых" сообщений в набор транспортных файлов. Для "разрезания" берутся все записи cmi_msg_out при следующих условиях:
- Сообщение на этапе подготовки к отправке (State=TRANSFER_PREPARING);
- Сообщение имеет связь Recipient с участником интеграции - адресатом (cmi_actor), а через него - с экземпляром системы;
- Сообщение связано с активным (Enabled) Маршрутом/Сценарием/ИР;
- Сообщение связано с выходом (выходной конечной точкой) маршрута (сущность cmi_end_point или производная от нее с атрибутом Type=OUTPUT);
- Данный выход подключен к активному (Enabled) JMS-порту (cmi_port_jms или производный тип), а этот порт - к тому же экземпляру (cmi_instance);
- У cmi_msg_out есть хоть один связанный объект cmi_content c Out=true и, возможно, дополнительные атрибуты сообщения в дочерних записях cmi_content_ext_attr.
- StorageCleaningTask - удаляет входящие сообщения и файлы в них. В качестве параметра можно указать messagesOlderThanDaysCount с количеством дней (т.е. удаляются все сообщения, дата которых раньше текущей даты на количество дней). По умолчанию задача выключена.