汎用データ同期

この製品では、適格なエンティティに対する変更のたびに同期フローをトリガーしてそのエンティティに関する詳細を1つ以上の外部システムに伝達するという汎用データ同期方法がサポートされています。

この機能の要点をまとめると、次のようになります。
  • 特定のエンティティ(メンテナンス・オブジェクト)と外部システムの統合は、「データ同期管理」(F1-DataSyncControl)拡張可能参照レコードを使用して有効化および構成されます。

  • 統合をサポートするルールは、管理レコード上で参照される同期スクリプト内に存在します。

  • エンティティが追加、変更または削除されるときに、統合のそれぞれに対して同期要求を作成でき、その処理は対応する同期スクリプトで定義されたビジネス・ルールに従います。

  • 同期要求は、次回のモニター・バッチ・プロセスによって処理されます。

  • 同期要求が処理されるときに、データが外部システムに同期され、この処理は対応する同期スクリプトで定義されたビジネス・ルールに従います。

この機能をサポートするロジックは、基本ビジネス・オブジェクト「汎用データ同期要求」(F1-GenericDataSync)で提供されます。特定の統合ルールをサポートするために、このビジネス・オブジェクトを拡張する必要はありません。これらのルールは、各統合のデータ同期管理レコードに関連付けられた同期スクリプト内に存在するからです。

次の各項では、このデータ同期方法の主な側面について説明します。

データ同期管理

「データ同期管理」(F1-DataSyncControl)拡張可能参照では、エンティティから外部システムへの継続的なデータ同期をサポートするために必要な構成が定義されます。この構成では、エンティティのメンテナンス・オブジェクトおよび同期される外部システムが定義されるとともに、この統合のための特定の同期ルールを管理する同期スクリプトが参照されます。統合が有効化されているとみなされるのは、対応する管理レコードが有効ステータスになっているときです。

データ同期スクリプトは、次のモードでコールされます。

  • エンティティが追加、変更または削除されるとき、変更されたエンティティおよび特定の外部システムに対して、同期要求を作成する必要があるかどうかを判断するために、スクリプトが「チェック」モードでコールされます。

  • 同期要求が処理されるとき、アウトバウンド・メッセージを準備して外部システムに送信するために、スクリプトが「処理」モードでコールされます。あるいは、スクリプトが要求の破棄を要求することや、要求を後で処理する必要があることを示すこともできます。後者は、特定の条件が満たされるまで待ってからメッセージを外部システムに送信する必要がある場合に使用できます。

メンテナンス・オブジェクトおよび特定の外部システムに対する構成が、より高いシーケンス番号で定義された別の構成によってオーバーライドされる場合があることに注意してください。

同期が必要かどうかの確認

基本製品には、変更データ取得(メンテナンス・オブジェクト監査)アルゴリズムF1ONGDATASYNが用意されており、この方法で同期する必要があるメンテナンス・オブジェクトに使用できます。このアルゴリズムは、エンティティに対して構成された有効な統合管理レコードのそれぞれに関連付けられた同期スクリプトを調べて、この変更について外部システムに通知する必要があるかどうかを特定します。確認後、アルゴリズムは変更されたレコードの「同期要求」レコードを作成し、そのメンテナンス・オブジェクト・コードと主キーを、対応する外部システムとともに取得します。

同期要求を作成するかどうかの決定は統合固有の同期スクリプトによって制御されますが、同期要求の作成は監査アルゴリズムによって行われることに注意してください。そのため、統合固有の詳細を取得する仕組みはなく、同じ同期要求ビジネス・オブジェクトがすべての統合に使用されます。

同期要求の作成の承認は必要なときにのみ承認するように同期スクリプトを設計することをお薦めします。このようにすると、結局は処理時に破棄される、必要のない同期要求が作成されなくなります。

同期プロセスの管理

同期要求を取得した後は、外部システムに情報を送信する前に、実行する複数のステップがあります。

注意: ここでは主要なステップのみを示します。完全な機能の全体像は、ビジネス・オブジェクトの構成、そのライフサイクルおよびアルゴリズムを参照してください。
  • 同期要求レコードが作成されると、バッチ・モニターで処理するようにその初期状態(保留)が構成されます。これで、要求をトリガーした変更は完全にコミットされた後で外部システムに伝達されるようになります。

  • 同期要求レコードが処理されるとき、モニター・アルゴリズムは、同期プロセスを管理するために、対応する統合の管理レコードに関連付けられた同期スクリプトをコールします。同期スクリプトは、次のいずれかを示す可能性があります。

    • この要求はまだ処理する準備ができていません。つまり、現在のステータスのままとし、次回のバッチ実行で再度処理する必要があります。

    • この要求は取り消す必要があります。これを示しているときは、レコードが「取消済」ステータスに遷移します。

    • この要求は正常に処理されました。同期スクリプトによってアウトバウンド・メッセージが準備され、情報が外部システムに適切にルーティングされました。これを示しているときは、レコードが「送信済」ステータスに遷移します。

  • 要求の処理中にエラーが発生した場合は、エラー詳細を取得するために作業予定登録が生成され、レコードが「エラー」ステータスに設定されます。同期要求の処理の再試行が各バッチ・プロセスで行われ、その要求が送信されるか取り消されるまで続行されます。

外部システムへの伝達

一般的に、外部システムとの通信が完了するのは、メッセージが正常に送信されて外部システムによって正常に処理されたときです。実際の統合によっては、メッセージがすぐに外部システムによって処理されるかわりに、キューに入れられて後で処理されることがあります。この状況では、同期要求が正常に処理されたことについてさらに確認する(「承認済」ステータスに設定する)ことが、外部システムからの明示的な応答メカニズムにおいて必要になる可能性があります。この製品ではWebサービスF1-UpdateAndTransitionSyncRequestが提供され、このような承認の処理に使用できます。