使用する
シリアル化されたメッセージには、さまざまなタイプがあります(たとえば、メッセージの作成、変更、キャンセル)。ただし、ここで検討するすべてのメッセージは、1つの特別なアプリケーションオブジェクトに関連しています。
メッセージには、マスタデータとトランザクションデータの両方を含めることができます。
オブジェクトのシリアル化を使用すると、特定のオブジェクトのメッセージは、受信側システムで常に正しい順序で処理されます。メッセージは、送信側システムで作成されたのと同じ順序で受信側システムに投稿されます。
特徴
転送されるメッセージ(IDoc)には連番が割り当てられます。これは、各オブジェクトタイプおよびオブジェクトチャネルの送信および受信システムで管理されます。オブジェクトチャネルには、いくつかの順序付けられたIDocが含まれ、オブジェクトタイプ(BOR)と、メッセージ属性である1つのチャネル番号によって定義されます。ターゲットシステムのすべてのメッセージは、ソースシステムで作成されたのと同じ順序でオブジェクトチャネルで処理されます。チャネル番号はメッセージ属性です。汎用モジュールALE_SERIAL_KEY2CHANNELで生成されるか、アプリケーションプログラムで割り当てられます。
この番号は、次のことを識別します。
-
RFC送信エラー
-
次のメッセージはすでに受信されていますが、メッセージのアプリケーションドキュメントはまだ投稿されていません(ステータスコード53)。
どちらの場合も、IDocは先行IDocのインバウンド処理を待機しているため、ステータスコード66が割り当てられます。先行IDocが転記されたら、プログラムRBDAPP01を使用してステータス66のIDocを転記する必要があります。
シリアル化がアクティブ化されると、同じチャネル番号とオブジェクトタイプを持つすべてのメッセージがシリアル化されます。
各オブジェクトチャネルの現在の番号が記録されます。このプロセスは、レジストリと呼ばれる場所で行われます。アウトバウンドレジストリとインバウンドレジストリがあります。シリアル化は、両方のレジストリでアクティブ化する必要があります。
アウトバウンド処理(ソースシステム内)
アウトバウンドIDocが処理されると、オブジェクトチャネル(フィールドCHNUM)ごとに、作成されたIDoc(フィールドCHCOU)ごとに一意のシリアル番号が割り当てられます。この番号とオブジェクトチャネルは、SERIALフィールドのIDocで転送されます。
問題のアプリケーションオブジェクトの各メッセージには、一意のシリアル番号が割り当てられています。
インバウンド処理(対象システム内)
インバウンドIDocが処理されると、オブジェクトチャネル(フィールドCHNUM)および通信リンクごとに一意のシリアル番号が生成されます。ALEレイヤーは、特定のIDocを転記できるかどうか、または他のIDocを最初に転記する必要があるかどうかを決定します。受信した各IDocのシリアル番号は、整数より1つ少なくなります。シーケンスにギャップがある場合は、転送が機能しなかったか、以前のIDocが正常に転記されなかったために、IDocが欠落していることを意味します。
この場合、IDocにはステータス66が割り当てられ、プログラムRBDAPP01を使用して再度投稿する必要があります。
オブジェクトタイプは、アプリケーションによってメッセージとチャネルに事前に割り当てられています。
転送エラー(IDocシーケンスの混同)およびインバウンド転記エラー(カスタマイジングエラーのためにIDocを転記できません)は、シリアル化によってこれらのエラーが修正されるため、順次順序に影響を与えなくなりました。