取引相手がひとつで、単純な送信/受信をするアプリケーションについて説明します。以下の組み合わせが一意であることを「取引相手がひとつ」と呼びます。
ToParty
Service
Action
CPA-ID
アプリケーションは3通のebXMLメッセージで一つの意味のある取引データを構築します。したがってその3通には同一のConversationIdをもたせ、同一トランザクションでイベントチャネルに送信します。一つの取引データの送信が終わると、新たなConversationIdで、新たな取引データを送信します。以下に取引の流れを示します。また、取引の概念図を示します。
フェーズ | Party A | Party B |
---|---|---|
1 | 取引開始。発注データ(1通目,START)を送信(括弧のカンマの後ろはConversationFlagの値を意味します) | - |
2 | 発注データ(2通目,CONTINUE)を送信 | - |
3 | 発注データ(3通目,END)を送信 | - |
4 | - | 発注データ(1通目,UNKNOWN)を受信 |
5 | - | 発注データ(2通目,UNKNOWN)を受信 |
6 | - | 発注データ(3通目,UNKNOWN)を受信。取引完了 |
受信アプリケーションはConversationFlagの値を受け取ることができません。そのため、送信側と受信側が以下にあげる例のような制御をすることが必要です。
あらかじめ、何通のebXMLメッセージで1取引であるかを決めておく(この例の場合なら3通)
ペイロードの中に取引の終了を表す情報を設定しておく
上記の例はpullを使用していますが、try_pull, pull_waitなどを利用することにより、より柔軟なアプリケーションを作成することができます。