ここでは、メタデータでコネクターの柔軟性を向上する方法について説明し、ビジネス・オブジェクトの処理とイベント通知に関する高度な説明を行います。
コネクターはメタデータ主導型です。メタデータはビジネス・オブジェクトに格納されるアプリケーション固有のデータで、コネクターとアプリケーションの対話を支援します。メタデータ主導型コネクターは、コネクターでハードコーディングされた命令でなく ビジネス・オブジェクト定義でエンコードされたメタデータに基づいて、サポートする各ビジネス・オブジェクトを処理します。ビジネス・オブジェクトは、Siebel ビジネス・コンポーネントに対応します。ビジネス・オブジェクトの詳細については、Siebel ビジネス・サービスでのアダプターの使用を参照してください。
ビジネス・オブジェクトのメタデータには、ビジネス・オブジェクトの構造、属性プロパティーの設定、アプリケーション固有の情報の内容などがあります。コネクターはメタデータ主導型なので、コネクター・コードを変更 しなくても、新しいビジネス・オブジェクトまたは変更されたビジネス・オブジェクトを処理すること ができます。
ここでは、コネクターが統合ブローカーの要求とアプリケーション・イベントを処理する方法について概説します。
コネクターがビジネス・オブジェクトからの要求を受信してアプリケーションの操作を行 う場合、コネクターは階層型ビジネス・オブジェクトを反復処理します。すなわち、個々のビジネス・オ ブジェクトをすべて処理するまでそれぞれの子ビジネス・オブジェクトに対して同じ手順を実行します。
統合ブローカーが Siebel アプリケーションから階層型ビジネス・オブジェクトの検索をコ ネクターに要求すると、コネクターは Siebel ビジネス・コンポーネント・インスタンスの現行の表現に正確に一致する統合ブローカーにビジネス・ オブジェクトを戻そうとします。言い換えると、統合ブローカーに戻された個々のビジネス・オブジェクトの単純な属性はすべて、Siebel ビジネス・コンポーネント内の対応するフィールドの値に一致します。
完全なビジネス・コンポーネントを検索するために、コネクターは統合ブローカーから受信したトッ プレベル・ビジネス・オブジェクト内の基本キー値を使用して、データベースの対応するデー タ内を再帰的に下位レベルに向かって検索します。
統合ブローカーがトップレベル・ビジネス・オブジェクト内の非キー属性の値に基づいた階層型ビジネス・オブジェクトの検索をコネクターに要求すると、コネクターはデータ検索のための基準としてすべての非ヌル属性の値を使用します。
統合ブローカーが Siebel アプリケーション内の階層型ビジネス・オブジェクトの作成をコネクターに要求すると、コネクターは親を作成する前にトップレベル・ビジネス・オブジェクトのすべての子を作成します。この規則の例外は、親と子の関係が Siebel 内の複数値リンクであり、そのリンクが非アクティブである場合です。この場合、親の後に子が作成され、キーは Siebel アプリケーションによって作成されます。
ビジネス・オブジェクトの変更または更新では、Siebel からのビジネス・オブジェクトの検索後イメージをインバウンド・ビジネス・オブジェクトと比較します。このプロセスでは、子オブジェクトに正しい動詞を設定しま す。キーが親に設定され、他のすべての属性が CxIgnore に設定されると、親の更新は省略されます。
デフォルトの振る舞いでは、Siebel アプリケーションからの検索後イメージをインバウンド・ビジネス・オブジェクトと比較し、次に子のコンテナー・オブジェクト上の動詞を変更します。このプロセスでは、Siebel アプリケーション内のすべての子がインバウンド・ビジネス・オブジェクトと同じものになるようにします。動詞が子に設定されない場合、デフォルトは Update に設定されます。
統合ブローカーがレコードの削除をコネクターに要求すると、レコードは基礎となるデー タベースから削除されます。Siebel DeleteCascade 機能がすべての子を削除するので、親のみを削除してください。必要な属性がすべてインバウンド・ビジネス・オブジェクトにないと、削除は行えません。
基本ビジネス・コンポーネント名は一般に、Siebel 内のビジネス・オブジェクト名と同じです。ObjectName と ComponentName のアプリケーション固有の情報が一致すると、キーはこのビジネス・コンポーネントに設定され、照会が実行されます。レコードが存在する場合は True を戻します。レコードが存在し ない場合は False を戻します。
イベント通知では、Siebel データベースにイベント表とアーカイブ表を作成する必要があります。これらの 2 つの表に対応する新しい Siebel ビジネス・コンポーネントである Event と Archive を作成する必要があります。
Siebel eBusiness アプリケーションにおけるレコードの作成、更新、または削除の操作は、イベントとして処理できます。Siebel は、イベント表を取り込むために、Siebel ビジネス・コンポーネント・イベント・ハンドラーへの組み込み Visual Basic スクリプトと組み込み Siebel eScripts をサポートします。pollForEvents への呼び出し時に、これらのレコードが取得、処理されます。イベント・ビジネス・コンポーネントは、表 1 にリストされているように、イベントに関する情報を格納します。
フィールド | 説明 |
---|---|
Object Key | イベントが作成されたビジネス・オブジェクト行を識別する固有 ID |
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 内にオブジェクトを見つけることが できなかった場合に設定されます。 |
説明 | イベントに関連したコメント |
Event Id | イベント行の ID |
ConnectorId | 多重結合子構成でコネクターを識別します。 |
Event Ts | イベント作成のタイム・スタンプ |
Create イベントが発生した場合、コネクターはそのイベントで指定されたタイプのビジネス・オブジェクトを作成し、ビジネス・オブジェクトにキー値を設定して (Event ビジネス・コンポーネントで指定されたオブジェクト・キーを使用して行う)、Siebel アプリケーションからビジネス・オブジェクトを検索します。コネクターはビジネス・オブジェクトを検索した後、Create 動詞とともに統合ブローカーに送ります。
Update イベントが発生した場合、コネクターはそのイベントで指定されたタイプのビジネ ス・オブジェクトを作成し、ビジネス・オブジェクトにキー値を設定して (Event ビジネス・コンポー ネントで指定されたオブジェクト・キーを使用して行う)、データベースからビジネス・オブジェクトを 検索します。コネクターはビジネス・オブジェクトを検索した後、Update 動詞とともに統合ブロ ーカーに送ります。
Delete イベントが発生した場合、コネクターはそのイベントで指定されたタイプのビジ ネス・オブジェクトを作成し、ビジネス・オブジェクトにキー値を設定して (Event ビジネス・コンポ ーネントで指定されたオブジェクト・キーを使用して行う)、Delete 動詞とともに統合ブローカーに送ります。キー値以外のすべての値は、CxIgnore に設定されます。
イベント処理のためのオブジェクトの検索は、キー属性と非キー属性の両方に基づいて行います。必要なのは、ビジネス・オブジェクトが RetrieveByContent 動詞をサポートすることです。
コネクターのイベント検出機構では、Event ビジネス・コンポーネントと Archive ビジネス・コンポーネントを使用します。イベント処理に関連する潜在的な障害点があるため、イベント管理プロセスでは 、イベントが Archive ビジネス・コンポーネントに挿入されるまで Event ビジネス・コンポー ネントからイベントを削除しません。
コネクターは、設定可能な一定間隔で Event ビジネス・コンポーネントをポーリングしてイベントを検索し、最初は優先順位に従ってイベントを処理し、それ以降はイベントを順次処理します。コネクターがイベントを処理すると、イベントの状況がそれに応じて更新されます。
ArchiveProcessed プロパティーの設定によって、コネクターがイベント状況を更新した後にイベントを Archive ビジネス・コンポーネントにアーカイブするかどうかが決まります。ArchiveProcessed プロパティーに関する詳細については、ArchiveProcessed を参照してください。
表 2 は、ArchiveProcessed プロパティーの設定に基づいたアーカイブの振る舞いを示しています。
アーカイブ処理設定 | イベント処理の状況 | コネクターの振る舞い |
---|---|---|
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 が新しいイベントに一致する既存のイベントの有無についてイベント・ストアに照会する必要があります。イベント検出機構は、以下の場合に新しいイベントのレコードを生成しませ ん。
コネクターが終了するのは、ConnectErrors コネクター・プロパティーで指定されたエラー・メッセージが検出された場合です。ConnectErrors からのテキストは、Siebel エラー・メッセージと比較されます。一致したものが見つかると、コネクターが AppResponseTimeOut を戻し、コネクターが終了します。
接続が失われているのにコネクターが以下のことを試行すると、Siebel アプリケーションによって ConnectErrors メッセージが戻されることがあります。
コネクターは、2 バイト文字セットをサポートし、指定された言語でメッセージ・テキストを送達できるように国際化されています。 ある文字コードを使用するロケーションから別の文字コード・セットを使用するロケーションへデータを転送する場合、コネクターは、そのデータの意味が伝わるように文字変換を実行します。 Java 仮想マシン (JVM) 内での Java ランタイム環境は、Unicode 文字コード・セットでデータを表します。 Unicode には、ほとんどの既知の文字コード・セット (単一バイトおよびマルチバイトの両方) の文字エンコード方式が組み込まれています。 IBM WebSphere Business Integration システムのほとんどのコンポーネントは Java で作成されています。 そのため、Server Access コンポーネント間でデータを転送するときは、ほとんどの場合文字変換は必要ありません。 エラー・メッセージと通知メッセージを適切な言語で適切な国および地域に対して記録するには、該当する環境の Locale 標準構成プロパティーを設定します。 これらのプロパティーの詳細については、付録A. コネクターの標準構成プロパティーを参照してください。