All Products
Search
Document Center

DataWorks:Konfigurasikan node for-each

Last Updated:Aug 26, 2026

DataWorks menyediakan node for-each untuk melakukan iterasi atas set hasil dari node assignment. Anda juga dapat menyesuaikan alur kerja di dalam node for-each tersebut. Topik ini menggunakan contoh di mana node for-each melakukan iterasi dua kali terhadap output dari node assignment dan mencetak jumlah loop saat ini pada setiap iterasi, sehingga menggambarkan logika dan konfigurasinya.

Prasyarat

Sebelum mengonfigurasi node, pastikan Anda memahami logikanya untuk mencegah error. Untuk informasi selengkapnya, lihat Cara kerja node for-each.

Prosedur

Node for-each biasanya digunakan bersama dengan node assignment. Prosedur umumnya adalah sebagai berikut.

遍历节点

  1. Tetapkan dependensi node

    Node for-each harus bergantung pada node assignment. Untuk detail konfigurasi, lihat Buat dan konfigurasikan alur kerja.

  2. Teruskan set hasil

    Parameter output bawaan Parameters bernama outputs dari node assignment harus digunakan sebagai parameter input Parameters dari node for-each. Untuk detail konfigurasi, lihat Konfigurasikan Node Assignment.

  3. Ambil parameter di node internal

    Sesuaikan alur kerja internal node for-each sesuai kebutuhan bisnis Anda. Di node internal, gunakan variabel bawaan untuk mengambil nilai parameter dan menjalankan tugas loop. Untuk informasi lebih lanjut tentang variabel bawaan, lihat Variabel bawaan. Untuk detail konfigurasi, lihat Konfigurasikan node for-each.

Buat dan konfigurasikan alur kerja

Buat alur kerja di mana node assignment berada di hulu dan node for-each berada di hilir.

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

  2. Buat alur kerja terjadwal.

  3. Buat node for-each.

    1. Arahkan kursor ke ikon 新建 dan klik Create Node > General > for-each.

      Atau, temukan alur kerja yang dituju, klik kanan General, lalu pilih Create Node > for-each.

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

    3. Klik OK.

  4. Buat node assignment.

    1. Klik ganda alur kerja untuk membuka halaman konfigurasinya. Klik New Node dan seret General > Assignment Node ke kanvas di sebelah kanan.

      Untuk informasi selengkapnya tentang node assignment, lihat Assignment node.

    2. Pada kotak dialog Create Node, atur nama dan path node. Secara default, node dibuat di direktori alur kerja saat ini.

    3. Klik OK.

  5. Seret garis dari node assignment ke node for-each untuk menetapkan dependensinya.

Konfigurasikan node assignment

  1. Klik ganda node assignment untuk membuka halaman konfigurasinya.

  2. Dari daftar drop-down Language, pilih Shell.

  3. Pada halaman konfigurasi node, masukkan pernyataan berikut:

    echo 'this is name,ok';
  4. Di panel sebelah kanan, klik Scheduling. Di bagian Input and Output Parameters > Output Parameters.

  5. Klik ikon Simpan 保存 di bilah alat.

  6. Klik ikon Commit 提交 di bilah alat.

    Pada kotak dialog Submission, masukkan Change Description dan pilih apakah akan meminta tinjauan kode.

    Penting
    • Anda harus mengatur properti Rerun attribute dan Parent Nodes untuk node sebelum dapat melakukan commit.

    • Tinjauan kode membantu mengontrol kualitas kode dan mencegah error akibat penerapan kode yang salah ke lingkungan produksi tanpa melalui proses review. Jika Anda mengaktifkan tinjauan kode, node hanya dapat diterapkan setelah disetujui oleh reviewer. Untuk informasi selengkapnya, lihat Tinjauan kode.

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

Konfigurasikan node for-each

  1. Klik ganda node for-each untuk membuka halaman konfigurasinya. Secara default, node tersebut berisi node start, node Shell, dan node end.

    Anda dapat mengganti node Shell dengan jenis node lain:

    • Jika ingin menggunakan node Shell, Anda dapat langsung mengonfigurasinya.

    • Untuk menggunakan jenis node lain, hapus terlebih dahulu node Shell default, lalu buat node yang Anda butuhkan.

    Contoh ini menggunakan node Shell.

  2. Edit node Shell.

    1. Klik ganda node Shell untuk membuka halaman konfigurasinya.

    2. Masukkan kode berikut:

      echo ${dag.loopTimes} # Cetak jumlah loop saat ini.
      Catatan
      • Logika node start dan node end bersifat tetap dan tidak dapat diedit.

      • Setelah mengubah kode di node Shell, Anda harus menyimpan perubahan tersebut. DataWorks tidak akan memberi prompt untuk menyimpan perubahan saat Anda melakukan commit node. Jika tidak disimpan, perubahan Anda tidak akan berlaku.

      Node for-each mendukung empat variabel bawaan berikut:

      • ${dag.foreach.current}: Baris data saat ini yang sedang diiterasi.

      • ${dag.loopDataArray}: Dataset input.

      • ${dag.offset}: Offset.

      • ${dag.loopTimes}: Jumlah loop saat ini. Nilainya adalah ${dag.offset}+1.

      Untuk informasi selengkapnya, lihat Variabel bawaan dan Contoh nilai variabel bawaan.

  3. Konfigurasikan node for-each.

    1. Pada halaman konfigurasi node for-each, klik Scheduling di panel sebelah kanan.

    2. Di bagian Input and Output Parameters > Input Parameters, klik Modify di samping nama parameter default loopDataArray.

    3. Dari daftar drop-down Value Source, pilih parameter outputs dari node assignment hulu dan klik Save.

      Catatan

      Setelah menambahkan dependensi pada node assignment hulu di tab Properties, Anda harus secara manual menentukan sumber nilainya. Jika tidak, error akan terjadi saat Anda melakukan commit node.

  4. Klik ikon Save 保存 di bilah alat untuk menyimpan node for-each.

  5. Klik ikon Commit 提交 di bilah alat.

    Penting

    Anda harus mengatur properti Rerun attribute dan Parent Nodes untuk node sebelum dapat melakukan commit.

    Pada kotak dialog Submission, pilih node yang ingin Anda commit dan klik Determine.

    Jika ruang kerja Anda berada dalam mode standar, klik Deploy di pojok kanan atas setelah berhasil melakukan commit node. Untuk informasi selengkapnya, lihat Terapkan tugas.

Uji node dan lihat hasilnya

  1. Di pojok kanan atas halaman, klik O&M Personnel untuk menuju ke Operation Center.

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

  3. Temukan node tersebut. Di DAG di sebelah kanan, klik kanan node assignment dan pilih Retroactive Instance > Current and Descendant Nodes Retroactively.

  4. Segarkan halaman Data Backfill Instance. Setelah instans pengisian ulang data berhasil dijalankan, klik View DAG di samping instans tersebut.

  5. Klik kanan node assignment dan pilih View Runtime Log untuk memeriksa hasilnya.

    Log waktu proses menunjukkan bahwa node assignment berhasil dijalankan. Output Shell-nya adalah this is name,ok, dan hasilnya diurai menjadi ["this is name", "ok"] (dua catatan data). Node for-each akan melakukan iterasi terhadap kedua catatan ini.

  6. Di halaman Data Backfill Instance, klik kanan node for-each dan pilih View Inner Nodes.

  7. Di halaman node internal, klik Loop 1 di sebelah kiri. Lalu, klik kanan node Shell dan pilih View Runtime Log.

    Di halaman log waktu proses, periksa log node Shell untuk iterasi pertama. Output Shell-nya adalah 1, yaitu jumlah loop saat ini (nilai ${dag.loopTimes}).

  8. Demikian pula, periksa log node Shell untuk iterasi kedua.

    Output Shell-nya adalah 2, yaitu jumlah loop untuk iterasi kedua (nilai ${dag.loopTimes} adalah 2). Hal ini memverifikasi bahwa node for-each berhasil melakukan iterasi terhadap dua catatan data dalam set hasil assignment.