Alurkerja Untuk Analyst Dan PO
Flow Kerja Pengejaan Alurkerja
Untuk develop alurkerja kita mengunakan flow Generate First Then Edit makadariitu sebelum membuat aplikasi kita akan membutuhkan dua item yang perlu di finalkan sebelum bisa mengerjakan yaitu :
BPMN
Bpmn harus di siapkan karena kita melakukan generate api proses bisnis dari file bpmn yang di buat oleh analyst dan po , flow ini juga akan membantu analyst untuk mengyiapkan flow, tampilan dan sekenario testing aplikasi yang akan membantu kedepannya
Beberapa rule sederhana yang di butuhkan untuk memulai pembuatan bpmn yang akan di gunakan agar mempermudah generate api dengan alurkerja
Standar Naming Process Definition , Sttart Process dan User Task
| No | Item | Standard Naming |
|---|---|---|
| 1 | File BPMN | Sama dengan nama id process definition key nya. Misalkan id process Leave maka nama file BPMN adalah Leave.bpmn diletakkan di folder resources |
| 2 | Process Definition Key | Gunakan format TitleCase (Huruf depan besar, sisanya kecil). Contoh : Leave Approval SampleProcess PengoejuanCutiPegawai |
| 3 | Task Definition Key | Gunakan format camelCase, diisi dengan kata kerja/kata benda. Contoh: review fix headApproval |
Standar Decision
| No | Item | Standard Naming |
|---|---|---|
| 1 | ID | Nama id sequence flow distandarisasi dengan format : {taskDefinitionKey}.{decision}. Contoh: fix.ok review.fix review.rejected |
| 2 | Name | Nama Dari flow yang di harapkank seperti Diterima Oleh Admin , Rejected Oleh Admin yang akan di gunakan pada decision remark |
| 1 | Decision | Gunakan Expression |
| 1 | Condition Expression | Gunakan Variable sesuai context contoh approval-admin approval-guru dengan menggunakan Kebabcase dengan menggunakan string jangan menggunakan boolean , contoh${approval-admin=="tolak"} atau ${approval-admin=="terima"} |
Standar Service Task
| No | Item | Standard Naming |
|---|---|---|
| 3 | ID | Gunakan format camelCase, diisi dengan kata kerja/kata benda. Contoh: review fix headApproval |
| 3 | Implementation | Gunakan Extenal jika menggunakan laravel karena laravel akan menggunakan tapic bukan menggunakan class , dan jika menggunakan java maka menggunakan delegate expression / java class |
| 3 | Topic | Topic mengunakan camelCase, diisi dengan kata kerja/kata benda. Contoh: review fix headApproval |
Standar Lane
lane atau biasa di gunakan sebagai pemisah role silahkan di beri name dengan role yang bersangkutan dan untuk id berikan isi dengna menggunakan UPPERCASE_ contoh SATGAS_PENYELIDIKAN
ERD Database
untuk erd database bisa dibuat mengunakan db diagram https://dbdiagram.io/ dengan beberapa rule yaitu 1 Process Definition harus memiliki 1 table dan setiap user task harus memiliki 1 table juga
contoh dengan bpmn diatas maka akan ada 4 table diantaranya
pada table table di atas terdapat 2 standar yaitu standar process instance dan standar usertask
Process Instance / Start Process
Digunakan untuk untuk start process
Table name diambil dari participantId yang di convert menjadi snake case dengan hasil pengajuan_izin_pegawai
Field Standar yang harus di miliki sebagai berikut
- id (int, uuid)
- process_instance_id (string)
- deleted_by(int, uuid)
- updated_by(int, uuid)
- created_by(int, uuid)
- updated_at(date time)
- created_at(date time)
Usertask
Digunakan untuk usertask
Table name diambil dari participantId ditambah dengan usertaskid yang di convert menjadi snake case dengan hasil pengajuan_izin_pegawai_konfirmasi_izin
Field Standar yang harus di miliki sebagai berikut
- id (int, uuid)
- business_key (int, uuid)
- created_by (int, uuid)
- updated_by (int, uuid)
- deleted_by (int, uuid)created_at
- (date)updated_at (date)
Pada usertask perlu ditambahkan field yang akan di jadikan variable sehingga decision yang di kirim ke camunda bisa di log dengan menggunakan activity log dengan
Berikut contoh kasus jika setelah usertask tersebut memiliki decision / gateway silahkan tambahkan variable yang di gunakan pada gateway tersebut ke field usertask
Pada gambar di atas setelah konfirmasi circle lead masuk ke decision dimana decision tersebut mengguakan konfirmasi_izin_tribe sebagai condition expressionnya sehingga field konfirmasi_izin_tribe harus di masukan ke field table pada erd