以下の2つのケースでTeamWARE USPを使用したシナリオ記述例を示します。
添付ファイルなしのリクエストの場合
添付ファイル付きのリクエストの場合
添付ファイルなしのリクエスト
以下の例は、自プロフィール参照を行うシナリオの作成例です。
TeamWAREに対して、自プロフィール情報の取得要求を行い、結果をそのまま画面に出力します。
PWScenarioParcelクラスのオブジェクトにXMLリクエストデータを設定します。
その際に、以下の設定が必要です。
パラメータの設定を行います。
sponsorAction に「request」を、httpMethodに「POST」を指定します。
Hashtable uspParam = new Hashtable();
uspParam.put("sponsorAction","request");
uspParam.put("httpMethod","POST");Content-Typeには、「text/xml」を指定します。
同時に、このリクエストで送るXMLデータの「character encoding」の種類を以下のように指定します。
<pwst:parcelHeader name="Content-Type" value="text/xml; charset=utf-8"/>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*" %>
<%@ include file="/scenario/scenarioInit.jsp" %>
<pwst:prologueScenario result="ps" debugFile="scenarioDebug.txt"/>
<!--XMLリクエストの作成(コンテンツを直接書く方法)-->
<pwst:parcel parcel="part1" >
<pwst:parcelHeader name="Content-Type" value="text/xml; charset=utf-8"/>
<pwst:parcelBody encoding="UTF-8" >
<?xml version="1.0" encoding="UTF-8" ?>
<teamware version="1.0" xmlversion="1.0" xmlns="urn:xmlns-fujitsu-com:tw2001-09">
<service>Directory</service>
<head>
<title>Get personal profile</title>
</head>
<body>
<service>Directory</service>
<dirownproperties>0</dirownproperties>
<template_name>dir/get_personalprof.xml</template_name>
<auth>required</auth>
</body>
</teamware>
</pwst:parcelBody>
</pwst:parcel>
<!--リクエストの送信-->
<%
Hashtable uspParam = new Hashtable();
uspParam.put("sponsorAction","request");
uspParam.put("httpMethod","POST");
%>
<pwst:call service="TWUSP" type="XML" sendDataObject="<%= part1 %>" paramObject="<%= uspParam %>" result="callResult" />
<pwst:epilogueScenario/>
<%
if (callResult.getReturnCode() != 0) {
%>
<br>
callResult.getReturnCode = <%= callResult.getReturnCode() %>
<br>
callResult.getDetailCode = <%= callResult.getDetailCode() %>
<br>
callResult.getErrorMessage = <%= callResult.getErrorMessage() %>
<br>
<%
} else {
%>
<jsp:forward page="uspDoc.jsp"/>
<%
}
%>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ include file="/scenario/docInit.jsp" %>
<pwst:prologueDoc/>
<pwst:receive timeout="60" type="XML" result="receiveResult"/>
<%
if(receiveResult.getReturnCode() != 0) {
%>
<br>
receiveResult.getReturnCode=<%=receiveResult.getReturnCode()%>
<br>
receiveResult.getDetailCode=<%=receiveResult.getDetailCode()%>
<br>
<%
} else {
Object receiveObject;
receiveObject=receiveResult.getXmlContent();
if (receiveObject == null) {
receiveObject="### no receive XML data###";
}
scenarioContext.contentToResponse(receiveObject);
} %>
<pwst:epilogueDoc/>添付ファイル付きのリクエスト
以下の例は、メール送信を行うシナリオの作成例です。
TeamWAREに対して、メール送信要求を行い、処理結果をそのまま画面に出力します。
PWScenarioParcelクラスのオブジェクトにXMLリクエストデータを設定します。
その際に、以下の設定が必要です。
パラメータの設定を行います。sponsorActionに「request」を、httpMethodに「POST」を指定します。
Hashtable uspParam = new Hashtable();
uspParam.put("sponsorAction","request");
uspParam.put("httpMethod","POST");Content-Typeには、「multipart/related」を指定します。
同時に、このリクエストの最初のパートで送られるXMLデータのコンテントタイプを指定します。つねに、「type=text/xml」となります。
最後に、このリクエストの最初のパートのコンテンツIDを指定します。「boundary」は自動的に付加されるので、ここで指定する必要はありません。
<pwst:parcel parcel="multiPart"/>
<pwst:parcelHeader name="Content-Type"
value="multipart/related; type=text/xml; start="<%=cid1%>"/>
</pwst:parcel>1つめのパートの情報設定します。
Content-Type、Content-Disposition、Content-IDを指定します。
<pwst:parcelHeader name="Content-Type" value="text/xml; charset=utf-8"/> <pwst:parcelHeader name="Content-Disposition" value=""form-data; name=\"start\"/> <pwst:parcelHeader name="Content-ID" value="<%=cid1%>"/>
2つめのパートの情報設定します。
Content-Type、Content-Disposition、Content-IDを指定します。
part2Headers = new Hashtable();
part2Headers.put("Content-Type", "text/plain; charset=Shift_JIS");
part2Headers.put("Content-Disposition",
"form-data; name=\"attachment\"; filename=\"E:\doc\agenda.txt\"");
part2Headers.put("Content-ID", cid2);<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*" %>
<%@ include file="/scenario/scenarioInit.jsp" %>
<pwst:prologueScenario result="ps" debugFile="scenarioDebug.txt"/>
<%
/* コンテンツIDの設定 */
String cid1 = "<SendMessageRequest@twsrv.fujitsu.com>";
String cid2 = "<E:\\doc\\agenda.txt@twsrv.fujitsu.com>";
%>
<!--1個目のパートの作成(コンテンツを直接書く方法)-->
<pwst:parcel parcel="part1" >
<pwst:parcelHeader name="Content-Type" value="text/xml; charset=utf-8"/>
<pwst:parcelHeader name="Content-Disposition" value="form-data; name=\"start\""/>
<pwst:parcelHeader name="Content-ID" value="<%=cid1%>" />
<pwst:parcelBody encoding="UTF-8" >
<?xml version="1.0" encoding="UTF-8" ?>
<teamware version="1.0" xmlversion="1.0" xmlns="urn:xmlns-fujitsu-com:tw2001-09">
<service>Mail</service>
<head>
<title>Send message</title>
</head>
<body>
<service>mail</service>
<control_pXML>send</control_pXML>
<subject>お知らせ</subject>
<description>
会議を開催します。
日時 10月3日
場所 D303会議室
よろしくお願いします。
</description>
<to>hanako</to>
<toid>VBEAAAAAAAAADwAAZAAB2~lxKPxU;;;;;hanako</toid>
<reply_req>false</reply_req>
<importance>normal</importance>
<priority>normal</priority>
<sensitivity>nonsensitive</sensitivity>
<notice>/mail/notice.xml</notice>
<success>/mail/notice.xml</success>
<fail>/mail/notice.xml</fail>
<auth>required</auth>
<attachment href="cid:<%=cid2%>" />
</body>
</teamware>
</pwst:parcelBody>
</pwst:parcel>
<!--2個目の添付の作成(コンテンツをオブジェクトで指定する方法)-->
<%
//任意のヘッダを設定
Hashtable part2Headers = new Hashtable();
part2Headers.put("Content-Type", "text/plain; charset=utf-8");
part2Headers.put("Content-Disposition",
"form-data; name=\"attachment\"; filename=\"E:\\doc\\agenda.txt\"");
part2Headers.put("Content-ID", cid2);
String Part2Body="添付ファイルの内容";
%>
<pwst:parcel headers="<%=part2Headers%>" parcel="part2">
<pwst:parcelBody encoding="UTF-8" body="<%=Part2Body%>"/>
</pwst:parcel>
<!--親のコンテンツを作成(マルチパートコンテンツを設定する方法)-->
<pwst:parcel parcel="multiPart">
<pwst:parcelHeader name="Content-Type"
value="multipart/related; type=text/xml; start=\"<%=cid1%>\""/>
</pwst:parcel>
<pwst:addParcel parcel="<%=multiPart%>" add="<%=part1%>"/>
<pwst:addParcel parcel="<%=multiPart%>" add="<%=part2%>"/>
<!--マルチパートコンテンツの送信-->
<%
Hashtable uspParam = new Hashtable();
uspParam.put("sponsorAction","request");
uspParam.put("httpMethod","POST");
%>
<pwst:call service="TWUSP" type="XML" sendDataObject="<%= multiPart %>" paramObject="<%= uspParam %>" result="callResult" />
<pwst:epilogueScenario/>
<%
if (callResult.getReturnCode() != 0) {
%>
<br>
callResult.getReturnCode = <%= callResult.getReturnCode() %>
<br>
callResult.getDetailCode = <%= callResult.getDetailCode() %>
<br>
callResult.getErrorMessage = <%= callResult.getErrorMessage() %>
<br>
<% }else{ %>
<jsp:forward page="uspDoc.jsp"/>
<% } %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ include file="/scenario/docInit.jsp" %>
<pwst:prologueDoc/>
<pwst:receive timeout="60" type="XML" result="receiveResult"/>
<%
if(receiveResult.getReturnCode() != 0) {
%>
<br>
receiveResult.getReturnCode=<%=receiveResult.getReturnCode()%>
<br>
receiveResult.getDetailCode=<%=receiveResult.getDetailCode()%>
<br>
<%
} else {
Object receiveObject;
receiveObject=receiveResult.getXmlContent();
if (receiveObject == null) {
receiveObject="### no receive XML data###";
}
scenarioContext.contentToResponse(receiveObject);
} %>
<pwst:epilogueDoc/>