Задача [DT5]: Доработка интеграции DT-INT: валидация организаций, переработка dtint-control

Формулировка проблемы:

  1. Настройка интеграции DT-INT, как на стороне настройки взаимодействия, так и на уровне конфигурирования ARTA Synergy, сейчас является довольно сложной, что влечёт за собой частые ошибки в конфигурировании этого проектными офисами и клиентами ARTA.

  2. Интерфейс рассылки справочников организаций dtint-control сейчас написан на языке Python, который не является основным языком разработки в компании, что влечёт за собой проблемы с его поддержкой и исправлением в нём ошибок. Кроме этого, в нем имеются недоработки - например, часть параметров задаётся в конфигурационном файле, а остальное настраивается через пользовательский интерфейс.

Решение:

Переработка dtint-control
Портирование на Java + GWT

Проект dtint-control должен быть переписан на языке Java с использованием Google Web Toolkit и библиотеки графических компонентов Synergy Components 3.

Валидация добавляемых и редактируемых пунктов основной таблицы

При сохранении вновь добавленной либо редактируемой организации или группы организаций необходимо проверять её идентификатор на предмет уникальности.

Поле Email должно быть валидным адресом электронной почты.

Следующие поля не должны быть пустыми:

  • Id - идентификатор участника

  • Name - название

    • на русском языке

    • на казахском языке

    • на английском языке

  • DecMail - почтовый адрес организации

  • IsGroup - переключатель "организация/группа"

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

Поле кода типа для входящих документов DocTypeCode может быть пустым. В этом случае считается, что код типа документа для организации "вшит" в форму исходящих документов всех остальных участников обмена (см. ниже "Валидация организаций").

Настройки dtint-control

В пользовательском интерфейсе dtint-control должны быть реализованы следующие настройки:

Общие настройки

Отправка
  • Адрес отправителя - поле ввода текста (значение будет подставлено во From: исходящего письма). Значение по умолчанию: admin@dtint-control

  • Тип сервера - выпадающий список с одним значением SMTP

  • Адрес сервера - поле ввода текста, не может быть пустым. Значение по умолчанию: smtp.arta.kz

  • Порт - числовое поле, не может быть пустым. Значение по умолчанию: 25.

  • Авторизация - флажок, выключен по умолчанию. Если флажок включен, активируются следующие опции:

    • Имя пользователя - поле ввода текста (не может быть пустым)

    • Пароль - поле ввода пароля (не может быть пустым)

  • Использовать шифрование - флажок, выключен по умолчанию. Если флажок включен, активируется следующая опция:

    • Тип соединения - выпадающий список с вариантами SSL и TLS (по умолчанию)

Получение
  • Тип сервера - выпадающий список со значениями IMAP (по умолчанию) и POP3

  • Адрес сервера - поле ввода текста. Значение по умолчанию: imap.arta.kz

  • Порт - числовое поле Значение по умолчанию:

    • Для выбранного IMAP - 143

    • Для выбранного POP3 - 110

  • Имя пользователя - поле ввода текста, не может быть пустым.

  • Пароль - поле ввода пароля, не может быть пустым.

  • Использовать шифрование - флажок. Если флажок включен, активируется следующая опция:

    • Тип соединения - выпадающий список с вариантами SSL и TLS (по умолчанию).

  • Интервал проверки (в секундах) - числовое поле, не может быть пустым. Значение по умолчанию: 30.

  • Максимальное время ответа на запрос валидации (в секундах) - числовое поле, не может быть пустым. Значение по умолчанию: 300 (5 минут).

Валидация при синхронизации справочников организаций

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

Для каждого из пунктов основной таблицы dtint-control, соответствующих организации, необходимо добавить:

  • Отображение статуса валидации/синхронизации в виде пиктограммы, означающей один из нижеследующих статусов:

    • Валидация/синхронизация не производилась

    • Валидация/синхронизация в процессе

    • Валидация/синхронизация завершилась неудачно

    • Валидация/синхронизация завершилась успешно

Валидация/синхронизация считается успешной, если каждое из нижеперечисленных условий верно:

  • получен положительный результат валидации

  • если среди организаций есть хотя бы одна, для которой не указан код типа входящего документа, то значение поля формы исходящего документа <DocDataType/> у каждой из организаций, участвующих в обмене документами, должно равняться DocInc

  • получен положительный результат синхронизации

Валидация/синхронизация считается неуспешной, если:

  • Получен отрицательный результат валидации

  • Получен отрицательный результат синхронизации

  • Ответ на запрос синхронизации/валидации получен в некорректном формате (например, ответ от почтового сервера о несуществовании ящика)

  • Превышено время ответа на запрос синхронизации/валидации

Кроме этого, в дополнение к вкладкам "Справочники" и "Организации" необходимо добавить новую вкладку "Результат синхронизации", отображающую диагностические сообщения, полученные в процессе валидации и синхронизации.

Доработка обработчика dt-int
Включение в основную поставку ARTA SYNERGY

Отдельный пакет для обработчика dt-int (arta-synergy-dtint) должен быть ликвидирован, а он сам - включён в общую поставку ARTA Synergy. При этом необходимо:

  • Добавить необходимые очереди в конфигурационный файл standalone-onesynergy.xml по умолчанию

  • Удостовериться в том, что диагностические сообщения обработчика попадают в общий лог сервера приложений JBoss

  • Добавить необходимые записи в файл docflow-observer-configuration.xml по умолчанию

  • Добавить конфигурационный файл dti.xml и его схему

  • Добавить необходимый лог-провайдер в базу данных по умолчанию

  • Добавить образцы форм в пакет по пути /opt/synergy/utils/dt-int/example-forms

Валидация организации перед синхронизацией справочников

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

Запрос на синхронизацию организации должен иметь следующие входные параметры:

  • Идентификатор проверяемой организации

  • Код типа входящего документа (может быть пустым)

При получении запроса на валидацию/синхронизацию обработчик dt-int должен произвести проверку следующих условий:

Общие условия
  • Идентификатор организации organization-id в файле dti.xml соответствует переданному идентификатору

Настройки ARTA Synergy
  • Имеется неудалённый тип для исходящих документов со следующими параметрами:

    • Код типа документа равен ExtDtiOutDocInc либо ExtDtiOutDocInc-идентификатор организации

    • Настроена форма старого образца (XForms)

    • Привязан журнал типа Исходящий

  • Имеется неудалённый тип для входящих документов со следующими параметрами:

    • Код типа документа равен переданному, либо, если переданный код пуст, то код типа документа должен быть равен (ExtDtiInDocInc)

    • Настроена форма старого образца (XForms)

    • Привязан журнал типа Входящий

    • Пользователь с идентификатором, указанным в поле configurationsynergyinuser файла dti.xml, имеет право на запись в этот журнал

На адрес отправителя запроса должен быть отправлен ответ, содержащий:

  • Результат валидации - успешно либо неуспешно

  • Результат синхронизации справочников - успешно либо неуспешно

  • Значение поля <DocDataType/> формы, привязанной к типу для исходящих документов (если поле отсутствует, считаем, что значение пустое).