laravolt / workflow
This package is used to connect Laravolt with Camunda BPMN to make it easier.
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
Sebuah engine untuk berkomunikasi dengan diagram BPMN melalui Camunda REST API untuk membuat aplikasi 2 minggu jadi.
Instalasi
composer require laravolt/workflow
Konfigurasi REST API
# Wajib
CAMUNDA_API_URL=https://<camunda-host>/rest
# Opsional
CAMUNDA_API_TENANT_ID=
CAMUNDA_API_USER=
CAMUNDA_API_PASSWORD=
Membuat Modul Baru
- Buat sebuah file BPMN
- Deploy ke server Camunda
- Jalankan perintah
php artisan workflow:make
- Sebuah file
config/workflow-modules/<module.php>
akan digenerate
Konfigurasi Modul
<?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, ], ], ], ], ];
Menampilkan Data
Buat sebuah Table dengan stuktur sebagai berikut:
<?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() ]; } }
Mutator
Buat sebuah class dengan struktur:
class InvoiceNumberGenerator { public function execute() { // do logic return $generatedInvoiceNumber; } }