Постобработчик для обогащения данных
Постобработчик для обогащения данных автоматически срабатывает при изменении значения атрибута / создании позиции или изменении статуса позиции, если это определено настройками или при ручном запуске по кнопке (вызывается в режиме редактирования из карточки позиции). Назначение постобработчика производится в при настройке деклараций (см. п. "
Настройка атрибутов группы"). Он позволяет решать следующие задачи:
-
Автоматическая генерация номенклатурного кода при создании новой позиции;
-
Автоматическое заполнение атрибутов при создании позиции, в зависимости от текущего пользователя;
-
Автоматическая генерация номенклатурного кода, после заполнения атрибута, с кодом номенклатурной группы и автоматическое изменение кода номенклатуры, при изменении кода номенклатурной группы;
-
Массовая операция по преобразованию данных в позициях;
-
|
|
Постобработчик для создания позиции, всегда срабатывает автоматически. Запуск постобработчика для декларации атрибута, регулируется свойством “Автоматический запуск” (пиктограмма в строке) декларации. Данный маркер обрабатывается только для не вычисляемых простых атрибутов и не вычисляемых атрибутов типа агрегация/композиция.
Для вычисляемых атрибутов постобработчик вызывается только вручную.
|
Постобработчик пишется в виде скрипта в специальном Редакторе функций постобработки, который вызывается кнопкой Редактор формул из ячейки Постобработчик на изменение.
Окно Редактора функций постобработки
В левой части окна редактора при активированной кнопке
Атрибуты располагается список доступных атрибутов текущей группы, а также атрибуты пользователя. Для того, чтобы включить атрибут в текст достаточно перетащить его (Drag&Dpop) из списка в поле скрипта в центре. Имя атрибута в тексте скрипта представляется как
@[Имя атрибута].
При переключении на описание методов

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

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

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