laravolt / workflow
此包用于连接 Laravolt 与 Camunda BPMN,使其更容易使用。
1.0.5
2020-01-11 07:59 UTC
Requires
- php: >=7.1.3
- bensampo/laravel-enum: ^1.26
- guzzlehttp/guzzle: ^6.2
- illuminate/database: ^6.4
- illuminate/support: ~5.6 | 6.*
- laravolt/camunda: ^1.0
- laravolt/semantic-form: dev-master as 2.x-dev
- laravolt/suitable: ^3.6
- maatwebsite/excel: ^3.1
- phpoffice/phpword: ^0.17.0
- rkorebrits/htmltoopenxml: ^0.1.9
- spatie/data-transfer-object: ^1.10
- watson/rememberable: ^3.2
This package is auto-updated.
Last update: 2024-09-06 15:45:47 UTC
README
一个通过 Camunda REST API 与 BPMN 图表通信的引擎,使应用程序两周内完成。
安装
composer require laravolt/workflow
配置 REST API
# Wajib
CAMUNDA_API_URL=https://<camunda-host>/rest
# Opsional
CAMUNDA_API_TENANT_ID=
CAMUNDA_API_USER=
CAMUNDA_API_PASSWORD=
创建新模块
- 创建一个 BPMN 文件
- 部署到 Camunda 服务器
- 运行命令
php artisan workflow:make
- 将生成一个
config/workflow-modules/<module.php>
文件
模块配置
<?php return [ // sesuai Process Definition Key dari Camunda 'process_definition_key' => 'registration', // Judul modul, akan ditampilkan di tiap halaman 'label' => 'Registrasi', // Definisi tabel dan query untuk menampilkan data 'table' => \App\TableView\SomeModuleTableView::class, // Satu process BPMN bisa memiliki banyak Task Definition Key // Dibawah ini adalah whitelist task-task yang akan ditampilkan ketika melihat detail // sebuah Process Instance berdasar Module Key di atas 'whitelist' => [ [ 'label' => 'A Task Label', 'task' => 'task_name_1', // hanya tampilkan field-field berikut ini 'only' => ['field_1', 'field_2'], // mutators digunakan untuk mengubah value dari sebuah field yang akan disimpan 'mutators' => [ 'invoice_no' => [ \App\Services\InvoiceNumberGenerator::class, ], ], ], ], ];
显示数据
创建一个具有以下结构的表格
<?php declare(strict_types=1); namespace App\TableView; use Illuminate\Support\Facades\DB; use Laravolt\Suitable\Columns\Numbering; use Laravolt\Suitable\Columns\Text; use Laravolt\Workflow\Tables\Table; class SomeModuleTableView extends Table { // query untuk menampilkan data, bisa pakai Query Builder, bisa pakai Eloquent public function source($sqlOnly = false) { return DB::table('foo')->paginate(); } // definisi kolom, sesuai https://laravolt.dev/docs/suitable/ protected function columns() { return [ Numbering::make('No'), Text::make('process_instance_id'), // dan kolom lainnya sesuai kebutuhan... // CRUD buttons $this->buttons() ]; } }
更改器
创建一个具有以下结构的类
class InvoiceNumberGenerator { public function execute() { // do logic return $generatedInvoiceNumber; } }