# МастерS

Мастер создания позволяет не разрешать создать процесс без заполнения обязательных полей. Создание процесса мастером может быть инициировано в очереди процессов либо в списке привязанных к процессу процессов. После определения типа процесса мастер поочерёдно выполнения указанных в конфигурации шагов. После выполнения всех шагов процесс создаётся окончательно и доступен для работы.

| You can see (queue Kernel Process Wizard) the feature operation in Demo System.

Each wizard step has to be added to process type configuration:

    wizard.createStep.{@inc:cnt}.class=<CLASS>
    # optional
    wizard.createStep.{@cnt}.title=<TITLE>

Where:

- <CLASS> - Java class, implementing the step logic;

- <TITLE> - optional step’s title.

For some <CLASS> values might be required additional configuration keys: wizard.createStep.{@cnt}.<KEY>=<VALUE>. See the available <CLASS> values with the additional keys in the table below.

## Шаги мастера ядра

<CLASS> и внешний вид | Описание и параметры
--- | ---
AddressInfoStep | Отображение информации по указанному в процессе адресу (комментарий дома). addressParamId - код параметра.
ContinueStep | Продолжение работы мастера либо остановка. parameterId - код текстового параметра процесса, в который записывается 1 при прохождении шага; continuedText - текст, выводимый, когда шаг был пройден; continueText - текст подтверждения прохождения шага.
LinkCustomerStep | Привязка существующего либо создание и привязка нового контрагента к создаваемому процессу. В случае отмены мастера контрагент останется в БД. paramGroupId - группа параметров создаваемого контрагента.
FillParamsStep | Fill process parameters parameterIds - comma separated parameter IDs; checkParamIds - optional comma separated parameter IDs, mandatory to be filled; by default at least one param filled out is enougth; object - optional linkedCustomer to fill out linked coustomer parameters.
SetDescriptionStep | Установка описания в создаваемый процесс.
SetExecutorsStep | Установка исполнителей процесса.
SetStatusStep | Set process status. Optional config keys. okClose=1 - close the process wizard after status change.
JexlStep |
| The step is not recommended to use, as JEXL scripts are very difficult for support.
Выполнение произвольного JEXL скрипта. doExpression - сам скрипт, передаётся standard context for process. После выполнения скрипт возвращает Map с установленными полями: filled - java.lang.Boolean, шаг заполнен; message - java.lang.String, сообщение для вывода в интерфейс.

## Шаги мастера плагина BGBilling

<class> и внешний вид | Описание и параметры
--- | ---
FillContractParamsStep | Заполнение параметров привязанного договора parameterIds - обязательный, коды параметров через запятую; checkParamIds - через запятую коды параметров обязательные для заполнения, если не указано - должен быть заполнен хотя бы один.
ShowInetServicesStep | Отображение Inet сервисов привязанного к процессу договора. inetModuleId - код модуля Inet.
ShowInetSessionStep | Отображение Inet сессий привязанного к процессу договора. inetModuleId - код модуля Inet.
CreateContractsStep | Создание привязанного к процессу договора. типы договора должны быть указаны в конфигурации шага аналогично конфигурации модуля с префиксом contractType.; showContractTitle - 1, отображение наименования договора.
FillContractParamsStep | Заполнение параметров созданного и привязанного к процессу договора. parameterIds - коды параметров договора через запятую; checkParamIds - коды параметров договора через запятую, которые должны быть заполнены для прохождения шага.
FindContractStep | Поиск и привязка договора. billingId - идентификатор биллинга.
SetContractTariffStep | Установка тарифа у привязанного договора.
ShowContractsByAddrParamStep | Отображение договоров по адресу процесса. конфигурация биллинга с префиксом billing.; addressParamId - код адресного параметра процесса.

## Примеры мастера

Пример конфигурации мастера.

    wizard.createStep.{@inc:cnt}.title=Контрагент
    wizard.createStep.{@cnt}.class=LinkCustomerStep

    wizard.createStep.{@inc:cnt}.class=FillContractParamsStep
    wizard.createStep.{@cnt}.title=Адрес установки / конт. лицо
    wizard.createStep.{@cnt}.parameterIds=16,49

    wizard.createStep.{@inc:cnt}.class=SetDescriptionStep

    wizard.createStep.{@inc:cnt}.class=SetExecutorsStep

И снимок экрана с заполненным мастером.

Если сессия пользователя была аварийно прервана до окончания заполнения мастера - при следующей авторизации карточка недосозданного процесса всплывёт в интерфейсе снова.

Помимо функции создания мастер может предоставлять функции упрощённого редактирования для мобильного интерфейса. Мастер редактирования для типа процесса задаётся с помощью префикса конфигурации: wizard.step

| Мастерa не работают при создании процессов в обработке сообщения.