全部产品
Search
文档中心

DataWorks:simpul do-while

更新时间:Jul 02, 2025

DataWorks menyediakan simpul do-while. Anda dapat mengatur ulang alur kerja di dalam simpul do-while, menulis logika yang akan dieksekusi dalam loop, dan mengonfigurasi simpul akhir untuk menentukan apakah akan keluar dari looping. Simpul do-while dapat digunakan secara mandiri atau bersama dengan simpul penugasan untuk melakukan iterasi terhadap set hasil yang dilewatkan oleh simpul penugasan.

Pengenalan Simpul

Anda dapat mengatur ulang alur kerja di dalam simpul do-while, menulis logika yang akan dieksekusi dalam loop, dan mengonfigurasi simpul akhir untuk menentukan apakah akan keluar dari looping. Simpul do-while dapat digunakan secara mandiri atau bersama dengan simpul penugasan untuk melakukan iterasi terhadap set hasil yang dilewatkan oleh simpul penugasan. Topik ini menjelaskan komposisi dan logika aplikasi dari simpul do-while.

Prasyarat

  • Pengguna RAM yang ingin digunakan telah ditambahkan ke ruang kerja Anda.

    Jika Anda ingin menggunakan pengguna RAM untuk mengembangkan tugas, tambahkan pengguna RAM sebagai anggota ruang kerja dan berikan peran Develop atau Workspace Administrator. Peran Workspace Administrator memiliki lebih banyak izin daripada yang diperlukan, jadi berhati-hatilah saat memberikan peran tersebut. Untuk informasi lebih lanjut tentang cara menambahkan anggota dan menetapkan peran, lihat Tambahkan anggota ruang kerja dan tetapkan peran kepada mereka.

  • Grup sumber daya serverless telah dikaitkan dengan ruang kerja Anda. Untuk informasi lebih lanjut, lihat topik-topik dalam direktori Gunakan grup sumber daya serverless.

  • Simpul do-while dibuat sebelum Anda mengembangkan tugas pada simpul tersebut. Untuk informasi lebih lanjut, lihat Buat simpul tugas.

Batasan

  • Hanya DataWorks Edisi Standar dan edisi yang lebih tinggi yang mendukung simpul do-while. Untuk informasi lebih lanjut, lihat Perbedaan antara edisi DataWorks.

  • Eksekusi paralel tidak didukung. Loop hanya dapat dimulai jika loop sebelumnya berakhir.

Peringatan

Dimensi

Item

Deskripsi

Dukungan loop

Batas atas jumlah loop

Jumlah maksimum loop untuk simpul do-while adalah 128. Jika jumlah loop untuk simpul do-while melebihi 128, simpul end mengembalikan False untuk keluar dari looping.

Simpul internal

Orkestrasi alur kerja

  • Anda dapat menghapus dependensi yang ada antara simpul internal dari simpul do-while dan mengonfigurasi alur kerja internal untuk simpul do-while berdasarkan kebutuhan bisnis Anda. Saat mengonfigurasi alur kerja internal untuk simpul do-while, pastikan bahwa alur kerja internal dimulai dengan simpul start dan diakhiri dengan simpul end.

  • Jika simpul internal dari simpul do-while menggunakan simpul cabang untuk melakukan penilaian logis atau melakukan iterasi terhadap set hasil yang dilewatkan oleh simpul penugasan, simpul penggabungan diperlukan. Untuk informasi tentang simpul penggabungan, lihat Simpul Penggabungan.

  • Anda tidak dapat menambahkan komentar saat mengembangkan kode simpul end dari simpul do-while.

Pengambilan nilai

variabel bawaan yang disediakan oleh simpul do-while dapat digunakan untuk memperoleh nilai output yang dilewatkan oleh simpul penugasan yang dikonfigurasi sebagai simpul leluhur dari simpul do-while.

Debugging

Debugging tugas

Jika Anda menggunakan ruang kerja dalam mode standar, Anda tidak dapat langsung melakukan tes untuk menjalankan simpul do-while di Data Studio.

Jika Anda ingin melakukan tes untuk memverifikasi hasil jalannya simpul do-while, Anda harus mengirimkan dan menerapkan alur kerja yang berisi simpul do-while ke Pusat Operasi di lingkungan pengembangan dan menjalankan tugas pada simpul do-while.

Melihat log

Untuk melihat log jalannya simpul do-while di Pusat Operasi, lakukan langkah-langkah berikut: Temukan simpul do-while dan buka grafik asiklik terarah (DAG) dari simpul tersebut. Di DAG, klik kanan nama simpul dan pilih View Internal Nodes.

Dependensi

Pengaturan dependensi

Anda dapat menggunakan simpul do-while secara mandiri, atau menggunakan simpul do-while bersama dengan simpul penugasan. Jika Anda ingin memeriksa apakah simpul penugasan melewati outputnya ke simpul do-while di Pusat Operasi, Anda dapat menggunakan fitur backfill data untuk membackfill data untuk simpul penugasan dan simpul do-while. Jika Anda hanya menjalankan simpul do-while, Anda tidak dapat memperoleh output dari simpul penugasan.

Variabel Bawaan

Variabel bawaan yang disediakan oleh simpul do-while umumnya dikonfigurasi dalam format ${dag.Nama Variabel}. Simpul do-while di DataWorks menyediakan dua variabel bawaan: ${dag.loopTimes} dan ${dag.offset}. Anda juga dapat menggunakan simpul do-while bersama dengan simpul penugasan untuk memperoleh nilai parameter penugasan berdasarkan variabel bawaan yang dikonfigurasi dalam format ${dag.Nama Variabel}.

  • Variabel Bawaan

    Anda dapat menggunakan variabel bawaan yang disediakan oleh simpul do-while di DataWorks untuk memperoleh jumlah loop yang telah selesai dan offset antara loop saat ini dan loop sebelumnya saat simpul do-while digunakan untuk looping.

    Variabel bawaan

    Deskripsi

    Nilai

    ${dag.loopTimes}

    Jumlah loop yang telah selesai.

    1 untuk loop pertama, 2 untuk loop kedua, 3 untuk loop ketiga, ..., dan n untuk loop ke-n.

    ${dag.offset}

    Offset antara loop saat ini dan loop sebelumnya.

    0 untuk loop pertama, 1 untuk loop kedua, 2 untuk loop ketiga, ..., dan n-1 untuk loop ke-n.

  • Memperoleh set hasil yang dilewatkan oleh simpul penugasan

    Jika Anda menggunakan simpul do-while bersama dengan simpul penugasan, Anda dapat memperoleh nilai parameter penugasan dan variabel loop dengan menggunakan variabel bawaan yang dijelaskan dalam tabel berikut.

    Catatan

    Jika sebuah simpul do-while bergantung pada simpul penugasan, Anda dapat menambahkan parameter output yang ditentukan dalam Output Parameters untuk simpul penugasan ke Parameter Input untuk simpul do-while. Kemudian, Anda dapat menggunakan simpul do-while untuk memperoleh set hasil yang dilewatkan oleh simpul penugasan atau data tertentu dalam set hasil. Parameter input dikonfigurasi dalam format ${dag.Nama Variabel}. Ganti nama variabel dengan nama parameter input yang ditentukan dalam Input Parameters untuk simpul do-while. Dalam variabel bawaan berikut, input menentukan nama input parameter yang didefinisikan dalam simpul do-while dan digunakan untuk memperoleh set hasil yang dilewatkan oleh simpul penugasan. Anda harus mengganti input dengan nama sebenarnya dari parameter input yang Anda gunakan.

  • Variabel bawaan

    Deskripsi

    ${dag.input}

    Dataset yang dilewatkan oleh simpul penugasan leluhur.

    ${dag.input[${dag.offset}]}

    Entri data yang diperoleh oleh simpul do-while dalam loop saat ini.

    ${dag.input.length}

    Panjang dataset yang diperoleh di dalam simpul do-while.

Langkah 1: Gunakan simpul do-while untuk mengembangkan tugas

Deskripsi pengembangan simpul do-while

Secara default, simpul do-while terdiri dari simpul imagestart, simpul imageend, dan tubuh loop do-while.

  • Simpul imagestart menandai awal loop dan tidak digunakan untuk memproses tugas loop. Simpul start tidak dapat dihapus.

  • Tubuh loop do-while adalah simpul pemrosesan bisnis sampel yang disediakan oleh DataWorks.

  • Simpul imageend menandai akhir loop dan menentukan apakah akan memulai loop berikutnya. Simpul end mendefinisikan kondisi untuk keluar dari looping untuk simpul do-while. Simpul end tidak dapat dihapus.

Catatan

Anda dapat mengonfigurasi alur kerja internal dalam simpul do-while berdasarkan kebutuhan bisnis Anda. Secara rinci, Anda dapat menambahkan jenis simpul lain ke tubuh loop do-while.

Konfigurasikan simpul do-while

Pergi ke tab konfigurasi simpul do-while untuk mengonfigurasi simpul do-while. Secara default, simpul do-while terdiri dari simpul imagestart, simpul imageend, dan tubuh loop do-while.

  1. Klik Buat Simpul Internal di sebelah Tubuh Loop Do-while. Dalam popover yang muncul, pilih Shell dan tentukan nama untuk simpul Shell.

  2. Konfigurasikan simpul Shell.

    1. Geser pointer ke simpul Shell yang dibuat di tubuh loop, klik kanan nama simpul Shell, dan pilih Buka Simpul untuk pergi ke tab konfigurasi simpul Shell.

    2. Tulis kode untuk simpul Shell.

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

      Catatan
      • Logika simpul imagestart dan imageend dari simpul do-while tetap dan tidak dapat diedit.

      • Setelah Anda memodifikasi kode simpul Shell, simpan modifikasi tersebut. Saat Anda mengirimkan simpul, sistem tidak menampilkan pesan untuk mengingatkan Anda menyimpan modifikasi. Jika Anda tidak menyimpan modifikasi, kode tidak dapat diperbarui ke versi terbaru sesegera mungkin.

      • Variabel ${dag.loopTimes} adalah variabel cadangan sistem. Variabel ini menentukan jumlah loop saat ini, dan nilai variabel ini dimulai dari 1. Semua simpul internal dari simpul do-while dapat mereferensikan variabel ini. Untuk informasi lebih lanjut tentang variabel bawaan, lihat Variabel Bawaan.

  3. Klik ikon image di bilah alat atas untuk menyimpan simpul.

Konfigurasikan simpul end dan definisikan kondisi untuk keluar dari looping di simpul end

Pergi ke tab konfigurasi simpul do-while untuk mengonfigurasi simpul imageend dari simpul do-while dan definisikan kondisi untuk keluar dari looping di simpul end. Dalam contoh ini, simpul do-while didefinisikan untuk keluar dari looping setelah lima loop dijalankan.

  1. Klik kanan simpul imageend dan pilih Open Node. Masukkan kode berikut untuk mendefinisikan kondisi untuk keluar dari looping untuk simpul do-while:

    if ${dag.loopTimes}<5: 
     print True; 
    else: 
     print False;
    • Variabel ${dag.loopTimes} adalah variabel cadangan sistem. Variabel ini menentukan jumlah loop saat ini, dan nilai variabel ini dimulai dari 1. Semua simpul internal dari simpul do-while dapat mereferensikan variabel ini. Untuk informasi lebih lanjut tentang variabel bawaan, lihat Variabel Bawaan.

    • Dalam kode, nilai variabel dag.loopTimes dibandingkan dengan 5 untuk membatasi jumlah loop yang dapat dijalankan. Misalnya, nilai variabel dag.loopTimes adalah 1 saat loop pertama dijalankan dan bertambah 1 setiap kali, 2 untuk kedua kalinya, dan 5 untuk kelima kalinya. Simpul do-while keluar dari looping saat hasil dari ${dag.loopTimes}<5 adalah False.

  2. Klik ikon image di bilah alat atas untuk menyimpan simpul imageend.

Simpan dan terapkan simpul do-while

Setelah Anda mengonfigurasi simpul Shell dan kondisi untuk keluar dari looping di simpul end, kembali ke alur kerja dan klik Terapkan untuk menerapkan simpul do-while dan simpul penugasan yang dikonfigurasi sebagai simpul leluhur dari simpul do-while. Untuk informasi lebih lanjut, lihat Penerapan simpul atau alur kerja.

Catatan

Sebelum Anda mengirimkan simpul do-while, Anda harus mengonfigurasi properti rerun dan ancestor nodes untuk simpul do-while.

Uji simpul do-while dan lihat hasil uji

  1. Setelah penerapan selesai, pergi ke halaman Auto Triggered Nodes di Operation Center untuk melihat simpul yang diterapkan dan melakukan operasi O&M pada simpul tersebut. Dengan cara ini, sistem secara berkala menjalankan simpul berdasarkan properti penjadwalan yang Anda konfigurasi.

  2. Di halaman Simpul Pemicu Otomatis, temukan simpul penugasan, klik Backfill Data di kolom Tindakan, dan pilih Current and Descendant Nodes Retroactively untuk membackfill data untuk simpul penugasan dan simpul do-while. Untuk informasi lebih lanjut, lihat Backfill data dan lihat instance backfill data (versi baru).

Lampiran: Perbandingan dan deskripsi fitur do-while

  • Perbandingan antara simpul do-while dan pernyataan loop while, For Each, dan do-while:

    • Simpul do-while berjalan berdasarkan alur kerja yang memulai loop sebelum evaluasi. Simpul ini berfungsi sama seperti pernyataan do-while. Simpul do-while dapat menggunakan variabel bawaan ${dag.offset} dan parameter input dan output untuk mencapai fitur pernyataan For Each.

    • Simpul do-while tidak dapat mencapai fitur pernyataan while karena simpul do-while menjalankan loop sebelum evaluasi.

  • Prosedur Kerja Simpul do-while:

    • Sistem menjalankan loop dari simpul start dan menjalankan simpul lain berdasarkan dependensi yang dikonfigurasi untuk mereka.

    • Setelah sistem menjalankan kode yang didefinisikan untuk simpul end dalam loop, salah satu dari situasi berikut terjadi:

      • # Jalankan loop lagi jika simpul end mengembalikan True.

      • # Keluar dari loop jika simpul end mengembalikan False.

  • Parameter Input dan Output: Simpul internal dari simpul do-while menggunakan variabel ${dag.Nama Parameter Input dan Output} untuk mereferensikan parameter input dan output yang dikonfigurasi untuk simpul do-while.

  • Variabel Bawaan: DataWorks menyediakan variabel bawaan berikut untuk simpul internal dari simpul do-while:

    • dag.loopTimes: jumlah loop yang dijalankan. Nilai variabel ini dimulai dari 1.

    • dag.offset: offset jumlah loop yang dijalankan ke 1. Nilai variabel ini dimulai dari 0.