PeopleSoft アプリケーションでコネクターを使用するには、事前に次を実行する必要があります。
このセクションでは、以下について説明します。
このセクションでは、コネクターを使用してアプリケーション・イベントを処理する場合に実行する必要のある操作について説明します。コネクターを初めて使用する前に、このインストールを実行してください。
イベント処理コンポーネントのインストールには、次の操作が関係します。
デフォルト値でこのファイルを実行すると、dependencies ディレクトリー内に Projects ディレクトリーが作成されます。プロジェクト名は CW_EVENT_Vx です。ここで、Vx はバージョン番号を示します。
イベント表、アーカイブ表、および関数ライブラリーをビルドするには、次の手順で行います。
INSERT INTO PS_FUNCLIB_CW (CW_EVENT_NOT) VALUES ('0');
CW_EVENT_CI API ファイル (コネクターがイベントのみを処理する場合に必要) またはコンポーネント・インターフェース API ファイル (コネクターがイベントと要求の両方を処理する場合に必要) をビルドするには、次の手順で行います。
%ProductDirS%¥connectors¥PeopleSoft¥dependencies
アダプターは、FUNCLIB_CW 関数ライブラリーに cw_publish_events() 関数を用意しています。この関数により、イベントがコネクターのイベント表に挿入されます。このセクションでは、これを呼び出す関数とサンプル・コードについて説明します。
cw_publish_events() 関数は、4 つのパラメーターを使用します。その型はすべて String です。
そのパラメーターに指定された値やコンポーネント・バッファーで現在使用可能な情報を使用して、関数はコンポーネントから必要な情報を収集し、イベントをイベント表に挿入します。関数により、次が実行されます。
アダプターには、コネクターの samples ディレクトリーの savepostchg.txt ファイルに、PeopleCode 宣言と関数呼び出しのサンプルが格納されています。ビジネス・オブジェクトの名前とキーを、使用するビジネス・オブジェクトの正しい情報で置き換えて、コードを PeopleCode エディターに直接コピーおよび貼り付けます。
実際に関数を呼び出す前に、簡単な論理テストを使用してレコードまたはコンポーネントが実際に変更されていることを確認します。変更されていない場合、コネクターはパフォーマンスを向上させる関数を呼び出しません。また、%userid が CW でないことも確認します。これにより、コネクターが要求からのデータ変更を新しいアプリケーション・イベントと解釈しないようになります。
次のコードは、アダプターに用意されているサンプルです。
/* Place this code in Component's SavePostChg() and define the four */ /* parameters used in the function call */ Declare Function cw_publish_event PeopleCode FUNCLIB_CW.CW_EVENT_NOT FieldFormula; Component String &BONAME1; Component STring &KEYLIST1; Component String &CWPRIORITY1; Component String &CONNID1; &BONAME1 ="Psft_Dept"; &KEYLIST1 = "DEPT_TBL.SetId:DEPT_TBL.DeptId"; &CWPRIORITY = 2; &CONNID1 ="PeopleSoftConnector"; /* Check if Component Changed before calling function */ If ComponentChanged() and %userid <> "CW" then /* Publish this event to the IBM WebSphere CW_EVENT_TBL for polling */ cw_publish_event(&BONAME1,&KEYLIST1,&CWPRIORITY1,&CONNID1); End-if;
コネクターはイベント表を使用して、イベントをポーリングし、取り出します。各イベントについて、コネクターはイベント表からビジネス・オブジェクトの名前、動詞、およびキーを取得します。また、この情報を使用してアプリケーションからエンティティー全体を取り出します。イベントが最初にログに記録された後でエンティティーが変更されると、コネクターは初期イベントとその後のすべての変更を取得します。つまり、コネクターがイベント表からエンティティーを取得する前にエンティティーが変更および更新されると、コネクターは 1 回の取り出しで両方のデータ変更を取得します。
コネクターで処理された各イベントに関して、次の 3 種類の結果が発生する可能性があります。
コネクターがイベントを取り出した後でイベント表からイベントが削除されないと、不必要なスペースを占有することになります。しかし、削除されると、処理されなかったイベントはすべて失われ、イベント処理を監査できません。したがって、アダプターには、イベント表から削除されたイベントを格納するアーカイブ表が用意されています。
表 2 で、イベントおよびアーカイブ表の列について説明します。
名前 | 説明 | タイプ | 制約 |
---|---|---|---|
CW_EVENT_ID | イベントの内部 ID。PeopleSoft 内で生成された各イベントを識別する固有のキー・フィールド。 | NUMBER | 基本キー |
CW_CONNECTOR_ID | イベントの宛先のコネクターの固有な ID。この値は、複数のコネクターが同じ表をポーリングする場合には重要です。 | VARCHAR |
|
CW_OBJ_KEYS | ビジネス・オブジェクトのキーで、名前と値の対の形式で指定されます。関数呼び出し (cw_publish_events など) のパラメーターを定義する場合、名前はピリオドで区切った表名とフィールド名で構成されます。キーが複数の場合は、コロンまたは他の構成可能な区切り文字で区切ります (例えば、DEPT_TBL.SetId:DEPT_TBL.DeptId)。詳細については、"EventKeyDelimiter"を参照してください。 | VARCHAR | 非ヌル |
CW_OBJ | ビジネス・オブジェクトの名前。 | VARCHAR | 非ヌル |
CW_VERB | イベントに関連した動詞。アダプターに組み込まれている PeopleCode 関数が、PeopleSoft で使用するシステム変数 %Mode に基づいて値 (Create、Retrieve、Update、Delete) を判別します。 | VARCHAR | 非ヌル |
CW_PRIORITY | イベント優先順位 (0 が最高、n が最低) で、コネクターが優先順位に基づいてイベントを取得するために使用します。 | NUMBER | 非ヌル |
CW_DTTM | イベントまたはアーカイブが発生した日付と時刻。 | STRING | デフォルトの現在日付/時刻 (アーカイブ表の場合、実際のイベントの時間)。PeopleSoft では DATE フィールドのデータ型を STRING として処理し、また、これと同じ型で戻します。 |
CW_STATUS | -2 (InterChange Server Express へのイベントの送信エラー) | VARCHAR | 非ヌル |
| -1 (イベント処理エラー) |
|
|
| 0 (ポーリング開始可能) |
|
|
| 1 (InterChange Server Express) |
|
|
| 2 (ビジネス・オブジェクトのサブスクリプションなし) |
|
|
| 3 (処理中)。この状況は、イベント表にのみ使用され、アーカイブ表には使用されません。 |
|
|