Alurkerja Servicehook
Alurkerja memiliki service hook yang bisa di gunakan untuk mempermudah developer untuk melakukan override pada service yang ingin di ubah process bisnisnya
Servicehook CRUD
Terdapat fungsi yang dapat kita override dibawah ini
| Nomor | Nama Fungsi | Keterangan |
|---|---|---|
| 1. | beforeCreateHook | Bertujuan untuk memanipulasi request yang masuk sebelum masuk ke logic create |
| 2 | beforeCreateHook | Bertujuan untuk memanipulasi response sebelum direturn dari service ke controller |
| 3 | beforeUpdateHook | Bertujuan untuk memanipulasi request yang masuk sebelum masuk ke logic create |
| 4 | afterUpdateHook | Bertujuan untuk memanipulasi response sebelum direturn dari service ke controller |
Servicehook BPMN
Servichook BPMN hampir sama dengan CRUD ditambah beberapa fungsi yang dapat di gunakan antara lain
Servicehook usertask
Berikut Beberapa fungsi yang bisa di gunakan utnuk melakukan manipulasi codesebelum return ke controller maupun memanipulasi logic
public function beforeSubmitHook(string $taskId, Request $request, $busniessKey)
{
return $request;
}
public function afterSubmitHook(CrudModel $model): void
{
}
public function storeData($task, $model, $request, $businessKey)
{
$variables = $request->only(array_merge($model->getProcessVariables(), $model->getTransientProcessVariables()));
$allowedPayload = array_diff(array_keys($model->rules($request)), $model->getTransientProcessVariables());
$payload = $request->only($allowedPayload);
$payload[$model->getBusinessKeyFieldName()] = $businessKey;
$model->fill($payload);
if ($model->save()) {
$variables = ['_id' => $model->getKey()] + $variables;
$method = 'variableFor' . $task->taskDefinitionKey;
if (method_exists($model, $method)) {
$variables = $model->$method($variables);
}
Log::info(
'Submit Task',
['pid' => $task->processInstanceId, 'tid' => $task->id, 'variables' => $variables]
);
TaskClient::submit($task->id, $this->toBpmnVariables($variables));
}
return $model;
}
Berikut penjelasan untuk fungsi fungsi di atas
| Nomor | Nama Fungsi | Keterangan |
|---|---|---|
| 1. | beforeSubmitHook | Bertujuan untuk memanupulasi request sebelum di return ke fungsi submit |
| 2 | afterSubmitHook | Bertujuan untuk memanipulasi response sebelum masuk ke controller |
| 3 | storeData | Fungsi yang di gunakan untuk menyimpan ke database dengan contoh kasus 1. Usertask tidak ingin menambah data baru ke table 2. Ada Logic tambahan dan merubah logic exsisting |