Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説
添付ファイル機能を使用すると,任意の形式のファイル(CSVファイルなど)をWebサービスで扱えます。
添付ファイル機能では作業フォルダまたは共通フォルダを使用して,システム間のファイル転送を中継します。作業フォルダおよび共通フォルダの詳細については「10. 作業フォルダおよび共通フォルダの機能」を参照してください。
添付ファイル機能の概要を次の図に示します。
図2-28 添付ファイル機能の概要
添付ファイル機能を使用する場合,WS-I Attachments Profile - Version 1.0で規定された形式に基づいて記述されたswaRef形式のWSDLを使用します。swaRef形式のWSDLの例を次に示します。
<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://localhost" xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd" ...> <wsdl:types> <schema elementFormDefault="qualified" targetNamespace="http://localhost" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://ws-i.org/profiles/basic/1.1/xsd" schemaLocation="swaref.xsd"/> <element name="getUserData"> <complexType> <sequence> <element name="filename" type="xsd:string"/> <element name="attachment" type="wsi:swaRef"/> </sequence> </complexType> </element> ... </schema> </wsdl:types> <wsdl:message name="getUserDataRequest"> <wsdl:part element="intf:getUserData" name="parameters"/> </wsdl:message> ... <wsdl:portType name="UserInfo"> <wsdl:operation name="getUserData"> <wsdl:input message="intf:getUserDataRequest" name="getUserDataRequest"/> ... </wsdl:operation> </wsdl:portType> ... </wsdl:definitions> |
添付ファイル付きSOAPメッセージは,SOAP Message with Attachmentsプロトコルを使用し,MIME Multiple/Related構造でエンコードされます。メッセージの構造の詳細はマニュアル「アプリケーションサーバ Webサービス開発ガイド」の「28.4 添付ファイル付きSOAPメッセージ(wsi:swaRef形式)」を参照してください。
SOAP受付とビジネスプロセスの間,およびビジネスプロセスとSOAPアダプタの間で添付ファイルの情報を連携するために使用する電文フォーマットについて説明します。
SOAP受付で生成された添付ファイルに関するXML電文をビジネスプロセスで扱うために使用する電文フォーマットです。スキーマは「<サービスプラットフォームのインストールディレクトリ>\CSC\schema\soaprecp\urecp_soap_attachment_request.xsd」に格納されています。
名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/attachment/soap/request」です。
表2-1 SOAP受付のファイル連携用要求ヘッダフォーマット
タグ名 | 種別 | 出現回数 | 説明 | |||
---|---|---|---|---|---|---|
<attachment-request> | − | 1回 | − | |||
<request-id> | string | 1回 | 受付で作成したリクエストIDを示すタグです。 | |||
<files> | − | 0または1回 | 受け付けた添付ファイルを示すタグです。ファイルを受信した場合に出現します。 | |||
<file> | − | 0回以上 | 受け付けた1つの添付ファイルを示すタグです。受信したファイルの数と同じ回数出現します。 | |||
<content-id> | string | 1回 | 受け付けた添付ファイルのContent-Idを示すタグです。 Content-Idが設定されていない場合,またはnullの場合はSOAP受付でエラーになります。 |
|||
<content-type> | string | 1回 | 受け付けた添付ファイルのContent-Typeを示すタグです。 charset属性には,Content-Typeヘッダのcharsetパラメタに対応する文字コードが設定されます。 |
|||
<local-file-name> | string | 1回 | 作業フォルダに出力した添付ファイルの中間ファイル名を示すタグです。 |
SOAP受付からサービスリクエスタに応答する添付ファイルの情報をビジネスプロセスからSOAP受付に渡すために使用します。スキーマは<サービスプラットフォームのインストールディレクトリ>\CSC\schema\soaprecp\urecp_soap_attachment_response.xsd」に格納されています。
名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/attachment/soap/response」です。
表2-2 SOAP受付のファイル連携用応答ヘッダフォーマット
タグ名 | 種別 | 出現回数 | 説明 | |||
---|---|---|---|---|---|---|
<attachment-response> | − | 1回 | − | |||
<files> | − | 0または1回 | 応答する添付ファイルを示すタグです。 | |||
<file> | − | 0回以上 | 応答する1つの添付ファイルを示すタグです。 | |||
<content-id> | string | 1回 | 応答する添付ファイルのContent-Idヘッダを指定します。 値が設定されていない場合,またはnullが設定された場合はエラーになります。 |
|||
<content-type> | string | 0または1回 | 応答する添付ファイルのContent-Typeヘッダを指定します。 charset属性には,Content-Typeヘッダのcharsetパラメタに対応する文字コードを指定します。 省略した場合,または値が空の場合は,"application/octet-stream"になります。 |
|||
<local-file-name> | string | 1回 | 作業フォルダ内の中間ファイル名を指定します。 次の場合はエラーになります。
|
ビジネスプロセスからSOAPアダプタに添付ファイルに関する情報を渡すために使用します。スキーマは<サービスプラットフォームのインストールディレクトリ>\CSC\schema\soap\adpsoap_attachment_request.xsd」に格納されています。
名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/attachment/soap/request」です。
表2-3 SOAPアダプタのファイル連携用要求ヘッダフォーマット
タグ名 | 種別 | 出現回数 | 説明 | |||
---|---|---|---|---|---|---|
<attachment-request> | − | 1回 | − | |||
<request-id> | string | 0または1回 | 受付で生成されたリクエストIDを設定します。 作業フォルダ内のファイルデータを送信する場合,またはSOAPレスポンス時にダウンロードファイルを出力するファイルとして,作業フォルダを使用する場合に設定が必要です。 |
|||
<files> | − | 0または1回 | SOAPリクエストで送信するファイル情報を指定します。 | |||
<file> | − | 0回以上 | 送信する1つのファイルに関する情報を指定します。 | |||
<content-id> | string | 1回 | 送信する添付ファイルのContent-Idヘッダの値を指定します。 値が設定されていない場合,またはnullが設定された場合はエラーになります。 |
|||
<content-type> | string | 0または1回 | 送信する添付ファイルのContent-Typeヘッダの値を指定します。 charset属性には,Content-Typeヘッダのcharsetパラメタに対応する文字コードを指定します。 省略した場合,または値が空の場合は,local-file-name要素に指定したファイルの拡張子によって自動的に設定されます。なお,システムによって自動生成された中間ファイルの場合,拡張子がないため"application/octet-stream"が設定されます。設定される値の詳細についてはマニュアル「アプリケーションサーバ Webサービス開発ガイド」の「28.4.2 添付ファイルからSOAPメッセージへのマッピングの注意事項(wsi:swaRef形式)」を参照してください。 |
|||
<input-folder-name> | string | 1回 | 送信対象ファイルが格納されているフォルダとして,次のどちらかを指定します。
|
|||
<local-file-name> | string | 1回 | 送信対象のファイル名を指定します。シンボリックリンクのファイルは指定しないでください。
|
|||
<output-folder-name> | string | 0または1回 | SOAPレスポンス時にダウンロードファイルを出力するフォルダとして,次のどちらかを指定します。
|
|||
<output-sub-folder> | string | 0または1回 | SOAPレスポンス時にダウンロードファイルを出力するフォルダとして,共通フォルダのサブフォルダを使用する場合に共通フォルダからの相対パスを指定します。 output-folder-name要素で作業フォルダを指定した場合は,この要素の値は無視されます。 なお,指定されたサブフォルダが不正な場合は書き込み時にエラーが発生します。 |
SOAPアダプタで生成された添付ファイルに関するXML電文をビジネスプロセスで扱うために使用します。スキーマは<サービスプラットフォームのインストールディレクトリ>\CSC\schema\soap\adpsoap_attachment_response.xsd」に格納されています。
名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/attachment/soap/response」です。
表2-4 SOAPアダプタのファイル連携用応答ヘッダフォーマット
タグ名 | 種別 | 出現回数 | 説明 | |||
---|---|---|---|---|---|---|
<attachment-response> | − | 1回 | − | |||
<request-id> | string | 0または1回 | adpsoap_attachment_request.xsdのrequest-id要素に指定した値が設定されます。 ダウンロードファイルを作業フォルダに出力した場合に出現します。 |
|||
<files> | − | 0または1回 | SOAPレスポンスで受信したファイル情報が設定されます。 | |||
<file> | − | 0回以上 | 受信した1つのファイルに関する情報が設定されます。 | |||
<content-id> | string | 1回 | 受信した添付ファイルのContent-Idヘッダの値が設定されます。 Content-Idが設定されていない場合,またはnullの場合はSOAPアダプタでエラーになります。 |
|||
<content-type> | string | 1回 | 受信した添付ファイルのContent-Typeヘッダの値が設定されます。 charset属性には,Content-Typeヘッダのcharsetパラメタに対応する文字コードが設定されます。 |
|||
output-folder-name | string | 1回 | adpsoap_attachment_request.xsdのoutput-folder-name要素に指定した値が設定されます。 | |||
<local-file-name> | string | 1回 | 作業フォルダまたは共通フォルダに出力されたファイル名が設定されます。
|
Webサービスの添付ファイル機能ではSOAP受付およびSOAPアダプタを利用してファイルのアップロードができます。
サービスリクエスタからSOAP受付に対して添付ファイル付きSOAPメッセージを送信すると,SOAP受付で作業フォルダが生成され添付ファイルが格納されます。作業フォルダに格納されたファイルをどう扱うかはビジネスプロセスで定義します。
作業フォルダまたは共通フォルダに格納されているファイルは,SOAPアダプタを利用することでWebサービスに対して送信できます。SOAPアダプタからWebサービスに対してファイルを送信するための設定はビジネスプロセスで定義します。
ここではサービスリクエスタから送信された添付ファイルをビジネスプロセスで扱うための設定方法,およびWebサービスに添付ファイルを送信するためのビジネスプロセスの設定方法を説明します。
サービスリクエスタから送信され,作業フォルダに格納されたファイルをビジネスプロセスで扱うには,urecp_soap_attachment_request.xsdのスキーマを指定して定義した変数を,ビジネスプロセスの受付アクティビティでヘッダ割当変数に設定します。
SOAP受付に添付ファイル付きSOAPメッセージを送信した場合にSOAP受付で作成される電文の例を次に示します。
<attachment-request xmlns="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/attachment/soap/request"> <request-id>RCP01---01020003000420110102140305012000/HCSC</request-id> <files> <file> <content-id>d1cd6fed-368c-4966-9a20-375a120b3c05@jaxws.cosminexus.com</content-id> <content-type charset="UTF-8">text/plain</content-type> <local-file-name>csc_8216969970665213344</local-file-name> </file> </files> </attachment-request> |
SOAPアダプタを使って作業フォルダまたは共通フォルダに格納されているファイルをアップロードするには,adpsoap_attachment_request.xsdのスキーマを指定して定義した変数を,ビジネスプロセスのサービス呼出アクティビティで要求電文のヘッダ割当変数に設定します。
SOAPアダプタから添付ファイル付きSOAPメッセージを送信する場合に,ビジネスプロセスのデータ変換アクティビティで作成する電文の例を次に示します。
<attachment-request xmlns="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/attachment/soap/request"> <request-id>RCP01---01020003000420110102140305012000/HCSC</request-id> <files> <file> <content-id>459d752f-5694-493b-9671-4d49af688cd8@jaxws.cosminexus.com</content-id> <content-type charset="UTF-8">text/plain</content-type> <input-folder-name common="false"/> <local-file-name>csc_8216969970665213344</local-file-name> </file> </files> </attachment-request> |
<attachment-request xmlns="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/attachment/soap/request"> <files> <file> <content-id>459d752f-5694-493b-9671-4d49af688cd8@jaxws.cosminexus.com</content-id> <content-type charset="UTF-8">text/plain</content-type> <input-folder-name common="true">com001</input-folder-name> <local-file-name>sample.txt</local-file-name> </file> </files> </attachment-request> |
Webサービスの添付ファイル機能ではSOAP受付およびSOAPアダプタを利用してファイルのダウンロードができます。
SOAP受付定義ファイルのurecp-soap.switchover.file-transfer.modeで作業フォルダの生成の有無を設定できます。SOAP受付定義ファイルの詳細についてはマニュアル「サービスプラットフォーム リファレンス」を参照してください。
ダウンロードする場合は次のケースを除きurecp-soap.switchover.file-transfer.modeにtrueを設定してください。trueを設定しないと作業フォルダが生成されず,エラーになります。
WebサービスからSOAPアダプタに対して添付ファイル付きSOAPメッセージを送信すると,作業フォルダまたは共通フォルダに添付ファイルが格納されます。添付ファイルを作業フォルダに格納するか共通フォルダに格納するか,また格納されたファイルをどう扱うかはビジネスプロセスで定義します。
作業フォルダに格納されているファイルは,SOAP受付を利用することでサービスリクエスタに対して送信できます。SOAP受付からサービスリクエスタに対してファイルを送信するための設定はビジネスプロセスで定義します。
ここではWebサービスから受信した添付ファイルをビジネスプロセスで扱うための設定方法,およびサービスリクエスタに添付ファイルを送信するためのビジネスプロセスの設定方法を説明します。
作業フォルダを使用する場合,SOAP受付で生成されたリクエストIDをビジネスプロセスで扱うには,urecp_soap_attachment_response.xsdのスキーマを指定して定義した変数を,ビジネスプロセスの受付アクティビティでヘッダ割当変数に設定します。
SOAP受付で作業フォルダおよびリクエストIDを生成した場合にSOAP受付で作成される電文の例を次に示します。
<attachment-request xmlns="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/attachment/soap/request"> <request-id>RCP01---01020003000420110102140305012000/HCSC</request-id> </attachment-request> |
Webサービスから送信された添付ファイルをビジネスプロセスで扱うには,adpsoap_attachment_request.xsdのスキーマを指定して定義した変数を,ビジネスプロセスのサービス呼出アクティビティで要求電文のヘッダ割当変数に設定して,adpsoap_attachment_resopnse.xsdのスキーマを指定して定義した変数を,ビジネスプロセスのサービス呼出アクティビティで応答電文のヘッダ割当変数に設定します。
SOAPアダプタで添付ファイル付きSOAPメッセージを受信する場合に,ビジネスプロセスのデータ変換アクティビティで作成する電文の例を次に示します。
<attachment-request xmlns="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/attachment/soap/request"> <request-id>RCP01---01020003000420110102140305012000/HCSC</request-id> <output-folder-name common="false"/> </attachment-request> |
<attachment-request xmlns="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/attachment/soap/request"> <output-folder-name common="true">com002</output-folder-name> <output-sub-folder>test01</output-sub-folder> </attachment-request> |
SOAPアダプタが添付ファイル付きSOAPメッセージを受信した場合に,SOAPアダプタで作成される電文の例を次に示します。
<attachment-response xmlns="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/attachment/soap/response"> <request-id>RCP01---01020003000420110102140305012000/HCSC</request-id> <files> <file> <content-id>459d752f-5694-493b-9671-4d49af688cd8@jaxws.cosminexus.com</content-id> <content-type charset="UTF-8">text/plain</content-type> <output-folder-name common="false"/> <local-file-name>csc_8216969970665213344</local-file-name> </file> </files> </attachment-response> |
<attachment-response xmlns="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/attachment/soap/response"> <files> <file> <content-id>154765f0-9850-4c1f-8f6c-3f1f9306b4c0@jaxws.cosminexus.com</content-id> <content-type charset="UTF-8">text/plain</content-type> <output-folder-name common="true">com002</output-folder-name> <local-file-name>test01/HCSCCLS1----HCSC1---1------------d6j93dx74g---1---</local-file-name> </file> </files> </attachment-response> |
作業フォルダに格納されている中間ファイルをサービスリクエスタに応答するには,urecp_soap_attachment_response.xsdのスキーマを指定して定義した変数を,ビジネスプロセスの応答アクティビティでヘッダ割当変数に設定します。
SOAP受付から添付ファイル付きSOAPメッセージを送信する場合に,ビジネスプロセスのデータ変換アクティビティで作成する電文の例を次に示します。
<attachment-response xmlns="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/attachment/soap/response"> <files> <file> <content-id>d1cd6fed-368c-4966-9a20-375a120b3c05@jaxws.cosminexus.com</content-id> <content-type charset="UTF-8">text/plain</content-type> <local-file-name>csc_8216969970665213344</local-file-name> </file> </files> </attachment-response> |
添付ファイル機能の注意事項について説明します。また,マニュアル「アプリケーションサーバ Webサービス開発ガイド」も合わせてご確認ください。
作業フォルダ内のファイルはcscfswrmコマンドによって定期的に削除する必要があります。なお,リクエスト処理完了直後は削除できない場合があるため,削除できなかった場合は少し時間を空けてから再度削除を実施してください。
添付ファイルのMIMEヘッダに設定されているContent-Id,,Content-Type以外のヘッダは無視されます。添付ファイルに関する情報(ファイル名など)を送受信する際は,SOAPボディなどに設定してください。
添付ファイル機能を使用する場合,添付ファイルのサイズに応じてメモリ使用量が増大します。詳細はマニュアル「アプリケーションサーバ Webサービス開発ガイド」の「付録C.3 添付ファイル使用時の1リクエスト当たりのメモリ使用量」を参照してください。
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.