Mengelola pipa data kompleks—di mana lusinan tugas harus dijalankan dalam urutan yang tepat, pada waktu yang tepat, dan hanya setelah inputnya siap—memerlukan lebih dari sekadar penjadwal pekerjaan. Alur kerja periodik di DataWorks mengatasi tantangan ini dengan menggabungkan orkestrasi DAG visual dan model eksekusi pemicu ganda: instans tugas hanya dijalankan ketika waktu terjadwalnya tiba dan semua dependensi hulu berhasil. Pendekatan ini memastikan pipa data Anda berjalan secara stabil, teratur, dan mandiri.
Gunakan alur kerja periodik untuk:
Mengotomatiskan pemrosesan data sesuai jadwal tetap: Jalankan tugas sinkronisasi data, pembersihan data, atau agregasi pada interval harian, per jam, atau mingguan.
Membangun alur dependensi Grafik asiklik terarah (DAG) yang kompleks: Gunakan kanvas seret-dan-lepas visual untuk menghubungkan node MaxCompute SQL, Hologres, E-MapReduce (EMR), Python, dan jenis node lainnya dengan dependensi hulu dan hilir.
Menjadwalkan dan mengelola beberapa sub-tugas secara terpusat: Kelompokkan tugas-tugas yang terkait secara logis ke dalam satu alur kerja yang dijadwalkan dan dipantau sebagai satu kesatuan.
Alur kerja hanya tersedia di versi baru DataWorks Data Studio. Untuk memeriksa versi yang Anda gunakan, lihat FAQ.
Panduan cepat
Bagian ini memandu Anda membuat alur kerja periodik sederhana dari awal. Tujuannya: menghitung total jumlah pesanan dari hari sebelumnya secara otomatis dan menulis hasilnya ke tabel setiap hari pukul 00:05.
Pipa ini terdiri dari dua node:
Virtual node (
start_node) — titik awal kontrolMaxCompute SQL (
count_orders) — langkah pemrosesan data
Langkah 1: Siapkan mesin komputasi dan tabel hasil
Langkah ini menyiapkan infrastruktur yang dibutuhkan oleh alur kerja Anda.
Di ruang kerja target Anda, bind MaxCompute sebagai mesin komputasi.
Di MaxCompute, buat tabel hasil:
-- Buat tabel hasil untuk menyimpan jumlah pesanan harian CREATE TABLE IF NOT EXISTS dw_order_count_test ( order_date STRING, total_count BIGINT ) PARTITIONED BY (ds STRING); -- Dipartisi berdasarkan tanggal
Langkah 2: Buat alur kerja periodik
Langkah ini membuat wadah alur kerja yang menampung semua node dan konfigurasi penjadwalan Anda.
Buka halaman Workspaces di Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Temukan ruang kerja target dan pilih Shortcuts > Data Studio di kolom Actions. > Jika tombol menampilkan "Data Development", itu membuka versi lama. Jangan klik.
Klik ikon
di panel navigasi kiri. Di sebelah kanan Workspace Directories, klik  > Create Workflow.Di kotak dialog New Workflow, atur Scheduling Type menjadi Periodic Scheduling, masukkan nama (misalnya,
minimal_daily_demo), lalu selesaikan pembuatan.
Langkah 3: Orkestrasikan alur kerja
Langkah ini mendefinisikan struktur pipa menggunakan kanvas DAG.
Di kanvas alur kerja, seret Virtual node dari panel komponen kiri dan beri nama
start_node. > Node virtual mendefinisikan titik awal alur kerja dan tidak melakukan komputasi apa pun.Seret node MaxCompute SQL ke kanvas dan beri nama
count_orders.Klik titik di bagian bawah
start_nodedan seret garis ke bagian atascount_ordersuntuk membuat dependensi.
Langkah 4: Tulis kode node
Langkah ini menambahkan logika bisnis yang dijalankan setiap hari.
Aktifkan DataWorks Copilot untuk penyelesaian kode cerdas.
Klik dua kali
count_ordersuntuk membuka editor kode node.Tulis logika SQL. Contoh ini menggunakan data simulasi:
-- bizdate adalah parameter penjadwalan yang disuntikkan saat runtime. -- $[yyyymmdd-1] diselesaikan menjadi tanggal hari sebelumnya (misalnya, 20260119 jika hari ini 20260120). INSERT OVERWRITE TABLE dw_order_count_test PARTITION (ds='${bizdate}') SELECT '${bizdate}' AS order_date, COUNT(*) AS total_count FROM (SELECT 1 AS id UNION ALL SELECT 2 AS id) t; -- Data simulasi> Untuk detail pengembangan node, lihat Node MaxCompute SQL.
Klik Save.
Langkah 5: Konfigurasikan siklus penjadwalan dan parameter
Langkah ini memberi tahu alur kerja kapan harus dijalankan dan nilai tanggal apa yang diteruskan ke SQL.
Kembali ke kanvas alur kerja. Di panel kanan, buka Scheduling > Scheduling Time:
Atur Scheduling Cycle menjadi Daily.
Atur Schedule Time menjadi
00:05.
Di editor node
count_orders, buka Scheduling Configuration > Scheduling Parameters dan tambahkan:Parameter Name:
bizdateParameter Value:
$[yyyymmdd-1](tanggal hari sebelumnya)
Langkah 6: Debug node dan alur kerja
Debugging memvalidasi logika kode Anda sebelum alur kerja digunakan di lingkungan produksi.
Debug node:
Di editor node, klik Debugging Configurations di sisi kanan.
Di bawah Compute engine, pilih mesin MaxCompute dari Langkah 1.
Di bawah Script Parameters, atur Value Used in This Run (default ke tanggal kemarin).
Klik Run di bilah alat. Node dijalankan dengan parameter yang Anda tentukan.
Jika hasilnya sudah benar, klik Sync to Scheduling untuk menerapkan konfigurasi debug ke konfigurasi penjadwalan.
Debug seluruh alur kerja:
Di kanvas alur kerja, klik ikon
di bilah alat atas.Di kotak dialog, masukkan Current Run Value untuk variabel alur kerja. Misalnya, jika hari ini 20260120, atur
bizdatemenjadi20260119.
Langkah 7: Publikasikan ke produksi
Penerbitan membuat tugas periodik di lingkungan produksi yang dijalankan sesuai jadwal yang telah ditentukan.
Kembali ke alur kerja dan klik tombol
di bilah alat atas.Di panel penerbitan, sistem menjalankan pemeriksaan dependensi dan konfigurasi. Setelah pemeriksaan berhasil, klik Start Deployment to Production Environment dan pilih Full Deployment.
Buka Operation Center untuk memastikan alur kerja muncul di daftar tugas periodik.
Alur kerja sekarang dijalankan setiap hari pukul 00:05.
Jenis node
Semua orkestrasi di DataWorks dibangun dari node yang dihubungkan pada kanvas DAG. Tabel berikut merangkum semua jenis node yang tersedia dan kapan masing-masing digunakan.
| Node | Edisi yang dibutuhkan | Fungsinya | Kapan menggunakannya |
|---|---|---|---|
| Virtual node | Semua edisi | Placeholder tanpa operasi yang berfungsi sebagai awal alur kerja | Setiap alur kerja membutuhkannya sebagai node akar |
| Branch node | Standard dan seterusnya | Mengarahkan eksekusi ke jalur hilir berbeda berdasarkan hasil hulu | Ketika hasil berbeda (misalnya, "data ada" vs. "tidak ada data") memerlukan pemrosesan berbeda |
| Merge node | Standard dan seterusnya | Menunggu salah satu dari beberapa cabang hulu selesai, lalu melanjutkan ke hilir | Ketika beberapa cabang menyatu dan Anda hanya memerlukan satu yang berhasil sebelum melanjutkan |
| For-each node | Standard dan seterusnya | Melakukan iterasi atas set hasil dari node assignment dan menjalankan tugas hilir sekali per elemen | Ketika memproses daftar dinamis (misalnya, 31 provinsi, beberapa tabel) |
| Do-while node | Standard dan seterusnya | Melakukan loop hingga suatu kondisi terpenuhi, lalu keluar | Ketika memeriksa status eksternal secara berkala (misalnya, periksa setiap 10 menit hingga sinkronisasi selesai) |
| HTTP trigger | Enterprise Edition | Menerima permintaan HTTP dari sistem eksternal untuk memicu tugas DataWorks | Ketika sistem bisnis hulu perlu memicu pipa DataWorks |
| Check node | Professional dan seterusnya | Memantau resource eksternal (file OSS, partisi MaxCompute) dan memicu tugas hilir begitu resource siap | Ketika tugas hilir bergantung pada file atau partisi yang dihasilkan oleh proses eksternal |
| Dependency check node | Enterprise Edition | Memeriksa dependensi lintas-siklus atau lintas-ruang kerja dan memicu tugas hilir begitu dependensi terpenuhi | Ketika tugas harian harus menunggu keberhasilan semua 24 tugas per jam sebelumnya |
| SUB_PROCESS node | Semua edisi | Merujuk sub-alur kerja yang dapat digunakan kembali | Ketika beberapa alur kerja berbagi logika pemrosesan yang sama (misalnya, pembersihan, pemformatan) |
Untuk referensi lengkap tentang node, lihat Node umum di Data Studio versi baru.
Desain dan konfigurasi
Orkestrasi alur kerja
Orkestrasi sederhana
DataWorks memungkinkan Anda memecah pipa data kompleks—mulai dari ingest multi-sumber hingga pemodelan berlapis—menjadi node-node terpisah yang dihubungkan pada kanvas DAG visual. Ketika node hulu berhasil, ia langsung memicu tugas hilirnya, menjaga seluruh pipa tetap stabil dan teratur. Alurnya statis, linier, dan unidireksional.
Sub-alur kerja untuk penggunaan ulang logika
Ketika beberapa alur kerja berbagi langkah pemrosesan yang sama—seperti pembersihan data, statistik ringkasan, dan pemeriksaan kualitas—bungkus langkah-langkah tersebut sebagai sub-alur kerja yang dapat digunakan kembali menggunakan node SUB_PROCESS. Ini menghindari duplikasi logika di berbagai alur kerja: ketika langkah bersama berubah, Anda hanya perlu memperbarui sub-alur kerja tersebut.
Untuk membuat dan menggunakan sub-alur kerja:
Di alur kerja
child_workflow, atur Properties menjadi Referable. Alur kerja tersebut menjadi sub-alur kerja.Di alur kerja utama, seret node SUB_PROCESS dan pilih
child_workflowsebagai alur kerja yang dirujuk.
Sub-alur kerja memiliki batasan berikut:
Dependensi internal saja: Sub-alur kerja dan node internalnya tidak boleh bergantung pada tugas eksternal apa pun.
Isolasi: Sub-alur kerja tidak boleh menjadi dependensi langsung untuk tugas eksternal apa pun.
Passive trigger: Setelah dipublikasikan, tidak ada instans penjadwalan yang dihasilkan secara otomatis. Sub-alur kerja hanya dieksekusi ketika dipanggil oleh node SUB_PROCESS. > Untuk detailnya, lihat Node SUB_PROCESS.
Pemisahan alur kerja besar
Pisahkan alur kerja yang berisi lebih dari 100 node untuk menjaga kinerja dan keterbacaan:
Pisahkan berdasarkan domain bisnis: Pisahkan pipa pemrosesan untuk transaksi, pengguna, produk, dan subjek bisnis lainnya ke dalam alur kerja independen.
Bungkus logika umum dengan node SUB_PROCESS: Bungkus langkah-langkah yang dapat digunakan kembali (pembersihan data, pemformatan) ke dalam alur kerja yang dapat dirujuk.
Dependensi penjadwalan
Dependensi penjadwalan menghubungkan node yang terisolasi menjadi pipa data terurut. Sebuah node hanya dijalankan ketika waktu terjadwalnya tiba dan semua tugas hulu berhasil diselesaikan.
Untuk referensi lengkap, lihat Dependensi penjadwalan.
Ketika Anda menghubungkan node di kanvas, DataWorks secara otomatis membuat dependensi penjadwalan di antara mereka. Untuk dependensi lintas-alur kerja atau lintas-siklus yang lebih kompleks, konfigurasikan jenis dependensi berikut:
| Jenis dependensi | Kapan menggunakannya | Contoh |
|---|---|---|
| Dependensi tingkat alur kerja | Seluruh alur kerja harus menunggu tugas lain (alur kerja atau node mandiri) selesai sebelum dimulai | Alur kerja penjualan menunggu alur kerja data dasar selesai |
| Dependensi tingkat node | Node tertentu dalam alur kerja harus menunggu tugas eksternal yang tidak berada dalam alur kerja yang sama | Node ringkasan dalam alur kerja pelaporan menunggu node tertentu dalam sistem keuangan |
| Dependensi lintas-siklus | Instans siklus saat ini dari tugas bergantung pada instansnya dari siklus berbeda (node yang sama atau berbeda) | Instans hari ini menunggu instans kemarin berhasil—berguna untuk INSERT OVERWRITE pada tabel partisi atau perhitungan kumulatif |
| Dependensi lintas-ruang kerja | Tugas bergantung pada tugas di ruang kerja DataWorks lain, yang dihubungkan melalui nama ruang kerja dan nama output node, nama, atau ID | Tugas di ruang kerja pemasaran merujuk data kunci dari ruang kerja akuntansi |
Desain parameter
Parameter ruang kerja hanya tersedia di DataWorks Professional Edition dan seterusnya.
DataWorks mendukung sistem parameter empat tingkat, diurutkan dari cakupan tersempit hingga terluas. Gunakan tingkat yang sesuai untuk menghindari duplikasi konfigurasi di berbagai node.
| Tingkat | Jenis | Cakupan | Gunakan ketika |
|---|---|---|---|
| 1 (tersempit) | Parameter Node | Satu node | Menyuntikkan tanggal dinamis ke kode SQL saat runtime; mendukung konstanta, variabel bawaan, dan ekspresi waktu kustom. Lihat Sumber dan ekspresi untuk parameter penjadwalan. |
| 2 | Parameter konteks | Antar-node | Meneruskan nilai dari output node hulu ke node hilir; mendukung konstanta, variabel, dan hasil eksekusi. Lihat Konfigurasi dan penggunaan parameter konteks node. |
| 3 | Parameter alur kerja | Semua node dalam alur kerja | Mengelola pengenal bisnis bersama (misalnya, kode wilayah, awalan tabel) di puluhan node; sub-alur kerja dapat merujuk parameter alur kerja induknya. Lihat Parameter alur kerja. |
| 4 (terluas) | Parameter ruang kerja | Semua node dalam ruang kerja | Mendefinisikan nilai spesifik lingkungan (misalnya, nama database, jalur resource) yang berbeda antara pengembangan dan produksi. Lihat Gunakan parameter ruang kerja. |
Siklus penjadwalan
Perbedaan utama antara alur kerja periodik dan proses bisnis lama adalah bahwa siklus penjadwalan alur kerja dikonfigurasi sebagai satu kesatuan. Proses bisnis hanyalah folder untuk mengorganisasi tugas dan tidak dapat dijadwalkan secara keseluruhan.
Siklus penjadwalan diatur di tingkat alur kerja. Node di dalam alur kerja tidak dapat memiliki siklus independen sendiri—mereka mewarisi siklus alur kerja dan hanya dapat menentukan Delayed Execution Time sebagai offset dari waktu terjadwal alur kerja.
| Dimensi | Konfigurasi tingkat alur kerja | Perilaku node internal |
|---|---|---|
| Properti waktu | Waktu absolut (misalnya, 02:00) | Waktu relatif (penundaan dari waktu terjadwal alur kerja) |
| Properti siklus | Harian, per jam, per menit, mingguan, bulanan, atau tahunan | Mewarisi siklus alur kerja; tidak dapat diubah |
| Logika pemicu | Waktu fisik tercapai + tugas hulu berhasil | Waktu fisik + waktu penundaan + tugas hulu berhasil |
Debug dan jalankan
Debugging node tunggal
Debugging node tunggal memvalidasi logika internal satu node—seperti pernyataan SQL, skrip Python, atau tugas integrasi data—tanpa memicu dependensi hulu atau hilir apa pun.
Di panel kanan node, konfigurasikan Debugging Configurations:
Parameter Deskripsi Compute engine Pilih mesin komputasi yang telah di-bind. Jika tidak tersedia, pilih Create Compute Engine dari daftar drop-down. Pastikan mesin komputasi dan Resource Group terhubung. Lihat Solusi konektivitas jaringan. Resource Group Pilih Resource Group yang lulus uji konektivitas saat mesin komputasi di-bind. Beberapa node mendukung custom image pada Resource Group untuk memperluas lingkungan runtime. Dataset (opsional) Node Shell dan Python mendukung penggunaan dataset untuk mengakses data tidak terstruktur di OSS. Script parameters (opsional) Definisikan variabel dalam kode node menggunakan ${parameter_name}. Atur Parameter Name dan Parameter Value di sini. Untuk detailnya, lihat Sumber parameter penjadwalan dan ekspresinya.Associated role (opsional) Node Shell dan Python mendukung konfigurasi associated role untuk mengakses resource dari produk cloud lainnya. Klik Save, lalu klik Run.
Lihat log dan hasil eksekusi di bagian bawah editor node.
Debugging alur kerja
Debugging alur kerja memvalidasi dependensi data, penerusan parameter, dan urutan eksekusi di seluruh pipa. Setelah debugging node individual, debug alur kerja lengkap—atau sebagian pipa.
Di kanvas DAG alur kerja, klik Run di bilah alat atas. Untuk memvalidasi subset, klik kanan node dan pilih Run to This Node atau Run from This Node.
Di kotak dialog, tetapkan nilai sementara untuk semua variabel node (seperti
${bizdate}) untuk sesi debugging ini.Sistem mengeksekusi node secara berurutan dari atas ke bawah, mengikuti dependensi yang ditentukan di DAG. Pantau status node di kanvas secara real time dan klik node apa pun untuk melihat log eksekusinya.
Klik Back di sisi kiri kanvas untuk kembali ke keadaan pengembangan. Riwayat eksekusi di sebelah kanan menunjukkan semua catatan debugging.
Node alur kendali (loop, cabang, penggabungan) harus ditempatkan dalam alur kerja dan di-debug bersama node hulu dan hilir agar berfungsi dengan benar.
Manajemen dan operasi
Manajemen node alur kerja
DataWorks memungkinkan Anda mengimpor node mandiri ke dalam alur kerja, memindahkan node keluar dari alur kerja, atau mentransfer node antar alur kerja—tanpa harus membuat ulang dari awal.
Impor node yang sudah ada ke dalam alur kerja
Klik dua kali alur kerja target untuk membuka editor kanvasnya.
Di panel komponen kiri, beralih ke tab Import Node.
Filter berdasarkan Node Type, Path, atau Node Name untuk menemukan node target.
Seret node ke kanvas.
Move a node out of a workflow
Konversi menjadi node mandiri: Klik kanan node di pohon direktori atau kanvas, pilih Move out of Workflow, pilih jalur target, lalu konfirmasi.
Move to another workflow: Klik kanan node, pilih Move to another workflow, pilih alur kerja target, lalu konfirmasi. Anda juga dapat menyeret node langsung ke alur kerja target.
Sebelum memindahkan node, evaluasi dampaknya terhadap pipa yang ada dan konfigurasi ulang dependensinya di lokasi baru. Memindahkan node akan memutus dependensi hulu dan hilirnya di alur kerja asli, dan parameter alur kerja yang dikonfigurasi pada node tersebut menjadi tidak valid.
Klon alur kerja
Kloning alur kerja membuat salinan lengkap dan independen termasuk semua node internal, kode, dan dependensinya. Di Workspace Directories, klik kanan alur kerja target dan pilih Clone.
Sebelum melakukan commit dan publikasi alur kerja yang dikloning, tinjau hal-hal berikut untuk mencegah konflik data dan masalah pipa:
Tabel output dan sumber data target: Alur kerja yang dikloning menulis ke tabel target yang sama dengan aslinya. Perbarui nama tabel di kode (misalnya, dari
ods_user_tablemenjadidev_ods_user_table) untuk mencegah beberapa tugas menulis ke tabel yang sama.Dependensi hulu: Alur kerja yang dikloning masih bergantung pada tugas hulu asli secara default. Pastikan apakah ini merupakan perilaku yang diinginkan.
Konfigurasi parameter: Periksa parameter kustom—terutama yang melibatkan partisi tanggal (seperti
${bizdate}) dan jalur input/output—untuk memastikan nilainya benar di lingkungan baru.
Anda juga dapat mengkloning node individual dalam alur kerja, tetapi tidak dapat menyalin node antar alur kerja yang berbeda.
Manajemen versi
Menerbitkan node internal secara terpisah juga membuat versi baru dari alur kerja induknya.
Manajemen versi secara otomatis mencatat setiap perubahan pada alur kerja. Dari panel Versions di sisi kanan kanvas alur kerja, Anda dapat melihat, membandingkan, dan mengembalikan ke versi sebelumnya.
Panel Versi menampilkan dua jenis catatan:
Catatan Pengembangan: Dibuat setiap kali Anda mengklik Save. Ini adalah snapshot dalam proses dan tidak memengaruhi produksi.
Catatan Penerbitan: Dibuat ketika alur kerja berhasil diterbitkan ke produksi. Inilah yang dieksekusi oleh sistem penjadwalan produksi.
Kasus penggunaan khas
| Skenario | Tindakan |
|---|---|
| Tugas produksi gagal setelah perubahan kode | Gunakan Revert untuk mengembalikan alur kerja ke Catatan Penerbitan stabil terakhir, lalu terbitkan ulang |
| Anda perlu melacak kapan dan oleh siapa logika diubah | Gunakan daftar versi dan fitur compare untuk melihat setiap perubahan kode |
| Anda secara tidak sengaja menghapus kode yang belum disimpan | Kembalikan dari Catatan Pengembangan |
Sebelum mengembalikan:
Mengembalikan akan menimpa area pengembangan saat ini: Semua kode dan konfigurasi di kanvas diganti dengan versi historis. Jika Anda memiliki perubahan yang belum disimpan, cadangkan secara lokal sebelum mengembalikan.
Terbitkan ulang setelah mengembalikan: Mengembalikan hanya memulihkan keadaan pengembangan. Terbitkan manual alur kerja agar rollback berlaku di produksi.
Penerbitan dan operasi
Publish: Setelah mengembangkan alur kerja, terbitkan ke lingkungan produksi. Node di lingkungan pengembangan menghasilkan tugas periodik yang sesuai di produksi. Untuk detailnya, lihat Publikasikan node atau alur kerja.
Operasi: Alur kerja dijalankan secara periodik berdasarkan konfigurasi penjadwalannya. Buka Operation Center untuk memantau status penjadwalan dan mengelola tugas. Untuk detailnya, lihat Tugas operasional dasar untuk tugas periodik dan Tugas operasional untuk instans Data Backfill.
Status instans alur kerja
Status keseluruhan alur kerja mencerminkan keadaan akhir node internalnya. Memahami bagaimana sistem menentukan status alur kerja membantu Anda mendiagnosis masalah lebih cepat.
| Status | Kondisi pemicu | Yang perlu diperiksa |
|---|---|---|
| Running | Waktu terjadwal tercapai + tugas hulu berhasil | — |
| Succeeded | Semua node kritis berhasil diselesaikan | — |
| Failed | Satu node kritis gagal | Periksa log eksekusi node yang gagal di Operation Center |
| Failed (node dibekukan) | Node internal dibekukan atau ditangguhkan dan merupakan dependensi hulu | Batalkan pembekuan node atau konfigurasi ulang dependensinya |
| Succeeded (pengecualian merge node) | Merge node dievaluasi sebagai sukses meskipun beberapa cabang hulu gagal | Tinjau pemeriksaan hulu merge node untuk mencegah kegagalan diam |
Skenario khusus:
Membekukan instans Data Backfill dari tugas alur kerja mengatur instans alur kerja menjadi Succeeded.
Dalam skenario Data Backfill, jika sistem menentukan tugas tidak dapat dieksekusi, alur kerja diatur menjadi Failed.
Ada penundaan antara saat kejadian kegagalan aktual terjadi dan saat status instans diperbarui.
Batasan
| Item | Batas |
|---|---|
| Max nodes per workflow | 400 node (pertahankan di bawah 100 untuk kinerja kanvas optimal dan kemudahan pemeliharaan; pisahkan alur kerja besar menjadi yang lebih kecil) |
| Parallel instances | Alur kerja periodik tidak mendukung batas instans paralel maksimum di tingkat alur kerja. Atur batas ini di tingkat node individual melalui Scheduling Configuration. Lihat Konfigurasi penjadwalan node. |
| Sub-workflow dependencies | Sub-alur kerja (dengan "Can Be Referenced" diaktifkan) dan node internalnya tidak boleh bergantung pada tugas eksternal apa pun, dan tidak ada tugas eksternal yang boleh bergantung langsung padanya. Melanggar batasan ini menyebabkan error penerbitan. |
| Sub-workflow scheduling | Setelah diterbitkan, sub-alur kerja tidak menghasilkan instans penjadwalan secara otomatis. Ia hanya dijalankan ketika dipanggil oleh node SUB_PROCESS. |
Pertanyaan yang sering diajukan
Apa perbedaan antara alur kerja dan proses bisnis?
Alur kerja adalah unit yang dapat dijadwalkan—ia memiliki siklus penjadwalan sendiri dan menghasilkan instans tugas periodik. Proses bisnis hanyalah folder untuk mengorganisasi node; tidak dapat dijadwalkan secara keseluruhan.
Tugas saya berhasil dijalankan dalam mode debug tetapi gagal dalam eksekusi terjadwal. Apa penyebabnya?
Hampir selalu karena ketidaksesuaian lingkungan. Periksa:
Resource Group: Eksekusi debug sering menggunakan Resource Group pribadi, sedangkan eksekusi terjadwal menggunakan Resource Group produksi. Pastikan Resource Group produksi aktif, memiliki kapasitas, dan memiliki izin yang benar.
Izin: Akun yang digunakan untuk eksekusi terjadwal produksi mungkin tidak memiliki akses ke tabel, fungsi, atau resource tertentu.
Dependensi: Lingkungan produksi mungkin memiliki dependensi hulu yang berbeda dari lingkungan pengembangan, atau output hulu mungkin tidak ada di produksi.
Instans saya terjebak dalam status "waiting". Apa yang harus saya periksa?
Instans hanya dijalankan ketika waktu terjadwalnya tiba, resource tersedia, dan semua dependensi hulu berhasil. Periksa dalam urutan berikut:
Dependensi hulu belum selesai: Di Operation Center, buka tampilan Dependency instans untuk melihat tugas hulu mana yang belum berhasil.
Antrian resource penuh: Antrian Resource Group mesin komputasi mencapai kapasitas. Tugas sedang menunggu resource.
Alur kerja atau node dibekukan: Periksa apakah alur kerja atau node hulu mana pun dibekukan atau ditangguhkan secara manual.
Instans belum dihasilkan: Pastikan waktu terjadwal alur kerja telah lewat. Alur kerja yang baru diterbitkan menghasilkan instans pertamanya pada siklus penjadwalan berikutnya. Lihat Metode pembuatan instans: Pembuatan instan setelah penerbitan.
Seluruh alur kerja ditampilkan sebagai "failed" meskipun beberapa node berhasil. Mengapa?
Kegagalan jalur kritis: Jika node apa pun dengan dependensi hilir gagal, seluruh alur kerja ditandai Failed—meskipun cabang paralel lain berhasil.
Node dibekukan: Node internal yang dibekukan menyebabkan seluruh alur kerja gagal.