コネクター用のアプリケーションを使用可能にする

PeopleSoft アプリケーションでコネクターを使用するには、事前に次を実行する必要があります。

このセクションでは、以下について説明します。

アプリケーション・イベントを処理するために必要なインストール操作

このセクションでは、コネクターを使用してアプリケーション・イベントを処理する場合に実行する必要のある操作について説明します。コネクターを初めて使用する前に、このインストールを実行してください。

イベント処理コンポーネントのインストールには、次の操作が関係します。

プロジェクトのインポート

  1. ファイルを実行して、アプリケーション・デザイナー・プロジェクト・ファイルを指定されたフォルダーに unzip する。%ProductDirS%¥connectors¥PeopleSoft¥dependencies ディレクトリーから、EventNotificationInstall.exe ファイルを選択します。
    注:
    このファイルは Windows でのみ使用可能です。

    デフォルト値でこのファイルを実行すると、dependencies ディレクトリー内に Projects ディレクトリーが作成されます。プロジェクト名は CW_EVENT_Vx です。ここで、Vx はバージョン番号を示します。

  2. PeopleSoft のアプリケーション・デザイナーを開き、「ファイル」メニューの「Copy Project From File...」を選択する。
  3. 表示されるメニューで、プロジェクトを unzip するインポート・ディレクトリーを選択する。図 3 に、PeopleSoft 内の画面を示します。

    図 3. プロジェクトのインポート


  4. 「コピー」をクリックして、"イベント処理コンポーネント"にリストされているコンポーネントを持つコンポーネントのリストを確認する。

必要なオブジェクトのビルド

イベント表、アーカイブ表、および関数ライブラリーをビルドするには、次の手順で行います。

  1. Build」メニューの「Project...」を選択して、表をビルドする。
  2. 表示されたダイアログ・ボックスで、CW_EVENT_TBL、FUNCLIB_CW、および CW_ARCHIVE_TBL が図 4 のように表示されることを確認する。

    図 4. 表のビルド


  3. ビルド・オプションの「Create Tables」と「Execute SQL now」を選択する。また、「Settings」ボタンをクリックし、表示されたウィンドウで、「create table if it already exists」と「recreate index if it already exists」が選択されていることを確認する。
  4. 「Build」をクリックする。
  5. 適切なデータベース特権を持つ ID を使用して、SQL エディターにログオンする。デフォルトの ID は SYSADM/SYSADM です。FUNCLIB_CW レコードの CW_EVENT_NOT フィールドを値ゼロで初期化します。このためには、次のステートメントを実行します。
    INSERT INTO PS_FUNCLIB_CW (CW_EVENT_NOT) VALUES ('0');
     

API ファイルのビルド

CW_EVENT_CI API ファイル (コネクターがイベントのみを処理する場合に必要) またはコンポーネント・インターフェース API ファイル (コネクターがイベントと要求の両方を処理する場合に必要) をビルドするには、次の手順で行います。

  1. プロジェクト・ウィンドウでコンポーネント・インターフェース CW_EVENT_CI を開き、「Build」メニューの「PeopleSoft API」を選択する。
  2. Java クラス・パネルで、次を実行する。
  3. 「Select APIs to Build:」フィールドから、CWEVENT_CI とそれに関連したコレクションを選択する。図 5 に、PeopleSoft 内の画面を示します。

    図 5. API のビルド


  4. 「OK」をクリックする。
  5. 生成したすべての API ファイルをコンパイルして、PSFTCI.jar ファイルに追加する (存在する場合) か、または存在しない場合はこのファイルを作成する。
    注:
    始動スクリプトまたはバッチ・ファイルは、¥connectors¥PeopleSoft¥dependencies ディレクトリー内の PSFTCI.jar という名前のファイルからこれらの API ファイルを検索するように構成されています。これらの API クラスをコンパイル後、JAR ファイルを作成し、PSFTCI.jar という名前を付けます。この JAR ファイルを別のディレクトリー内に設定する場合は、始動スクリプトまたはバッチ・ファイルを変更して、これらの API クラスの正しい場所を指すようにします。
  6. イベントに関連した各コンポーネントの SavePostChg() PeopleCode に、cw_publish_events() 関数宣言と関数呼び出しを設定する。詳細については、"サンプルの PeopleCode 宣言および関数呼び出し"を参照してください。
    注:
    関数は、レコードではなくコンポーネントの SavePostChg() に設定されている必要があります。
  7. 関数呼び出しで使用されるすべてのパラメーターを定義し、PeopleCode を挿入して、関数呼び出しの前にコンポーネントが変更されたかどうかを検査する。このコードにより、関数の不要な呼び出しがなくなります。また、%userid の検査を追加して、コネクターの往復ループ (つまり、コネクターが要求からのデータ変更を新規アプリケーション・イベントと解釈する永久ループの作成) を防止します。例については、"サンプルの PeopleCode 宣言および関数呼び出し"を参照してください。

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

アダプターは、FUNCLIB_CW 関数ライブラリーに cw_publish_events() 関数を用意しています。この関数により、イベントがコネクターのイベント表に挿入されます。このセクションでは、これを呼び出す関数とサンプル・コードについて説明します。

cw_publish_events() 関数

cw_publish_events() 関数は、4 つのパラメーターを使用します。その型はすべて String です。

重要:
これらのパラメーターは、正しい形式で、関数呼び出し時あるいはその前に定義する必要があります。

そのパラメーターに指定された値やコンポーネント・バッファーで現在使用可能な情報を使用して、関数はコンポーネントから必要な情報を収集し、イベントをイベント表に挿入します。関数により、次が実行されます。

サンプルの PeopleCode 宣言および関数呼び出し

アダプターには、コネクターの samples ディレクトリーの savepostchg.txt ファイルに、PeopleCode 宣言と関数呼び出しのサンプルが格納されています。ビジネス・オブジェクトの名前とキーを、使用するビジネス・オブジェクトの正しい情報で置き換えて、コードを PeopleCode エディターに直接コピーおよび貼り付けます。

実際に関数を呼び出す前に、簡単な論理テストを使用してレコードまたはコンポーネントが実際に変更されていることを確認します。変更されていない場合、コネクターはパフォーマンスを向上させる関数を呼び出しません。また、%useridCW でないことも確認します。これにより、コネクターが要求からのデータ変更を新しいアプリケーション・イベントと解釈しないようになります。

次のコードは、アダプターに用意されているサンプルです。

/* 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 で、イベントおよびアーカイブ表の列について説明します。

表 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 (処理中)。この状況は、イベント表にのみ使用され、アーカイブ表には使用されません。

Copyright IBM Corp. 2004