- 追加された行はこの色です。
- 削除された行はこの色です。
#freeze
RIGHT:[[目次>Hestia Hacks#SDKDevGuide]]|[[前>SDKの概要]]|[[次>連携方式]]
#contents
*メッセージコンテナ [#msgcontainer]
Hestiaは、EISとメッセージのやりとりを行う際にビジネスメッセージをJava Objectとして扱います。
下記にビジネスメッセージに対応したJava Objectのクラス図を示します。
#ref(figure3.png)
#ref(RJO.png)
**Container [#sa57a68c]
HestiaとEIS間でメッセージ連携を行う際は、メッセージの''容れ物''であるContainerオブジェクトがやりとりされます。実際には、Containerクラスはabstractであり、PayloadContainerまたはStatusContainerがインスタンス化されます。
HestiaとEIS間でメッセージ連携を行う際は、メッセージの''容れ物''であるContainerオブジェクトがやりとりされます。実際には、Containerクラスはabstractであり、PayloadContainerまたはStatusContainerにてインスタンス化されます。
[[API link:http://wiki.a-dos.com/hestiaapi/apidocs/com/ados/hestia/parser/rnbm/exchange/Container.html]]
FIFOIndexはオブジェクトインスタンス生成時に自動設定されますが、
[[ユーティリティクラス:http://wiki.a-dos.com/hestiaapi/apidocs/com/ados/hestia/utils/Utils.html#generateSequentialValue]]よりインデックスを取得しsetFIFOIndex()によって再定義することも可能です。
ログトレースIDについても同様で、インスタンス生成時に自動設定されます。再定義も可能です。
**PayloadContainer [#id1ebbd7]
ビジネスメッセージ本体のServiceContent、および添付ファイルに対応するAttachmentオブジェクトのコンテナです。
[[API link:http://wiki.a-dos.com/hestiaapi/apidocs/com/ados/hestia/parser/rnbm/exchange/PayloadContainer.html]]
**ServiceContent [#qdfce7c0]
RosettaNetのパブリックプロセスにおけるActionメッセージ(RosettaNetのPIP、Chem eStandardsのビジネスメッセージ)本体です。公開APIにおいては、XMLメッセージとServiceContentの相互変換、およびXMLのXPathリストからServiceContentインスタンスを作成する関数群が公開されています。
[[API link:http://wiki.a-dos.com/hestiaapi/apidocs/com/ados/hestia/parser/rnbm/exchange/ServiceContent.html]]
**Attachment [#s4c3e67f]
ビジネスメッセージに添付されたファイルへのインターフェースを提供します。
Attachmentオブジェクト自体は添付ファイルの実体を持っておらず、ファイルの実体はHestiaの内部データベースに格納されていますが、EISはAttachmentオブジェクトが提供するAPI関数を利用しそれを意識せずに透過的にファイル実体のストリームへアクセスできます。
[[API link:http://wiki.a-dos.com/hestiaapi/apidocs/com/ados/hestia/parser/rnbm/exchange/Attachment.html]]
**StatusContainer [#lf6982e9]
RosettaNetのパブリックプロセスにおけるSignalメッセージ(ReceiptAcknowledgment, Exception等)を示すオブジェクトです。
RosettaNetのパブリックプロセスにおけるSignalメッセージ(ReceiptAcknowledgment, Exception等)を示すオブジェクトです。また、Signalメッセージに該当しないトランザクションの状態((XMLバリデーション失敗のためパブリックプロセスが生成できなかった、メッセージが再送された、など))についても利用されます。
[[API link:http://wiki.a-dos.com/hestiaapi/apidocs/com/ados/hestia/parser/rnbm/exchange/StatusContainer.html]]
isSuccess()メソッドがfalseを返す場合、パブリックプロセストランザクションは正常終了していません。その際、getCode()およびgetDescription()で原因を調査することができます。
StatusContainer生成後、トレースIDにPayloadContainer#getLogTraceID()より得られるトレースIDを設定することにより、Hestiaが出力するトランザクションログにて一貫したトレースIDでのトランザクショントラッキングが可能となります。
*サンプルコード [#JOsample]
**XMLからServiceContentへの変換 [#xml2sc]
[[サンプル実装:http://wiki.a-dos.com/eissamplesrc/com/ados/sample/eis/common/util/MessageUtil.java.html#eissample46]]をご参照下さい。XMLファイルからServiceContentオブジェクトへの変換例です。
[[サンプル実装:http://wiki.a-dos.com/eissamplesrc2/MessageUtil.java.html#readXML]]をご参照下さい。XMLファイルからServiceContentオブジェクトへの変換例です。
**ServiceContentからXMLの抽出 [#sc2xml]
[[サンプル実装:http://wiki.a-dos.com/eissamplesrc/com/ados/sample/eis/common/util/MessageUtil.java.html#eissample38]]をご参照下さい。ServiceContentオブジェクトからXMLファイルへの保存例です。
[[サンプル実装:http://wiki.a-dos.com/eissamplesrc2/MessageUtil.java.html#saveXML]]をご参照下さい。ServiceContentオブジェクトからXMLファイルへの保存例です。
**XPathリストからServiceContentの作成 [#xpath2sc]
[[サンプル実装:http://wiki.a-dos.com/eissamplesrc/com/ados/sample/eis/common/util/MessageUtil.java.html#eissample78]]
[[サンプル実装:http://wiki.a-dos.com/eissamplesrc2/MessageUtil.java.html#constructServiceContent]]
をご参照下さい。
PIP0C1 R01.02.00のXPathリストからServiceContentを構築するサンプルです。指定するXPathはルート要素を除いた値を指定します。
**Attachmentオブジェクトから実ファイルへの保存 [#saveatt]
[[サンプル実装:http://wiki.a-dos.com/eissamplesrc/com/ados/sample/eis/common/util/MessageUtil.java.html#eissample63]]
[[サンプル実装:http://wiki.a-dos.com/eissamplesrc2/MessageUtil.java.html#saveAttachment]]
をご参照下さい。