Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris
Persetujuan adalah bentuk alur kerja yang dirancang khusus untuk dimulai dan diproses secara manual oleh manusia guna memutuskan status data terkait. Umumnya digunakan untuk manajemen alur kerja otomatisasi kantor atau tugas pengambilan keputusan manual lainnya, misalnya Anda dapat membuat dan mengelola alur kerja manual untuk skenario seperti "pengajuan cuti", "persetujuan penggantian biaya", dan "persetujuan pengadaan bahan baku".
Plugin Persetujuan menyediakan jenis alur kerja (pemicu) khusus "Persetujuan (event)" dan node "Persetujuan" khusus untuk alur kerja ini. Dikombinasikan dengan koleksi kustom dan blok kustom unik NocoBase, Anda dapat dengan cepat dan fleksibel membuat dan mengelola berbagai skenario persetujuan.
Saat membuat alur kerja, pilih jenis "Persetujuan" untuk membuat alur kerja persetujuan:

Setelah itu, di antarmuka konfigurasi alur kerja, klik pemicu untuk membuka dialog guna konfigurasi lebih lanjut.
Plugin Persetujuan NocoBase dirancang untuk fleksibilitas dan dapat digunakan dengan koleksi kustom apa pun. Ini berarti konfigurasi persetujuan tidak perlu mengonfigurasi ulang model data, melainkan langsung menggunakan kembali koleksi yang sudah ada. Oleh karena itu, setelah masuk ke konfigurasi pemicu, pertama-tama Anda perlu memilih koleksi untuk menentukan pembuatan atau pembaruan data koleksi mana yang akan memicu alur kerja ini:

Kemudian, dalam formulir untuk membuat (atau mengedit) data untuk koleksi yang sesuai, ikat alur kerja ini ke tombol kirim:

Setelah itu, ketika pengguna mengirimkan formulir ini, alur kerja persetujuan yang sesuai akan terpicu. Data yang dikirimkan tidak hanya disimpan di koleksi yang sesuai, tetapi juga akan diambil snapshot-nya ke dalam alur persetujuan untuk ditinjau dan digunakan oleh pemberi persetujuan berikutnya.
Jika sebuah alur kerja persetujuan memungkinkan pemrakarsa untuk menariknya kembali, Anda perlu mengaktifkan tombol "Tarik Kembali" dalam konfigurasi antarmuka pemrakarsa:

Setelah diaktifkan, persetujuan yang dimulai oleh alur kerja ini dapat ditarik kembali oleh pemrakarsa sebelum diproses oleh pemberi persetujuan mana pun. Namun, setelah diproses oleh pemberi persetujuan di node persetujuan berikutnya, persetujuan tersebut tidak dapat lagi ditarik kembali.
Setelah mengaktifkan atau menghapus tombol tarik kembali, Anda perlu mengklik simpan dan kirim di dialog konfigurasi pemicu agar perubahan berlaku.
Terakhir, Anda perlu mengonfigurasi antarmuka formulir pemrakarsa. Antarmuka ini akan digunakan untuk tindakan pengiriman saat memulai dari blok pusat persetujuan dan saat memulai kembali setelah penarikan. Klik tombol konfigurasi untuk membuka dialog:

Anda dapat menambahkan formulir pengisian untuk antarmuka pemrakarsa berdasarkan koleksi yang terikat, atau menambahkan teks deskriptif (Markdown) untuk petunjuk dan panduan. Formulir ini wajib ditambahkan; jika tidak, pemrakarsa tidak akan dapat melakukan tindakan apa pun setelah masuk ke antarmuka ini.
Setelah menambahkan blok formulir, sama seperti di antarmuka konfigurasi formulir biasa, Anda dapat menambahkan komponen bidang dari koleksi yang sesuai dan mengaturnya sesuai kebutuhan untuk mengatur konten yang akan diisi dalam formulir.

Selain tombol kirim langsung, Anda juga dapat menambahkan tombol tindakan "Simpan sebagai Draf" untuk mendukung proses penyimpanan sementara:

Dalam alur kerja persetujuan, Anda perlu menggunakan node "Persetujuan" khusus untuk mengonfigurasi logika operasional bagi pemberi persetujuan untuk memproses (menyetujui, menolak, atau mengembalikan) persetujuan yang dimulai. Node "Persetujuan" hanya dapat digunakan dalam alur kerja persetujuan. Lihat Node Persetujuan untuk detail lebih lanjut.
Setelah mengonfigurasi dan mengaktifkan alur kerja persetujuan, Anda dapat mengikatnya ke tombol kirim formulir koleksi yang sesuai, memungkinkan pengguna untuk memulai persetujuan saat pengiriman:

Setelah mengikat alur kerja, ketika pengguna mengirimkan formulir saat ini, persetujuan akan dimulai.
Saat ini, tombol untuk memulai persetujuan hanya mendukung tombol 'Kirim' (atau 'Simpan') dalam formulir buat atau perbarui. Tombol ini tidak mendukung tombol 'Kirim ke alur kerja' (yang hanya dapat diikat ke 'Event setelah tindakan').
Pusat Tugas menyediakan titik masuk terpadu bagi pengguna untuk melihat dan memproses tugas-tugas mereka. Persetujuan yang dimulai oleh pengguna saat ini dan tugas-tugas yang tertunda dapat diakses melalui Pusat Tugas di bilah alat atas, dan berbagai jenis tugas yang harus dilakukan dapat dilihat melalui navigasi di sebelah kiri.





Untuk memulai dari blok data, Anda dapat melakukan panggilan seperti ini (menggunakan tombol buat koleksi posts sebagai contoh):
Di sini, parameter URL triggerWorkflows adalah kunci alur kerja; beberapa kunci alur kerja dipisahkan oleh koma. Kunci ini dapat diperoleh dengan mengarahkan kursor mouse ke nama alur kerja di bagian atas kanvas alur kerja:

Setelah panggilan berhasil, alur kerja persetujuan untuk koleksi posts yang sesuai akan terpicu.
Karena panggilan eksternal juga perlu didasarkan pada identitas pengguna, saat memanggil melalui API HTTP, sama seperti permintaan yang dikirim dari antarmuka biasa, informasi autentikasi harus disediakan, termasuk header Authorization atau parameter token (token yang diperoleh saat masuk), dan header X-Role (nama peran pengguna saat ini).
Jika Anda perlu memicu event untuk data terkait satu-ke-satu dalam tindakan ini (satu-ke-banyak belum didukung), Anda dapat menggunakan ! dalam parameter untuk menentukan data pemicu untuk bidang asosiasi:
Setelah panggilan di atas berhasil, event persetujuan untuk koleksi categories yang sesuai akan terpicu.
Saat memicu event setelah tindakan melalui API HTTP, Anda juga perlu memperhatikan status aktif alur kerja dan apakah konfigurasi koleksi cocok; jika tidak, panggilan mungkin tidak berhasil atau dapat menyebabkan kesalahan.
Parameter
collectionName: Nama koleksi target untuk memulai persetujuan. Wajib diisi.workflowId: ID alur kerja yang digunakan untuk memulai persetujuan. Wajib diisi.data: Bidang-bidang catatan koleksi yang dibuat saat memulai persetujuan. Wajib diisi.status: Status catatan yang dibuat saat memulai persetujuan. Wajib diisi. Nilai yang mungkin termasuk:
0: Draf, menunjukkan penyimpanan tanpa pengajuan persetujuan.1: Ajukan persetujuan, menunjukkan pemrakarsa mengajukan permintaan persetujuan, memasuki proses persetujuan.Ketika persetujuan yang dimulai (atau ditarik kembali) berada dalam status draf, Anda dapat menyimpan atau mengirimkannya lagi melalui API berikut:
Pemrakarsa dapat menarik kembali catatan yang sedang dalam persetujuan melalui API berikut:
Parameter
<approval id>: ID catatan persetujuan yang akan ditarik kembali. Wajib diisi.Setelah alur kerja persetujuan masuk ke node persetujuan, tugas yang harus dilakukan akan dibuat untuk pemberi persetujuan saat ini. Pemberi persetujuan dapat menyelesaikan tugas persetujuan melalui antarmuka atau dengan memanggil API HTTP.
Tugas yang harus dilakukan adalah catatan pemrosesan persetujuan. Anda dapat memperoleh semua catatan pemrosesan persetujuan pengguna saat ini melalui API berikut:
Di sini, approvalRecords sebagai sumber daya koleksi, juga dapat menggunakan kondisi kueri umum seperti filter, sort, pageSize, dan page.
Parameter
<record id>: ID catatan yang akan diproses persetujuannya. Wajib diisi.status: Bidang untuk status pemrosesan persetujuan. 2 berarti "Setuju", -1 berarti "Tolak". Wajib diisi.comment: Informasi catatan untuk pemrosesan persetujuan. Opsional.data: Modifikasi pada catatan koleksi di node persetujuan saat ini setelah persetujuan. Opsional (hanya berlaku saat disetujui).Sebelum versi v1.9.0, pengembalian menggunakan API yang sama dengan 'Setuju' dan 'Tolak', dengan "status": 1 mewakili pengembalian.
Mulai dari versi v1.9.0, pengembalian memiliki API terpisah:
Parameter
<record id>: ID catatan yang akan diproses persetujuannya. Wajib diisi.returnToNodeKey: Kunci node target untuk dikembalikan. Opsional. Ketika rentang node yang dapat dikembalikan dikonfigurasi dalam node, parameter ini dapat digunakan untuk menentukan node mana yang akan dikembalikan. Jika tidak dikonfigurasi, parameter ini tidak perlu diteruskan, dan secara default akan kembali ke titik awal untuk diajukan ulang oleh pemrakarsa.Parameter
<record id>: ID catatan yang akan diproses persetujuannya. Wajib diisi.assignee: ID pengguna yang akan didelegasikan. Wajib diisi.Parameter
<record id>: ID catatan yang akan diproses persetujuannya. Wajib diisi.assignees: Daftar ID pengguna yang akan ditambahkan sebagai penanda tangan. Wajib diisi.order: Urutan penanda tangan yang ditambahkan. -1 berarti sebelum "saya", 1 berarti setelah "saya".