Заявки с возможностью автоматической обработки
Описание задачи (кейса)
Обеспечить сокращение времени на обработку заявок за счет автоматизации процесса создания новых записей НСИ без участия эксперта НСИ
Когда востребовано
Компаниями, в которых бизнес-процессом предусмотрено, что Инициатор (заявитель) полностью заполняет данные по заявке и отвечает за их качество.
Условия использования
-
В Semantic MDM на справочных группах настроены все необходимые процедуры проверки качества данных заявки – проверка заполнения значений обязательных атрибутов, проверка значений атрибутов на уникальность, а также используются ограничительные таблицы и функции.
-
Шаблон заявки содержит ссылку на автоматический обработчик заявки.
-
В системе зарегистрировано специальное расширение – автоматический обработчик заявок. Реализация таких обработчиков выполняется в виде отдельных сборок (war), которые при загрузке на сервер приложений Wildfly, выполняют свою регистрацию и создают параметры для настройки обработчика. Минимальный набор параметров обработчика должен содержать:
-
url – адрес сервера приложений Wildfly Semantic MDM;
-
Наименование модуля – данное наименование будет видно при выборе обработчика для шаблона заявки;
-
Логин пользователя – от имени которого будут выполняться все действия в системе;
-
Пароль пользователя – от имени которого будут выполняться все действия в системе.
Работа с заявкой
Заявки с автоматической обработкой не требуют участия эксперта НСИ в создании новой справочной записи. Если в заявке с настроенным автоматическим обработчиком заполнены все необходимые атрибуты, то после ее отправки Инициатором (заявителем) и изменения статуса с «Зарегистрирована» на статус «Ожидает обработки», автоматический обработчик запускает процедуру создания нового объекта НСИ .
Схема бизнес-процесса работы с заявкой при использовании автоматического обработчика
В качестве примера рассмотрим Стандартный модуль автоматической обработки заявок на создание позиций (m2_standard_module), который зарегистрирован в Системе (Настройки --> Расширения --> Автоматические обработчики заявок). Он реализует стандартный сценарий обработки, со следующим алгоритмом :
1) Получить атрибут заявки, заполняемый по умолчанию, и извлечь из него ссылку на группу (ноду). Если атрибут заявки содержит ссылку на позицию, то получить группу (ноду), в которой располагается позиция. Если группа была успешно получена, то перейти к следующему шагу.
2) Проверить что полученная группа является конечной. Если группа является конечной, то перейти к следующему шагу.
3) Выполнить поиск существующих позиций от заявки, через имеющиеся поиски дубликатов. Если ни одной позиции не нашлось, то перейти на следующий шаг.
4) Проверить в заявке корректность заполнения атрибутов позиций типа агрегация. Все значения должны быть ссылками на позиции и соответствовать scope декларации соответствующего атрибута в группе(ноде). Если все ссылочные атрибуты заполнены корректно, то перейти на следующий шаг.
5) Взять заявку в работу и создать связанный с ним пакет изменений
6) Создать новую позицию в группе (ноде), скопировать в нее значения атрибутов из заявки и установить статус "Нормализована"
7) Проверить на соответствие обязательным ограничениям и если позиция соответствует ограничениям, то отправить заявку на согласование/публикацию.
Если на одном из шагов, описанных выше, произошла ошибка или не выполнилось условие перехода на следующий шаг, то система должна добавить в журнал заявки информацию о причине, по которой не удалось автоматически обработать заявку, после чего требуется:
-
пакет изменений отменить,
-
заявку перевести на статус "Ожидает обработки".
Стандартный сценарий является универсальным и его можно было бы назначать на любые шаблоны заявок, предназначенные для создания позиций. Данный обработчик должен срабатывать при переходе из заявки статуса "Зарегистрировано" в статус "Ожидает обработки" / "Ожидает диспетчеризации"
Алгоритм работы автоматического обработчика заявок
Кроме описанного выше стандартного сценария обработки, могут быть реализованы и более сложные сценарии, в которых может выполняться обработка любых переходов заявки из одного статуса в другой.