-
Сделать zip-архив пакета и установить пакет через загрузчик модулей;
-
В корневой папке
SuiteCRM
выполнить командуcomposer install
Должен установится
php
пакетeducoder/pest
; -
В конфигурационном файле
SuiteCRM
прописать доступ к серверуCamunda
.Пример:
'camunda' => [ 'engine_url' => 'http://localhost:8080/engine-rest', 'url' => 'http://localhost:8080', ]
-
Создать схему бизнес-процесса
Camunda
и установить ее на серверCamunda
. -
В модуль
SuiteCRM
добавить поля-ключи для отображения панели согласований и блока истории обработки бизнес-процесса. Ниже приведен пример полей для бизнес-процесса в модулеAOS_Quotes
:$dictionary['AOS_Quotes']['fields']['camunda_process'] = array ( 'name' => 'camunda_process', 'type' => 'CamundaProcess', 'source'=>'non-db', 'inline_edit' => false, 'vname'=>'LBL_BUSINESS_PROCESS', 'processes' => array( 'quoteApproval' => array( 'include' => 'modules/CamundaProcesses/CamundaProcess.php', 'class' => 'CamundaProcess', ), ), ); $dictionary['AOS_Quotes']['fields']['camunda_history'] = array( 'name' => 'camunda_history', 'type' => 'CamundaProcess', 'source' => 'non-db', 'inline_edit' => false, 'vname' => 'LBL_BUSINESS_PROCESS', 'show_process_instances' => false, 'show_historic_processes' => true, 'processes' => $dictionary['AOS_Quotes']['fields']['camunda_process']['processes'], );
Массив
processes
содержит перечень подключенных к модулю бизнес-процессов (к модулю может быть подключено несколько бизнес-процессов).Ключи массива - идентификаторы бизнес-процессов в схеме
bpmn
вCamunda
(<bpmn:process id="quoteApproval"...
).Значения массива
processes
определяют классы-обработчики бизнес-процессов вSuiteCRM
:include
- путь к файлу, в котором определен класс;class
- название класса.
По умолчанию указывается класс
CamundaProcess
(поставляется в пакете интеграцииSuiteCRM
сCamunda
):array( 'include' => 'modules/CamundaProcesses/CamundaProcess.php', 'class' => 'CamundaProcess', )
Если требуется нестандартная процедура обработки бизнес-процесса, то необходимо:
- создать свой класс, унаследовав его от класса
CamundaProcess
; - прописать название этого класса и путь до файла, содержащего определение этого класса в массиве
processes
.
-
В модуль добавить перевод названия панели согласования. Например,
$mod_strings = array ( 'LBL_PANEL_BUSINESS_PROCESS' => 'Бизнес-процесс', 'LBL_BUSINESS_PROCESS' => 'Процесс', );
-
В
detailviewdefs
добавить панель согласования.- В массив
tabDefs
добавить:
'LBL_PANEL_BUSINESS_PROCESS' => array ( 'newTab' => true, 'panelDefault' => 'expanded', ),
-
В массив
panels
добавить (значениеname
- название добавленного поля-ключа):'LBL_PANEL_BUSINESS_PROCESS' => array ( array ( array( 'name' => 'camunda_process', 'hideLabel' => true, ), ), ),
- В массив
Добавить изменения в SuiteCRM
вручную (после чего, выполнить процедуру "восстановления"), или оформив пакет, и установив его при помощи загрузчика модулей.
В папке example находится пример настройки интеграции процесса для модуля AOS_Quotes
.
Смортрие инструкция по установке примера в файле example/README-ru.md
.