Rencana Eksekusi (Riwayat)

Setiap kali Workflow dipicu, sebuah rencana eksekusi akan dibuat untuk melacak proses eksekusi tugas tersebut. Setiap rencana eksekusi memiliki nilai status yang merepresentasikan status eksekusi saat ini, status ini dapat dilihat baik di daftar maupun detail riwayat eksekusi:

Status rencana eksekusi

Ketika semua Node di cabang utama berhasil dieksekusi sampai akhir alur dengan status "Selesai", seluruh rencana eksekusi akan berakhir dengan status "Selesai". Ketika Node di cabang utama mengalami status final seperti "Gagal", "Error", "Dibatalkan", "Ditolak", dll., seluruh rencana eksekusi akan dihentikan lebih awal dengan status yang sesuai. Ketika Node di cabang utama mengalami status "Menunggu", seluruh rencana eksekusi akan dijeda eksekusinya, namun tetap menampilkan status "Sedang berjalan", sampai Node yang menunggu dipulihkan untuk dilanjutkan. Tipe Node yang berbeda menangani status menunggu dengan cara yang berbeda, misalnya Node manual perlu menunggu pemrosesan manual, sedangkan Node tunda perlu menunggu sampai waktu tiba untuk melanjutkan eksekusi.

Status rencana eksekusi seperti pada tabel berikut:

StatusStatus Node Terakhir di Alur UtamaArti
Dalam antrian-Alur sudah dipicu dan rencana eksekusi dihasilkan, mengantri eksekusi
Sedang berjalanMenungguNode meminta jeda, menunggu input atau callback selanjutnya
SelesaiSelesaiTidak ada masalah, semua Node dieksekusi sesuai rencana satu per satu
GagalGagalKarena tidak memenuhi konfigurasi Node, menyebabkan kegagalan
ErrorErrorNode mengalami error program yang tidak ditangkap, berakhir lebih awal
DibatalkanDibatalkanNode yang menunggu dibatalkan dari luar oleh manajer alur, berakhir lebih awal
DitolakDitolakPada Node penanganan manual, ditolak secara manual sehingga alur tidak dilanjutkan

Pada contoh Memulai, kita sudah mengetahui bahwa melihat detail riwayat eksekusi Workflow dapat memeriksa apakah eksekusi semua Node berjalan normal selama proses eksekusi, serta status eksekusi dan data hasil setiap Node yang sudah dieksekusi. Pada beberapa alur dan Node lanjutan, hasil Node bisa juga ada beberapa, misalnya hasil Node Loop:

Hasil Node yang dieksekusi beberapa kali

Tips

Workflow dapat dipicu secara konkuren, namun eksekusinya berurutan satu per satu. Bahkan jika beberapa Workflow dipicu bersamaan, eksekusinya akan dilakukan secara berurutan, tidak paralel. Jadi, ketika muncul status "Dalam antrian", artinya ada Workflow lain yang sedang dieksekusi dan perlu menunggu.

Status "Sedang berjalan" hanya menandakan bahwa rencana eksekusi tersebut sudah dimulai, dan biasanya dijeda karena status menunggu dari Node internal, tidak berarti rencana eksekusi tersebut menempati sumber daya eksekusi di kepala antrian. Sehingga ketika ada rencana eksekusi yang "Sedang berjalan", rencana eksekusi lain yang "Dalam antrian" tetap dapat dijadwalkan untuk mulai dieksekusi.

Status Eksekusi Node

Status rencana eksekusi ditentukan oleh eksekusi setiap Node di dalamnya. Pada satu rencana eksekusi setelah pemicuan, setiap Node setelah dieksekusi akan menghasilkan status eksekusi, dan status ini akan menentukan apakah alur selanjutnya dilanjutkan. Biasanya, setelah Node berhasil dieksekusi, eksekusi akan berlanjut ke Node berikutnya, sampai semua Node selesai dieksekusi secara berurutan, atau dihentikan. Ketika menghadapi Node terkait kontrol alur, seperti cabang, loop, paralel, tunda, dll., arah eksekusi Node berikutnya akan ditentukan berdasarkan kondisi konfigurasi Node dan data konteks runtime.

Status yang mungkin dihasilkan setelah setiap Node dieksekusi seperti pada tabel berikut:

StatusStatus FinalPenghentian AwalArti
MenungguTidakTidakNode meminta jeda, menunggu input atau callback selanjutnya
SelesaiYaTidakTidak ada masalah, eksekusi berhasil, lanjut ke Node berikutnya sampai akhir
GagalYaYaKarena tidak memenuhi konfigurasi Node, menyebabkan kegagalan
ErrorYaYaNode mengalami error program yang tidak ditangkap, berakhir lebih awal
DibatalkanYaYaNode yang menunggu dibatalkan dari luar oleh manajer alur, berakhir lebih awal
DitolakYaYaPada Node penanganan manual, ditolak secara manual sehingga alur tidak dilanjutkan

Selain status menunggu, status lainnya merupakan status final dari eksekusi Node. Hanya status final "Selesai" yang akan melanjutkan eksekusi, selain itu akan menghentikan eksekusi seluruh alur lebih awal. Ketika Node berada dalam alur cabang (cabang paralel, kondisi, loop, dll.), status final yang dihasilkan dari eksekusi Node akan ditangani oleh Node yang membuka cabang tersebut, dan demikian seterusnya untuk menentukan alur seluruh alur.

Misalnya ketika kita menggunakan Node kondisi dengan mode "Lanjutkan jika 'Ya'", saat dieksekusi jika hasilnya "Tidak", eksekusi seluruh alur akan dihentikan lebih awal dan keluar dengan status gagal, tidak melanjutkan Node berikutnya, seperti pada gambar di bawah:

Eksekusi Node gagal

Tips

Semua status final selain "Selesai" dapat dianggap sebagai kegagalan, namun alasan kegagalannya berbeda-beda, Anda dapat mengetahui alasan kegagalan lebih lanjut dengan melihat hasil eksekusi Node.