Skip to main content

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

NomorNama FungsiKeterangan
1.beforeCreateHookBertujuan untuk memanipulasi request yang masuk sebelum masuk ke logic create
2beforeCreateHookBertujuan untuk memanipulasi response sebelum direturn dari service ke controller
3beforeUpdateHookBertujuan untuk memanipulasi request yang masuk sebelum masuk ke logic create
4afterUpdateHookBertujuan 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

NomorNama FungsiKeterangan
1.beforeSubmitHookBertujuan untuk memanupulasi request sebelum di return ke fungsi submit
2afterSubmitHookBertujuan untuk memanipulasi response sebelum masuk ke controller
3storeDataFungsi 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