3.7.4 送信結果/受信定義ファイルの作成
送信結果/受信定義ファイルとは,JP1またはUOCでビジネスメッセージ情報の通知を受けるための定義,および受信したペイロードを出力・格納するための定義をするファイルです。送信結果/受信定義ファイルを作成して,ビジネスメッセージの送信結果の通知方法や,受信時のuCosminexus Message Service for ebXMLの動作を定義します。
次のサンプルファイルを定義ファイルの格納ディレクトリにコピーして編集してください。
- Windowsの場合
<uCosminexus Message Service for ebXMLのインストールディレクトリ>¥sample¥conf¥rcvdef.xml
- UNIXの場合
/opt/ebxml/msh/sample/conf/rcvdef.xml
送信結果/受信定義ファイルの詳細については,「7.5 送信結果/受信定義ファイル(rcvdef.xml)」を参照してください。
ここでは,次に挙げる項目ついて説明します。
- 受信メッセージ格納ディレクトリの構成
ペイロードを受信メッセージ格納ディレクトリに格納する場合,ユーザーはどのようなディレクトリ構成にするかを決めておく必要があります。
- 受信メッセージ格納ディレクトリに格納されるペイロードのファイル名,およびビジネスメッセージ別ディレクトリの名称
各名称は,uCosminexus Message Service for ebXMLが受信時に決定します。
- <この項の構成>
- (1) 受信したペイロードの格納に必要なディレクトリ
- (2) 受信メッセージ格納ディレクトリの構成
- (3) 格納されるペイロードのファイル名
- (4) ビジネスメッセージ別ディレクトリの名称
(1) 受信したペイロードの格納に必要なディレクトリ
受信したペイロードの格納に必要なディレクトリを,次に示します。
- 受信メッセージ格納ディレクトリ
受信したペイロードを格納するディレクトリです。ユーザーは,受信メッセージ格納ディレクトリ下を単一ディレクトリ構成,および階層ディレクトリ構成のどちらにするかを選択できます。単一ディレクトリ構成,および階層ディレクトリ構成の詳細については「3.7.4(2) 受信メッセージ格納ディレクトリの構成」を参照してください。
- ファイル出力エラーディレクトリ
受信メッセージ格納ディレクトリにペイロードが格納されなかった場合にペイロードが格納されるディレクトリです。単一ディレクトリ構成,階層ディレクトリ構成のどちらに設定しても,ビジネスメッセージ別のディレクトリにペイロードが格納されます。
ペイロードがファイル出力エラーディレクトリに格納されるのは,次のときです。
- 同じファイル名を持つペイロードファイルがすでに受信メッセージ格納ディレクトリ下にあるとき
- 受信メッセージ格納ディレクトリが,システム管理者に対するアクセス権限を持たないとき
アクセス権限の状態によっては,受信メッセージが一時停止状態となり,ファイル出力エラーディレクトリに格納されない場合があります。
これらのディレクトリ名やディレクトリの位置は,ユーザーが任意に決めることができます。ユーザーが指定しなかった場合,ディレクトリ構成は次のとおりになります。
MSH実行環境ディレクトリ ├RecvMessage(受信メッセージ格納ディレクトリ) │ ├-受信したペイロード │ └-受信したペイロード └FailedMessage(ファイル出力エラーディレクトリ) ├-ビジネスメッセージ別ディレクトリ │ └-受信したペイロード └-ビジネスメッセージ別ディレクトリ └-受信したペイロード |
(2) 受信メッセージ格納ディレクトリの構成
受信メッセージ格納ディレクトリの構成には,単一ディレクトリ構成と階層ディレクトリ構成の二種類があります。ユーザーはオプション設定を組み合わせることで,ご使用のシステムに最適なディレクトリ構成を設定できます。
(a) 単一ディレクトリ構成
受信メッセージ格納ディレクトリの直下にペイロードを格納する方法です。単一ディレクトリ構成にできるのは,次の条件を満たす場合です。
- 受信したビジネスメッセージのペイロードにファイル名が指定されている。
- 受信したビジネスメッセージ間でファイル名が重複しない。
この条件を満たさない場合,受信メッセージ格納ディレクトリの下にビジネスメッセージ別ディレクトリを作成することで,単一階層ディレクトリにできます。
単一ディレクトリ構成の場合の,受信メッセージ格納ディレクトリの構成例を次に示します。
- ビジネスメッセージ別ディレクトリを作成しない場合
受信メッセージ格納ディレクトリ ├受信したペイロード ├受信したペイロード └受信したペイロード |
- ビジネスメッセージ別ディレクトリを作成する場合
受信メッセージ格納ディレクトリ ├ビジネスメッセージ別ディレクトリ │ ├-受信したペイロード │ └-受信したペイロード └ビジネスメッセージ別ディレクトリ ├-受信したペイロード └-受信したペイロード |
(b) 階層ディレクトリ構成
CPAファイルに記載されているサービス・アクション名と受信メッセージ格納ディレクトリの名称をマッピングして,各ディレクトリにペイロードを振り分けて格納する方法です。階層ディレクトリの下に,さらにビジネスメッセージ別ディレクトリを作成する構成にもできます。
階層ディレクトリ構成の場合の,受信メッセージ格納ディレクトリの構成例を次に示します。
- サービス名別のディレクトリを作成する構成例
受信メッセージ格納ディレクトリ ├Order(サービス名別ディレクトリ) └Service |
この例では,CPAファイルで"発注"と定義されたサービスと,"Order"というディレクトリとを対応づけています。"発注"というサービスが定義されたペイロードは,Orderディレクトリに格納されます。
サービス名別ディレクトリと対応づけられていないサービス名(この例では"発注"以外のサービス名)が定義されたペイロードを受信した場合,uCosminexus Message Service for ebXMLは"Service"というディレクトリを新規作成して格納ディレクトリとします。"Service"ディレクトリの名称は,ユーザーが任意に指定できます。
- アクション名別のディレクトリを作成する構成例
受信メッセージ格納ディレクトリ ├PurchaseOrderRequest(アクション名別ディレクトリ) ├PurchaseOrderConfirmation(アクション名別ディレクトリ) └Action |
この例では,CPAファイルで"発注見積もり"と定義されたアクションと"PurchaseOrderRequest"というディレクトリを,"発注確定"と定義されたアクションと"PurchaseOrderConfirmation"というディレクトリを対応づけています。
"発注見積もり"というアクションが定義されたペイロードは,PurchaseOrderRequestディレクトリに格納されます。"発注確定"というアクションが定義されたペイロードは,PurchaseOrderConfirmationディレクトリに格納されます。
アクション名別ディレクトリと対応づけられていないアクション名(この例では"urchaseOrderRequest""PurchaseOrderConfirmation"以外のアクション名)が定義されたペイロードを受信した場合,uCosminexus Message Service for ebXMLは"Action"というディレクトリを新規作成して格納ディレクトリとします。"Action"ディレクトリの名称はユーザーが任意に指定できます。
- サービス名別ディレクトリの下にアクション名別ディレクトリを作成する構成例
受信メッセージ格納ディレクトリ ├Order(サービス名別ディレクトリ) │ ├PurchaseOrderRequest(アクション名別ディレクトリ) │ ├PurchaseOrderConfirmation(アクション名別ディレクトリ) │ └Action └Service ├PurchaseOrderRequest(アクション名別ディレクトリ) ├PurchaseOrderConfirmation(アクション名別ディレクトリ) └Action |
この例では,前述のサービス名別ディレクトリを作成した構成と,アクション名別ディレクトリを作成した構成とを組み合わせています。
"発注"というサービスおよび"発注見積もり"というアクションが定義されたペイロードは,Orderディレクトリ下のPurchaseOrderRequestディレクトリに格納されます。"発注"というサービスおよび"発注確定"というアクションが定義されたペイロードは,Orderディレクトリ下のPurchaseOrderConfirmationディレクトリに格納されます。
また,"発注"というサービスが定義され,"発注見積もり"や"発注確定"以外のアクションが定義されたペイロードは,Orderディレクトリ下のActionディレクトリに格納されます。逆に,"発注"以外のサービスが定義され,"発注見積もり"というアクションが定義されたペイロードは,Serviceディレクトリ下のPurchaseOrderRequestディレクトリに格納されます。
- サービスとアクションを組み合わせてディレクトリを作成し,その下にさらにビジネスメッセージ別ディレクトリを作成する構成例
受信メッセージ格納ディレクトリ ├Order(サービス名別ディレクトリ) │ ├PurchaseOrderRequest(アクション名別ディレクトリ) │ │ ├ビジネスメッセージ別ディレクトリ │ │ └ビジネスメッセージ別ディレクトリ │ ├PurchaseOrderConfirmation(アクション名別ディレクトリ) │ │ ├ビジネスメッセージ別ディレクトリ │ │ └ビジネスメッセージ別ディレクトリ │ └Action └Service ├PurchaseOrderRequest(アクション名別ディレクトリ) ├PurchaseOrderConfirmation(アクション名別ディレクトリ) └Action |
この例では,サービスとアクションを組み合わせたディレクトリの下にビジネスメッセージ別ディレクトリを作成していますが,サービス名別ディレクトリだけ,またはアクション名別ディレクトリだけの構成の場合も同様に,ビジネスメッセージ別ディレクトリを作成できます。
(3) 格納されるペイロードのファイル名
ビジネスメッセージ送信時に指定されたファイル名が付けられます。次に示す場合は,uCosminexus Message Service for ebXMLによって,適切なファイル名に変更されます。
- 同一ファイル名のペイロードを複数受信した場合
- 受信したペイロードのうち,重複しているファイル名の末尾に,ペイロード内の通番として「-XXX」が付けられます。XXXには001から999までの数字が入ります。
- 例えば,あるビジネスメッセージでpayload1.txtというファイルを二つ受信した場合,ファイル名は,payload1.txt-001およびpayload1.txt-002になります。
- ファイル名にuCosminexus Message Service for ebXMLで使用できない文字が使用されている場合
- ファイル名に「¥」,「/」,「:」,「<」,「>」,「|」,「"」,「*」,「?」が使用されている場合,これらの文字は「_」に変換されます。
- uCosminexus Message Service for ebXMLで使用できない文字を含むファイル名のペイロードをファイル出力エラーとしたい場合は,送信結果/受信定義ファイル(RECV_MESSAGEコンテナのFILE_OUT_FORCEキー)の設定をします。
- ビジネスメッセージ送信時にファイル名が指定されなかった場合
- Payload_[n]というファイル名で格納されます。nは,同一ビジネスメッセージ内でのペイロードに付けられる通番で,1から順に増えていきます。
(4) ビジネスメッセージ別ディレクトリの名称
uCosminexus Message Service for ebXMLによって生成される,永続化メッセージのメッセージングコンテキスト識別子が付けられます。