Start Existing Process atau Update Data
Pendekatan sama seperti Start Proses atau Simpan Data yang membedakan ialah cara mengkonsumsi API-nya.
Fungsi startOrUpdate()
Fungsi ini agar memudahkan memulai start pada data existing pada camunda atau hanya mengupdate data ke database.
static startOrUpdate = async (
businessKey: string,
probis: {
module: string;
table: string;
},
body: {
data: any;
withFile?: boolean;
},
kasatgasType?: string
) => {
if ([DefaultStatus.DRAFT, DefaultStatus.DRAFT.toString()].includes(body.data.status)) {
const url = `/api/${probis?.module}/${probis?.table}/${businessKey}`;
await axios.post(url, body.data);
} else {
const { data: responseData } = await this.start(
{
...probis,
modelId: businessKey,
},
body.data,
body.withFile
);
if (kasatgasType) {
await this.assignTaskKasatgas(responseData.data.id, kasatgasType, probis);
}
}
};
Contoh Implementasi
Adapun contoh dari pengimplemntasian fungsi tersebut ada di file src/pages/Penyelidikan/Kpm191/Kpm191Create.tsx.
if (id) {
await BpmnService.startOrUpdate(
id,
{ module, table },
{ data: postData },
KasatgasType.PENYELIDIKAN
);
}