コネクターの動作方法

ここでは、メタデータでコネクターの柔軟性を向上する方法について説明し、ビジネス・オブジェクトの処理とイベント通知に関する高度な説明を行います。

コネクターおよびメタデータ

コネクターはメタデータ主導型です。メタデータはビジネス・オブジェクトに格納されるアプリケーション固有のデータで、コネクターとアプリケーションの対話を支援します。メタデータ主導型コネクターは、コネクターでハードコーディングされた命令でなくビジネス・オブジェクト定義でエンコードされたメタデータ に基づいて、サポートする各ビジネス・オブジェクトを処理します。ビジネス・オブジェクトは、Siebel ビジネス・コンポーネントに対応します。ビジネス・オブジェクトの詳細については、Siebel ビジネス・サービスのサポートを参照してください。

ビジネス・オブジェクトのメタデータには、ビジネス・オブジェクトの構造、属性プロパティーの設定、アプリケーション固有の情報の内容などがあります。コネクターはメタデータ主導型なので、コネクター・コードを変更しなくても、新しいビジネス・オブジェクトまたは変更されたビジネス・オブジェクトを処理することができます。

ビジネス・オブジェクトの処理

ここでは、コネクターが統合ブローカーの要求とアプリケーション・イベントを処理する方法について概説します。WebSphere Business Integration Server Express Plus の統合ブローカーは、InterChange Server Express です。

InterChange Server Express 要求の処理

コネクターがビジネス・オブジェクトからの要求を受信してアプリケーションの操作を行う場合、コネクターは階層型ビジネス・オブジェクトを反復処理します。すなわち、個々のビジネス・オブジェクトをすべて処理するまでそれぞれの子ビジネス・オブジェクトに対して同じ手順を実行します。

注:
階層型ビジネス・オブジェクトという用語は、どのようなレベルでも収容できるすべての子ビジネス・オブジェクトを持つ 1 つの完全なビジネス・オブジェクトを指します。個々のビジネス・オブジェクトという用語は、それが収容している、あるいは収容されている、どの子ビジネス・オブジェクトからも独立した 1 つのビジネス・オブジェクトを指します。トップレベルのビジネス・オブジェクトという用語は、それ自体が親ビジネス・オブジェクトを持たない階層のトップにある個々のビジネス・オブジェクトを指します。

ビジネス・オブジェクトの検索

InterChange Server Express が Siebel アプリケーションから階層型ビジネス・オブジェクトの検索をコネクターに要求すると、コネクターは Siebel ビジネス・コンポーネント・インスタンスの現行の表現に正確に一致する InterChange Server Express にビジネス・オブジェクトを戻そうとします。言い換えると、InterChange Server Express に戻された個々のビジネス・オブジェクトの単純な属性はすべて、Siebel ビジネス・コンポーネント内の対応するフィールドの値に一致します。

完全なビジネス・コンポーネントを検索するために、コネクターは InterChange Server Express から受信したトップレベル・ビジネス・オブジェクト内の基本キー値を使用して、データベースの対応するデータ内を再帰的に下位レベルに向かって検索します。

ビジネス・オブジェクトの内容による検索 (RetrievalByContent)

InterChange Server Express がトップレベル・ビジネス・オブジェクト内の非キー属性の値に基づいた階層型ビジネス・オブジェクトの検索をコネクターに要求すると、コネクターはデータ検索のための基準としてすべての非ヌル属性の値を使用します。

ビジネス・オブジェクトの作成

InterChange Server Express が Siebel アプリケーション内の階層型ビジネス・オブジェクトの作成をコネクターに要求すると、コネクターは親を作成する前にトップレベル・ビジネス・オブジェクトのすべての子を作成します。この規則の例外は、親と子の関係が Siebel 内の複数値リンクであり、そのリンクが非アクティブである場合です。この場合、親の後に子が作成され、キーは Siebel アプリケーションによって作成されます。

ビジネス・オブジェクトの変更

ビジネス・オブジェクトの変更または更新では、Siebel からのビジネス・オブジェクトの検索後のイメージをインバウンド・ビジネス・オブジェクトと比較します。このプロセスでは、子オブジェクトに正しい動詞を設定します。キーが親に設定され、他のすべての属性が CxIgnore に設定されると、親の更新は省略されます。

デフォルトの振る舞いでは、Siebel アプリケーションからの検索後イメージをインバウンド・ビジネス・オブジェクトと比較し、次に子のコンテナー・オブジェクト上の動詞を変更します。このプロセスでは、Siebel アプリケーション内のすべての子がインバウンド・ビジネス・オブジェクトと同じものになるようにします。動詞が子に設定されない場合、デフォルトは Update に設定されます。

重要:
子のいくつかを保存しなければならない場合は、インバウンド・オブジェクト動詞を DeltaUpdate に設定し、動詞をそれぞれの子コンテナー・オブジェクトに設定する必要があります。この場合、Siebel アプリケーション内のオブジェクトのみ処理され、その他のオブジェクトは処理されません。

ビジネス・オブジェクトの削除

InterChange Server Express がレコードの削除をコネクターに要求すると、レコードは基礎となるデータベースから削除されます。Siebel DeleteCascade 機能がすべての子を削除するので、親のみを削除してください。必要な属性がすべてインバウンド・ビジネス・オブジェクトにないと、削除は行えません。

Exists 動詞

基本ビジネス・コンポーネント名は一般に、Siebel 内のビジネス・オブジェクト名と同じです。ObjectName と ComponentName のアプリケーション固有の情報が一致すると、キーはこのビジネス・コンポーネントに設定され、照会が実行されます。レコードが存在する場合は True を戻します。レコード が存在し ない場合は False を戻します。

アプリケーション・イベントの処理

コンポーネント

イベント通知では、Siebel データベースにイベント表とアーカイブ表を作成する必要があります。これらの 2 つの表に対応する新しい Siebel ビジネス・コンポーネントである Event と Archive を作成する必要があります。

トリガー

Siebel eBusiness アプリケーションにおけるレコードの作成、更新、または削除の操作は、イベントとして処理できます。Siebel は、イベント表を取り込むために、Siebel ビジネス・コンポーネント・イベント・ハンドラーへの組み込み Visual Basic スクリプトと 組み込み Siebel eScripts をサポートします。pollForEvents への呼び出し時に、これらのレコードが取得、処理されます。イベント・ビジネス・コンポーネントは、表 1 にリストされているように、イベントに関する情報を格納します。

注:
表 1 の情報は、対応するビジネス・オブジェクトを構築し、処理のためにこれらのオブジェクトをコネクター・フレームワークに送る目的で、コネクターがイベント・サブスクリプション時に使用します。

表 1. イベント・ビジネス・コンポーネント構造
フィールド 説明
Object Key イベントが作成されたビジネス・オブジェクト行を識別する固有 ID (UID)
Object Name イベントが削除された Siebel ビジネス・オブジェクト
Object Verb イベントの動詞
Priority イベントの優先順位
Status イベントの初期状況は READY_FOR_POLL に設定されます。その他の状況値には以下のものがあります。IN_PROGRESS=1 -- イベントが選択されてコネクター・フレームワークに送られます。コネクターは、処理のためにイベントを選択した後にイベント状況を IN_PROGRESS に変更します。UNSUBSCRIBED=2 -- イベントはサブスクライブされていません。isSubscribed 呼び出しが False を戻すと 、コネクターは状況を UNSUBSCRIBED に設定します。SUCCESS=3 -- イベントは、コネクター・フレームワークによって正常に処理されました。コネクター・フレームワークによりイベントが正常に処理されると、コネクターは状況を SUCCESS に設定します。 ERROR_PROCESSING_EVENT=-1 -- イベントの処理でエラーが発生しました。この状況は、イベント処理中にエラーがあった場合に設定されます。ERROR_POSTING_EVENT=-2 -- コネクター・フレームワークにイベントを転送する際にエラーがありました。この状況は、gotApplEvent への呼び 出しが pollForEvents で失敗した場合に設定されます。ERROR_OBJECT_NOT_FOUND=-3 -- イベントが作成されたオブジェクトを見つけることができませんでした。この状況は、doVerbFor 呼び出しで pollForEvents 内にオブジェクトを見つけることができなかった場合に設定されます。
Description イベントに関連したコメント
Event Id イベント行の ID
ConnectorId 多重結合子構成でコネクターを識別します。
Event Ts イベント作成のタイム・スタンプ

Create 通知

Create イベントが発生した場合、コネクターはそのイベントで指定されたタイプのビジネス・オブジェクトを作成し、ビジネス・オブジェクトにキー値を設定して (Event ビジネス・コンポーネントで指定されたオブジェクト・キーを使用して行う)、Siebel アプリケーションからビジネス・オブジェクトを検索します。コネクターはビジネス・オブジェクトを検索した後、Create 動詞とともに InterChange Server Express に送ります。

Update 通知

Update イベントが発生した場合、コネクターはそのイベントで指定されたタイプのビジネス・オブジェクトを作成し、ビジネス・オブジェクトにキー値を設定して (Event ビジネス・コンポーネントで指定されたオブジェクト・キーを使用して行う)、データベースからビジネス・オブジェクトを検索します。コネクターはビジネス・オブジェクトを検索した後、Update 動詞とともに InterChange Server Express に送ります。

Delete 通知

Delete イベントが発生した場合、コネクターはそのイベントで指定されたタイプのビジネス・オブジェクトを作成し、ビジネス・オブジェクトにキー値を設定して (Event ビジネス・コンポ ーネントで指定されたオブジェクト・キーを使用して行う)、Delete 動詞とともに InterChange Server Express に送ります。キー値以外のすべての値は、CxIgnore に設定されます。

イベント処理用ビジネス・オブジェクトの検索

イベント処理のためのオブジェクトの検索は、キー属性と非キー属性の両方に基づいて行います。必要なのは、ビジネス・オブジェクトが RetrieveByContent 動詞をサポートすることです。

イベント管理

コネクターのイベント検出機構では、Event ビジネス・コンポーネントと Archive ビジネス・コンポーネントを使用します。イベント処理に関連する潜在的な障害点があるため、イベント管理プロセスでは、イベントが Archive ビジネス・コンポーネントに挿入されるまで Event ビジネス・コンポー ネントからイベントを削除しません。

コネクターは、設定可能な一定間隔で Event ビジネス・コンポーネントをポーリングしてイベントを検索し、最初は優先順位に従ってイベントを処理し、それ以降はイベントを順次処理します。コネクターがイベントを処理すると、イベントの状況がそれに応じて更新されます。

ArchiveProcessed プロパティーの設定によって、コネクターがイベント状況を更新した後にイベントを Archive ビジネス・コンポーネントにアーカイブするかどうかが決まります。ArchiveProcessed プロパティーの詳細については、"コネクターの構成"を参照してください。

表 2 は、ArchiveProcessed プロパティーの設定に基づいたアーカイブの振る舞いを示しています。

表 2. アーカイブ時の振る舞い
アーカイブ処理設定 イベント処理の状況 コネクターの振る舞い
true または値なし 成功 イベントが Events ビジネス・コンポーネントから削除され、Success の状況でアーカイブされる

失敗 Error の状況でアーカイブされる

ビジネス・オブジェクトのサブスクリプションなし イベントが Events ビジネス・コンポーネントから削除され、Error Processing Event Error Posting Event Error Object Not Found のいずれかの状況でアーカイブされる
false 成功 アーカイブされず、Success の状況で Events ビジネス・コンポーネント内に残る

失敗 イベントがアーカイブされず、Error Processing Event Error Posting Event Error Object Not Found のいずれかの状況で Events ビジネス・コンポーネント内に残る

ビジネス・オブジェクトのサブスクリプションなし Unsubscribed の状況でイベント表に残る

スマート・フィルター

重複したイベントはイベント・ストアに保存されません。イベント・ストアに新しいイベントをレコードとして格納する前に、VB Script または eScript が新しいイベントに一致する既存のイベントの有無についてイベント・ストアに照会する必要があります。イベント検出機構は、以下の場合に新しいイベントのレコードを生成しません。

Siebel アプリケーションへの接続逸失時の処理

コネクターが終了するのは、ConnectErrors コネクター・プロパティーで指定されたエラー・メッセージが検出された場合です。ConnectErrors からのテキストは、Siebel エラー・メッセージと比較されます。一致したものが見つかると、コネクターが AppResponseTimeOut を戻し、コネクターが終了します。

接続が失われているのにコネクターが以下のことを試行すると、Siebel アプリケーションによって ConnectErrors メッセージが戻されることがあります。

Copyright IBM Corp. 2004