Görevler Arası XML Veri Aktarımı ve Kullanımı
Senaryo: XML verisi dönen bir API çağrılacak, dönen sonuç içerisindeki array tipindeki elemanların her biri belirli bir format ile başka bir API'ye gönderilecektir.
Bu durumda iki tane API Call konnektörünü görev olarak eklenmelidir. Birincisi okuma diğeri ise döngü içinde yazma için gereklidir.
Görev-1: API Call konnektörü ile veri okuma
- Görevlerin listelendiğin diyalogtan API Call seçeneğine tıklanır.
- Görevin bir kez çalışacağını belirtmek için "Once" seçeneği seçilir.
- Veri okumasının yapılacağı ilgili API erişim bilgileri girilir.
- Bir sonraki görevde API'den dönen veriyi kullanabilmek için output anahtar bilgisine "xmlResponse" değeri verilir. (Bu değer adını istediğiniz şekilde isimlendirebilirsiniz.)
Bu görev çalıştırıldığında bu örnekte aşağıdaki XML Verisi dönmektedir, yani "xmlResponse" değeri içerisinde aşağıdaki veri olacaktır:
<root> <users> <user> <id>1</id> <name>user 1</name> <description>Description of user 1</description> </user> <user> <id>2</id> <name>user 2</name> <description>Description of user 2</description> </user> <user> <id>3</id> <name>user 3</name> <description>Description of user 3</description> </user> </users> </root> |
Görev-2: API Call konnektörü ile API'ye veri gönderme
- Görevlerin listelendiğin diyalogtan API Call seçeneğine tıklanır.
- Önceki görevden gelen dizi verisi üzerinde döngü ile çalışılacağını belirtmek için "Loop" seçeneği seçilir.
- Bir önceki görevde girilen output anahtar bilgisi ("xmlResponse") değerinin neresinin dizi olarak işlenmesi gerektiği bilgisi XPath olarak yazılır.
- XPath yazılırken bir önceki veri üzerinde XML olarak işlem yapılmasını belirtmek için "#/" işareti, anahtar bilgisine ("xmlResponse") eklenir. Sonrasında XPath olarak dizi elemanlarının olduğu path girilir. Bu durumda bu örnek için XPath yazan yere şu yazılmalıdır: {{xmlResponse#/root/users/user}}
- Verinin gönderileceği erişilmek istenen ilgili API erişim bilgileri girilir.
- Gönderilmek istenen şablon mesaj bilgisi girilir. Şablon mesaj bilgisi içerisinde döngüdeki elemanların değerleri kullanılmak istenirse "LOOP_VARIABLE" ifadesi ile ilgili eleman içindeki verinin şablona eklenmesi sağlanır. LOOP_VARIABLE ile beraber döngü için hedef gösterilen eleman içindeki XML verisine erişilecek XPath bilgisi girilmelidir.
Bu örnekte, bir önceki görevden dönen "xmlResponse" verisi üzerinde {{xmlResponse#/root/users/user}} ifadesi çalıştırıldığında 3 adet eleman döner ve bu görevin 3 kez çalışacağını gösterir.
İlk çalışmada LOOP_VARIABLE değeri içinde aşağıdaki XML olacaktır.
<user> <id>1</id> <name>user 1</name> <description>Description of user 1</description> </user> |
Bu XML üzerinde çalıştırılmak istenen şablon aşağıdaki gibi olduğunu düşünelim:
{ "test_id":"{{LOOP_VARIABLE#/id/text()}}", "test_name":"{{LOOP_VARIABLE#/name/text()}}", "test_description":"{{LOOP_VARIABLE#/description/text()}}" } |
Burada hedef veriyi almak için LOOP_VARIABLE yanında kullanılan XPath'in text() metodu ile bittiğine dikkat edilmelidir.
Bu durumda API Call ile gönderilecek istek gövdesi aşağıdaki şekilde olacaktır:
{ "test_id": "1", "test_name": "user 1", "test_description": "Description of user 1" } |