Использование скриптов Groovy при выполнении импорта
Для расширения штатных возможностей импорта в подсистеме импорта и репликации предусмотрена возможность разработки скриптов Groovy. Подробную информацию о возможностях данного языка, смотрите здесь:
Скрипты Groovy расширяют возможности импорта данных из внешних систем и позволяют решать следующие задачи:
Выполнять преобразование структуры сообщения импорта;
Выполнять обогащение сообщения импорта данными из внешних сервисов;
Выполнять проверку данных и отклонять сообщений импорта не прошедших проверку;
Выполнять преобразование значений свойств в сообщении импорта (маппинг значений);
Выполнять сопоставление с позициями справочников;
Указывать группы, в которых требуется создавать новые позиции основного или вспомогательных справочников.
В подсистеме импорта, разработка скриптов Groovy предусмотрена:
для атрибута обменного класса – задается через кнопку “Формула импорта” для атрибута. Позволяет реализовать преобразование значения (маппинг значений), поступившего из внешней системы. Для атрибутов обменного класса, сопоставленных с агрегацией, позволяет реализовать программное сопоставление с позицией Semantic MDM по присланным вложенным атрибутам. Например, по вложенному атрибуту “Обозначение документа” (например, “ГОСТ 1050-88”), выполнить поиск позиции в справочнике документов и записать в импортируемый объект идентификатор найденной позиции;
для обменного класса в целом – задается в свойстве обменного класса “Формула импорта”. Позволяет выполнить обогащение импортируемого объекта данными из внешней системы, выполнить преобразование структуры объекта, добавить/удалить атрибуты и т.д.
Последовательность выполнения скриптов следующая: сначала будут выполнены все скрипты назначенные на атрибуты обменного класса (в случайном порядке), затем будет выполнен основной скрипт, назначенный на обменный класс.
В любом из скриптов, можно выполнить отклонение сообщения импорта с указанием причины отклонения, если одно или несколько значений атрибутов не проходит программные проверки. Для отклонения сообщения импорта, достаточно в функции скрипта Groovy (в формуле импорта) вернуть через return причину отклонения. Например, если ИНН присланного контрагента не проходит проверку на контрольное число, то в функции импорта должна вернуть причину отклонения -
return ‘ИНН присланного контрагента не прошел проверку на контрольное число’,
в противном случае, если не требуется выполнять отклонение сообщения, то функция должна вернуть NULL:
return null
Использование скриптов Groovy при выполнении импорта