Состояние: Создание связанного процесса
Создание связанного процесса - состояние, представляющее шаг в мастере по созданию процесса, привязанного к какой-то конкретной сущности, в зависимости от настроек и контекста |
Принцип работы
Создаёт процесс указанного типа и пытается привязать имеющийся в контексте объект указанного типа.
В случае, если в контексте мастера не будет найден подходящий объект для привязки - будет выдана соответствующая ошибка. Под этим "контекстом" технически понимаются параметры сессии и атрибуты формы. Привязка происходит при наличии id-параметра привязываемого объекта. На данный момент используются параметры:
-
customerId - id контрагента,
-
commonContractId - id единого договора,
-
contractId и соответсвующий billingId - id договора и id биллинга договора соответственно.
Добавление в мастер
Для работы состояния необходимо добавить его через панель администрирования Мастера, как это указано в разделе Мастер обслуживания. Тип привязываемого объекта, а также id типа создаваемого процесса необходимо указать в конфигурации состояния.
Использовать имя класса: ru.bgcrm.plugin.wizard.state.StateProcessCreate;
Путь к JSP-файлу: /WEB-INF/jspf/user/plugin/wizard/node/linked_process_create.jsp
Конфигурация
Для добавления состояния создания связанного процесса в конфигурации указывается запись вида:
# ID создаваемого типа процесса
# Обязательный параметр
typeId=
# Необходимость создания связанного процесса
# По-умолчанию, создавать независимый процесс
isLinkedProcess=false
# Тип сущности, к которой необходимо привязать процесс
# Обязателен, если указан режим создания связанного процесса
# Возможные варианты:
# customer - контрагент
# bgbilling-commonContract - единый договор
# contract - договор биллинга
linkedObjectType=
# ID следующего состояния
# Переход будет произведен после завершения мастера
# Для мастера создания процесса - при завершении создания процесса или отмены создания процесса
# Для мастера редактирования процесса - при нажатии кнопки "Закрыть"
# По-умолчанию, будет произведен переход на предыдущее состояние в рамках истории
# Если ID предыдущего состояния совпадает с текущим состоянием, поиск будет продолжен до состояния, ID которого будет отличаться
nextNodeId=
Где:
-
<typeId> - id типа создаваемого процесса;
-
<isLinkedProcess> - флаг, указывающий, нужно создавать связанный процесс (true) или обычный без привязок (false);
-
<linkedObjectType> - тип сущности, к которой будет привязан созданный процесс, в случае если он должен быть связанным;
-
<nextNodeId> - id следующего состояния мастера после завершения создания связанного процесса.