Очереди процессов
Настройка очередей процессов
| Очередь процессов - это интерфейс доступа к массиву процессов определённых типов. Очередь определяет вид таблицы, доступные сортировки и фильтры. Очереди отображаются в пользовательском интерфейсе оснасткой Процессы. | 
Редактирование очередей процессов производится в оснастке
В свойствах очереди определяются доступные в ней типы процессов, прочие параметры вводятся в конфигурации.
В конфигурации очереди процессов определяются колонки с выводимыми данными, доступные фильтры и прочие параметры. При выборе родительского типа процесса в разрешённых типах все вновь появившиеся типы процессов потомки также будут отображены в очереди без необходимости её пересохранения.
Колонки
Одна или несколько записей вида:
column.<id>.title=<title>
column.<id>.value=<type>
# необязательные параметры
# запрет переносов в столбце
column.<id>.nowrap=1
# выравнивание в столбце
column.<id>.align=<align>
# стиль заголовка столбца
column.<id>.titleStyle=<style>
# стиль столбца
column.<id>.style=<style>
# форматирование переносов строк в столбце к HTML формату (переносы строк отображаются в таблице)
column.<id>.formatToHtml=1
# обрезание значения столбца с добавлением ссылки на развёртывание полного текста, если длина текста больше <maxSymbols> символов
column.<id>.cutIfMore=<maxSymbols>
# обрезание значение столбца с отображением полного значения по наведению мыши
column.<id>.titleIfMore=<titleIfMore>
# отображать значение как ссылку
column.<id>.showAsLink=<linkTitle>
# значения параметров берутся у процесса, к которому данный привязан (родительский)
#column.<id>.process=linked
# преобразование значения в UNSIGNED - может быть полезным при сортировке
#column.<id>.convert=int
# агрегирующая функция
column.<id>.aggregate=<aggregateFunction>
Где:
- 
<id> - уникальный числовой идентификатор колонки;
 - 
<title> - заголовок;
 - 
<type> - выводимое значение, см. значения далее;
 - 
<align> - выравнивание: "left", "center", "right";
 - 
<style> - CSS стиль столбца;
 - 
<maxSymbols>, <titleIfMore> - максимальная не обрезаемая длина текста;
 - 
<linkTitle> - текст со ссылкой, linkUrl - разместить в качестве текста саму ссылку (значение колонки);
 - 
<aggregateFunction> - агрегирующая функция для столбца, допустимые значения: SUM, AVG, COUNT.
 
При указании для столбца агрегирующей функции - в заголовке столбца помимо его названия будет выводится значение функции для всех отфильтрованных процессов в квадратных скобках. Для каждого столбца допустима только одна функция.
| Использование агрегирующих функций предполагает дополнительный запрос для каждого вывода таблицы очереди процессов, что может замедлить отображение. | 
Выводимое значение <type> может быть следующим:
Таблица.Колонки
| Значение <type> | Что выводится | titleIfMore,cutIfMore | Сортировка | Вывод на печать | 
|---|---|---|---|---|
id  | 
Код процесса со ссылкой на открытие процесса на нём.  | 
Да  | 
Да  | 
Да  | 
type_title  | 
Наименование типа процесса  | 
Да  | 
Да  | 
Да  | 
status_title  | 
Текущий статус процесса.  | 
Да  | 
Да  | 
Да  | 
Дата и время установки текущего статуса.  | 
Да  | 
Да  | 
Да  | 
|
status_user  | 
Пользователь, установивший текущий статус.  | 
Да  | 
Да  | 
Да  | 
status_comment  | 
Комментарий текущего статуса.  | 
Да  | 
Да  | 
Да  | 
Дата и время последней установки статуса с кодом из перечисленных в <statusIds> через запятую.  | 
Да  | 
Да  | 
Да  | 
|
status:<statusIds>:user  | 
Пользователь, последним установивший статус из перечисленных в <statusIds> через запятую.  | 
Да  | 
Да  | 
Да  | 
status:<statusIds>:comment  | 
Комментарий последнего статуса с кодом из перечисленных через запятую в <statusIds>.  | 
Да  | 
Да  | 
Да  | 
priority  | 
Приоритет процесса. Строка в таблице очереди процесса окрашивается в цвет приоритета.  | 
Нет  | 
Да  | 
Выводится число  | 
Дата и время создания процесса.  | 
Да  | 
Да  | 
Да  | 
|
create_user  | 
Пользователь, создавший процесс.  | 
Да  | 
Да  | 
Да  | 
Дата и время закрытия процесса.  | 
Да  | 
Да  | 
Да  | 
|
close_user  | 
Пользователь, закрывший процесс.  | 
Да  | 
Да  | 
Да  | 
executors:<groupIds>:<roleIds>  | 
Исполнители процесса через запятую. Необязательные дополнения :<groupIds> и :<roleIds> позволяют ограничить исполнителей по группам и ролям, указывая их через запятую. Если необходимо ограничение только по ролям, использовать executors:*:<roleIds>.  | 
Да  | 
Нет  | 
Да  | 
groups:<roleIds>  | 
Группы решения процесса через запятую. Необязательное дополнение :<roleIds> позволит ограничить группы по ролям, указывая их через запятую.  | 
Да  | 
Нет  | 
Да  | 
description  | 
Описание.  | 
Да  | 
Да  | 
Да  | 
descriptionLink  | 
Описание процесса со ссылкой на открытие карточки процесса.  | 
Да  | 
Да  | 
Да  | 
param:<param_id>  | 
Значение параметра процесса с кодом <param_id>. Для параметров с типами date и datetime возможно указание формата и необходимости вывода непосредственного значения. Для параметров адресного типа возможно указание param:<param_id>:quarter и param:<param_id>:street - вывод наименования квартала и улицы.  | 
Да  | 
Да  | 
Да  | 
ifListParam:<paramId>:<value>:<existFag>:<notExistFlag>  | 
Вывод <existFlat> если списковый параметр процесса с кодом <paramid> установлен в значение <value> либо <notExistFlag> в противоположном случае, :<existFag>:<notExistFlag> - необязательные параметры, по умолчанию это символы " и "  | 
Нет  | 
Нет  | 
Нет, числовое значение спискового параметра  | 
messageInCount  | 
Количество входящих сообщений в процессе.  | 
Да  | 
Да  | 
Да  | 
Дата и время отправки последнего входящего сообщения.  | 
Да  | 
Да  | 
Да  | 
|
messageInUnreadCount  | 
Количество входящих непрочитанных сообщений в процессе.  | 
Да  | 
Да  | 
Да  | 
messageInLastText  | 
Текст последнего входящего сообщения.  | 
Да  | 
Да  | 
Да  | 
messageInLastUser  | 
Пользователь, принявший последнее входящее сообщение.  | 
Да  | 
Да  | 
Да  | 
messageInLastSubject  | 
Тема последнего входящего сообщения в процессе.  | 
Да  | 
Да  | 
Да  | 
messageOutCount  | 
Количество исходящих сообщений в процессе (обратите внимание, что все сообщение типа "Заметка" считаются исходящими).  | 
Да  | 
Да  | 
Да  | 
messageOutLastText  | 
Текст последнего исходящего сообщения.  | 
Да  | 
Да  | 
Да  | 
messageOutLastUser  | 
Пользователь, создавший последнее исходящее сообщение.  | 
Да  | 
Да  | 
Да  | 
messageOutLastSubject  | 
Тема последнего исходящего сообщения в процессе.  | 
Да  | 
Да  | 
Да  | 
linkCustomer:param:<param_id>  | 
Параметр привязанного к процессу контрагента, где <param_id> - код параметра. Возможны все те же опции, что и для столбца param.  | 
Да  | 
Да  | 
Да  | 
linkCustomer:<column>  | 
Значения столбца <column> из таблицы customer для привязанных контрагентов; id - код, title - наименование.  | 
Да  | 
Да  | 
Да  | 
linkObject:<object_type_prefix>  | 
Названия привязанных к процессу сущностей в таблице process_link с префиксом типа <object_type_prefix>.  | 
Да  | 
Да  | 
Да  | 
linkObject:<object_type_prefix>:id  | 
Аналогично предыдущему, но выводится идентификатор привязанного объекта. Например: linkObject:bgbilling-helpdesk:id - код привязанного топика HelpDesk.  | 
Да  | 
Да  | 
Да  | 
linkCustomerLink  | 
Перечень контрагентов, привязанных к процессу со ссылками на открытие их карточек.  | 
Нет  | 
Нет  | 
Нет  | 
linkObject:process  | 
Перечень кодов привязанных к процессу процессов со ссылками на открытие карточки через запятую.  | 
Нет  | 
Нет  | 
Нет  | 
linkObject:contract:<billingIds>  | 
Перечень привязанных к процессу договоров BGBilling, необязательный суффикс :<billingIds> позволяет уточнить идентификаторы биллингов через запятую.  | 
Нет  | 
Нет  | 
Нет  | 
linkProcessList:<linkType>:<open>  | 
Отображение привязанных процессов к данному процессу. Отображаются дата создания, статус и тип. Необязательный параметр <linkType> - тип связи, <*> - любой тип; <open> - если указать open, то выводятся только открытые процессы.  | 
Да  | 
Нет  | 
Да  | 
linkedProcessList:<linkType>:<open>  | 
Аналогично предыдущему, но выводятся процессы, к которым привязан данный.  | 
Да  | 
Нет  | 
Да  | 
actions  | 
Ссылки с операциями над процессом.  | 
Нет  | 
Нет  | 
Нет  | 
| Для всех типов столбцов, выводящих дату и время возможна установка после наименования столбца формата через двоеточие в формате Java. Например: status_dt:dd.MM.yy выведет только дату с двухзначным годом. Если столбец используется для сортировки и сортировка требуется по значению даты и времени а не по их строковому представлению, то вместо формата указывается :value. Если столбец требуется и для сортировки и для отображения - следует сделать два столбца один из которых скрыть | 
Очередь процессов может быть выведена в таблицу HTML либо на печать с помощью вызова Ещё - Печать.
По-умолчанию в таблице оснастки отображаются все настроенные столбцы, ограничить их и поменять порядок можно с помощью опции media.html.columns=<columnIds>, где <columnIds> - id столбцов через запятую в порядке вывода. Например:
media.html.columns=1,2,3
Допустима склейка значений нескольких столбцов на одной позиции с помощью символа сложения, например:
media.html.columns=1,3+4,5,6
Для вывода таблицы на печать определите таким же образом параметр конфигурации media.print.columns. Обратите внимание на таблицу, не все столбцы могут быть выведены на печать. Для выгрузки таблицы в XLS файл, укажите переменную media.xls.columns, правила заполнения аналогичны. Пункт выгрузки в Excel появляется также в Ещё. Выводимую в очереди таблицу с процессами можно настроить ещё более гибко, указав в конфигурации очереди:
rowConfig.1.media=html
rowConfig.1.stringExpressionHead=<configHead>
rowConfig.1.stringExpressionRow=<configRow>
Где <configHead> <configRow> и - JEXL выражения, генерирующие HTML для вывода заголовочного столбца таблицы и строк данных соответственно. В контекст JEXL выражения передаются объекты, при генерации заголовка: checkAllLink - строка, содержащая ссылку для выделения всех строк в случае использования обработчиков в очереди.
При генерации строки: priority - строка с цветом, соответствующим приоритету процесса; colX - HTML со значением столбца с кодом X.
Пример настройки отображения заголовка таблицы и строк с помощью JEXL (выражения можно более коротко оформить с помощью многострочных значений переменных конфигураций с JEXL выражениями):
column.1.title=ID
column.1.value=id
column.2.title=Причины
column.2.value=param:500
column.3.title=Работы
column.3.value=param:466
column.4.title=Создан
column.4.value=create_dt
column.5.title=Приор.
column.5.value=priority
column.6.title=Статус
column.6.value=status_title
column.7.title=Группа
column.7.value=groups
column.8.title=Адрес
column.8.value=param:345
column.30.title=Описание
column.30.value=description
column.31.title=Исполнители
column.31.value=executors
column.32.title=Время
column.32.value=param:610
column.33.title=Время (значение)
column.33.value=param:610:value
column.34.title=Действия
column.34.value=actions
column.34.align=center
configHead="<tr><td width='20' class='printHide'>".concat( checkAllLink).concat("< /td>")
configHead+=.concat( "<td>ID</td>" )
configHead+=.concat( "<td>Статус [создан]</td>" )
configHead+=.concat( "<td>Адрес</td>" )
configHead+=.concat( "<td>Описание</td>" )
configHead+=.concat( "<td>Группа [исполнители]</td>" )
configHead+=.concat( "<td>Время</td>" )
configHead+=.concat( "<td class='printHide'>Действия</td></tr>" )
configRow+="<tr bgcolor='".concat( urgColor ).concat( "' processId='" .concat( process.getId().toString() ).concat( "'>" )
configRow+=.concat( "<td class='printHide'><input type='checkbox' name='processId' value='" ).concat( process.getId().toString() ).concat( "'/></td>" )
configRow+=.concat( "<td>" ).concat( col1 ).concat( "</td>" )
configRow+=.concat( "<td><b>" ).concat( col6 ).concat( "</b> [" ).concat( col4 ). concat( "]" ).concat( "</td>" )
configRow+=.concat( "<td>" ).concat( col8 ).concat( col36 ).concat( "</td>" )
configRow+=.concat( "<td><b>" ).concat( process.getTypeTitle() ).concat( "</b><br/>" )
configRow+=.concat( process.getTypeId() != 9432 ? "Причины: ".concat( col2 ).concat ( "Работы: ").concat( col3).concat( "<br/>" ) : "" )
configRow+=.concat( process.getTypeId() == 9432 ? "И: ".concat( col40 ).concat( "; КТВ: ").concat( col45 ).concat( "; ТЛФ: ").concat( col50 ).concat( "; VOIP: "). concat( col55 ).concat( "<br/>" ) : "" )
configRow+=.concat( col30 ).concat( "</td>" )
configRow+=.concat( "<td>" ).concat( col7 ).concat( " [" ).concat( col31 ).concat( "]</td>" )
configRow+=.concat( "<td>" ).concat( col32 ).concat( "</td>" )
configRow+=.concat( "<td class='printHide'>" ).concat( col34 ).concat( "</td>" ) configRow+=.concat( "</tr>" )
rowConfig.1.media=html
rowConfig.1.stringExpressionHead={@configHead}
rowConfig.1.stringExpressionRow={@configRow}
В результате очередь будет выглядеть приблизительно подобным образом.
Обратите внимание на группировку различных данных в столбцах описание и статус.
Фильтры
Одна или несколько записей вида:
filter.<id>.type=<type>
# при необходимости сделать фильтр скрытым
#filter.<id>.show=0
# дополнительные обязательные и необязательные параметры различные для разных
фильтров
filter.<id>.<param1>=<value1>
..
filter.<id>.<paramX>=<valueX>
Где:
- 
<id> - уникальный числовой идентификатор фильтра;
 - 
<type> - тип фильтра, единственный обязательный параметр, см. значения далее. Порядок фильтров в конфигурации определяет их порядок в отображении. Пример. Фильтр по статусу с выбранным по-умолчанию значением и ограничениям на значения, фильтр по дате создания, по группам решения, исполнителям, коду и дате закрытия.
 
filter.1.type=status
filter.1.show=1
filter.1.availableValues=9,10,12
filter.1.defaultValues=10
#
filter.2.type=create_date
#
filter.3.type=groups
filter.3.defaultValues=17
#
filter.4.type=executors
#http://bgcrm.ru 70
#
filter.5.type=code
filter.6.type=close_date
Далее описываются фильтры по их типу (параметр <type>), обязательные и необязательные параметры. В таблице перечислены типы фильтров и их параметры
| Значение <type> | Фильтр | Информация | 
|---|---|---|
code  | 
Числовой код процесса.  | 
|
description  | 
Подстрока в описании процесса.  | 
|
openClose  | 
Открытые либо закрытые процессы.  | 
В отличие от фильтра по статусу данный фильтр может существенно ускорять выборку. Дополнительные параметры: - defaultValue - 'open' либо 'close'.  | 
create_date  | 
Диапазон дат создания процесса.  | 
Необязательные параметры: 
 
 | 
close_date  | 
Диапазон дат закрытия процесса.  | 
|
status_date  | 
Диапазон дат когда процесс последний раз был переведён в какой-то статус.  | 
Необязательные параметры: - availableValues - отображаемые в фильтре коды статусов, в порядке их отображения; если параметр не указан - отображаются все статусы.  | 
status  | 
Текущий статус процесса.  | 
Необязательные параметры: - width - ширина фильтра в пикселях; - values - жёстко заданные в фильтре коды статусов, в этом случае фильтр имеет смысл только скрытым; - availableValues - отображаемые в фильтре коды статусов, в порядке их отображения; если параметр не указан - отображаются все статусы; - defaultValues - коды статусов, выбранные в фильтре по умолчанию через запятую; - onEmptyValues - значения фильтра, используемые, если никакие значения пользователем не выбраны.  | 
type  | 
Тип процесса.  | 
Необязательные параметры: - width - ширина фильтра в пикселях; - availableValues - отображаемые в фильтре коды типов процессов, в порядке их отображения; если параметр не указан - отображаются все типы процессов; - defaultValues - коды типов процессов, выбранных в фильтре по умолчанию через запятую; - onEmptyValues - значения фильтра, используемые, если никакие значения пользователем не выбраны.  | 
groups  | 
Группы, исполняющие процесс. Без учёта ролей.  | 
Необязательные параметры: - width - ширина фильтра в пикселях; - availableValues - отображаемые в фильтре коды групп, в порядке их отображения; если параметр не указан - отображаются все группы; - defaultValues - коды типов групп, выбранных в фильтре по умолчанию через запятую; - onEmptyValues - значения фильтра, используемые, если никакие значения пользователем не выбраны.  | 
executors  | 
Исполнители процесса.  | 
Без учёта в составе какой группы участвует пользователь. Фильтр работает только совместно с фильтром groups, при этом в списке исполнителей отображаются пользователи, когда-либо состоявшие в группах, указанных в фильтре groups. Необязательные параметры: - width - ширина фильтра в пикселях; - values - "current", если необходимо отображать только процессы с текущим пользователем в исполнителях, фильтр в этом случае желательно скрыть; - showEmptyExecutor - "1", отображение в фильтре исполнителей пункта "не указан" для выбора процессов без исполнителя.  | 
grex  | 
Совмещённый фильтр по группам и исполнителям процесса.  | 
Фильтрует с учётом роли групп в процессах. Обязательные параметры: - roleId - код роли. Необязательные параметры: - groups.show - 0, если выбор групп необходимо скрыть; - groups.width - ширина выбора групп в пикселях; - groups.availableValues - отображаемые в фильтре коды групп, в порядке их отображения; если параметр не указан - отображаются все группы; - groups.defaultValues - коды типов групп, выбранных в фильтре по умолчанию через запятую; - groups.onEmptyValues - значения групп фильтра, используемые, если никакие значения пользователем не выбраны; - executors.show - 0, если выбор исполнителей необходимо скрыть; - executors.width - ширина выбора исполнителей в пикселях.  | 
param:<paramId>  | 
Параметр процесса с кодом <paramId>.  | 
Поддерживаются параметры одного из следующих типов: "list", "listcount", "date", "datetime", "address", "boolean". Обязательные параметры: - title - подпись к фильтру. Необязательные параметры: - orEmpty - "1", для включения в выборку процессов с пустым значением параметра; для параметров "date", "datetime". - width - ширина фильтра в пикселях; для параметров типа "list", "address"; - availableValues - доступные значения спискового параметра; - defaultValues - выбранные по-умолчанию значения спискового параметра; - onEmptyValues - значения параметра, используемые, если никакие значения пользователем не выбраны; - valueFrom - "curdate", для принудительного задания начала периода равным текущей дате; для параметров "date", "datetime"; - valueTo - "curdate", для принудительного задания конца периода равным текущей дате; для параметров "date", "datetime"; - fields - разделённые точкой с запятой поля для параметра типа "address", доступные значения: "city;quarter;street;house;flat"; поля город, улица и дом отображаются всегда, вне зависимости от наличия в конфигурации.  | 
linkedCustomer: title  | 
Подстрока в наименовании привязанного к процессу контрагента.  | 
Необязательные параметры: - width - ширина фильтра в пикселях.  | 
linkedCustomer: param: <paramId>  | 
Параметр привязанного к процессу контрагента с кодом <paramId>.  | 
Поддержан только тип list. Обязательные параметры: - title - подпись к фильтру. Необязательные параметры: - width - ширина фильтра в пикселях; - availableValues - доступные значения спискового параметра; - defaultValues - выбранные по-умолчанию значения спискового параметра; - onEmptyValues - значения параметра, используемые, если никакие значения пользователем не выбраны.  | 
customer  | 
Фильтр очереди по контрагентам  | 
Где,  Так же доступны стандартные ключи: 
  | 
Сортировка
Конфигурация количества последовательных сортировок (выпадающих списков с режимами сортировки).
sort.combo.count=<count>
Где:
- 
<count> - количество последовательных сортировок.
 
Пример:
sort.combo.count=3
Для каждого выпадающего списка возможно определение значния по-умолчанию:
sort.combo.<combo_id>.default=<defaultValue>
Где:
- 
<combo_id> - порядковый номер выпадающего списка начиная с 1;
 - 
<defaultValue> - выбранное по-умолчанию значение в выпадающем списке начиная с 1. Либо жёстко определить значение (используется в основном для мобильного интерфейса):
 
sort.combo.<combo_id>.value=<value>
Где:
- 
<combo_id> - порядковый номер выпадающего списка начиная с 1;
 - 
<value> - выбранное значение в выпадающем списке начиная с 1. Конфигурация режимов сортировок (значения для выпадающих списков), одна или несколько записей вида:
 
sort.mode.<id>.columnId=<col_id>
sort.mode.<id>.title=<title>
# обратный режим сортировки 1 - обратный, 0 - прямой
sort.mode.<id>.desc=1
Пример.
Режимы сортировки по типу процесса, выводимому в колонке 1 и режим обратной соротировке по id процесса.
sort.mode.1.columnId=1
sort.mode.1.title=Тип
sort.mode.2.column.id=2
sort.mode.2.title=Создан обр.
sort.mode.2.desc=1
Операции
Настраиваемые операции над процессом, ссылки которых выводятся в колонке с value=actions. Действия могут отображаться в виде ссылок либо кнопок.
По-умолчанию операции отображаются в виде ссылок, для "кнопочного" отображения добавить в конфигурацию очереди.
actionShowMode=buttons
Операции определяются в конфигурации очереди следующим образом:
action.<id>.title=<title>
action.<id>.statusIds=<statusIds>
action.<id>.commands=<commands>
#
# необязательные параметры
# подпись кнопки
action.<id>.shortcut=<shortcut>
action.<id>.style=<style>
Где:
- 
<id> - уникальный числовой идентификатор режима сортировки;
 - 
<title> - наименование операции.
 - 
<statusIds> - коды статусов через запятую, в которых разрешена операция;
 - 
<commands> - команды макроса обработки процесса;
 - 
<shortcut> - сокрашённый текст на кнопке;
 - 
<style> - атрибут HTML style для кнопки.
 
Пример настройки операций в очереди процессов.
actionShowMode=buttons
action.1.title=Принять
action.1.shortcut=П
action.1.statusIds=10,13
action.1.style=padding: 0.2em 0.6em;
action.1.commands=setStatus:9;setCurrentExecutor;refreshCurrentQueue
action.2.title=Принять и открыть
action.2.shortcut=ПО
action.2.statusIds=10,13
action.2.style=padding: 0.2em 0.6em;
action.2.commands=setStatus:9;setCurrentExecutor;open
action.3.title=Отложить
action.3.shortcut=ОТЛ
action.3.statusIds=9,10,15
action.3.style=padding: 0.2em 0.6em;
action.3.commands=setStatus:13;clearExecutors;refreshCurrentQueue
Обработчики
Обработчики позволяют производить пакетную обработку нескольких выделенных процессов. Например, менять статус или устанавливать исполнителя. Обработчики добавляются в конфигурации очереди записями следующего вида:
processor.<id>.title=<title>
processor.<id>.class=<class>
#
# необязательные параметры
processor.<id>.page=<jspPage>
processor.<id>.responseType=file
Где:
- 
<id>- числовой идентификатор обработчика;
 - 
<class> - динамический либо обычный класс, расширяющий ru.bgcrm.event.listener.DynamicEventListener
 - 
<jspPage> - JSP страница со свойствами обработчика.
 
Параметр responseType=file необходимо указывать для обработчиков, генерирующих файлы, например для печати. Пример обработчиков в конфигурации:
processor.1.title=Создать компанию обзвона Астериск
processor.1.class=ru.bgcrm.dyn.ufanet.otm.CreateTMCallCampaign
processor.2.title=Принять на
processor.2.class=ru.bgcrm.dyn.ufanet.stp.SetProcessExecutor
processor.2.page=/WEB-INF/jspf/user/process/queue/custom/executor_list.jsp
Обработчики отображаются в пункте меню Ещё очереди процессов наряду со стандартными пунктами.
В системе поставляется обработчик ru.bgcrm.event.listener.DefaultMarkedProcessor, позволяющий выполнять некоторые типовые обработки процессов в очереди. Шаблон добавления обработчика:
processor.<id>.title=<title>
processor.<id>.class=ru.bgcrm.event.listener.DefaultMarkedProcessor
processor.<id>.commands=<commands>
#
# если не печать
processor.<id>.page=/WEB-INF/jspf/user/process/queue/default_marked_processor.jsp
# если печать
processor.<id>.responseType=file
Где:
- 
<id> - числовой идентификатор обработчика;
 - 
<commands> - команды, см. далее. Поддержанные команды:
 - 
setStatus:<statusIds> - установка одного из статусов, коды которых через запятую перечислены в <statusIds>;
 - 
addExecutors:<groupIds> - добавление в процесс исполнителей из групп, коды которых перечислены через запятую в <groupIds>;
 - 
setParam:<paramId> - установка параметра процесса с кодом <paramId>, поддержаны типы 'date' и 'datetime';
 - 
print:<patternId> - команда должна быть единственной в обработчике; генерация бланка документа типа jspHtml либо pdfForm.
 
Шаблон документа для команды print должен обладать scope=processQueue, title=<любая строка>. Пример шаблона:
document:pattern.100.scope=processQueue
document:pattern.100.script=ru.bgcrm.plugin.document.docgen.CommonDocumentGenerator
document:pattern.100.type=jspHtml document:pattern.100.jsp=/WEB-INF/jspf/user/plugin/document/template/example /process_queue_processor_html.jsp
Выгрузка процессов в Excel файл
allowPrint=1
printColumns=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
#media.xls.columns=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
#включение выгрузки всех параметров
xls.exportAllParameters=1
Прочие параметры очереди
#в каком интерфейсе отображать очередь
showIn=<show_in>
#для мобильного интерфейса кнопки создания процессов в очереди
createAllowedProcessList=<process_id_1>:<title_1>;<process_id_2>:<title_2>;..<process_id_n>:<title_n>
#для стационарного интерфейса - запрет создания процессов в очереди (нет кнопки "Создать") allowCreateProcess=0
Где:
- 
<show_in> - может быть usermob, user; по-умолчанию принимается значение user.
 - 
<process_id_x> - код типа процесса;
 - 
<title_x> - наименование кнопки.