callタグは、XMLコンテンツとパラメータ情報でUSP/シナリオ/Portletアプリケーションを呼び出します。
呼び出したUSP/シナリオ/Portletアプリケーションからのコンテンツは、receiveタグで受信します。
書式
<pwst:call [sendDataObject="<%=オブジェクト%>"] [sendDataObjects="<%=オブジェクト配列%>"] [conditions="<%=ストリングオブジェクト%>"] service="USP名、シナリオ名、またはPortletアプリケーション名" | URL="USP、シナリオ、またはPortletアプリケーションのURL" [paramObject="<%=オブジェクト%>"] [type="XML"|"HTML"|"XHTML"|"XML,HTML"|"XML,XHTML"] [maxNumberOfServices ="USP、シナリオ、またはPortletアプリケーションの最大数"] [result="結果スクリプト変数"]> <pw:conditions> <!-- USP、シナリオ、Portletアプリケーションを選択する条件をここに記述(conditionタグ) --> </pw:conditions> <pw:sendData> <!-- USPに送信するXMLコンテンツをここに記述 --> </pw:sendData> </pwst:call>
sendDataObject(USP用)
USPに通知するデータをStringオブジェクト、InputStreamオブジェクト、PWScenarioParcelオブジェクトのどれかの変数名で指定します。これ以外のオブジェクトを指定した場合、「result」スクリプト変数にサポートされていないオブジェクトが指定された旨のエラーコードが設定されます。
Stringオブジェクト、またはInputStreamオブジェクトの変数名を指定した場合には、ボディの<pw:sendData>タグと同時に指定することはできません。
PWScenarioParcelオブジェクトの変数名を指定した場合には、USPでタグマッチング用に使用するコンテンツを<pw:sendData>タグで指定できます。
どれも指定しなかった場合には、sendDataObjectsで指定したオブジェクト群が送信されます。なお、sendDataObjectsも省略した場合には、コンテンツは送信されません。
sendDataObjects(USP用)
USPに複数のオブジェクトを送信する場合、Objectオブジェクトの配列変数名を指定します。XMLコンテンツ以外のオブジェクトを送信する場合には、必ずこのアトリビュートにより送信する必要があります。
sendDataObjectsとボディの<pw:sendData>は同時に指定できます。同時に指定した場合には、最初にボディの<pw:sendData>で指定したコンテンツが送信され、続けてsendDataObjectsで指定したオブジェクト群が送信されます。
conditions(USP、シナリオ、Portletアプリケーション共通)
USP/シナリオ/Portletアプリケーションの選択条件を記述します。アドバタイズ情報記述ファイルのconditionタグの内容を格納したStringオブジェクトを変数名で指定します。
ボディの<pw:conditions>タグと同時に指定することはできません。
service(USP、シナリオ、Portletアプリケーション共通)
USP名/シナリオ名/Portletアプリケーション名を指定します。
URLアトリビュートと同時に指定することはできません。
URL(USP、シナリオ、Portletアプリケーション共通)
USP/シナリオ/Portletアプリケーションを指すURLを指定します。
serviceアトリビュートと同時に指定することはできません。
paramObject(USP、Portletアプリケーション共通)
パラメータ文字列を設定したStringオブジェクト、またはパラメータを構成するためのMapオブジェクトのスクリプト変数名を指定します。この文字列は、USP/シナリオ/Portletアプリケーションに送信されます。省略した場合には、パラメータは付加されません。
WebUSPを呼び出す際のMapオブジェクトの作成例を以下に示します。
[記述例]
<% Hashtable uspParam=new Hashtable(); uspParam.put("sponsorAction","request"); uspParam.put("targetURL","http://jp.fujitsu.com/"); uspParam.put("httpMethod","GET"); %>
[説明]
Mapオブジェクトここでは、Hashtableオブジェクトを適当な名前で生成します。
「sponsorAction」、「request」は固定値です。つねに同じ値を宣言してください。
「targetURL」の値として、アクセスしたいURLを記述します。
「httpMethod」の値として、以下を記述します。
GET :URLの内容を取り出したい場合
POST:データをアップロードしたい場合
次にPortletを呼び出す際のMapオブジェクトの作成例を以下に示します。
[記述例]
<% stParam = new Hashtable(); stParam.put("TargetPortlet", "BookStoreCalendar"); stParam.put("PortletMode", "VIEW"); stParam.put("year", "2003"); stParam.put("month", "1"); %>
[説明]
Mapオブジェクトここでは、Hashtableオブジェクトを適当な名前で生成します。
「TargetPortlet」は、Portletアプリケーション内でコンテンツを取得したいPortlet名を記述します。Portlet名はPortletアプリケーション作成時に定義したPortlet.xml中のportlet-nameで指定された根前です。
「PortletMode」の値として、以下を記述します。
VIEW:Portletの内容を取得する場合
EDIT:Portletに情報更新を依頼する場合
「year」「month」はPortletに渡すパラメータです。
type(USP、シナリオ共通)
USP/シナリオに要求するコンテンツタイプを指定します。
省略した場合には、「HTML」が指定されたものとみなされます。
「XML」:XMLコンテンツだけを要求する場合
「HTML」:HTMLコンテンツだけを要求する場合
「XHTML」:XHTMLコンテンツだけを要求する場合
「XML,HTML」:XML、HTML両方のコンテンツを要求する場合
「XML,XHTML」:XML、XHTML両方のコンテンツを要求する場合
ただし、要求先のUSP/シナリオによってサポートしていないコンテンツタイプもあります。また、Portletアプリケーションに対しては、常にPortletが出力するこコンテンツ形式で返却されます。
maxNumberOfServices(USP、シナリオ、Portletアプリケーション共通)
呼び出すUSP/シナリオ/Portletアプリケーションの最大数を指定します。呼び出し先の検索でこの指定数以上のUSP/シナリオ/Portletアプリケーションが検出された場合、ここで指定した数のUSP/シナリオ/Portletアプリケーションが呼び出されます。
省略した場合には、callタグは、以下の情報で呼び出し先を検索します。検索の結果、複数のUSP/シナリオ/Portletアプリケーションが条件に一致した場合には、一致したすべてのUSP/シナリオ/Portletアプリケーションが呼び出されます。
USP名、シナリオ名、またはPortletアプリケーション名
選択条件
このセションのロール情報
result(USP、シナリオ、Portletアプリケーション共通)
処理結果情報を受け取るためのスクリプト変数名を指定します。
指定したスクリプト変数には、PWScenarioTagResultオブジェクトが設定されます。タグライブラリの処理結果情報を必要としない場合には、省略することができます。設定内容の詳細については、“A.1.4 PWScenarioTagResultクラス”を参照してください。
ボディ
<pw:sendData>タグ
USPに通知するデータ(XMLコンテンツ)を記述します。
ただし、sendDataObjectアトリビュートにPWScenarioParcelオブジェクトを指定した場合には、USPでタグマッチング用に使用するデータ(XMLコンテンツ)を記述します。
<pw:conditions>タグ
USP/シナリオの選択条件を記述します。アドバタイズ情報記述ファイルのconditionタグの内容を複数記述します。
出力情報
予約スクリプト変数:scenarioCalls
このシナリオで呼び出された通算のUSP/シナリオ/Portletアプリケーションの情報が更新されます。
各USPの呼び方の例
callタグでUSPを呼ぶ場合、以下の例を参照してください。
URP名 | 参照先 |
---|---|
TeamWARE USP |
留意事項
type属性に XHTMLまたはXML,XHTMLを指定した場合、元のHTMLコンテンツ中に存在するHTML文字実体参照のサポート範囲は、 < > & " と 0xA1から0xFFまでの文字実体参照となります。