Direct Start & Direct Complete
Memulai proses dan menyelesaikan task lewat body JSON flat biasa, tanpa format variables[] milik REST API Engine Camunda.
Gambaran Umum
Endpoint start process (/start) dan complete task (/complete) bawaan AlurKerja mengharuskan setiap variabel ditulis sebagai objek {name, value, type, valueInfo} — bentuk asli variabel REST API Engine Camunda:
{
"variables": [
{ "name": "application_source", "value": "MOTION_BANK", "type": "String", "valueInfo": {} }
]
}Direct Start dan Direct Complete adalah pasangan endpoint alternatif yang menerima body JSON flat seperti API pada umumnya — satu key per variabel:
{
"application_source": "MOTION_BANK"
}Tipe variabel Camunda disimpulkan otomatis dari tipe JSON tiap value, jadi pemanggil tidak perlu menuliskannya. Keduanya tidak menggantikan /start dan /complete — akses, constraint form, activity history, dan webhook process.started berjalan persis sama untuk kedua bentuk body.
Autentikasi
Sama seperti endpoint tasklist lainnya:
| Header | Wajib | Keterangan |
|---|---|---|
Authorization | Ya | Bearer <token> — token pengguna/service yang berhak menjalankan proses atau task tersebut |
x-act-env | Tidak | Nama environment, dipakai untuk resolve tenant kalau workspace punya lebih dari satu environment |
Parameter query tenantId bersifat opsional dan hanya perlu diisi kalau environment/tenant tidak bisa diresolusi otomatis dari header di atas.
Direct Start Process
POST /api/v1/tasklist/{processName}/direct-start?tenantId={tenantId}
Content-Type: application/json
Authorization: Bearer <token>| Path parameter | Keterangan |
|---|---|
processName | Key/nama proses yang akan dijalankan, sama seperti pada /start |
Contoh body:
{
"application_source": "MOTION_BANK",
"loan_amount": 15000000,
"interest_rate": 2.5,
"is_priority": true,
"documents": ["ktp.pdf", "npwp.pdf"],
"applicant": {
"name": "John Doe",
"score": 720
}
}Contoh response (identik dengan /start):
{
"message": "Process BNPL started successfully",
"status": 200,
"data": {
"process_instance_id": "a1b2c3d4-...",
"process_definition_key": "BNPL",
"process_definition_name": "BNPL Loan Application",
"state": "ACTIVE",
"started_at": "2026-09-16T09:30:00Z",
"started_by": "budi.santoso"
}
}Variabel initiator (username pemanggil) tetap otomatis ditambahkan, sama seperti /start.
Direct Complete Task
POST /api/v1/tasklist/{processName}/tasks/{taskId}/direct-complete?tenantId={tenantId}
Content-Type: application/json
Authorization: Bearer <token>| Path parameter | Keterangan |
|---|---|
processName | Key/nama proses pemilik task |
taskId | Id task yang akan diselesaikan |
Contoh body:
{
"approval_status": "APPROVED",
"approved_limit": 20000000
}Contoh response (identik dengan /complete):
{
"message": "Process BNPL task 12345 Completed Successfully ",
"status": 200,
"data": {
"hasNextUserTask": true,
"nextTask": {
"taskId": "67890",
"taskName": "Verifikasi Dokumen",
"assignee": "citra.putri",
"assigneeEmail": "citra.putri@company.com"
}
}
}Pemetaan Tipe JSON ke Tipe Variabel Camunda
| Tipe value di JSON | Tipe variabel Camunda | Contoh |
|---|---|---|
| String | String | "MOTION_BANK" |
| Angka bulat | Integer atau Long (tergantung besar angkanya) | 15000000 |
| Angka pecahan | Double | 2.5 |
true / false | Boolean | true |
| Array | Object | ["ktp.pdf", "npwp.pdf"] |
| Object (nested JSON) | Object | {"name": "John Doe", "score": 720} |
Variabel bertipe
Object(array/nested JSON) disimpan Camunda dengan serialisasi Java bawaan (bukan sebagai teks JSON) — perilaku ini sama persis dengan yang terjadi kalau field itu dikirim lewat bodyvariables[]versi lama denganvalueberbentuk array/object.
Kapan Memakai yang Mana
/start dan /complete | direct-start dan direct-complete | |
|---|---|---|
| Bentuk body | Array variables[] {name, value, type, valueInfo} | JSON flat, satu key per variabel |
| Tipe variabel | Ditentukan sendiri lewat field type | Disimpulkan otomatis dari tipe JSON |
valueInfo (mis. metadata file) | Didukung | Tidak ada padanannya |
| Cocok untuk | Pemanggil yang sudah terbiasa dengan format variabel REST API Engine Camunda | Integrasi pihak ketiga yang mengirim payload JSON seperti API pada umumnya |
