В бизнеспроцессе написан код PHP Автоутверждение документа. При выполнении выдает в лог ошибку Результат автоутверждения: CanNotResumeInstance
Помогите поправить код что бы завершить процесс по API
Думаю что проблема в строке $workflowEvent = "Task_approval_head"; Сейчас это мнемокод этого задания. По инструкции надо прописать имя, но не догадываюсь как его получить, подсмотреть...
// Автоутверждение документа
CModule::IncludeModule("workflow");
CModule::IncludeModule("bizproc");
$rootActivity = $this->GetRootActivity();
$workflowId = $rootActivity->GetWorkflowInstanceId();
$arApprove_USER = $this->GetConstant("Manager");
$approve_USER_ID = current($arApprove_USER);
$workflowEvent = "Task_approval_head";
try {
$arErrorsTmp = array();
CBPDocument::SendExternalEvent($workflowId, $workflowEvent, array(
"USER_ID" => $approve_USER_ID,
"APPROVE" => true
), $arErrorsTmp);
if (count($arErrorsTmp) > 0) {
$error_mes = "Результат автоутверждения: ";
foreach ($arErrorsTmp as $e) {
$error_mes = $error_mes . " " . $e["message"];
}
$this->WriteToTrackingService($error_mes);
}
} catch (Exception $e) {
$arErrors[] = array(
"code" => $e->getCode(),
"message" => $e->getMessage(),
"file" => $e->getFile() . " [" . $e->getLine() . "]"
);
$this->WriteToTrackingService(serialize($arErrors));
}
Помогите поправить код что бы завершить процесс по API
Думаю что проблема в строке $workflowEvent = "Task_approval_head"; Сейчас это мнемокод этого задания. По инструкции надо прописать имя, но не догадываюсь как его получить, подсмотреть...
// Автоутверждение документа
CModule::IncludeModule("workflow");
CModule::IncludeModule("bizproc");
$rootActivity = $this->GetRootActivity();
$workflowId = $rootActivity->GetWorkflowInstanceId();
$arApprove_USER = $this->GetConstant("Manager");
$approve_USER_ID = current($arApprove_USER);
$workflowEvent = "Task_approval_head";
try {
$arErrorsTmp = array();
CBPDocument::SendExternalEvent($workflowId, $workflowEvent, array(
"USER_ID" => $approve_USER_ID,
"APPROVE" => true
), $arErrorsTmp);
if (count($arErrorsTmp) > 0) {
$error_mes = "Результат автоутверждения: ";
foreach ($arErrorsTmp as $e) {
$error_mes = $error_mes . " " . $e["message"];
}
$this->WriteToTrackingService($error_mes);
}
} catch (Exception $e) {
$arErrors[] = array(
"code" => $e->getCode(),
"message" => $e->getMessage(),
"file" => $e->getFile() . " [" . $e->getLine() . "]"
);
$this->WriteToTrackingService(serialize($arErrors));
}