Использование скриптов Groovy для обогащения данных
Для реализации обогащения данных, в Semantic MDM предусмотрена возможность разработки на скриптовом языке Groovy постобработчиков для следующих событий:
Создание позиции – постобработчик разрабатывается для справочной группы в свойстве Постобработчик на создание и срабатывает автоматически, после создания позиции в Semantic MDM, в независимости от того, каким способом была создана позиция: по кнопке Добавить, через импорт из XLSX или через импорт из подсистемы Импорта и репликации. Постобработчик не сработает, при выполнении перемещения позиции в группу, для которой разработан постобработчик$
Изменение статуса позиции – постобработчик разрабатывается для справочной группы в свойстве Постобработчик на изменение статуса и срабатывает автоматически, после изменения статуса позиции в Semantic MDM, в независимости от того, каким способом было выполнено изменение статуса: в карточке позиции, через массовое назначение статуса или через импорт из подсистемы Импорт и репликация;
Изменение значения атрибута – постобработчик разрабатывается для декларации атрибута с единичным значением и типом данных: Строка, Целое число, Число с плавающей точкой, Логический тип, Дата в свойстве Постобработчик на изменение и срабатывает автоматически, после изменения значения атрибута и/или по запросу пользователя. Настройка автоматического запуска выполняется в свойстве Постобработчик на изменение, путем установки флага в опции Автоматический запуск, которая появляется после разработки Groovy-скрипта. Возможность запуска постобработчика вручную есть всегда, при любом значении опции Автоматический запуск. Допускается разработка постобработчика для вычисляемого атрибута, в этом случае запуск может выполняться только пользователем вручную, после ввода значения в вычисляемый атрибут.
Постобработчики не будут срабатывать, если изменения выполняются через другой постобработчик.
При создании позиции и изменении статуса, значений атрибутов, через импорт из XLSX или импорт из подсистемы Импорт и репликация, последовательность вызова постобработчиков будет следующей:
1. Вызов постобработчика создания позиции.
2. Вызов постобработчиков изменения значений атрибутов и изменения статуса в произвольном порядке.
Вызов функций, редактирующих данные напрямую, в скрипте не предусмотрено. Задачей скрипта на постобработку, является формирование инструкции на изменение данных, которые будут выполнены после завершения скрипта. Разрешено формирование инструкций на редактирование любых связанных позиций, как дочерних, так родительских, включая дочерние родительских. Все инструкции формируются путем вызова функций объекта postOperation, в котором предусмотрено три базовых метода:
postOperation.createItem(/*GUID группы, в которой создать позицию*/) – данный метод сформирует инструкцию на создание позиции с GUID, который вернет функция;
UpdateItemBuilder itemValueUpdates = postOperation.updateItem("GUID_изменяемой_позиции") – данный метод вернет построитель инструкций на изменение значений атрибутов позиции. С помощью методов UpdateItemBuilder можно указать какие изменения требуется выполнить в позиции. Для внесения изменений в созданную позицию, в данный метод требуется передать GUID позиции, которая будет создана;
postOperation.deleteItem(/*GUID удаляемой позиции*/) – данный метод сформирует инструкцию на удаление позиции с заданным GUID.
Использование скриптов Groovy для обогащения данных