Оглавление | ||||
---|---|---|---|---|
|
Общие сведения
Якорь | ||||
---|---|---|---|---|
|
Правка выполняется в оснастке Администрирование => Процессы => Типы процессов.
Типы процессов представляют из себя дерево.
...
Предупреждение |
---|
Не следует без необходимости порождать большое количество типов процессов, наследованных от общего предка и различающихся только наименованием. Тип - главный классифицирующий признак для очереди процессов и в случае их большого количества эффективность фильтрации сильно падает. Пользуйтесь списковым параметром для разделения таких процессов. |
Конфигурация
Якорь | ||||
---|---|---|---|---|
|
Далее описываются параметры конфигурации типа процесса, поддержанные ядром.
...
В конфигурации типа процесса может быть указано:
Блок кодаpanel | ||||
---|---|---|---|---|
| ||||
# код параметра - категории, который должен быть указан перед переводом процесса в конечный статус categoryParamId=<param_code> # требование заполненности параметров перед установкой статуса, одна или несколько записей вида requireFillParamIdsBeforeStatusSet.<status_to_code>=<param_codes> #скрытие в редакторе процесса ссылки полной правки описания
сокрытие (0) либо отображение 1 (на вкладке) сообщений, связанных с процессом
коды групп исполнителей через запятую, которые можно указать при созданисоздании процесса
HH:mm
шаблон для отображения карточки процесса вместо стандартного /WEB-INF/jspf/user/process/process/process.jsp , выполняйте рекомендации
HTML стиль левого и правого блока карточки процесса, по-умолчанию они делятся поровну .
500px;
|
Где:
...
100%
#processShowProcessLinks=1 #processCreateLinkModeSelect=1 # |
Где:
- <status_ids> - коды статусов через запятую;
- <groupIds> - коды групп через запятую.
Настройки поведения параметров процесса
Блок кода | ||
---|---|---|
| ||
# при ошибке правки параметров - обновление таблицы с параметрами, необходимо в случае, если при этом другие параметры изменяются динамическим кодом
onErrorChangeParamsReload=1
# код параметра - категории, который должен быть указан перед переводом процесса в конечный статус
categoryParamId=<param_code>
# требование заполненности параметров перед установкой статуса, одна или несколько записей вида
requireFillParamIdsBeforeStatusSet.<status_to_code>=<param_codes>
# сокрытие параметров в том или ином статусе, одна или несколько записей вида
hideParamIdsInStatus.<status_code>=<param_codes>
# параметры, редактор для которых скрыт в данном типе процесса (заполняются программно)
readonlyParamIds=<param_codes> |
Где:
- <param_code> - код параметра процесса, который должен быть указан при его закрытии, при этом редактор открывается под переключением статуса процесса;
- <status_to_code> - код статуса, в который переводится процесс;
- <param_codes> - коды параметров процесса через запятую;
- <status_ids> - коды статусов через запятую;
- <status_code> - код текущего статуса процеса;.
- <groupIds> - коды групп через запятую.
- code> - код текущего статуса процесса.
Для настройки отображения параметра в зависимости от гибкой проверки условия одно или несколько правил:
Блок кода | ||
---|---|---|
| ||
# отображение параметра, только если выполняется JEXL выражение
showParam.<paramId>.checkExpression=<JEXL_EXPR> |
Где:
- <paramId> - код параметра;
- <JEXL_EXPR> - JEXL выражение.
В JEXL процессор передаются следующие объекты для вызова функций:
- user - объект класса
- текущий пользователь;Crm_javadoc Name ru.bgcrm.model.user.User - process - объект класс
- изменяющийся процесс;Crm_javadoc Name ru.bgcrm.model.process.Process - processParam - объект класса
- параметры изменяющегося процесса.Crm_javadoc Name ru.bgcrm.dao.expression.ParamValueFunction
Ограничение количества исполнителей по группам
Одно или несколько правил вида:
Блок кода | ||||
---|---|---|---|---|
| ||||
executorRestriction.<n>.groupId=<groupId> executorRestriction.<n>.maxCount=<maxCount> |
Где:
- <n> - порядковый числовой номер правила;
- <groupId> - код группы пользователей;
- <maxCount> - максимальное число исполнителей из данной группы на процессе.
Просматриваются все правила в порядке их номеров.
Якорь | ||||
---|---|---|---|---|
|
Настройка левой области карточки процесса
Для настройки отображения левой области карточки процесса в конфигурацию типа добавляются одна или несколько конструкций вида:
Блок кода | ||||
---|---|---|---|---|
| ||||
processCard.<id>.mode=<modes> processCard.<id>.components=<components> |
Где:
- <id> - порядковый номер правила;
- <modes> - список через запятую режимов отображения карточки процесса, допустимые значения: card - просмотр карточки с открытием в буфере, linked - просмотр карточки процесса, привязанного к другому процессу с открытием в правой области первого процесса;
- <components> - через запятую компоненты левого блока, либо произвольные JSP файлы, позволяющие кастомизировать карту процесса; допустимые стандартные блоки: header, status, description, executors, links, params.
На снимке ниже подписаны соответствующие блоки левого блока карточки процесса.
...
Блок кода | ||||
---|---|---|---|---|
| ||||
processCard.1.mode=card processCard.1.components=header;jsp:/WEB-INF/jspf/user/process/process/custom/process_stp/contract_process_count.jsp;status;description;executors;params |
Якорь | ||||
---|---|---|---|---|
|
Создание процесса с привязанными объектами
Переменная в конфигурации типа процесса:
...
Разрешает создание процесса с привязанным данным объектом во вкладке Процессы объекта (ниже на скриншоте).
Копирование параметров поддерживается только для объектов, использующих стандартную систему параметров системы.
Типы объектов ядра:
- customer - контрагент.
Типы объектов плагинов описаны в документации плагинов.
...
Блок кода | ||||
---|---|---|---|---|
| ||||
create.in.objectTypes=customer create.in.copyParams=1:3;5:6 |
Якорь | ||||
---|---|---|---|---|
|
Описание процесса
Макрос описаний процесса позволяет сгенерировать текст для заголовка вкладки процесса или для перечня процессов.
...
Блок кода | ||||
---|---|---|---|---|
| ||||
processReference.<n>.objectTypes=<objectTypes> processReference.<n>.stringExpression=<macros> |
Где:
- <n> - порядковый номер записи;
- <objectTypes> - области, где используется данный макрос через запятую, перечень областей см. далее;
- <macros> - JEXL выражение, передаваемые объекты см. далее.
Перечень областей:
- customer - вкладка Процессы контрагента;
- processCard - заголовок вкладки процесса;
- linkedProcessList - список процессов к которым привязан данный процесс;
- linkProcessList - список процессов, привязанных к данному.
В JEXL процессор передаются объекты:
- process - объект класса
- процесс;Crm_javadoc Name ru.bgcrm.model.process.Process - processParam - объект класса
- параметры процесса.Crm_javadoc Name ru.bgcrm.dao.expression.ParamValueFunction - processLink - объект класса
- для работы с привязками процесса.Crm_javadoc Name ru.bgcrm.dao.expression.ProcessLinkFunction
Кроме того доступны переменные устанавливаемые в
Crm_javadoc | ||
---|---|---|
|
Пример конфигурации для генерации описания списке процессов контрагента из адреса и перечня услуг и на вкладке процесса из наименования контрагента и адреса:
Блок кода | ||||
---|---|---|---|---|
| ||||
processReference.1.objectTypes=customer processReference.1.stringExpression=u.toString( processParam.addressValues( 90, 'fromStreet' ) ) + " : " + u.toString( processParam.listValueTitles( 238 ) ) processReference.2.objectTypes=processCard processReference.2.stringExpression="Запрос док. ОИО: " + u.escapeXml( u.toString( processLink:linkTitles( "customer" ) ) ) + "<br/>" + u.escapeXml( u.toString( processParam.addressValues( 90, 'fromStreet' ) ) ) + " " |
Пример вывода исполнителей процесса в описании. Выводится в связанных процессах контрагентов и договорах биллинга bitel.
Блок кода | ||||
---|---|---|---|---|
| ||||
processReference.1.objectTypes=customer,contract:bitel
processReference.1.stringExpression=<<END
result = process.getDescription();
result += "<br><b>" + u.getObjectTitles(u.getObjectList(ctxUserList, process.getExecutorIds())) + "</b>";
return result;
END |
Как выглядит в интерфейсе.
...