Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление
indent25px
printablefalse

Общие сведения

Якорь
config_process
config_process

Правка выполняется в оснастке Администрирование => Процессы => Типы процессов.

Типы процессов представляют из себя дерево.

...

Предупреждение

Не следует без необходимости порождать большое количество типов процессов, наследованных от общего предка и различающихся только наименованием. Тип - главный классифицирующий признак для очереди процессов и в случае их большого количества эффективность фильтрации сильно падает. Пользуйтесь списковым параметром для разделения таких процессов.

Конфигурация

Якорь
process_type_config
process_type_config

Далее описываются параметры конфигурации типа процесса, поддержанные ядром.

...

В конфигурации типа процесса может быть указано:

Блок кодаpanel
languagetitlerubyКонфигурация
linenumbersfalse

#

код параметра - категории, который должен быть указан перед переводом процесса в конечный статус categoryParamId=<param_code> # требование заполненности параметров перед установкой статуса, одна или несколько записей вида requireFillParamIdsBeforeStatusSet.<status_to_code>=<param_codes> #

скрытие

в

редакторе

процесса

ссылки

полной

правки

описания


hideDescriptionChange=1


#

сокрытие

(0)

либо

отображение

1

(на

вкладке)

сообщений,

связанных

с

процессом


processShowMessages=1

# требования указания обязательного комментария при переводы в статусы


# сокрытие (0) либо отображение 1 (на вкладке) привязок процесса
processShowLinks=1
# требования указания обязательного комментария при переводы в статусы
requireChangeCommentStatusIds=<status_ids>


#

коды

групп

исполнителей

через

запятую,

которые

можно

указать

при

создани

создании процесса


onCreateSelectGroup=<groupIds>

# сокрытие параметров в том или ином статусе, одна или несколько записей вида hideParamIdsInStatus.<status_code>=<param_codes> # параметры, редактор для которых скрыт в данном типе процесса (заполняются программно) readonlyParamIds=<param_codes> # шаблон текста при добавлении в описание процесса текста кнопкой "Добавить" descriptionAddPattern=\n[${time} ${user}]\n\t${text} # произвольный шаблон времени для добавляемого текста


# шаблон текста при добавлении в описание процесса текста кнопкой "Добавить"
descriptionAddPattern=(${description}\n)[(${time}) (${user})]\t(${text})
# произвольный шаблон времени для добавляемого текста
descriptionAddPattern.timePattern=dd.MM

HH:mm


#


# JSP

шаблон

для

отображения

карточки

процесса

вместо

стандартного

/WEB-INF/jspf/user/process/process/process.jsp

, выполняйте рекомендации


#processCardJsp=/WEB-INF/jspf/user/process/process/custom/process_jur/zayavka.jsp


#

HTML

стиль

левого

и

правого

блока

карточки

процесса,

по-умолчанию

они

делятся

поровну

.


#style.processCardLeftBlock=min-width:

500px;


#style.processCardRightBlock=width:

100%

Где:

...

100%
#
# параметры для отображения в карточке связанных процессов

Якорь
process_type_config_process_link
process_type_config_process_link

#processShowProcessLinks=1
#processCreateLinkModeSelect=1
#

Где:

  • <status_ids> - коды статусов через запятую;
  • <groupIds> - коды групп через запятую.

Настройки поведения параметров процесса

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

Для настройки отображения параметра в зависимости от гибкой проверки условия одно или несколько правил:

Блок кода
languageruby
# отображение параметра, только если выполняется JEXL выражение
showParam.<paramId>.checkExpression=<JEXL_EXPR>

Где:

  • <paramId> - код параметра;
  • <JEXL_EXPR> - JEXL выражение.

В JEXL процессор передаются следующие объекты для вызова функций:

  • user - объект класса
    Crm_javadoc
    Nameru.bgcrm.model.user.User
    - текущий пользователь;
  • process - объект класс
    Crm_javadoc
    Nameru.bgcrm.model.process.Process
    - изменяющийся процесс;
  • processParam - объект класса
    Crm_javadoc
    Nameru.bgcrm.dao.expression.ParamValueFunction
    - параметры изменяющегося процесса.

Ограничение количества исполнителей по группам

...

Блок кода
languageruby
linenumbersfalse
executorRestriction.<n>.groupId=<groupId>
executorRestriction.<n>.maxCount=<maxCount>

Где:

  • <n> - порядковый числовой номер правила;
  • <groupId> - код группы пользователей;
  • <maxCount> - максимальное число исполнителей из данной группы на процессе.

Просматриваются все правила в порядке их номеров.

Якорь
process_card_configure
process_card_configure

Настройка левой области карточки процесса

...

Блок кода
languageruby
linenumbersfalse
processCard.<id>.mode=<modes>
processCard.<id>.components=<components>

Где:

  • <id> - порядковый номер правила;
  • <modes> - список через запятую режимов отображения карточки процесса, допустимые значения: card - просмотр карточки с открытием в буфере, linked - просмотр карточки процесса, привязанного к другому процессу с открытием в правой области первого процесса;
  • <components> - через запятую компоненты левого блока, либо произвольные JSP файлы, позволяющие кастомизировать карту процесса; допустимые стандартные блоки: header, status, description, executors, links, params.

На снимке ниже подписаны соответствующие блоки левого блока карточки процесса.

...

Блок кода
languageruby
linenumbersfalse
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

Якорь
create_process_with_link
create_process_with_link

Создание процесса с привязанными объектами

...

Разрешает создание процесса с привязанным данным объектом во вкладке Процессы объекта (ниже на скриншоте).

Копирование параметров поддерживается только для объектов, использующих стандартную систему параметров системы.

Типы объектов ядра:

  • customer - контрагент.

Типы объектов плагинов описаны в документации плагинов.

...

Блок кода
languageruby
linenumbersfalse
create.in.objectTypes=customer
create.in.copyParams=1:3;5:6

Якорь
processReference
processReference

Описание процесса

Макрос описаний процесса позволяет сгенерировать текст для заголовка вкладки процесса или для перечня процессов.

...

Блок кода
languageruby
linenumbersfalse
processReference.<n>.objectTypes=<objectTypes>
processReference.<n>.stringExpression=<macros>

Где:

  • <n> - порядковый номер записи;
  • <objectTypes> - области, где используется данный макрос через запятую, перечень областей см. далее;
  • <macros> - JEXL выражение, передаваемые объекты см. далее.

Перечень областей:

  • customer - вкладка Процессы контрагента;
  • processCard - заголовок вкладки процесса;
  • linkedProcessList - список процессов к которым привязан данный процесс;
  • linkProcessList - список процессов, привязанных к данному.

В JEXL процессор передаются объекты:

  • process - объект класса
    Crm_javadoc
    Nameru.bgcrm.model.process.Process
    - процесс;
  • processParam - объект класса
    Crm_javadoc
    Nameru.bgcrm.dao.expression.ParamValueFunction
    - параметры процесса.
  • processLink - объект класса
    Crm_javadoc
    Nameru.bgcrm.dao.expression.ProcessLinkFunction
    - для работы с привязками процесса.

Кроме того доступны переменные устанавливаемые в

Crm_javadoc
Nameru.bgcrm.servlet.filter.SetRequestParamsFilter
.

Пример конфигурации для генерации описания списке процессов контрагента из адреса и перечня услуг и на вкладке процесса из наименования контрагента и адреса:

Блок кода
languageruby
linenumbersfalse
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' ) )  ) + "&nbsp;"

Пример вывода исполнителей процесса в описании. Выводится в связанных процессах контрагентов и договорах биллинга bitel.

Блок кода
languageruby
linenumbersfalse
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

Как выглядит в интерфейсе.

...

Документация BGCRM 3.0