GetDocumentStates
Описание и параметры
array public static function CBPDocument::GetDocumentStates( array documentType, array documentId = null );
Метод возвращает массив всех рабочих потоков и их состояний для данного документа. Если задан код документа, то метод возвращает массив всех запущенных для данного документа рабочих потоков (в том числе и завершенные), а так же шаблонов рабочих потоков, настроенных на автозапуск при изменении документа. Если код документа не задан, то метод возвращает массив шаблонов рабочих потоков, настроенных на автозапуск при создании документа.
Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.
Параметры метода
Параметр | Описание |
---|---|
documentType | Тип документа в виде массива array(модуль, класс_документа, тип_документа_в_модуле) |
documentId | Код документа в виде массива array(модуль, класс_документа, код_документа_в_модуле). Если новый документ, то null |
Возвращаемое значение
Массив имеет вид:
array( код_рабочего_потока_или_шаблона => array( "ID" => код_рабочего_потока, "TEMPLATE_ID" => код_шаблона_рабочего_потока, "TEMPLATE_NAME" => название_шаблона_рабочего_потока, "TEMPLATE_DESCRIPTION" => описание_шаблона_рабочего_потока, "TEMPLATE_PARAMETERS" => массив_параметров_запуска_рабочего_потока_из_шаблона, "STATE_NAME" => текущее_состояние_рабочего_потока, "STATE_TITLE" => название_текущего_состояния_рабочего_потока, "STATE_MODIFIED" => дата_изменения_статуса_рабочего_потока, "STATE_PARAMETERS" => массив_событий_принимаемых_потоком_в_данном_состоянии, "STATE_PERMISSIONS" => права_на_операции_над_документом_в_данном_состоянии, "WORKFLOW_STATUS" => статус_рабочего_потока, ), . . . )В зависимости от того, рабочий поток это или шаблон, часть полей может быть не установлена. Для шаблона рабочего потока типа конечных автоматов состоянием является его начальное состояние.
Массив параметров запуска рабочего потока из шаблона (TEMPLATE_PARAMETERS) имеет вид:
array( "param1" => array( "Name" => "Параметр 1", "Description" => "", "Type" => "int", "Required" => true, "Multiple" => false, "Default" => 8, "Options" => null, ), "param2" => array( "Name" => "Параметр 2", "Description" => "", "Type" => "select", "Required" => false, "Multiple" => true, "Default" => "v2", "Options" => array( "v1" => "V 1", "v2" => "V 2", "v3" => "V 3", . . . ), ), . . . )Допустимые типы параметров: int, double, string, text, select, bool, date, datetime, user.
Массив событий, принимаемых потоком в данном состоянии (STATE_PARAMETERS) имеет вид:
array( array( "NAME" => принимаемое_событие, "TITLE" => название_принимаемого_события, "PERMISSION" => массив_групп_пользователей_могущих_отправить_событие ), . . . )Права на операции над документом в данном состоянии (STATE_PERMISSIONS) имеют вид:
array( операция => массив_групп_пользователей_могущих_осуществлять_операцию, . . . )
Примеры использования
<? $documentType = array("bizproc", "CBPVirtualDocument", "type_".$blockId); $documentId = array("bizproc", "CBPVirtualDocument", $id); $arDocumentStates = CBPDocument::GetDocumentStates($documentType, $documentId); foreach ($arDocumentStates as $arDocumentState) { $arDocumentStateTasks = CBPDocument::GetUserTasksForWorkflow($GLOBALS["USER"]->GetID(), $arDocumentState["ID"]); print_r($arDocumentStateTasks); } ?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024