イベント検出機構の設計
SAP アプリケーションでイベントを検出するには、さまざまな機構を利用できます。イベント検出機構は、機能モジュールを呼び出すことができる必要があります。コネクターは、次の 4 種類のイベント検出機構を実装しています。
- コード拡張 -- SAP トランザクションの適切なポイントにイベント検出コードを挿入することにより、ビジネス・プロセス (通常は単一の SAP トランザクション) のために実装されています。
- バッチ・プログラム -- イベントを検出するための基準を組み込んだ ABAP プログラムの開発を必要とします。
- ビジネス・ワークフロー -- SAP 独自のオブジェクト指向イベント検出機能を使用します。
- 変更ポインター -- ビジネス・ワークフローの一種である変更ポインター機構を実装し、変更文書の概念を使用してさまざまなビジネス・プロセスの変更を検出します。
これらのイベント検出機構の一部は特定のビジネス・プロセスに対しては利用できないため、開発する各ビジネス・オブジェクトについて、実装する適切なイベント検出機構を決定する必要があります。イベント検出を実装する必要のある各トランザクションについて、特定のビジネス・プロセスに関する技術的および機能的知識が必要です。
ビジネス・プロセスに実装するイベント検出機構を決定する際には、以下に示す実装上の考慮事項を検討してください。
- 可用性
- そのビジネス・プロセスには、どのイベント検出機構が利用できるでしょうか?
これは、最初に考慮する必要のある問題の 1 つです。コード拡張およびバッチ・プログラムは可用性が高いのに対して、ビジネス・ワークフローおよび変更ポインターの可用性は高くありません。
- リアルタイム統合
- イベントは同期的に検出する必要があるでしょうか?
多数のイベントを一度に検出する必要がありますか?
バッチ・プログラム以外のすべての機構は、リアルタイム統合に適しています。
- 信頼性
- イベントが生成された場合、そのビジネス・プロセスについてのデータ変更はすべて検出されますか?
コード拡張、バッチ・プログラム、および変更ポインターは、オブジェクトのすべてのイベントの取り込みを最もよく制御できます。ビジネス・ワークフローの信頼性には制限があります。例えば、ビジネス・ワークフローは、ベンダー・トランザクション更新中のアドレス変更を検出しません。
- 柔軟性
- イベントが起動される前に、特定の基準を評価する必要がありますか?
トランザクションの特定のポイントでイベントを検出する必要がありますか?
コード拡張は、イベント・データがコミットされる前に特定のポイントにコードを挿入できるため、最も柔軟性に優れています。変更ポインターとバッチ・プログラムは中程度の柔軟性を備えていますが、ビジネス・ワークフローの実装には、柔軟性はほとんどありません。
- アップグレード依存性
- SAP アプリケーションにアップグレードした場合、そのビジネス・プロセスについてイベントが検出される方法が変わりますか?
一般的には、これは一概には言えませんが、ビジネス・ワークフローおよび変更ポインターは、SAP によって管理されているため、アプリケーション変更の影響を最も強く受けます。
- 障害
- 時間や困難さのレベルは問題になりますか?
実装の困難さのレベルは、それぞれの機構によって異なります。一般に、バッチ・プログラムが最も簡単です。コード拡張およびビジネス・ワークフローはそれよりも若干困難ですが、変更ポインターは、SAP および評価対象のビジネス・プロセスについて、より詳細な知識が必要になるため、最も困難です。
- 将来のイベント
- イベントをリアルタイムで取り込んでから、その検索を指定した日付まで遅らせることができる必要がありますか?
例えば、従業員レコードの住所を今日更新して、その変更を 3 週間後に有効化する必要がある場合があります。この場合、イベントの取り込みは更新時に行い、検索は発効日まで遅らせる必要があります。
この時点で、考慮する必要のあるイベント検出機構について理解しておく必要があります。
表 49 でサポートする必要のある各ビジネス・プロセスに対して使用できる機構を
判断するための一般的なガイドラインを示します。
表 49. イベント検出機構デシジョン・テーブル
|
コード拡張 |
バッチ・プログラム |
ビジネス・ワークフロー |
変更ポインター |
可用性 |
高 |
高 |
低 |
低 |
リアルタイム統合 |
可 |
なし |
可 |
可 |
信頼性 |
高 |
高 |
低 |
中 |
柔軟性 |
高 |
中 |
低 |
中 |
アップグレード依存性 |
低 |
低 |
中 |
中 |
障害 |
中 |
低 |
中 |
高 |
将来のイベント |
可 |
可 |
なし |
なし |
注意する必要のある最後の考慮事項は、サイトの開発の方法論です。多くの場合、ビジネス・ワークフローのみを使用したイベント検出が推奨される方法であり、コード拡張はまったく使用されません。
コード拡張の使用は、信頼でき、柔軟性に優れ、同期可能で、可用性が高いため、イベント検出には推奨できるアプローチです。これに対し、ビジネス・ワークフローおよび変更ポインター機構は、すべてのビジネス・プロセスに対して一般的に使用できるわけではありません。バッチ・プログラムは一般に、リアルタイム統合が必要ない場合に使用されます。
それぞれのイベント検出機構には、ビジネス・プロセス内のイベントを検出するための利点と欠点があります。以下のセクションでは、各イベント検出機構の詳細と、それぞれの主な利点と欠点について説明します。
これらのイベント検出機構は、すべてイベントのリアルタイム・トリガーおよび検索をサポートしています。ただし、コード拡張およびバッチ・プログラムだけは、遅延検索という追加機能を提供します。後の時点で検索されるように指定されたイベントは、将来のイベントと呼ばれます。
コード拡張
コード拡張は、SAP トランザクションのコード内の特定のポイントに実装します。ユーザー出口を利用すると、トランザクションの最もロジカルなポイントに、イベント検出コードを挿入できます。イベント検出コードは、イベントが生成されたかどうかの判断基準を評価するために使用します。
この機構の一般的戦略は、トランザクションのデータがデータベースにコミットされる直前に、イベント検出コードを挿入することです。
利点
- イベント検出プロセスに使用する SAP トランザクション情報にアクセスできます。
- トランザクションの適切なポイントにイベント検出コードを追加できます。
- 同期イベント検出を可能にします。
- SAP 機能への依存が限定されるため、保守や拡張が比較的容易です。
- 将来のイベントをサポートします。
欠点
- ユーザー出口が常にトランザクションの適切な位置にあるとは限りません。
- SAP 変更機能が必要になる場合があります。
バッチ・プログラム
バッチ・プログラムは、同じタイプの多数のイベント (例えば顧客注文)を起動する必要がある場合、あるいはビジネス・プロセスが長い処理時間を必要とする場合に役立ちます。この機構では、SAP 提供コードを変更する必要はありませんが、イベント検出の基準を評価する ABAP プログラムを使用する (作成する) 必要があります。
利点
- ほとんどのビジネス・プロセスに対して実装できます。
- イベントを正確に検出します。
- 実装が容易です。
- 実行時のリソースが問題である場合は、特定の時刻に実行するようにスケジュールできます。
- 将来のイベントをサポートします。
欠点
- 同期イベント検出はできません。
- SAP トランザクション情報は利用できません。
- 状態 (Create、Update または Delete) または状況の変更は、検出できない場合、あるいは検出が困難な場合があります。
- バッチ・プログラムを自動化するバックグラウンド・ジョブが作成されている場合、追加のタスクは保守および監視される必要があります。
ビジネス・ワークフロー
ビジネス・ワークフローは、複数のアプリケーション間でビジネス・タスクを統合できる、SAP アプリケーション内のクロス・アプリケーション・ツールです。このツールは、SAP アプリケーションの既存のビジネス機能を補足します。ビジネス・ワークフローを使用すると、必要なビジネス機能の特定の要件に合わせて、SAP の標準機能を改造できます。ビジネス・ワークフローは、アプリケーション内の各 SAP オブジェクトの定義を保管する、ビジネス・オブジェクト・リポジトリー (BOR) を使用します。
利点
- 同期イベント検出を可能にします。
- SAP のオブジェクト指向ビジネス・オブジェクト機能を利用して、イベントの検出を ABAP 機能モジュールにリンクします。
- 実装が容易です。
欠点
- すべてのビジネス・プロセスの SAP BOR に SAP オブジェクトが存在するとは限りません。
- SAP オブジェクトに対して SAP イベント (例えば Created や Deleted など) が存在しない場合があります。
- ビジネス・プロセス内のすべての変更を検出できるとは限りません。
- 適切な時刻にイベントを検出する柔軟性を提供できない場合があります。
- SAP 提供の機能に依存します。この機能は、SAP のバージョンによって異なる場合があります。
変更ポインター
変更ポインターは、変更文書を使用してイベントを検出する、ビジネス・ワークフローの関連機能です。変更文書は、一部のビジネス・プロセスに対して作成され、そのビジネス・プロセスに関するすべての変更が取り込まれるようにします。
利点
- 同期イベント検出を可能にします。
- 1 つのアダプター機能モジュールについて、1 つの SAP 変更だけで、すべてのビジネス・プロセスを処理できます。
- Logistics モジュールに対して一般的に利用できます。
- イベント検出プロセスに使用する SAP 変更ポインター情報にアクセスできます。
- ビジネス・プロセスに対して変更文書が既に使用されている場合は、最小限の作業でイベントを検出できます。
欠点
- ある程度の柔軟性は備えていますが、イベント検出の配置は SAP によって行われるため変更できません。
- 変更文書およびビジネス・ワークフロー環境について、詳しい知識が必要になります。
- SAP データ・エレメントの変更文書フラグをオンにするには、SAP 変更を行う必要があります。
- SAP の変更ポインター情報が、イベント検出プロセスには不十分である場合があります。
