ヘッダーをスキップ
Oracle Identity Manager PeopleSoft Employee Reconciliation Connectorガイド
リリース9.0.2
B31935-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

C リコンシリエーションのカスタム属性の追加

標準的な変更ベースのリコンシリエーションでは、事前定義済属性のリコンシリエーションが行われます。必要な場合、リコンサイルされる属性のリストにカスタム属性を追加できます。


注意:

カスタム属性を追加する前に、第2章で説明されているコネクタのデプロイ手順を完了しておく必要があります。

リコンシリエーションのカスタム属性を追加する手順は、使用しているPeopleToolsのリリースによって異なります。

PeopleTools 8.22でのリコンシリエーションのカスタム属性の追加

PeopleTools 8.22でリコンシリエーションのカスタム属性を追加するには、次のようにします。

  1. PeopleSoft Application Designerで、次のようにします。

    1. 「File」メニューから「Open」を選択します。「Open Definition」ダイアログ・ボックスが表示されます。

    2. 「Definition」リストから「Message」を選択し、「Name Selection Criteria」フィールドにPSFT_XELLERATE_MSGを入力して、「Enter」をクリックします。PSFT_XELLERATE_MSGメッセージの詳細が表示されます。

    3. カスタム属性を追加する先のレコードをクリックします。

      たとえば、ジョブのロケーション属性LOCATIONを追加する場合は、「VERSION_1」の下の「JOB」をクリックします。

    4. 必要な属性のチェック・ボックスを選択し、メッセージを保存します。

      たとえば、「LOCATION」チェック・ボックスを選択します。

  2. HRMSCBRecon.txtファイル内のPeopleCodeに必要な変更を行います。このファイルはOIM_home\xellerate\Scriptsディレクトリにあります。必要な変更は次のとおりです。

    1. SQL文セクションの最後で、新しい属性の列値を取得するためのSQL文を編集し、ローカル変数にそれらの値を格納します。

      たとえば、リコンサイルされる属性のリストにジョブのロケーション属性LOCATIONを追加するとします。この場合、次の手順で、JOB表からLOCATION列の値が取得されるようにSQL文を編集します。

      SQLExec("select DEPTID, JOBCODE, LOCATION from ps_job a where emplid =:1 and effdt=(select max(effdt) from ps_job b where a.emplid=b.emplid and effseq =(select max(effseq) from ps_job c where b.emplid = c.emplid and b.effdt=c.effdt))", &empid, &deptid, &jobcd, &location);
      
      
    2. XMLメッセージにデータを追加するためのコード・ブロックの最後に必要な行を追加します。たとえば、JOBタグにLOCATION列を追加するには、次のコード・サンプルの太字で示された行を追加します。

      /* FOR JOB RECORD */
      &MSG_ROWSET.GetRow(1).JOB.JOBCODE.Value = &jobcd;
      &MSG_ROWSET.GetRow(1).JOB.DEPTID.Value = &deptid;
      &MSG_ROWSET.GetRow(1).JOB.LOCATION.Value = &location;
      
      
  3. peopleSoftApp.warファイルの内容を一時ディレクトリに抽出するには、次のコマンドを入力します。

    jar –xvf peopleSoftApp.war
    
    

    このファイルのコピーは、アプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home\xellerate\webappディレクトリにあります。

  4. attributemap.propertiesファイルで、カスタム属性のXPath(キーと値のエントリ)を追加します。たとえば、LOCATION属性の場合は次のXPathを追加できます。

    PSFTHR.Location=//Transaction/DEPT_TBL/LOCATION
    
    
  5. 既存のpeopleSoftApp.warファイルを抽出先の一時ディレクトリから削除し、次のコマンドを入力してファイルを再作成します。

    jar –cvf peopleSoftApp.war .
    
    
  6. アプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home\xellerate\webappディレクトリから古いバージョンのpeopleSoftApp.warファイルを削除します。

  7. 新しく作成したpeopleSoftApp.warファイルをアプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home\xellerate\webappディレクトリにコピーします。

  8. Oracle Identity Manager Design Consoleで、次の手順で必要な変更を行います。


    関連資料:

    次の各手順の詳細な実行方法は、『Oracle Identity Managerデザイン・コンソール』を参照してください。

    1. 「User Defined Process」フォーム内の新しい属性UD_PSFT_HRに対応する列を追加します。前述の例では、UD_PSFT_HR_LOCATIONという列を追加できます。

    2. リソース・オブジェクトの新しい属性PSFT_HR_ROに対応するリコンシリエーション・フィールドを追加します。前述の例では、PSFTHR.Locationというリコンシリエーション・フィールドを追加できます。

    3. PSFT_HR Processプロセス定義を変更して、新しく追加した属性と対応するリコンシリエーション・フィールドの間のマッピングを追加します。前述の例では、マッピングは次のようになります。

      PSFTHR.Location = UD_PSFT_HR_LOCATION
      
      
  9. Oracle Identity Managerのサーバーおよびクライアントを再起動します。

PeopleTools 8.4xでのリコンシリエーションのカスタム属性の追加

PeopleTools 8.4xでリコンシリエーションのカスタム属性を追加するには、次のようにします。

  1. HRMSCBRecon.txtファイル内のPeopleCodeに必要な変更を行います。このファイルはOIM_home\xellerate\Scriptsディレクトリにあります。必要な変更は次のとおりです。

    1. SQL文セクションの最後で、新しい属性の列値を取得するためのSQL文を追加し、ローカル変数にそれらの値を格納します。

      たとえば、リコンサイルされる属性のリストに部門のロケーション属性LOCATIONを追加するとします。この場合、PS_DEPT_TBL表からLOCATION列の値が取得されるように次のSQL文を追加します。

      SQLExec("SELECT DESCR, LOCATION FROM PS_DEPT_TBL WHERE DEPTID=:1", &deptid, &deptname, &location);
      
      
    2. XMLメッセージにデータを追加するためのコード・ブロックの最後に必要な行を追加します。たとえば、DEPT_TBLタグにLOCATION列を追加するには、次のコード・サンプルの太字で示された行を追加します。

      &recnode = &fieldtypenode.AddElement("DEPT_TBL");
      &recnode.AddAttribute("class", "R");
      &fields = &recnode.AddElement("DEPTNAME");
      &fields.AddAttribute("type", "CHAR");
      &fields = &recnode.AddElement("LOCATION");
      &fields.AddAttribute("type", "CHAR");
      
      
    3. XMLメッセージにデータを追加するためのコード・ブロックの最後に必要な行を追加します。たとえば、DEPT_TBLタグにLOCATION列を追加するには、次のコード・サンプルの太字で示された行を追加します。

      &datarecnode = &transnode.AddElement("DEPT_TBL");
      &datarecnode.AddAttribute("class", "R");
      &datafldnode = &datarecnode.AddElement("DEPTNAME");
      &textnode = &datafldnode.AddText(&deptname);
      &datafldnode = &datarecnode.AddElement("LOCATION");
      &textnode = &datafldnode.AddText(&location);
      
      
  2. PeopleSoft Application Designerで、HRMSCBRecon.txtファイルの内容をPERSONAL_DATAコンポーネントのsavePostChangeイベントにコピーします。

  3. peopleSoftApp.warファイルの内容を一時ディレクトリに抽出するには、次のコマンドを入力します。

    jar –xvf peopleSoftApp.war
    
    

    このファイルのコピーは、アプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home\xellerate\webappディレクトリにあります。

  4. attributemap.propertiesファイルで、カスタム属性のXPath(キーと値のエントリ)を追加します。たとえば、LOCATION属性の場合は次のXPathを追加できます。

    PSFTHR.Location=//Transaction/DEPT_TBL/LOCATION
    
    
  5. 既存のpeopleSoftApp.warファイルを抽出先の一時ディレクトリから削除し、次のコマンドを入力してファイルを再作成します。

    jar –cvf peopleSoftApp.war .
    
    
  6. アプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home\xellerate\webappディレクトリから古いバージョンのpeopleSoftApp.warファイルを削除します。

  7. 新しく作成したpeopleSoftApp.warファイルをアプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home\xellerate\webappディレクトリにコピーします。

  8. Oracle Identity Manager Design Consoleで、次の手順で必要な変更を行います。


    関連資料:

    次の各手順の詳細な実行方法は、『Oracle Identity Managerデザイン・コンソール』を参照してください。

    1. 「User Defined Process」フォーム内の新しい属性UD_PSFT_HRに対応する列を追加します。前述の例では、UD_PSFT_HR_LOCATIONという列を追加できます。

    2. リソース・オブジェクトの新しい属性PSFT_HR_ROに対応するリコンシリエーション・フィールドを追加します。前述の例では、PSFTHR.Locationというリコンシリエーション・フィールドを追加できます。

    3. PSFT_HR Processプロセス定義を変更して、新しく追加した属性と対応するリコンシリエーション・フィールドの間のマッピングを追加します。前述の例では、マッピングは次のようになります。

      PSFTHR.Location = UD_PSFT_HR_LOCATION
      
      
  9. Oracle Identity Managerのサーバーおよびクライアントを再起動します。