Постобработчик для обогащения данных
Постобработчик для обогащения данных автоматически срабатывает при изменении значения атрибута / создании позиции или изменении статуса позиции, если это определено настройками или при ручном запуске по кнопке (вызывается в режиме редактирования из карточки позиции). Назначение постобработчика производится в при настройке деклараций (см. п. "
Настройка атрибутов группы"). Он позволяет решать следующие задачи:
Постобработчик в декларации атрибута
Ручной вызов постобработчика по кнопке в карточке позиции
-
Автоматическая генерация номенклатурного кода при создании новой позиции;
-
Автоматическое заполнение атрибутов при создании позиции, в зависимости от текущего пользователя;
-
Автоматическая генерация номенклатурного кода, после заполнения атрибута, с кодом номенклатурной группы и автоматическое изменение кода номенклатуры, при изменении кода номенклатурной группы;
-
Автоматическое создание позиции во вспомогательном справочнике, по введенному значению в атрибуте типа "агрегация". Например, введен “ГОСТ 1050-88” в атрибут типа "агрегация",
Система выполнила поиск, определила, что такой стандарт отсутствует, создала его, заполнила нужный атрибут и подключила созданную позицию в атрибут агрегации;
-
Автозаполнение атрибутов позиции, по введенному полному наименованию позиции и запуска пользователем постобработчика по кнопке;
-
Автозаполнение атрибутов адреса, при вводе адреса одной строкой и запуска пользователем постобработчика по кнопке;
-
Автозаполнение атрибутов контрагента, при вводе ИНН и запуска пользователем постобработчика по кнопке;
-
Автоподбор классификационной группы по ОКПД2, ОКВЭД2, ЕКПС для позиции, после запуска постобработчика пользователем по кнопке для соответствующего атрибута классификации;
-
Автозаполнение атрибутов , при вводе нового типоразмера пользователем и запуска постобработчика по кнопке. Например, вводится типоразмер листа “5х100х1000” и запускается постобработчик по кнопке, который разберет эту строку и заполнит атрибуты “Толщина”, “Ширина”, “Длина”;
-
Массовая операция по преобразованию данных в позициях. Например, загружены позиции с не вычисляемым обозначением типоразмера. Далее, есть задача разобрать обозначение типоразмера по атрибутам, чтобы потом сделать атрибут “Обозначение типоразмера” вычисляемым. В этом случае, пишется постобработчик на атрибут “
Обозначение типоразмера, затем поиском и группой фильтруется таблица позиций и для столбца с атрибутом “Обозначение типоразмера” запускается постобработчик;
|
|
Постобработчик для создания позиции, всегда срабатывает автоматически. Запуск постобработчика для декларации атрибута, регулируется свойством “Автоматический запуск” (пиктограмма в строке) декларации. Данный маркер обрабатывается только для не вычисляемых простых атрибутов и не вычисляемых атрибутов типа агрегация/композиция.
Для вычисляемых атрибутов постобработчик вызывается только вручную.
|
Автоматический запуск постобработчиков запрещен при выполнении:
-
Импорта, через представление
Импорт и репликация;
-
-
Функции постобработчика – запрещено автоматическое срабатывание из одного постобработчика другого постобработчика, но при этом остается возможность выполнить такой действие принудительно через вызов программной функции.
Окно Редактора функций постобработки
В левой части окна редактора при активированной кнопке
Атрибуты располагается список доступных атрибутов текущей группы, а также атрибуты пользователя. Для того, чтобы включить атрибут в текст достаточно перетащить его (Drag&Dpop) из списка в поле скрипта в центре. Имя атрибута в тексте скрипта представляется как
@[Имя атрибута].
При переключении на описание методов

одноименной кнопкой пользователю становятся доступными все функции, методы, условия и циклы, применяемые в скриптах для обогащения данных, и их описания (во всплывающих окнах - hint), которые появляются при наведении курсора на соответствующий элемент списка.
Для того, чтобы добавить нужную функцию в текст достаточно перетащить её (Drag&Dpop) из списка в поле скрипта. Функции добавляются со всем необходимым синтаксисом и пояснениями (комментариями). Если в тексте функции не достаточно данных или допущена ошибка, то в соответствующей строке появляется пиктограмма

, при наведении на которую курсора, появляется подсказка с описанием допущенной ошибки.
Описание методов в скрипте GROOVY на обогащение данных (постобработчик на изменение)
Справа от текста скрипта находится поле для тестирования постобработчика, над которым расположены кнопки выбора позиции для тестирования, переключатель отображаемых атрибутов выбранной позиции и кнопка запуска процесса тестирования.
Редактор функций постобработки позволяет проводить тестирование разработанных скриптов, как на пустой новой позиции, так и на существующей. В Системе доступны методы, которые позволяют:
Для проверки функций обогащения на панели справа отображается карточка проверяемой позиции в режиме "только чтение" (то есть пользователь не может изменить значения в карточке вручную). В карточке тестируемой позиции могут отображать все атрибуты, с возможностью переключения в режим отображения атрибутов со значениями.
По умолчанию, для тестирования функции, в карточке отображается пустая "виртуальная" позиция. В заголовке карточки доступны кнопки Выбрать позицию, Удалить позицию. По кнопке "Выбрать позицию" поднимается окно выбора позиции из справочника, в котором продекларирован атрибут с постобработчиком. Над карточкой располагается поле для ввода тестового значения атрибута и кнопка запуска функции Выполнить. По нажатию на данную кнопку, система выполняет функцию постобработчика и обогащает выбранную позицию данными. Пользователь видит в карточке все изменения в позиции, с учетом изменений в агрегированных и композированных в неё позиций. При повторном запуске функции, состояние атрибутов позиции будет сброшено в исходное и выполнится повторное обогащение позиции данными.
Если после выполнения тестирования функции, появились позиции, никак не связанные с тестируемой, то перечень таких позиций отображается списком в разделе Побочные позиции, под карточкой атрибутов с пояснением что данные позиции были созданы функцией постобработчика, но никак не связаны с тестируемой позицией.
Постобработчик в дочерних группах отмечается пиктограммой

как унаследованный, если он задан в родительской группе.
Постобработчик, унаследованный от родительской группы