All Products
Search
Document Center

DataWorks:Konfigurasi node do-while

Last Updated:May 10, 2026

DataWorks menyediakan node do-while yang memungkinkan Anda menjalankan sebagian alur kerja secara berulang. Anda dapat menentukan logika bisnis loop di dalam node tersebut dan mengonfigurasi node End untuk mengatur kondisi keluar. Node do-while juga dapat digunakan bersama node assignment untuk melakukan iterasi terhadap set hasil yang diteruskan oleh node assignment. Topik ini menggunakan contoh skenario sederhana dan kompleks untuk menunjukkan cara mengonfigurasi node do-while.

Prasyarat

  • Anda memahami cara menyesuaikan alur kerja di dalam node do-while. Untuk informasi selengkapnya, lihat Komponen node dan orkestrasi alur kerja.

  • Anda memahami cara menggunakan variabel bawaan untuk mendapatkan parameter terkait loop di dalam node. Untuk informasi selengkapnya, lihat Variabel bawaan.

  • Anda memahami bahwa di dalam node do-while, node Start menandai awal loop, sedangkan node End menentukan logika keluar dari loop. Untuk informasi selengkapnya, lihat Contoh keluar dari loop: Contoh kode node End.

  • Anda memahami pertimbangan saat menguji node do-while dan melihat log-nya. Untuk informasi selengkapnya, lihat Catatan penggunaan.

Batasan

  • Node do-while hanya tersedia di DataWorks Edisi Standar dan edisi yang lebih baru. Untuk informasi selengkapnya, lihat Fitur edisi DataWorks.

  • Jumlah maksimum loop untuk node do-while adalah 1.024.

  • Eksekusi konkuren tidak didukung. Loop baru hanya dapat dimulai setelah loop sebelumnya selesai.

Buat node do-while

  1. Masuk ke Konsol DataWorks. Di wilayah target, klik Data Development and O&M > Data Development di panel navigasi kiri. Pilih ruang kerja dari daftar drop-down lalu klik Go to Data Development.

  2. Buat node do-while.

    1. Pada halaman Data Studio, arahkan pointer ke ikon Create icon lalu pilih Create Node > General > do-while.

      Atau, Anda dapat membuka alur kerja, klik kanan General, lalu pilih Create Node > do-while.

    2. Pada kotak dialog Create Node, tentukan nama dan path node.

    3. Klik OK.

Contoh

Bagian ini menjelaskan cara menggunakan node do-while untuk melakukan loop sebanyak 5 kali dan mencetak jumlah loop saat ini pada setiap iterasi. Berikut adalah panduan lengkap dari awal hingga akhir.

Edit kode node

Catatan

Secara default, node do-while terdiri dari tiga node: Start, Shell, dan End:

  • Node Start menandai awal loop dan tidak memiliki fungsi bisnis. Node ini tidak dapat dihapus.

  • Node Shell adalah contoh node pemrosesan bisnis yang disediakan oleh DataWorks.

  • Node End menandai akhir loop dan menentukan apakah iterasi berikutnya akan dimulai. Node ini digunakan untuk menentukan kondisi keluar dari node do-while dan tidak dapat dihapus.

Anda juga dapat menyesuaikan alur kerja di dalam node do-while sesuai kebutuhan bisnis dengan mengganti node Shell menggunakan node lain.

  1. Klik ganda node Shell untuk membuka halaman edit-nya.

  2. Masukkan kode berikut.

    echo ${dag.loopTimes} ----Cetak jumlah loop.
    • Variabel ${dag.loopTimes} adalah variabel sistem yang merepresentasikan jumlah loop saat ini, dimulai dari 1. Node internal dalam node do-while dapat langsung mereferensikan variabel ini. Untuk informasi selengkapnya tentang variabel bawaan, lihat Variabel bawaan dan Variabel bergantung konteks.

    • Pastikan untuk menyimpan kode setelah Anda mengubahnya di node Shell. Tidak ada prompt yang ditampilkan saat Anda mengirimkan node. Jika Anda tidak menyimpan kode, perubahan terbaru tidak akan diterapkan.

Tentukan kondisi keluar loop

Tentukan kondisi keluar agar loop berhenti pada iterasi ke-5.

  1. Klik ganda node End untuk membuka halaman edit-nya.

  2. Pada daftar drop-down Select Language, pilih Python.

  3. Masukkan kode berikut untuk menentukan kondisi keluar dari node do-while.

    if ${dag.loopTimes}<5: 
     print True; 
    else: 
     print False;
    • Variabel ${dag.loopTimes} adalah variabel sistem yang merepresentasikan jumlah loop saat ini, dimulai dari 1. Node internal dalam node do-while dapat langsung mereferensikan variabel ini. Untuk informasi selengkapnya tentang variabel bawaan, lihat Variabel bawaan dan Variabel bergantung konteks.

    • Kode ini membandingkan dag.loopTimes dengan angka 5 untuk membatasi jumlah total iterasi loop. Pada iterasi pertama, dag.loopTimes bernilai 1, pada iterasi kedua bernilai 2, dan seterusnya hingga iterasi kelima bernilai 5. Pada titik tersebut, ekspresi ${dag.loopTimes}<5 bernilai False, sehingga loop berhenti.

Kirimkan node do-while

  1. Klik ikon Save icon di bilah alat untuk menyimpan node.

  2. Klik ikon Submit icon di bilah alat untuk mengirimkan node.

    Saat mengirimkan node, masukkan Change Description di kotak dialog Submission dan tentukan apakah akan memulai tinjauan kode setelah node dikirimkan.

    Penting
    • Anda harus mengonfigurasi atribut Rerun attribute dan Parent Nodes sebelum dapat mengirimkan node.

    • Tinjauan kode membantu memastikan kualitas kode tugas dan mencegah error akibat penerapan kode yang belum ditinjau langsung ke lingkungan produksi. Jika tinjauan kode diaktifkan, kode node yang dikirimkan harus disetujui oleh peninjau sebelum dapat diterapkan. Untuk informasi selengkapnya, lihat Tinjauan kode.

    Jika Anda menggunakan ruang kerja dalam mode standar, Anda harus mengklik Deploy di pojok kanan atas halaman edit node untuk menerapkan tugas ke lingkungan produksi setelah dikirimkan. Untuk informasi selengkapnya, lihat Terapkan node.

Uji dan lihat log eksekusi

Proses pengiriman dan penerapan untuk node do-while sama dengan node biasa. Proses eksekusi online-nya juga sama, tetapi pengujian dari antarmuka Data Studio tidak didukung.

Catatan

Saat DataWorks berada dalam mode standar, Anda tidak dapat langsung menguji node do-while dari antarmuka Data Studio.

Untuk menguji dan memverifikasi hasil eksekusi node do-while, Anda harus mengirimkan dan menerapkan tugas yang berisi node do-while ke Operation Center, lalu menjalankan tugas node do-while dari halaman Operation Center. Jika Anda menggunakan nilai yang diteruskan oleh node assignment di dalam node do-while, jalankan kedua node tersebut (assignment dan do-while) secara bersamaan saat pengujian di Operation Center.

  1. Klik O&M Personnel di pojok kanan atas halaman untuk menuju ke Operation Center.

  2. Di panel navigasi kiri, klik Auto Triggered Task O&M > Periodic tasks.

  3. Pilih node yang diinginkan. Di DAG di sisi kanan, klik kanan node assignment lalu pilih Retroactive Instance > Current and Descendant Nodes Retroactively.

  4. Segarkan halaman Data Backfill Instance. Setelah instans backfill berhasil dijalankan, klik DAG di samping instans tersebut.

  5. Lihat log eksekusi node do-while.

    1. Klik kanan node do-while lalu pilih View Inner Nodes.

      Untuk node komposit seperti node do-while, Anda harus melihat node internal untuk melihat log eksekusi detail. Dalam contoh ini, loop dijalankan sebanyak 5 kali dan semua iterasi berhasil diselesaikan.

      Badan loop internal node do-while terdiri dari tiga bagian berikut:

      • Bagian kiri tampilan menunjukkan daftar riwayat rerun node do-while. Setiap kali instans do-while dijalankan secara keseluruhan, catatan baru ditambahkan ke daftar riwayat.

      • Bagian tengah menunjukkan daftar catatan loop, yang menampilkan jumlah total iterasi dan status setiap iterasi.

      • Bagian kanan tampilan menunjukkan detail setiap iterasi. Klik salah satu iterasi di daftar catatan loop untuk menampilkan status eksekusi setiap instans dalam iterasi tersebut.

    2. Di halaman node internal, klik nomor iterasi di sebelah kiri, klik kanan node yang diinginkan, lalu pilih View Runtime Log.

    3. Lihat log eksekusi detail dari iterasi ke-N.

      Di halaman node internal, klik Iteration 5 di sebelah kiri untuk melihat log node Shell pada iterasi ke-5.

      Log waktu proses menunjukkan bahwa pada iterasi ke-5, node End mengeksekusi kode evaluasi if 5 < 5: print True else: print False, dan output-nya adalah False (Output Result: False). Loop dihentikan dan tugas selesai secara normal.

      Seperti yang ditunjukkan dalam contoh ini, alur kerja node do-while adalah sebagai berikut:

      1. Eksekusi dimulai dari node Start.

      2. Tugas dieksekusi secara berurutan berdasarkan hubungan dependensi yang telah ditentukan.

      3. Kondisi keluar didefinisikan di node End.

      4. Setelah satu set tugas selesai, pernyataan kondisi keluar di node End dieksekusi.

      5. Jika pernyataan evaluasi di node End mencetak True di log, loop dilanjutkan dari langkah 1.

      6. Jika pernyataan evaluasi di node End mencetak False di log, seluruh loop keluar dan node do-while selesai.

Ringkasan

  • Tabel berikut membandingkan node do-while dengan tipe loop while, for-each, dan do-while:

    • Node do-while mendukung pola loop do...while, yang mengeksekusi badan loop terlebih dahulu lalu mengevaluasi kondisinya. Node ini juga dapat secara tidak langsung mengimplementasikan pola foreach dengan menggunakan variabel sistem dag.offset bersamaan dengan konteks node.

    • Node do-while tidak mendukung pola loop while, yang mengevaluasi kondisi sebelum mengeksekusi badan loop.

  • Alur eksekusi node do-while:

    1. Dimulai dari node Start, tugas dalam badan loop dieksekusi secara berurutan berdasarkan hubungan dependensi yang telah ditentukan.

    2. Kode yang ditentukan pengguna di node End dieksekusi.

      • Jika node End menghasilkan output True, iterasi berikutnya dimulai.

      • Jika node End menghasilkan output False, loop dihentikan.

  • Menggunakan dependensi konteks: Node internal dalam node do-while dapat mereferensikan konteks node yang ditentukan untuk node do-while dengan menggunakan ${dag.context variable name}.

  • Parameter sistem: DataWorks secara otomatis menyediakan dua variabel sistem untuk node internal dalam node do-while.

    • dag.loopTimes: Jumlah loop yang dimulai dari 1.

    • dag.offset: Offset iterasi saat ini relatif terhadap iterasi pertama, dimulai dari 0.