Добрый день.
Опишу ситуацию.
Сотрудник создаёт заявку (элемент смарт-процесса). В зависимости от значения поля ("Опт", "Розница") должна создастся подзаявка (элемент одного из двух других смарт-процессов, соответствующих опту или рознице). Но при создании подзаявки у сотрудника должны запрашиваться дополнительные параметры.
Что реализовано:
У каждого смарта-подзаявки создан шаблон БП с параметрами. В самом шаблоне параметры записываются в поля документа.
В дизайнере БП заявки создаётся элемент смарт-процесса подзаявки. Далее вызывается запуск БП (с помощью активити или php-кода). Но в любом случае при этом запуске нужно явно указывать параметры.
Можно ли запустить БП таким образом, чтобы запрашивались параметры как при ручном запуске? Возможно ли имитировать ручной запуск БП?
Код php для примера:
Нашёл на одном форуме CBPDocument::PARAM_DOCUMENT_EVENT_TYPE => CBPDocumentEventType::Manual, но у меня не работает.
Есть какой-то способ реализовать?
Опишу ситуацию.
Сотрудник создаёт заявку (элемент смарт-процесса). В зависимости от значения поля ("Опт", "Розница") должна создастся подзаявка (элемент одного из двух других смарт-процессов, соответствующих опту или рознице). Но при создании подзаявки у сотрудника должны запрашиваться дополнительные параметры.
Что реализовано:
У каждого смарта-подзаявки создан шаблон БП с параметрами. В самом шаблоне параметры записываются в поля документа.
В дизайнере БП заявки создаётся элемент смарт-процесса подзаявки. Далее вызывается запуск БП (с помощью активити или php-кода). Но в любом случае при этом запуске нужно явно указывать параметры.
Можно ли запустить БП таким образом, чтобы запрашивались параметры как при ручном запуске? Возможно ли имитировать ручной запуск БП?
Код php для примера:
Код |
---|
$entityId = 15; // на самом деле берётся ИД созданного элемента $wfId = \CBPDocument::StartWorkflow( 529, // id шаблона array("crm", "Bitrix\Crm\Integration\BizProc\Document\Dynamic", 'DYNAMIC_10_'.$entityId), array_merge($arWorkflowParameters, array("TargetUser" => "user_15")), $arErrorsTmp ); |
Нашёл на одном форуме CBPDocument::PARAM_DOCUMENT_EVENT_TYPE => CBPDocumentEventType::Manual, но у меня не работает.
Код |
---|
array_merge($arWorkflowParameters, array( CBPDocument::PARAM_TAGRET_USER => "user_".intval($GLOBALS["USER"]->GetID()), CBPDocument::PARAM_DOCUMENT_EVENT_TYPE => CBPDocumentEventType::Manual )), |
Есть какой-то способ реализовать?