Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 受付・アダプタ定義編
ファイルアダプタの定義方法について説明します。
ファイルアダプタで作成する電文フォーマットの内容について説明します。
ファイル操作の実行を要求するための要求電文では,次の情報を送信します。
表3-21 ファイル操作情報
情報 | 説明 |
---|---|
ファイル名 | 読み込みまたは書き込みが行われるファイル名です。絶対パスで指定します。ファイル名の長さは,UTF-8へ変換した際に1〜200バイトの範囲で指定できます。先頭と最後の空白文字は削除されます。Windowsの場合,パスの大文字と小文字は区別されません。 次のようなファイル名は指定できません。
|
読み込みモード | ファイル読み込み時のモードです。次のモードがあります。
|
書き込みモード | ファイル書き込み時のモードです。次のモードがあります。
|
要求電文の内容は,読み込みまたは書き込みを行うファイルの形式や種別によって異なります。このため,電文作成時にはファイル操作情報およびファイル書き込みデータのうち,必要な情報だけを電文に記述します。
XMLファイルの読み込みを行う場合に,要求電文に必要な情報を次の表に示します。
表3-22 XMLファイル読み込み時の要求電文情報(XML電文)
情報 | 電文内のタグ名 | 指定値 | 省略時のデフォルト値 | 指定 |
---|---|---|---|---|
ルート要素 | ReadRequest | − | − | ○ |
ファイルヘッダ要素 | fileheader | − | − | ○ |
ファイル名要素 | filename | ファイル名 | − | ○ |
ファイルモード要素 | filemode | all | all | × |
XMLファイルの書き込みを行う場合に,要求電文に必要な情報を次の表に示します。
表3-23 XMLファイル書き込み時の要求電文情報(XML電文)
情報 | 電文内のタグ名 | 指定値 | 省略時のデフォルト値 | 指定 |
---|---|---|---|---|
ルート要素 | WriteRequest | − | − | ○ |
ファイルヘッダ要素 | fileheader | − | − | ○ |
ファイル名要素 | filename | ファイル名 | − | ○ |
ファイルモード要素 | filemode | new | new | × |
ファイル書き込みデータ | userdata | ユーザ任意 | − | ○ |
バイナリファイルの読み込みを行う場合に,要求電文に必要な情報を次の表に示します。
表3-24 バイナリファイル読み込み時の要求電文情報(XML電文)
情報 | 電文内のタグ名 | 指定値 | 省略時のデフォルト値 | 指定 |
---|---|---|---|---|
ルート要素 | ReadRequest | − | − | ○ |
ファイルヘッダ要素 | fileheader | − | − | ○ |
ファイル名要素 | filename | ファイル名 | − | ○ |
ファイルモード要素 | filemode | all | all | × |
バイナリファイルの書き込みを行う場合は,要求電文がバイナリ形式になります。バイナリ形式の要求電文の構造を次の図に示します。
図3-6 バイナリ形式の要求電文の構造
電文の全体長は次のような関係式が成り立つ必要があります。
全体長 ≧ 10 + L1 + 10 + L2
バイナリファイルの書き込みを行う場合に,要求電文に必要な情報を次の表に示します。
表3-25 バイナリファイル書き込み時の要求電文情報(バイナリ電文)
情報 | 指定値 | 省略時のデフォルト値 | 指定 |
---|---|---|---|
ファイル名長 | ファイル名のバイト長を10進数値文字列で指定します。 | − | ○ |
ファイル名 | ファイル名 | − | ○ |
ファイルオプション長 | ファイルオプションのバイト長を10進数値文字列で指定します。 | − | ○ |
ファイルオプション | 新規書き込み:mode=new 追加書き込み:mode=append |
mode=new | × |
ユーザデータ | ユーザ任意 | − | ○※ |
各要求電文のサンプルは,「(f) 電文例」を参照してください。
ファイルアダプタの読み込み情報をファイルアダプタの呼び出し元に返却する応答電文では,次の情報を送信します。
応答電文の内容は,読み込みまたは書き込みを行うファイルの形式や種別によって異なります。ファイルの読み込み,書き込みを行う場合に返信される応答電文の情報を次の表に示します。
表3-26 応答電文情報
ファイル形式および種別 | 情報 | 電文内のタグ名 | 返却値 |
---|---|---|---|
XMLファイル読み込み | ファイル読み込みデータ | ユーザ任意 | ユーザ任意 |
XMLファイル書き込み | ファイル書き込み処理の結果 | status | OK |
バイナリファイル読み込み | ファイル読み込みデータ | − | ユーザ任意 |
バイナリファイル書き込み | ファイル書き込み処理の結果 | status | OK |
ファイルアダプタ呼び出し元(標準電文)の電文フォーマットがファイルアダプタ(サービス部品電文)の電文フォーマットと異なる場合は,ファイルアダプタ呼び出し元(標準電文)の電文フォーマット定義ファイルおよびファイルアダプタ(サービス部品電文)の電文フォーマット定義ファイルを作成し,データ変換(マッピング)定義画面からそれぞれの電文フォーマットのマッピングを行います。
データ変換を行う場合に作成する電文フォーマット定義ファイルを次の表に示します。
表3-27 作成する電文フォーマット定義ファイル
ファイル形式および種別 | 要求電文 | 応答電文 | ||
---|---|---|---|---|
標準電文(呼び出し元) | サービス部品電文(ファイルアダプタ) | 標準電文(呼び出し元) | サービス部品電文(ファイルアダプタ) | |
XMLファイル読み込み | XML※ | XML | XML※ | XML |
XMLファイル書き込み | XML※ | XML | XML※ | XML |
バイナリファイル読み込み | XML※ | XML | XML | バイナリ |
バイナリファイル書き込み | XML | バイナリ | XML※ | XML |
ファイルアダプタで利用する電文でXML形式のデータを扱うか,バイナリ形式(XML形式以外)のデータを扱うかによって,作成する電文フォーマット定義ファイルは異なります。
標準電文およびファイルアダプタ(サービス部品電文)の作成方法を次に示します。
表3-28 ユーザが使用する定義ファイルおよび編集の必要性
ファイル操作モード | 電文の種類 | 使用する定義ファイル | ユーザ編集 |
---|---|---|---|
読み込み | 要求電文 | adpff_read.xsd | × |
応答電文 | ユーザ作成 | ○ | |
書き込み | 要求電文 | adpff_header.xsd | × |
adpff_write.xsd | ○ | ||
応答電文 | adpff_result.xsd | × |
図3-7 XMLファイル読み込み時の電文の流れ
図3-8 XMLファイル書き込み時の電文の流れ
図3-9 要求電文用フォーマット定義テンプレートファイル
図中の行番号に沿って,要求電文用フォーマット定義テンプレートファイルの説明を次の表に示します。なお,図中の行番号は実際のテンプレートには含まれません。表3-29 要求電文用フォーマット定義テンプレートファイルの説明
行数 | 説明 |
---|---|
4行目 | 要求電文用ファイル操作情報ファイル(XML形式書き込み用:adpff_header.xsd)の名前空間宣言をしています。 |
5行目 | このテンプレートファイルの名前空間宣言をしています。ユーザは7行目に指定したtargetNamespace属性の値に任意の接頭辞を宣言します。 |
6行目 | ほかのスキーマファイルをインポートする場合,そのスキーマの名前空間宣言を記述します。※1,※2 |
7行目 | このテンプレートファイルの対象名前空間を記述しています。ユーザはtargetNamespace属性の値に一意となる対象名前空間を指定します。 |
9〜10行目 | 要求電文用ファイル操作情報ファイル(XML形式書き込み用:adpff_header.xsd)のインポート宣言を記述しています。このテンプレートファイルは要求電文用ファイル操作情報ファイル(XML形式書き込み用)をインポートします。ユーザはschemaLocation属性の値を要求電文用ファイル操作情報ファイル(XML形式書き込み用)の存在する相対パスに修正します。デフォルトでは同一ディレクトリを指定しています。 |
14〜20行目 | WriteRequest要素宣言を記述しています。要求電文のルート要素となります。ファイルアダプタは,この要素名を取得し,ファイル入出力種別を判別します(WriteRequest:書き込み,ReadRequest:読み込み)。fileheader要素とuserdata要素を持ちます。ユーザはuserdata要素の接頭辞として5行目で宣言した接頭辞を記述します。 |
22行目 | userdata要素宣言を記述しています。 |
23行目 | ユーザデータ用のXMLスキーマ情報を記述します。※1,※2 |
バイナリフォーマット定義ファイルの作成方法について説明します。
バイナリフォーマット定義ファイルを作成する場合に,ユーザが使用する定義ファイルおよび編集の必要性について次の表に示します。
表3-30 ユーザが使用する定義ファイルおよび編集の必要性
ファイル操作モード | 電文の種類 | 使用する定義ファイル | ユーザ編集 |
---|---|---|---|
読み込み | 要求電文 | adpff_read.xsd | × |
応答電文 | ユーザ作成 | ○ | |
書き込み | 要求電文 | adpff_write.fdx | ○ |
応答電文 | adpff_result.xsd | × |
バイナリフォーマット定義ファイルの作成方法を次に示します。
図3-10 バイナリファイル読み込み時の電文の流れ
図3-11 バイナリファイル書き込み時の電文の流れ
図3-12 要求電文用フォーマット定義テンプレートファイルの画面
表3-31 要求電文用フォーマット定義テンプレートファイルの設定値
要素名 | データ種別 | サイズ(byte) | 出現回数 | 説明 |
---|---|---|---|---|
adpff_write | − | − | − | ルート要素 |
fileheader | − | − | 1回 | ファイル操作情報要素 |
filename_length | 整数 | 10 | 1回 | ファイル名長要素 |
filename | 文字列 | 可変 | 1回 | ファイル名要素 |
fileoption_length | 整数 | 10 | 1回 | ファイルオプション長要素 |
fileoption | 文字列 | 可変 | 1回 | ファイルオプション要素 |
図3-13 バイナリフォーマット定義ファイル作成後のサンプル画面
各ファイル操作を行う場合の要求電文の例を次に示します。
電文例を説明するに当たって,要求電文フォーマットを定義するのに使用する要求電文用フォーマット定義ファイルの一覧を次の表に示します。
表3-32 提供される要求電文用フォーマット定義ファイル一覧
ファイル名 | 内容 | 編集 |
---|---|---|
adpff_read.xsd | 要求電文用フォーマット定義ファイル(XML・バイナリ形式読み込み用) | × |
adpff_write.xsd | 要求電文用フォーマット定義テンプレートファイル(XML形式書き込み用) | ○ |
adpff_write.fdx | 要求電文用フォーマット定義テンプレートファイル(バイナリ形式書き込み用) | ○ |
<?xml version="1.0" encoding="UTF-8"?> <adpff:ReadRequest xmlns:adpff="http://FlatFiles.cstmadp.csc.soft.Hitachi.co.jp/ReadRequest"> <fileheader> <filename>C:\WORK\ReadFile.xml</filename> <filemode>all</filemode> </fileheader> </adpff:ReadRequest>
<?xml version="1.0" encoding="UTF-8"?> <!-- All Rights Reserved. Copyright (C) 2007, Hitachi, Ltd. --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:adpff="http://FlatFiles.cstmadp.csc.soft.Hitachi.co.jp/WriteRequest" xmlns:wr="http://WriteRequest" targetNamespace="http://WriteRequest"> <xsd:import namespace="http://FlatFiles.cstmadp.csc.soft.Hitachi.co.jp/WriteRequest" schemaLocation="adpff_header.xsd"/> <xsd:element name="WriteRequest" type="wr:format"/> <xsd:complexType name="format"> <xsd:sequence> <xsd:element name="fileheader" type="adpff:fileheader"/> <xsd:element name="userdata" type="wr:userdata"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="userdata"> <xsd:sequence> <xsd:element name="customer" type="wr:customer"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="customer"> <xsd:sequence> <xsd:element name="name" type="xsd:string" /> <xsd:element name="address" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:schema>
<?xml version="1.0" encoding="UTF-8"?> <wr:WriteRequest xmlns:wr="http://WriteRequest"> <fileheader> <filename>C:\WORK\writeXML.xml</filename> <filemode>new</filemode> </fileheader> <userdata> <customer> <name>日立太郎</name> <address>横浜市戸塚区</address> </customer> </userdata> </wr:WriteRequest>
<?xml version="1.0" encoding="UTF-8"?> <!-- All Rights Reserved. Copyright (C) 2007, Hitachi, Ltd. --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:adpff="http://FlatFiles.cstmadp.csc.soft.Hitachi.co.jp/WriteRequest" xmlns:wr="http://WriteRequest" targetNamespace="http://WriteRequest" xmlns:usr="http://UserSchema"> <xsd:import namespace="http://FlatFiles.cstmadp.csc.soft.Hitachi.co.jp/WriteRequest" schemaLocation="adpff_header.xsd"/> <xsd:import namespace="http://UserSchema" schemaLocation="User.xsd"/> <xsd:element name="WriteRequest" type="wr:format"/> <xsd:complexType name="format"> <xsd:sequence> <xsd:element name="fileheader" type="adpff:fileheader"/> <xsd:element name="userdata" type="wr:userdata"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="userdata"> <xsd:sequence> <xsd:element ref="usr:customer"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:usr="http://UserSchema" targetNamespace="http://UserSchema"> <xsd:element name="customer"> <xsd:complexType> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="address" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
<?xml version="1.0" encoding="UTF-8"?> <wr:WriteRequest xmlns:wr="http://WriteRequest"> <fileheader> <filename>C:\WORK\writeXML.xml</filename> <filemode>new</filemode> </fileheader> <userdata> <usr:customer xmlns:usr="http://UserSchema"> <name>日立太郎</name> <address>横浜市戸塚区</address> </usr:customer> </userdata> </wr:WriteRequest>
図3-14 提供ファイルをインポートした定義画面
図3-15 ユーザデータの定義を追加した定義画面
ファイルアダプタの呼び出し元の要求電文フォーマットから,作成したバイナリフォーマット定義ファイルへデータ変換します。filename_lengthおよびfileoption_length要素には,データ変換の機能で自動的に,filenameおよびfileoption要素のデータ長が設定されます。
図3-16 データ変換定義画面
データ変換(マッピング)定義画面で,変換元の電文フォーマット定義ファイルおよび変換先の電文フォーマット定義ファイルを設定して,データ変換を定義します。
データ変換の定義方法については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「6. データ変換の定義」を参照してください。
ファイルアダプタを定義する場合の手順を次に示します。
ファイルアダプタ実行環境プロパティファイルは,サンプルファイルを利用して作成します。サンプルファイルの格納先を次に示します。
<サービスプラットフォームのインストールディレクトリ>\CSC\custom-adapter\File\config\templates\adpff_exe.properties
ファイルアダプタ実行環境プロパティファイルの作成手順を次に示します。
<サービスプラットフォームのインストールディレクトリ>\CSC\custom-adapter\File\config
ファイルアダプタ実行環境プロパティファイルは,ファイルアダプタを開始する際に実行環境に反映されます。ファイルアダプタ実行環境プロパティファイルの内容を変更する場合は,ファイルアダプタを停止してから作業をします。ファイルアダプタを再開始すると,変更内容が実行環境に反映されます。
ファイルアダプタ実行環境プロパティファイルの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「ファイルアダプタ実行環境プロパティファイル」を参照してください。
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.