Przykład: 
Przykładowy Request message Code Block |
---|
language | xml |
---|
theme | Eclipse |
---|
title | Request message |
---|
linenumbers | true |
---|
| <s11:Envelope xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/">
<s11:Header></s11:Header>
<s11:Body>
<data>
<param1>{param1}</param1>
<param2>{param2}</param2>
<param3>{param3}</param3>
<list1>
<obj>
<paramTab1>{paramTab1}</paramTab1>
<paramTab2>{paramTab2}</paramTab2>
<paramTab3>{paramTab3}</paramTab3>
</obj>
</list1>
<list2>
<paramTabA>{paramTabA}</paramTabA>
<paramTabB>{paramTabB}</paramTabB>
<paramTabC>{paramTabC}</paramTabC>
</list2>
</data>
</s11:Body>
</s11:Envelope>
|
Założenia Dla tego xmla chcemy przesłać wartości nagłówkowe param1 , param2, param3 oraz wartości z tablicy 1 dla parametrów paramTab1, paramTab2, paramTab3 oraz dla tablicy 2 : paramTabA, paramTabB ,paramTabC. Przy czym parametry param3, paramTabC mają mieć ma sztywno wartość "11" oraz "22" a paramTab3 ma mieć zawsze taką samą wartość w każdym wierszu pobraną z procesu.. W tym celu możemy zmodyfikować odpowiednio tego xmla o sztywne parametry Po modyfikacjach powinniśmy dostać takiego xml.
Info |
---|
| Podczas modyfikacji Request Message upewnij się czy zmodyfikowana wersja zostanie poprawnie obsłużona przez dostawce WebSerwicu |
Code Block |
---|
language | xml |
---|
theme | Eclipse |
---|
title | Request message po modyfikacji |
---|
linenumbers | true |
---|
| <s11:Envelope xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/">
<s11:Header></s11:Header>
<s11:Body>
<data>
<param1>{param1}</param1>
<param2>{param2}</param2>
<param3>11</param3> <!-- Ręcznie uzupełniona wartość-->
<list1>
<obj>
<paramTab1>{paramTab1}</paramTab1>
<paramTab2>{paramTab2}</paramTab2>
<paramTab3>{paramTab3}</paramTab3>
</obj>
</list1>
<list2>
<paramTabA>{paramTabA}</paramTabA>
<paramTabB>{paramTabB}</paramTabB>
<paramTabC>22</paramTabC> <!-- Ręcznie uzupełniona wartość-->
</list2>
</data>
</s11:Body>
</s11:Envelope>
|
Dla takiego XML konfigurujemy parametry wejściowe źródła danych:
id | Nazwa | Tag elementu | Uwagi |
---|
param1 | param1 | | | param2 | param2 | | | paramTab1 | paramTab1 | obj | Będzie kopiowany cały elemen (obj) i wklejany tyle razy ile jest wartości w tablicy, przy czym każdy element będzie miał tylko wartość z jednego wiersza | paramTab2 | paramTab2 | obj | Będzie kopiowany cały elemen (obj) i wklejany tyle razy ile jest wartości w tablicy, przy czym każdy element będzie miał tylko wartość z jednego wiersza | paramTab3 | paramTab3 | | | paramTabA | paramTabA | list2 | Będzie kopiowany cały elemen (list2) i wklejany tyle razy ile jest wartości w tablicy, przy czym każdy element będzie miał tylko wartość z jednego wiersza | paramTabB | paramTabB | list2 | Będzie kopiowany cały elemen (list2) i wklejany tyle razy ile jest wartości w tablicy, przy czym każdy element będzie miał tylko wartość z jednego wiersza |
oraz ustawiamy parametr Separator zmiennych tabelarycznych na ";" (średnik)
Teraz gdy takie źródło uruchomimy z następującymi parametrami:
id | Wartość |
---|
param1 | AAA | param2 | BBB | paramTab1 | Ala;ma;kota | paramTab2 | kot;ma;Ale | paramTab3 | Stała wartość | paramTabA | 123;456 | paramTabB | aaa;bbb |
Najpierw zostaną przetworzone zmienne tabelaryczne, więc otrzymamy takiego XML'a Code Block |
---|
language | xml |
---|
theme | Eclipse |
---|
title | Request message po uzupełnieniu zmiennych tabelarycznych |
---|
linenumbers | true |
---|
| <s11:Envelope xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/">
<s11:Header></s11:Header>
<s11:Body>
<data>
<param1>{param1}</param1>
<param2>{param2}</param2>
<param3>11</param3> <!-- Ręcznie uzupełniona wartość-->
<list1>
<obj>
<paramTab1>Ala</paramTab1>
<paramTab2>kot</paramTab2>
<paramTab3>{paramTab3}</paramTab3>
</obj>
<obj>
<paramTab1>ma</paramTab1>
<paramTab2>ma</paramTab2>
<paramTab3>{paramTab3}</paramTab3>
</obj>
<obj>
<paramTab1>kota</paramTab1>
<paramTab2>Ale</paramTab2>
<paramTab3>{paramTab3}</paramTab3>
</obj>
</list1>
<list2>
<paramTabA>123</paramTabA>
<paramTabB>aaa</paramTabB>
<paramTabC>22</paramTabC> <!-- Ręcznie uzupełniona wartość-->
</list2>
<list2>
<paramTabA>456</paramTabA>
<paramTabB>bbb</paramTabB>
<paramTabC>22</paramTabC> <!-- Ręcznie uzupełniona wartość-->
</list2>
</data>
</s11:Body>
</s11:Envelope>
|
Potem dla takiego XML są podstawiane wartości NIE tabelaryczne (bez wpisanego tagu tabelarycznego). Otrzymany XML po kolejnej operacji wygląda nastepująco Code Block |
---|
language | xml |
---|
theme | Eclipse |
---|
title | Request message przed wysłaniem |
---|
linenumbers | true |
---|
| <s11:Envelope xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/">
<s11:Header></s11:Header>
<s11:Body>
<data>
<param1>AAA</param1>
<param2>BBB</param2>
<param3>11</param3> <!-- Ręcznie uzupełniona wartość-->
<list1>
<obj>
<paramTab1>Ala</paramTab1>
<paramTab2>kot</paramTab2>
<paramTab3>Stała wartość</paramTab3>
</obj>
<obj>
<paramTab1>ma</paramTab1>
<paramTab2>ma</paramTab2>
<paramTab3>Stała wartość</paramTab3>
</obj>
<obj>
<paramTab1>kota</paramTab1>
<paramTab2>Ale</paramTab2>
<paramTab3>Stała wartość</paramTab3>
</obj>
</list1>
<list2>
<paramTabA>123</paramTabA>
<paramTabB>aaa</paramTabB>
<paramTabC>22</paramTabC> <!-- Ręcznie uzupełniona wartość-->
</list2>
<list2>
<paramTabA>456</paramTabA>
<paramTabB>bbb</paramTabB>
<paramTabC>22</paramTabC> <!-- Ręcznie uzupełniona wartość-->
</list2>
</data>
</s11:Body>
</s11:Envelope>
|
I taki Request message jest wysyłany do webserwisu. |