SOAP要求メッセージを指定するときには、Webサービスに渡すパラメータに特殊タグを使用できます。
[入力]タブには[XML]ビューと[テーブル]ビューがあります。特殊タグはどちらのビューでも追加できます。ただし、[XML]ビューではポップアップメニューから特殊タグを選択できるため、[XML]ビューで追加する方が簡単です。ポップアップメニューを表示するには、[XML]をクリックし、[SOAP要求メッセージ]領域内で右クリックします。
図12.51 SOAP要求メッセージ用の特殊タグの追加
SOAP要求メッセージが送信される前に、これらのタグが処理されて、渡す必要のある値で置き換えられます。使用可能なタグとそれらのタグの処理方法は以下のとおりです。
{{Field <UDAName>}}
このタグは、UDAの値で置き換えられます。値はXMLエンコードされます。
XMLエンコードを行うと、XMLで特別な意味をもつ文字が変換されます。これらの文字は、小なり記号(<)、大なり記号(>)、アンパサンド(&)、および二重引用符(")です。XMLエンコードによって、これらの文字がそれぞれ<、>、&、および"に変換されます。
{{Xml <UDAName>}}
このタグは、UDAの値で置き換えられます。値はXMLエンコードされません。
値をそのまま渡すXMLの断片の場合は、このタグを使用します。
{{Js <JavaScriptExpression>}}
JavaScript式が評価され、このタグはその評価結果で置き換えられます。評価結果はXMLエンコードされます。
{{JsXml <JavaScriptExpression>}}
JavaScript式が評価され、このタグはその評価結果で置き換えられます。評価結果はXMLエンコードされません。
そのままで渡すXMLの断片がJavaScript式に含まれている場合は、このタグを使用します。
{{Field <UDAName>}}の例
以下の例は、UDA Companyの値をWebサービスに渡す方法を示しています。
<flight:Comp>{{Field Company}}</flight:Comp>
UDA Companyの値が"Good & Fast"の場合は、"Good & Fast"に変換されて渡されます。
{{Xml <UDAName>}}の例
航空券を予約するためにWebサービスを呼び出し、搭乗者の名前を渡す必要があるとします。以下は、搭乗者名をUDA CustomerNameにXMLの断片として保存している例です。
<LastName>Jones</LastName><FirstName>Elizabeth</FirstName>
このXMLの断片をSOAP要求メッセージに設定するには、以下のタグを指定する必要があります。
<flight:PassengerName>{{Xml CustomerName}}</flight:PassengerName>
SOAP要求メッセージが送信される前に、このタグが以下のように置き換えられます。
<flight:PassengerName> <LastName>Jones</LastName><FirstName>Elizabeth</FirstName> </flight:PassengerName>
{{Js <JavaScriptExpression>}}の例
搭乗者の住所をWebサービスのSOAP要求メッセージに設定する例を説明します。町名と番地は別々のUDAに保存されており、Webサービスに渡す前にこれらを結合する必要があるとします。そのためには、以下のJavaScript式を使用します。
<flight:Street>{{Js "uda.StreetNumber " + "uda.StreetName"}}</flight:Street>
StreetName の値が"Broad & Long Street"で、StreetNumberが"123"の場合、JavaScript式の評価結果は以下のようになります。
<flight:Street>123 Broad & Long Street</flight:Street>
{{JsXml <JavaScriptExpression>}}の例
プロセス定義で<ZIP>80000</ZIP>または<City>Munich</City>など、住所の一部をXML形式で保存しているとします。これらの部分を結合してXML形式で渡す必要がある場合は、以下のJavaScript式を使用できます。
<flight:Location>{{JsXml "uda.ZIP" + "uda.City"}}</flight:Location>
ZIP UDAの値が<ZIP>80000</ZIP>、City UDAの値が<City>Munich</City>の場合、JavaScript式の評価結果は以下のようになります。
<flight:Location><ZIP>80000</ZIP><City>Munich</City></flight:Location>