Процесс может ссылаться на другой процесс следующими способами:
- Ссылается (processLink) - простая ссылка одного процесса на другой;
- Порождён (processMade) - указание, что ссылаемый процесс создан из данного процесса;
- Зависит (processDepend) - процесс не может быть закрыт пока не закрыты все процессы на которые он ссылается данным способом.
Параметры в конфигурации типа процесса:
- processShowProcessLinks=1 - отображение в карточке процесса вкладки со связями процесса с другими процессами;
- processCreateLinkModeSelect=1 - привязка к процессу произвольных открытых процессов (цифра 3 на снимке далее).
Рассмотрим отображаемые на снимке экрана области В таблице 1 отображаются процессы, которые ссылаются на текущий процесс. В таблице 2 - те процессы, на которые ссылается текущий процесс.
Кнопки удаления связей должны быть включены специальной опцией в конфигурации действия "Удаление привязки".
Выпадающий список 3 - позволяет выбрать метод отношейний для привязки к текущему другого процесса, открытого в буфере.
Выпадающий список 4 - позволяет создать процесс и привязать к данному процессу. Содержимое списка определяется записями в конфигурации типа процесса вида:
processCreateLink.<n>.title=<title> processCreateLink.<n>.processTypeId=<typeId> processCreateLink.<n>.linkType=<linkType> # необязательные параметры #processCreateLink.<n>.checkExpression=<expression> #processCreateLink.<n>.copyParams=<copyRules> # копирование привязок #processCreateLink.<n>.copyLinks=<copyLinks>
Где:
- <n> - порядковый номер записи;
- <title> - наименование для списка;
- <linkType> - тип связи: "processLink" - ссылается, "processMade" - порождён, "processDepend" - зависит;
- <typeId> - код типа создаваемого процесса;
- <expression> - JEXL выражение, позволяющее показывать пункт списка в зависимости от условий;
- <copyRules> - через запятую коды копирующихся с текущего на создаваемый параметров, либо пары <from>:<to> - кодов однотипных параметров с какого на какой необходимо копировать;
- <copyLinks> - копирование привязок на процесс, 1 - копировать все привязки, возможно ограничение по маске типов объектов, например: contract%, customer%.
В JEXL процессор передаются объекты:
- processParam - объект класса ru.bgcrm.dao.expression.ParamValueFunction- параметры процесса.
Пример конфигурации. Создаётся ссылаемый процесс с кодом типа 9244, запись отображается в списке только если значение параметра с кодом 227 равно 1.
processShowProcessLinks=1 processCreateLink.1.title=Авария processCreateLink.1.processTypeId=9244 # processLink - ссылается, processMade - порождён processCreateLink.1.linkType=processLink processCreateLink.1.checkExpression=processParam.getParamValue(227) == 1 processCreateLink.1.copyParams=48,46,150,151 processCreateLink.1.copyLinks=1
Карточка привязанного процесса может быть открыта прямо на вкладке привязок кликом по строке таблицы. При этом открывается только левая часть карточки процесса с основными свойствами.
Краткое описание, выводящееся в таблице привязанных процессов, вид левого блока карточки процесса возможно настроить в конфигурации.