All Products
Search
Document Center

DataWorks:Konfigurasikan node do-while

Last Updated:Mar 26, 2026

Node do-while beroperasi seperti pernyataan do-while dalam bahasa pemrograman: menjalankan alur kerja internal dalam sebuah loop dan mengevaluasi kondisi keluar di akhir setiap iterasi. Loop dijalankan minimal satu kali sebelum kondisi diperiksa. Anda dapat menggunakan node do-while secara mandiri atau mengombinasikannya dengan node assignment untuk melakukan iterasi atas sebuah result set.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Batasan

ConstraintDetail
EditionHanya tersedia di DataWorks Edisi Standar dan lebih tinggi
Maximum loopsMaksimal 1.024 iterasi per instans node
Parallel executionTidak didukung — setiap loop hanya dimulai setelah loop sebelumnya selesai

Cara kerja

Node do-while memiliki tiga komponen bawaan:

ComponentRoleCan be deleted?
Start nodeMenandai awal setiap iterasi; tidak menjalankan logika bisnisTidak
Shell nodeNode pemrosesan bisnis contoh yang disediakan oleh DataWorks; dapat diganti dengan jenis node lainTidak (ganti dengan jenis node lain sesuai kebutuhan)
End nodeMengevaluasi kondisi keluar; mengembalikan True untuk melanjutkan atau False untuk menghentikanTidak

Eksekusi mengikuti urutan berikut pada setiap iterasi:

  1. Start node memberi sinyal awal loop.

  2. Node internal dijalankan sesuai urutan dependensi.

  3. End node mengevaluasi kondisi keluar.

  4. Jika end node mengembalikan True, iterasi berikutnya dimulai. Jika mengembalikan False, loop berakhir.

Variabel bawaan yang tersedia untuk semua node internal:

VariableDescriptionStarting value
${dag.loopTimes}Jumlah iterasi saat ini1
${dag.offset}Offset jumlah iterasi saat ini dari angka 10

Node internal mereferensikan parameter input dan output yang dikonfigurasi pada node do-while menggunakan ${dag.<parameter name>}.

Buat node do-while

  1. Buka halaman DataStudio. Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih Wilayah yang diinginkan. Di panel navigasi kiri, pilih Data Development and Governance > Data Development. Pada halaman yang muncul, pilih ruang kerja yang diinginkan dari daftar tarik-turun, lalu klik Go to Data Development.

  2. Buat node tersebut. Arahkan kursor ke ikon 新建 lalu pilih Create Node > General > do-while. Atau, temukan alur kerja target di panel kiri, klik nama alur kerja tersebut, klik kanan General, lalu pilih Create Node > do-while.

  3. Pada kotak dialog Create Node, atur parameter Name dan Path, lalu klik Confirm.

Contoh: lakukan loop lima kali dan cetak jumlah iterasi

Contoh ini menjalankan node do-while tepat lima kali iterasi. Pada setiap iterasi, shell node mencetak nomor loop saat ini.

Edit shell node

  1. Klik ganda shell node untuk membuka tab konfigurasinya.

  2. Masukkan kode berikut di editor kode:

    echo ${dag.loopTimes} ----Tampilkan jumlah loop saat ini.

    ${dag.loopTimes} adalah variabel tercadang bawaan yang menyimpan jumlah iterasi saat ini, dimulai dari 1. Semua node internal node do-while dapat mereferensikannya. Untuk contoh penggunaan, lihat Variabel bawaan dan Contoh nilai variabel.

  3. Simpan node tersebut.

    Penting

    Simpan setelah setiap perubahan kode. Jika Anda melakukan commit tanpa menyimpan, versi yang dikomit tidak akan mencakup perubahan terbaru Anda.

Konfigurasi end node

  1. Klik ganda end node untuk membuka tab konfigurasinya.

  2. Pilih Python dari daftar drop-down Language.

  3. Masukkan kondisi keluar berikut:

    if ${dag.loopTimes}<5:
     print True;
    else:
     print False;

    Kondisi ini membandingkan dag.loopTimes dengan 5. Pada iterasi kelima, dag.loopTimes bernilai 5, sehingga ${dag.loopTimes}<5 dievaluasi sebagai False dan loop berhenti. Iterasi 1 hingga 4 mengembalikan True dan melanjutkan loop.

Commit dan deploy node do-while

  1. Klik ikon 保存 di bilah alat atas untuk menyimpan node.

  2. Klik ikon 提交 untuk melakukan commit node. Pada kotak dialog Submit, isi Change description. Sebelum melakukan commit, konfigurasikan parameter Rerun dan Parent Nodes pada tab Properties.

    Aktifkan Tinjauan kode untuk memvalidasi kode task sebelum penerapan. Node yang telah dikomit hanya dapat diterapkan setelah lolos tinjauan kode. Lihat Tinjauan kode.
  3. Jika ruang kerja Anda berada dalam mode standar, klik Deploy di pojok kanan atas tab konfigurasi node untuk menerapkan node ke lingkungan produksi. Lihat Deploy tasks.

Uji node dan lihat log eksekusi

Node do-while tidak dapat diuji secara langsung di DataStudio. Lakukan commit dan deploy alur kerja ke Operation Center, lalu jalankan dan periksa di sana.

Jika node do-while menggunakan nilai dari node assignment, jalankan kedua node tersebut (assignment dan do-while) selama pengujian.
  1. Pada tab konfigurasi node do-while, klik Operation Center di bilah alat atas.

  2. Di panel navigasi kiri, pilih Cycle Task Maintenance > Cycle Task.

  3. Temukan node do-while lalu klik DAG di kolom Actions.

  4. Pada grafik asiklik terarah (DAG), klik kanan node assignment lalu pilih Run > Current and Descendant Nodes Retroactively. Konfigurasikan parameter pada kotak dialog Backfill Data, lalu klik OK.

  5. Segarkan halaman Patch Data. Setelah instans pengisian ulang data berhasil dijalankan, klik DAG di kolom Actions pada instans do-while.

  6. Lihat log eksekusi.

    1. Klik kanan node do-while lalu pilih View Internal Nodes. Tampilan node internal memiliki tiga panel:

      PaneContent
      KiriRiwayat rerun — satu catatan per eksekusi instans node do-while
      TengahDaftar catatan loop — semua iterasi beserta statusnya
      KananDetail iterasi — klik catatan loop untuk melihat instans node di dalamnya
    2. Di panel tengah, klik loop yang telah selesai. Di panel kanan, klik kanan node yang diinginkan lalu pilih View Runtime Log.

    3. Klik Loop 5 di panel tengah untuk melihat log eksekusi shell node pada loop kelima.

Langkah berikutnya

  • Untuk meneruskan data antara alur kerja luar dan node internal, konfigurasikan parameter input dan output pada node do-while. Node internal mereferensikannya menggunakan ${dag.<parameter name>}.

  • Untuk melakukan iterasi atas sebuah result set, kombinasikan node do-while dengan node assignment. Gunakan ${dag.offset} (dimulai dari 0) untuk mengindeks setiap baris.

  • Node do-while selalu menjalankan minimal satu iterasi sebelum mengevaluasi kondisi keluar, sesuai perilaku pernyataan do-while. Node ini tidak mendukung pemeriksaan awal seperti loop while. Untuk mencapai perilaku for-each, gunakan ${dag.offset} dan konfigurasikan parameter input/output secara sesuai.