DataWorks, bir atama düğümünden gelen sonuç kümesi üzerinde yineleme yapmak için for-each düğümü sağlar. for-each düğümü içindeki iş akışını da özelleştirebilirsiniz. Bu konuda, bir for-each düğümünün bir atama düğümünün çıktısı üzerinde iki kez yineleme yaptığı ve her yinelemede mevcut döngü sayısını yazdırdığı bir örnek kullanılmaktadır. Bu örnek, düğümün mantığını ve yapılandırmasını göstermektedir.
Ön koşullar
Düğümü yapılandırmadan önce hata oluşmasını önlemek amacıyla mantığını anladığınızdan emin olun. Daha fazla bilgi için bkz. for-each düğümlerinin çalışma şekli.
Yordam
for-each düğümü genellikle bir atama düğümü ile birlikte kullanılır. Genel yordam aşağıdaki gibidir.

-
Düğüm bağımlılıklarını ayarlayın
Bir for-each düğümü bir atama düğümüne bağlı olmalıdır. Yapılandırma ayrıntıları için bkz. İş akışı oluşturma ve yapılandırma.
-
Sonuç kümesini iletin
Atama düğümünün yerleşik Parameters çıkış parametresi outputs, for-each düğümünün Parameters giriş parametresi olarak kullanılmalıdır. Yapılandırma ayrıntıları için bkz. Atama Düğümünü Yapılandırma.
-
Parametreleri iç düğümlerde alın
İş gereksinimlerinize göre for-each düğümünün iç iş akışını özelleştirin. İç düğümlerde, parametre değerlerini almak ve döngü görevini çalıştırmak için yerleşik değişkenleri kullanın. Yerleşik değişkenler hakkında daha fazla bilgi için bkz. Yerleşik değişkenler. Yapılandırma ayrıntıları için bkz. for-each düğümünü yapılandırma.
İş akışı oluşturma ve yapılandırma
Üst akış düğümü olarak bir atama düğümünün, alt akış düğümü olarak ise bir for-each düğümünün bulunduğu bir iş akışı oluşturun.
-
DataWorks konsolu adresinde oturum açın. Hedef bölgede sol gezinme bölmesinde seçeneğine tıklayın. Açılan listeden bir çalışma alanı seçin ve Go to Data Development seçeneğine tıklayın.
-
Bir for-each düğümü oluşturun.
-
simgesinin üzerine gelin ve seçeneklerine tıklayın.Alternatif olarak, hedef iş akışını bulun, General öğesine sağ tıklayın ve seçeneklerini seçin.
Create Node iletişim kutusunda düğüm adını ve yolunu belirtin.
OK seçeneğine tıklayın.
-
-
Bir atama düğümü oluşturun.
-
İş akışını çift tıklayarak yapılandırma sayfasını açın. New Node seçeneğine tıklayın ve öğesini sağ taraftaki tuvale sürükleyin.
Atama düğümleri hakkında daha fazla bilgi için bkz. Atama düğümü.
Create Node iletişim kutusunda düğüm adını ve yolunu belirtin. Varsayılan olarak düğüm geçerli iş akışı dizininde oluşturulur.
OK seçeneğine tıklayın.
-
Bağımlılığı ayarlamak için atama düğümünden for-each düğümüne bir çizgi sürükleyin.
Atama düğümünü yapılandırma
Yapılandırma sayfasını açmak için atama düğümünü çift tıklayın.
Language açılan listesinden Shell seçeneğini belirleyin.
-
Düğüm yapılandırma sayfasında aşağıdaki ifadeyi girin:
echo 'this is name,ok'; -
Sağ bölmede Scheduling seçeneğine tıklayın.
Araç çubuğundaki
Kaydet simgesine tıklayın.-
Araç çubuğundaki
Gönder simgesine tıklayın.Submission iletişim kutusunda bir Change Description girin ve kod incelemesi isteyip istemediğinizi seçin.
ÖnemliDüğümü gönderebilmeniz için öncelikle düğümün Rerun attribute ve Parent Nodes özelliklerini ayarlamanız gerekir.
Kod incelemesi, kod kalitesini kontrol etmeye ve hatalı kodun incelenmeden üretim ortamına dağıtılmasından kaynaklanan hataları önlemeye yardımcı olur. Kod incelemeyi etkinleştirirseniz düğüm yalnızca inceleyenler onayladıktan sonra dağıtılabilir. Daha fazla bilgi için bkz. Kod incelemesi.
Çalışma alanınız standart moddaysa, düğümü gönderdikten sonra görevi üretim ortamına dağıtmak için düğüm yapılandırma sayfasının sağ üst köşesindeki Deploy seçeneğine tıklamanız gerekir. Daha fazla bilgi için bkz. Görevleri dağıtma.
for-each düğümünü yapılandırma
-
Yapılandırma sayfasını açmak için for-each düğümünü çift tıklayın. Varsayılan olarak bir başlangıç düğümü, bir Shell düğümü ve bir bitiş düğümü içerir.
Shell düğümünü başka bir düğüm türüyle değiştirebilirsiniz:
Bir Shell düğümü kullanmak istiyorsanız doğrudan yapılandırabilirsiniz.
Başka bir düğüm türü kullanmak için önce varsayılan Shell düğümünü silin ve ardından ihtiyacınız olan düğümü oluşturun.
Bu örnekte bir Shell düğümü kullanılmaktadır.
-
Shell düğümünü düzenleyin.
Yapılandırma sayfasını açmak için Shell düğümünü çift tıklayın.
-
Aşağıdaki kodu girin:
echo ${dag.loopTimes} # Print the current loop count.NotBaşlangıç ve bitiş düğümlerinin mantığı sabittir ve düzenlenemez.
Shell düğümündeki kodu değiştirdikten sonra değişikliklerinizi kaydetmeniz gerekir. DataWorks, düğümü gönderirken değişiklikleri kaydetmeniz için sizi uyarmaz. Kaydetmezseniz değişiklikleriniz etkili olmaz.
for-each düğümü aşağıdaki dört yerleşik değişkeni destekler:
${dag.foreach.current}: Yineleme yapılan geçerli veri satırı.
${dag.loopDataArray}: Giriş veri kümesi.
${dag.offset}: Ofset.
${dag.loopTimes}: Geçerli döngü sayısı. Değer ${dag.offset}+1 şeklindedir.
Daha fazla bilgi için bkz. Yerleşik değişkenler ve Yerleşik değişken değerlerinin örnekleri.
-
for-each düğümünü yapılandırın.
for-each düğümünün yapılandırma sayfasında sağ bölmede Scheduling seçeneğine tıklayın.
-
Modify açılan listesinden üst akış atama düğümünün
outputsparametresini seçin ve Value Source seçeneğine tıklayın.NotProperties sekmesinde üst akış atama düğümüne bağımlılık ekledikten sonra değer kaynağını manuel olarak belirtmeniz gerekir. Aksi takdirde düğümü gönderdiğinizde hata oluşur.
for-each düğümünü kaydetmek için araç çubuğundaki
Kaydet simgesine tıklayın.-
Araç çubuğundaki
Gönder simgesine tıklayın.ÖnemliDüğümü gönderebilmeniz için öncelikle düğümün Save ve Rerun attribute özelliklerini ayarlamanız gerekir.
Parent Nodes iletişim kutusunda göndermek istediğiniz düğümleri seçin ve Submission seçeneğine tıklayın.
Düğümü başarıyla gönderdikten sonra çalışma alanınız standart moddaysa sağ üst köşede Determine seçeneğine tıklayın. Daha fazla bilgi için bkz. Görevleri dağıtma.
Düğümü test etme ve sonuçları görüntüleme
Sayfanın sağ üst köşesinde Deploy seçeneğine tıklayarak O&M Personnel bölümüne gidin.
Soldaki gezinme bölmesinde seçeneğine tıklayın.
-
Düğümü bulun. Sağdaki DAG'de atama düğümüne sağ tıklayın ve seçeneklerini seçin.
Current and Descendant Nodes Retroactively sayfasını yenileyin. Veri geri doldurma örneği başarıyla çalıştıktan sonra örneğin yanındaki Data Backfill Instance seçeneğine tıklayın.
-
Atama düğümüne sağ tıklayın ve sonucu kontrol etmek için View DAG seçeneğini belirleyin.
Çalışma zamanı günlüğü, atama düğümünün başarıyla çalıştığını gösterir. Shell çıktısı
this is name,okşeklindedir ve sonuç["this is name", "ok"](iki veri kaydı) olarak ayrıştırılır. for-each düğümü bu iki kayıt üzerinde yineleme yapar. -
View Runtime Log sayfasında for-each düğümüne sağ tıklayın ve Data Backfill Instance seçeneğini belirleyin.
-
İç düğümler sayfasında soldaki View Inner Nodes seçeneğine tıklayın. Ardından Shell düğümüne sağ tıklayın ve Loop 1 seçeneğini belirleyin.
Çalışma zamanı günlüğü sayfasında ilk yineleme için Shell düğümünün günlüğünü kontrol edin. Shell çıktısı
1şeklindedir; bu, mevcut döngü sayısıdır (${dag.loopTimes}değeri). -
Benzer şekilde ikinci yineleme için Shell düğümünün günlüğünü kontrol edin.
Shell çıktısı
2şeklindedir; bu, ikinci yinelemenin döngü sayısıdır (${dag.loopTimes}değeri2şeklindedir). Bu durum, for-each düğümünün atama sonuç kümesindeki iki veri kaydı üzerinde başarıyla yineleme yaptığını doğrular.