Skip to main content

Submit Data

Fungsi storeData()

  1. Fungsi storeData() akan tereksekusi ketika pada Frontend mengeksekusi baris kode berikut.

    await BpmnService.submitTask(businessKey, { module, table }, { ...data, decision });
  2. 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;
    }
  3. Untuk request data yang diterima oleh service sudah masuk ditahap cleaning, yang artinya $payload adalah data-data yang sudah terkena rules() pada model.

     $payload = $this->prepareSubmitData($model, $request);
  4. Object model akan diambil berdasarkan business key-nya dan melakukan proses simpan data menggunakan saveAction().

  5. 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

  1. Secara default tidak ada data yang dikirimkan Laravel ke Camunda ketika submit task ataupun start process.
  2. Oleh karena itu perlu mendaftarkan variabel yang ingin dikirim pada $processVariables di model.
  3. Contoh ingin mengirim variabel decision yang dikirimkan Frontend > Laravel > Camunda.
     protected array $processVariables = [
    'decision',
    ];