<< Click to Display Table of Contents >> Объектная модель > Базовое решение Directum RX SmartProcessing – интеллектуальная обработка |
![]() ![]() ![]() |
Модуль SmartProcessing (Интеллектуальная обработка) включает в себя конвейер обработки документов.
Обработка занесения документов
Конвейер обработки документов делится на клиентскую и серверную часть:
1.DCS захватывает файлы и запускает команду RxCmd smart process-pkg, которая стартует клиентский конвейер со следующими этапами:
•валидация настроек интеллектуальной обработки вызывается серверной функцией ValidateSettings() модуля SmartProcessing (Интеллектуальная обработка);
•подготовка пакета документов из DCS вызывается серверной функцией PrepareBlobPackage() модуля SmartProcessing (Интеллектуальная обработка). На сервере создается пакет документов, и в него записывается значение идентификатора пакета DCS;
•получение пакета документов на клиенте. Осуществляется с помощью запроса к сервису интеграции с фильтрацией по идентификатору пакета DCS;
•передача тел документов на сервер (блок UpdateBlobBodies на схеме). Реализована через обновление бинарного образа документа Blob (Бинарный образ документа) с помощью потока данных. Действие выполняется только для документов, загруженных из сканера, что необходимо для оптимизации загрузки документов в систему. Это обусловлено тем, что предельный размер файлов, получаемых по почте, обычно ограничен 100 МБ, тогда как для файлов из папки ограничение составляет 2 ГБ;
•запускается обработка пакета документов на сервере. Вызывается серверная функция ProcessCapturedPackage() модуля SmartProcessing (Интеллектуальная обработка). В этой функции проверяется свойство Использовать интеллектуальную обработку источника поступления документов:
•если оно равно True, то вызывается асинхронный обработчик документов ProcessBlobPackage();
•иначе вызывается асинхронный обработчик пакета документов ProcessBlobPackageSimple().
•работа DCS и клиентского конвейера полностью завершается.
Примечание. RxCmd использует сервис интеграции для тех действий, которые должны выполняться на сервере, например, вызов прикладных серверных функций или чтение/изменение сущностей.
2.Если обработка происходит без использования сервисов Ario, то асинхронный обработчик ProcessBlobPackageSimple() запускает серверный конвейер обработки документов ProcessCapturedPackageSimple():
•функция BuildDocumentPackageSimple() формирует пакет документов из бинарных образов документов, согласно настройкам из источника поступления документов;
•функция OrderAndLinkDocumentPackageSimple() упорядочивает, связает и переименовывает документы в пакете;
•если установлен флажок Отправлять задачу на верификацию, функция SendToResponsibleSimple() отправляет задачу ответственному за верификацию комплекта документов;
•завершение работы конвейера осуществляется серверной функцией FinalizeProcessing() модуля SmartProcessing (Интеллектуальная обработка). Завершение работы, удаление ненужных данных. В пакете документов устанавливается ProcessState (Обработка) = Processed. Далее такие пакеты будут удалены в фоновом процессе DeleteBlobPackages().
3.Если обработка происходит с использованием сервисов Ario, то запускается асинхронный обработчик событий ProcessBlobPackage(). При первом запуске отправляет пакет документов в сервисы Directum Ario. В результате для каждого бинарного образа возвращается и записывается ИД задачи его обработки в Directum Ario для дальнейшего отслеживания статуса обработки. Если хотя бы один файл из пакета документов успешно отправлен в Directum Ario, то асинхронный обработчик перезапускается. При последующих перезапусках периодически запрашивается статус обработки задачи в Directum Ario по каждому бинарному образу до тех пор пока не будет превышен таймаут обработки из константы ProcessingTimeoutParamName, либо пока не вернется один из нижеперечисленных результатов:
•если обработка успешно завершена, то ее результат в формате Json записывается в бинарный образ, также в нем проставляется статус успешной обработки;
•если в процессе обработки произошла ошибка, то в бинарный образ проставляется статус ошибки.
4.Если нет ошибок в Directum Ario, или пакет документов поступает с почты, то в асинхронном обработчике событий ProcessBlobPackage() запускается серверная функция ProcessCapturedPackage(). В остальных случаях ответственному за верификацию отправляется уведомление об ошибках.
Этапы серверного конвейера:
•распаковка результатов распознавания Directum Ario с помощью серверной функции UnpackArioPackage() модуля SmartProcessing (Интеллектуальная обработка). Десериализация результата обработки пакета в Directum Ario. Создаются результаты распознавания сущности;
•формирование пакета документов с помощью серверной функции BuildDocumentPackage() модуля SmartProcessing (Интеллектуальная обработка). Для каждого поступившего документа в системе создается PDF документ по результатам обработки из сервисов Ario. Свойства документа заполняются с применением нечеткого поиска по поисковой системе, если такая возможность доступна. В других случаях с помощью четкого поиска по системе Directum RX ищутся документы по штрихкоду. Если при создании документа возникли ошибки или результат обработки из сервисов Directum Ario не найден, тогда создается простой документ из исходного файла бинарного образа.
Нечеткий поиск доступен при соблюдении условий:
•наличие лицензии на модуль Intelligence(Интеллектуальные функции);
•настроенный Elasticsearch;
•наличие проведенной индексации.
•выполнение серверной функции OrderAndLinkDocumentPackage() модуля SmartProcessing (Интеллектуальная обработка). В пакете определяется ведущий документ, создаются связи;
•запускается серверная функция SendToResponsible() модуля SmartProcessing (Интеллектуальная обработка). Пакет с документами отправляется на верификацию ответственному;
•завершение работы конвейера выполняется с помощью серверной функции FinalizeProcessing() модуля SmartProcessing (Интеллектуальная обработка). Завершение работы, удаление ненужных данных. В пакете документов устанавливается ProcessState (Обработка) = Processed. Далее такие пакеты будут удалены в фоновом процессе DeleteBlobPackages().
© Компания Directum, 2025 |