Состояние: Создание связанного процесса

Создание связанного процесса - состояние, представляющее шаг в мастере по созданию процесса, привязанного к какой-то конкретной сущности, в зависимости от настроек и контекста

Принцип работы

Создаёт процесс указанного типа и пытается привязать имеющийся в контексте объект указанного типа.

В случае, если в контексте мастера не будет найден подходящий объект для привязки - будет выдана соответствующая ошибка. Под этим "контекстом" технически понимаются параметры сессии и атрибуты формы. Привязка происходит при наличии 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 следующего состояния мастера после завершения создания связанного процесса.