RIGHT:[[目次>Hestia Hacks#SDKDevDuide]]|[[前>EIS振分条件の設定]]|[[次>高水準API]]
RIGHT:[[目次>Hestia Hacks#SDKDevDuide]]|[[前>連携方式]]|[[次>高水準API]]
#contents
低水準API群では、PayloadContainerとStatusContainerを利用しHestiaとEISのメッセージハンドリングを行います。
Hestiaに対するメッセージのポーリングはAPI関数として用意しておりますが、EIS側で定期的にポーリングを実施する必要があります。
PayloadContainerとStatusContainerの詳細については[[APIドキュメント:http://wiki.a-dos.com/hestiaapi/apidocs/]]及び[[JavaObjectのハンドリング]]を参照してください。
*1Actionメッセージ送信時 [#oneactioninit]
以下に1アクションメッセージ送信時のシーケンス図を示します。
#ref(OneActionInitiation.png)
- 2. EISはメッセージ送信前にServiceContentをvalidateする必要があります。
- 6. 取引先からAckを受信した場合は''BRIDGE.SUCCESS''が、Exceptionを受信した場合は対応するエラー内容が[[ステータスコード>#status]]に通知されます。PayloadとStatusはpipInstanceIDで関連付けすることができます。
- 3. トランザクションオートコミットにオフを指定した場合はコミットが必要です。
- 5. EISより受信したメッセージがinvalidであった場合((TPAの設定にてメッセージバリデーションを指定していた場合))、JavaObject内のDUNS/TPA情報等に該当する設定がHestiaに存在しなかった場合など、取引先へ正常にメッセージが送信されないケースにおいてはこのタイミングでエラー内容を含むStatusContainerが''BRIDGE.BUILD.MESSAGE''として生成されます。
- 6-7. 何らかの理由により取引先へのメッセージ送信に失敗した場合、通常は情報種毎に定義されたメッセージ再送間隔/再送回数に従いメッセージが再送されます。その都度、メッセージ再送を示すStatusContainerが''BRIDGE.REPEAT.SEND''で通知されます。
- 6. 取引先からAckを受信した場合は''BRIDGE.SUCCESS''が、Exceptionを受信した場合は''BRIDGE.EXCEPTION.RECEIVED''が通知されます。PayloadとStatusはpipInstanceIDで関連付けすることができます。
*1Actionメッセージ受信時 [#oneactionrespond]
#ref(OneActionResponder.png)
-4. パブリックプロセスのvalidationにおいてvalidなメッセージはPayloadContainerが、invalidなメッセージに対してはStatusContainerがEIS側に送信されます。
-5. EISはPayloadContainerよりServiceContentおよび添付ファイルを取り出し何らかの処理を行う必要があります。
-6. また処理に成功した場合は成功した通知を''BRIDGE.SUCCESS''コードとともにHestiaへStatusContainerで通知しなければなりません。通知がなかった場合、または失敗コードが通知された場合、Hestiaは取引先へPIP0A1(NoF)の通知を試みます。((TPAにてSonyExtension=falseが設定されている場合、NoFは通知されません。))
#ref(OneActionResponding.png)
- 4. 取引先へReceiptAcknowledgmentメッセージを送信後、EISはPayloadContainerの受信が可能となります。2. においてメッセージのバリデーションに失敗した場合(XML検証失敗/電子署名検証失敗など)は、Exceptionが取引先へ送信され((RNIFの定義に従いExceptionを取引先へ送信しないケースもあります))、EISへは通知されません。((ログへその旨出力されます))
- 6-7. 処理に成功した場合は成功した通知を''BRIDGE.SUCCESS''コードとともにHestiaへStatusContainerで通知しなければなりません。通知がなかった場合、または失敗コードが通知された場合、Hestiaは取引先へPIP0A1(NoF)の通知を試みます。((TPAにてNoFを使わない設定をされている場合、NoFは通知されません。))
*2Actionメッセージ送信時 [#twoactioninit]
#ref(TwoActionInitiation.png)
-
*2Actionメッセージ受信時 [#twoactionrespond]
#ref(TwoActionResponder.png)
*Status種別 [#status]
|種別コード|用途|h
|BRIDGE.SUCCESS|成功の際に通知されます|
|BRIDGE.REPEAT.SEND|PIPのメッセージガイドラインに定義された再送間隔、再送回数に従い再送が行われる際に通知されます|
|BRIDGE.BUILD.MESSAGE|Hestia内部エラーによりEISで作成したメッセージから送信用プロセスの生成に失敗した場合に通知されます。メッセージのバリデーションエラーもこのコードに含まれます|
|BRIDGE.FAILURE.PROCESS|NoFが送信される際にEISに通知されます|
|BRIDGE.PARTNER.NOTFOUND|指定されたパートナーが存在しない際に通知されます|
|BRIDGE.INVALID.RESPONSE|2アクションのレスポンスメッセージが正しくない場合に通知されます|
|BRIDGE.BUILD.MESSAGE|Hestia内部エラーによりEISで作成したメッセージから送信用プロセスの生成に失敗した場合に通知されます|
|BRIDGE.PROCESS.MESSAGE|Hestia内部エラーにより送信用コンポーネントへメッセージが到達しなかった場合に通知されます|