標準的な変更ベースのリコンシリエーションでは、事前定義済属性のリコンシリエーションが行われます。必要な場合、リコンサイルされる属性のリストにカスタム属性を追加できます。
リコンシリエーションのカスタム属性を追加する手順は、使用しているPeopleToolsのリリースによって異なります。
PeopleTools 8.22でリコンシリエーションのカスタム属性を追加するには、次のようにします。
PeopleSoft Application Designerで、次のようにします。
「File」メニューから「Open」を選択します。「Open Definition」ダイアログ・ボックスが表示されます。
「Definition」リストから「Message」を選択し、「Name Selection Criteria」フィールドにUSR_MGMT_MSG
を入力して、「Enter」をクリックします。USR_MGMT_MSG
メッセージの詳細が表示されます。
カスタム属性を追加する先のレコードをクリックします。
たとえば、ジョブのロケーション属性LOCATION
を追加する場合は、「VERSION_1」の下の「JOB」をクリックします。
必要な属性のチェック・ボックスを選択し、メッセージを保存します。
たとえば、「LOCATION」チェック・ボックスを選択します。
UserMgmtCBRecon.txt
ファイル内のPeopleCodeに必要な変更を行います。このファイルはOIM_home
\xellerate\Scripts
ディレクトリにあります。必要な変更は次のとおりです。
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);
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;
peopleSoftUserMgmt.war
ファイルの内容を一時ディレクトリに抽出するには、次のコマンドを入力します。
jar –xvf peopleSoftUserMgmt.war
このファイルのコピーは、アプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home
\xellerate\webapp
ディレクトリにあります。
attributemap.properties
ファイルで、カスタム属性のXPath(キーと値のエントリ)を追加します。たとえば、LOCATION
属性の場合は次のXPathを追加できます。
PSFTBase.Location=//Transaction/DEPT_TBL/LOCATION
既存のpeopleSoftUserMgmt.war
ファイルを抽出先の一時ディレクトリから削除し、次のコマンドを入力してファイルを再作成します。
jar –cvf peopleSoftUserMgmt.war .
アプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home
\xellerate\webapp
ディレクトリから古いバージョンのpeopleSoftUserMgmt.war
ファイルを削除します。
新しく作成したpeopleSoftUserMgmt.war
ファイルをアプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home
\xellerate\webapp
ディレクトリにコピーします。
Oracle Identity Manager Design Consoleで、次の手順で必要な変更を行います。
関連資料: 次の各手順の詳細な実行方法は、『Oracle Identity Managerデザイン・コンソール』を参照してください。 |
「User Defined Process」フォーム内の新しい属性UD_PSFT_BAS
に対応する列を追加します。前述の例では、UD_PSFT_BAS_LOCATION
という列を追加できます。
リソース・オブジェクトの新しい属性PSFTBase
に対応するリコンシリエーション・フィールドを追加します。前述の例では、PSFTBase.Location
というリコンシリエーション・フィールドを追加できます。
PSFTBase
プロセス定義を変更して、新しく追加した属性と対応するリコンシリエーション・フィールドの間のマッピングを追加します。前述の例では、マッピングは次のようになります。
PSFTBase.Location = UD_PSFT_BAS_LOCATION
Oracle Identity Managerのサーバーおよびクライアントを再起動します。
PeopleTools 8.4xでリコンシリエーションのカスタム属性を追加するには、次のようにします。
UserMgmtCBRecon.txt
ファイル内のPeopleCodeに必要な変更を行います。このファイルはOIM_home
\xellerate\Scripts
ディレクトリにあります。必要な変更は次のとおりです。
SQL文セクションの最後で、新しい属性の列値を取得するためのSQL文を追加し、ローカル変数にそれらの値を格納します。
たとえば、リコンサイルされる属性のリストに部門のロケーション属性LOCATION
を追加するとします。この場合、PS_DEPT_TBL
表からLOCATION
列の値が取得されるように次のSQL文を追加します。
SQLExec("SELECT DESCR, LOCATION FROM PS_DEPT_TBL WHERE DEPTID=:1", &deptid, &deptname, &location);
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");
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);
PeopleSoft Application Designerで、UserMgmtCBRecon.txt
ファイルの内容をPERSONAL_DATA
コンポーネントのsavePostChange
イベントにコピーします。
peopleSoftUserMgmt.war
ファイルの内容を一時ディレクトリに抽出するには、次のコマンドを入力します。
jar –xvf peopleSoftUserMgmt.war
このファイルのコピーは、アプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home
\xellerate\webapp
ディレクトリにあります。
attributemap.properties
ファイルで、カスタム属性のXPath(キーと値のエントリ)を追加します。たとえば、LOCATION
属性の場合は次のXPathを追加できます。
PSFTBase.Location=//Transaction/DEPT_TBL/LOCATION
既存のpeopleSoftUserMgmt.war
ファイルを抽出先の一時ディレクトリから削除し、次のコマンドを入力してファイルを再作成します。
jar –cvf peopleSoftUserMgmt.war .
アプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home
\xellerate\webapp
ディレクトリから古いバージョンのpeopleSoftUserMgmt.war
ファイルを削除します。
新しく作成したpeopleSoftUserMgmt.war
ファイルをアプリケーション・サーバーのデプロイ・ディレクトリおよびOIM_home
\xellerate\webapp
ディレクトリにコピーします。
Oracle Identity Manager Design Consoleで、次の手順で必要な変更を行います。
関連資料: 次の各手順の詳細な実行方法は、『Oracle Identity Managerデザイン・コンソール』を参照してください。 |
「User Defined Process」フォーム内の新しい属性UD_PSFT_BAS
に対応する列を追加します。前述の例では、UD_PSFT_BAS_LOCATION
という列を追加できます。
リソース・オブジェクトの新しい属性PSFTBase
に対応するリコンシリエーション・フィールドを追加します。前述の例では、PSFTBase.Location
というリコンシリエーション・フィールドを追加できます。
PSFTBase
プロセス定義を変更して、新しく追加した属性と対応するリコンシリエーション・フィールドの間のマッピングを追加します。前述の例では、マッピングは次のようになります。
PSFTBase.Location = UD_PSFT_BAS_LOCATION
Oracle Identity Managerのサーバーおよびクライアントを再起動します。