Submit Data
Fungsi storeData()
Fungsi
storeData()akan tereksekusi ketika pada Frontend mengeksekusi baris kode berikut.await BpmnService.submitTask(businessKey, { module, table }, { ...data, decision });Secara default file service hasil generate meng-override fungsi
storeData()dari parent class-nya.public function storeData(StoreRequestContract|FormRequest|Request $request, string $businessKey = null): BpmnModel
{
$payload = $this->prepareSubmitData($request);
$kpt193a = (new Kpt193Service(new Kpt193a()))->getByBusinessKey($businessKey);
$kpt171a = (new Kpt171Service(new Kpt171a()))->getByBusinessKey($businessKey);
$kpt194a = $this->getByBusinessKey($businessKey);
if ($kpt194a) {
$kpt194a = $this->saveAction($kpt194a, $payload);
} else {
$kpt194a = new Kpt194a();
$kpt194a->id = Str::orderedUuid()->toString();
$kpt194a->status = ApprovalDeputiStatus::REVIEW_KASATGAS->value;
$kpt194a->kpt193a_id = $kpt193a->id;
$kpt194a->kpt171a_id = $kpt171a->id;
$kpt194a = $this->saveAction($kpt194a, $payload);
}
return $kpt194a;
}Untuk request data yang diterima oleh service sudah masuk ditahap cleaning, yang artinya
$payloadadalah data-data yang sudah terkenarules()pada model.$payload = $this->prepareSubmitData($model, $request);Object model akan diambil berdasarkan business key-nya dan melakukan proses simpan data menggunakan
saveAction().Perlu diingat ketika model tidak ada, maka akan dibuat dengan menyimpan id parent. Yang nantinya berfungsi untuk mengambil model tersebut menggunakan berdasarkan business key.
$kpt194a->kpt193a_id = $kpt193a->id;
$kpt194a->kpt171a_id = $kpt171a->id;
Mengirim Data Ke Camunda
- Secara default tidak ada data yang dikirimkan Laravel ke Camunda ketika
submit taskataupunstart process. - Oleh karena itu perlu mendaftarkan variabel yang ingin dikirim pada
$processVariablesdi model. - Contoh ingin mengirim variabel
decisionyang dikirimkan Frontend > Laravel > Camunda.protected array $processVariables = [
'decision',
];