コネクタの機能拡張

特定のビジネス要件に対応するようにコネクタの機能を拡張できます。

この章は、次の項が含まれます。

リコンシリエーションおよびプロビジョニング用の新規属性の追加

顧客IDなどの新規属性を既存の属性セットに追加できます。このため、新規パラメータをラッパー・プロシージャに追加してから、リコンシリエーション問合せを更新して新規属性を含める必要があります。

デフォルトでは、表3-3に示した属性が、リコンシリエーションおよびプロビジョニング用にOracle Identity Managerとターゲット・システム間でマップされます。必要に応じて、リコンシリエーションおよびプロビジョニング用に追加の単一値属性をマップできます。

次の項に、新規単一値属性を追加するために実行する手順について説明します。

リコンシリエーションおよびプロビジョニング用の新規属性を追加するステップのサマリー

リコンシリエーションおよびプロビジョニング用の新規属性を追加する際に実行するステップのサマリーは次のとおりです:

  1. コネクタ・スキーマの拡張の説明に従って、DBラッパー・パッケージを更新して新規単一値属性をget_schema()ストアド・プロシージャに含めます。
  2. コネクタ・アーティファクトの更新の説明に従って、コネクタ・アーティファクトを更新して新規属性を含めます。
  3. search.propertiesファイルの更新の説明に従って、コネクタ・バンドルを更新して新規属性をsearch.propertiesファイルに含めます。
  4. Procedures.propertiesファイルの更新の説明に従って、コネクタ・バンドルを更新して新規属性をProcedures.propertiesファイルに含めます。

コネクタ・スキーマの拡張

コネクタ・スキーマを拡張して、リコンシリエーションおよびプロビジョニング用の新規属性を含める必要があります。この項では、次の項目について説明します。

コネクタ・スキーマの拡張について

新規属性をOIM_FND_USER_TCA_PKG.pckラッパー・パッケージのget_schema()ストアド・プロシージャに追加することにより、コネクタ・スキーマを拡張できます。コネクタ・スキーマを拡張する場合、次の概念を理解する必要があります。

  • 属性の初期化

    次の初期化文には、コネクタ・スキーマの属性定義が含まれる内部配列が保持されています。

    attr.extend(NUM);

    ここで、NUMは、初期化する配列のサイズを定義します。配列のサイズは、常に定義される属性の数以上にする必要があります。たとえば、初期化文attr.extend(20);では、初期化時に20個の属性の内部配列が保持されます。

  • 属性の定義

    初期化後、次の形式の文を追加することにより、属性ごとの情報を定義します。

    attr (ORD_NO) := attributeinfo(ATTR_NAME,ATTR_TYPE,CREATE_FLAG,UPDATE_FLAG,REQUIRED_FLAG,READ_FLAG);

    この形式の詳細は次のとおりです。

    • ORD_NOは配列内での属性の順序です。これは必須です。

    • ATTR_NAMEは単一値属性の名前です。

    • ATTR_TYPEは単一値属性のSQLデータ型です。

    • CREATE_FLAGは、作成プロビジョニング操作時に属性が必要かどうかを示すフラグです。

    • UPDATE_FLAGは属性が更新可能かどうかを示すフラグです。

    • REQUIRED_FLAGは属性が必須かどうかを示すフラグです。

    • READ_FLAGは属性が読取り可能かどうかを示すフラグです。

    各フラグの値1または0は、それぞれTrueまたはFalseを示します。たとえば、フラグの値1, 0, 1, 0は、属性が必須属性で、作成プロビジョニング操作時に想定する必要があることを意味しています。

  • 属性の配列の拡張

    次の文を指定することにより、初期化後に配列のサイズを増やすことができます。

    attr.extend;

    この文を指定するたびに、配列のサイズが1ずつ増加します。

コネクタ・スキーマへの新規属性の追加

次のように、DBラッパー・パッケージを更新することによりコネクタ・スキーマを拡張して、リコンシリエーションおよびプロビジョニング用の新規属性を含める必要があります。

  1. 任意のSQLクライアント(たとえば、SQL Developer)を開き、apps userを使用してターゲット・システムのデータベースに接続します。

  2. OIM_FND_USER_TCA_PKG.pckラッパー・パッケージの本体を開きます。

  3. get_schema()ストアド・プロシージャを選択します。ストアド・プロシージャで定義されている属性のリストが表示されます。

  4. 定義済属性の数が初期化済属性の数を超えた場合、次のようにします。

    1. 次の属性の初期化文を追加します。

      attr.extend;

    2. 次の形式で追加する新規属性の定義を入力します。

      attr (ORD_NO) := attributeinfo(ATTR_NAME,ATTR_TYPE,CREATE_FLAG,UPDATE_FLAG,REQUIRED_FLAG,READ_FLAG);

      たとえば、ユーザー・アカウントの顧客IDを含む新規属性を追加する場合、次の文を指定します。

      attr.extend;
      attr (28) := attributeinfo('CUSTOMER_ID','varchar2',1,1,0,1);
      

      この例では、フラグの値1,1,0,1は、作成プロビジョニング操作時にCUSTOMER_ID属性が必須で、更新および読取り可能であるという意味です。

  5. 定義済属性の数が初期化済属性の数を超えていない場合、新規属性の定義のみを追加します。たとえば、attr (28) := attributeinfo('CUSTOMER_ID','varchar2',1,1,0,1);となります。

  6. ラッパー・パッケージを再コンパイルします。

コネクタ・アーティファクトの更新

コネクタ・アーティファクトを更新して、コネクタ・スキーマの拡張で追加した新規単一値属性を含める必要があります。コネクタ・アーティファクトを更新するには、次の手順を実行します:

プロセス・フォーム・フィールドの作成

次のように、新規単一値属性をプロセス・フォームのフィールドとして追加する必要があります。

  1. 「開発ツール」を開き、「フォーム・デザイナ」をダブルクリックします。
  2. UD_EBS_UMプロセス・フォームを検索して開きます。
  3. 「Create New Version」をクリックして、フォームのバージョンを作成します。
  4. 「Label」フィールドで、バージョン名を入力します。たとえば、version#1
  5. 「保存」アイコンをクリックします。
  6. 「現行バージョン」リストから、ステップ4で作成された現在のバージョンを選択します。
  7. 「追加」を追加して単一値属性の新規フィールドを作成し、この属性の値を指定します。

    たとえば、顧客ID属性を追加する場合は、「追加列」タブに次の値を入力します。

    フィールド

    Name

    UD_EBS_UM_CUSTOMER_ID

    Variant Type

    String

    Length

    100

    Field Label

    Customer Id

    Field Type

    TextField

    Order

    25

  8. 「保存」アイコンをクリックします。
  9. 「Make Version Active」をクリックします。

Oracle EBS User Managementリソース・オブジェクトの更新

次のように、リソース・オブジェクトを更新して、プロセス・フォーム・フィールドの作成で作成した新規単一値属性に対応するリコンシリエーション・フィールドを追加します:

  1. 「リソース管理」フォルダを開き、「リソース・オブジェクト」をダブルクリックします。
  2. Oracle EBS User Managementリソース・オブジェクトを検索して開きます。
  3. 「Object Reconciliation」タブで、「ADD Field」をクリックして、「Add Reconciliation Field」ダイアログ・ボックスを開きます。
  4. 「フィールド名」フィールドに、属性の名前を入力します。たとえば、Customer Id
  5. 「Field Type」リストから、フィールドのデータ・タイプを選択します。たとえば、文字列
  6. 属性を必須属性として指定する場合は、そのためのチェック・ボックスを選択します。
  7. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

Oracle EBS UMユーザー・プロセス定義の更新

次のようにして、単一値属性用のリコンシリエーション・フィールド・マッピングをプロセス定義に作成します。

  1. 「Process Management」を開き、「Process Definition」をダブルクリックします。
  2. 「Oracle EBS UMユーザー」プロセス定義を検索して開きます。
  3. 「リコンシリエーション・フィールド・マッピング」タブで、「フィールド・マップの追加」をクリックします。
  4. 「Add Reconciliation Field Mapping」ダイアログ・ボックスの「Field name」リストから、リソース・オブジェクトに作成された属性に割り当てた名前を選択します。たとえば、Customer Idを選択します。
  5. 「プロセス・データ」フィールドをダブルクリックして、表示されたポップアップからプロセス・フォーム・フィールドの作成で作成した新規追加フィールドを選択します。

    次のスクリーンショットは「リコンシリエーション・フィールド・マッピングの追加」ダイアログ・ボックスです。ここで「フィールド名」リストおよび「プロセス・データ」フィールドを設定します。

  6. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

リコンシリエーション属性マッピングの参照定義の更新

リコンシリエーション属性マッピングの参照定義に、次のようにして属性のエントリを追加します。

  1. 「管理」を開き、「参照定義」をダブルクリックします。
  2. Lookup.Oracle EBS UM.UM.ReconAttrMap参照定義を検索して開きます。
  3. 行を追加するには、「追加」をクリックします。
  4. 「Code Key」列に、リソース・オブジェクトの属性に対して設定した名前を入力します。たとえば、Customer Idと入力します。
  5. 「デコード」列に、SQL問合せで返される列名を入力します。たとえば、CUSTOMER_IDと入力します。

    次のスクリーンショットに、新規追加したエントリとともにLookup.Oracle EBS UM.UM.ReconAttrMap参照定義を示します。

  6. 「保存」アイコンをクリックします。

プロビジョニング属性マッピングの参照定義の更新

プロビジョニング属性マッピングの参照定義に、次のようにして属性のエントリを追加します。

  1. 「管理」を開き、「参照定義」をダブルクリックします。
  2. Lookup.Oracle EBS UM.UM.ProvAttrMap参照定義を検索して開きます。
  3. 行を追加するには、「追加」をクリックします。
  4. 「Code Key」列に、リソース・オブジェクトの属性に対して設定した名前を入力します。たとえば、Customer Idと入力します。
  5. 「デコード」列に、SQL問合せで返される列名を入力します。たとえば、CUSTOMER_IDと入力します。
  6. 「保存」アイコンをクリックします。

Oracle EBS User Managementリソース・オブジェクトのリコンシリエーション・プロファイルの作成

リコンシリエーション・プロファイルを作成して、リソース・オブジェクト(前述の項)に行われた変更をすべてMDSにコピーします。

  1. 「リソース管理」フォルダを開き、「リソース・オブジェクト」をダブルクリックします。
  2. Oracle EBS User Managementリソース・オブジェクトを検索して開きます。
  3. 「Object Reconciliation」タブで、「Create Reconciliation Profile」をクリックします。
  4. 「保存」アイコンをクリックします。

新規属性のプロビジョニング操作の有効化

次のように、新規追加した単一値属性でのプロビジョニング操作の処理用にプロセス・タスクを作成することにより、プロセス定義を更新します。:

  1. 「プロセス管理」を開いて、「プロセス定義」をダブルクリックします。
  2. 「Oracle EBS UMユーザー」プロセス定義を検索して開きます。
  3. 「タスク」タブで、「追加」をクリックします。

    新しいタスクの作成ダイアログ・ボックスが表示されます。

  4. 「タスク名」フィールドに、プロセス・タスクの名前を入力します。たとえば、Customer Id Updatedと入力します。
  5. 「タスクの説明」フィールドに、タスクの説明を入力します。たとえば、Task for Customer Id updationと入力します。
  6. 「タスク・プロパティ」リージョンで、要件に合ったプロパティを選択します。たとえば、「タスク・プロパティ」リージョンで次のアクションを実行します。
    • 次のチェック・ボックスを選択します。

      Conditional

      Allow Cancellation While Pending

      Allow Multiple Instances

    • 「タスクの結果」リストから、「無効」を選択します。

    次に、関連する詳細が設定された「新規タスクの作成」ダイアログ・ボックスのスクリーンショットを示します。

  7. 「保存」アイコンをクリックします。
  8. 「統合」タブで、「追加」をクリックして、前述のステップで作成したプロセス・タスクにアダプタを割り当てます。
  9. ハンドラ・セクション・ダイアログ・ボックスで「アダプタ」オプションを選択します。
  10. 「ハンドラ名」リージョンに表示されるアダプタのリストから、プロセス・タスクに割り当てるアダプタを選択します。たとえば、adpEBSUMUPDATESINGLEATTRIBUTEアダプタを選択します。
  11. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。
  12. 「統合」タブの「アダプタ変数」リージョンの表から、マップする変数を選択します。たとえば、fieldName変数を選択します。
  13. 「マップ」をクリックします。
  14. 変数のデータ・マッピングの編集ダイアログ・ボックスで、必要に応じてアダプタ変数マッピングを作成します。たとえば、次のマッピングを作成します。
    • 変数名: fieldName

    • マップ先: Literal

    • 修飾子: String

    • リテラル値: UD_EBS_UM_CUSTOMER_ID

  15. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。
  16. 「アダプタ変数」リージョンの残りの変数について、ステップ12から15を実行します。次の表に、各変数について「マップ先」、「修飾子」および「リテラル値」リストから選択可能なサンプル値を示します。
    変数 マップ先 修飾子 リテラル値

    fieldOldValue

    Process Data

    Customer Id、Old Value:select

    該当なし

    AdapterReturnCode

    Response Code

    該当なし

    該当なし

    objectType

    Literal

    String

    User

    ItResourceFieldName

    Literal

    String

    UD_EBS_UM_IT_RESOURCE_NAME

    fieldValue

    Process Data

    Customer Id

    該当なし

    processInstanceKey

    Process Data

    Process Instance

    該当なし

  17. 「プロセス定義」フォームの「保存」アイコンをクリックします。
  18. 「レスポンス」タブで「追加」をクリックして、SUCCESSレスポンス・コードをステータスCとともに追加します。これにより、カスタム・タスクが正常に実行されると、タスクのステータスが「完了」として表示されます。同様に、CONNECTION_FAILEDレスポンス・コードをステータスRとともに追加します。
  19. 「Save」アイコンをクリックしてダイアログ・ボックスを閉じ、プロセス定義を保存します。

search.propertiesファイルの更新

次のように、search.propertiesファイルを更新して、新規追加した単一値属性を含めます。

  1. org.identityconnectors.ebs-1.0.1115.jarファイルの内容を選択したディレクトリに抽出します。
  2. テキスト・エディタで、構成ディレクトリにあるsearch.propertiesを開きます。
  3. 新規作成した属性に対応する列名を含む必要があるSQL問合せを検索します。たとえば、UM_USER_RECON問合せを検索します。
  4. 新規追加した属性に対応する列名がすでにSQL問合せに含まれている場合、この項で説明する残りのステップをスキップできます。
  5. 新規追加した列名に関する情報がSQL問合せに含まれていない場合、新規追加した列を含むように変更します。

    UM_USER_RECON問合せにCUSTOMER_ID列を含むサンプル問合せは、単一値属性を含めるために更新されるサンプルSQL問合せを参照してください。

  6. ステップ3から5を繰り返し、必要に応じてUM_USER_SYNCなどの残りのSQL問合せを更新します。たとえば、UM_USER_SYNC SQL問合せを変更して、選択した問合せにPAPF.CUSTOMER_ID AS CUSTOMER_IDを含めます。
  7. 変更を保存して、ファイルを閉じます。
  8. 更新した問合せを確認します。
  9. 次のコマンドを実行して、コネクタ・バンドル(org.identityconnectors.ebs-1.0.1115.jar)を更新します。

    jar -cvfm org.identityconnectors.ebs-1.0.11150.jar META-INF/MANIFEST.MF *

  10. Oracle Identity ManagerのJAR更新ユーティリティを実行して、新規コネクタ・バンドル(ステップ9で更新済)をOracle Identity Managerデータベースに対して更新します。このユーティリティは、Oracle Identity Managerのインストール時に次の場所にコピーされます。

    ノート:

    このユーティリティを使用する前に、Oracle WebLogic ServerをインストールしたディレクトリにWL_HOME環境変数が設定されていることを確認してください。

    Microsoft Windowsの場合:

    OIM_HOME/server/bin/UpdateJars.bat

    UNIXの場合:

    OIM_HOME/server/bin/UpdateJars.sh

    ユーティリティを実行すると、Oracle Identity Manager管理者のログイン資格証明、Oracle Identity Managerホスト・コンピュータのURL、コンテキスト・ファクトリ値、アップロードするJARファイルのタイプおよびJARファイルがアップロードされる場所の入力を求めるプロンプトが表示されます。JARタイプの値として4を指定します。

Procedures.propertiesファイルの更新

作成および更新プロビジョニング操作時に新規追加した列属性(Customer Id)をサポートするには、Procedures.propertiesファイルで起動されるストアド・プロシージャを更新する必要があります。そのように行うには:

  1. テキスト・エディタで、編集のためにProcedures.propertiesファイルを開きます。

  2. 個人の作成および個人の更新のプロビジョニング操作を起動するために使用されるラッパー・パッケージおよびストアド・プロシージャの名前を検索して決定します。たとえば、OIM_FND_USER_TCA_PKG.CREATEUSERおよびOIM_FND_USER_TCA_PKG.UPDATEUSERはユーザー作成およびユーザー更新のプロビジョニング操作に使用されるラッパー・パッケージおよびストアド・プロシージャです。

  3. 次のように、前述のステップで決定したストアド・プロシージャを更新します。

    1. 任意のSQLクライアント(たとえば、SQL Developer)を開き、apps userを使用してターゲット・システムのデータベースに接続します。

    2. ラッパー・パッケージを開いて、新規追加した属性(たとえば、Customer Id)をユーザー作成およびユーザー更新ストアド・プロシージャに追加します。たとえば、OIM_FND_USER_TCA_PKGパッケージを開いて、新規追加した属性をCreateUserおよびUpdateUserストアド・プロシージャに追加します。

      次のスクリーンショットでは、新規追加した属性を含めるためにOIM_FND_USER_TCA_PKGパッケージで更新する必要があるストアド・プロシージャを強調表示しています。

    3. CreateUserストアド・プロシージャを選択して、新規追加した属性を含めるように入力パラメータを更新します。

      次のスクリーンショットでは、CreateUserストアド・プロシージャの新規追加した属性(customer_id)を強調表示しています。

    4. UpdateUserストアド・プロシージャを選択して、新規追加した属性を含めるように入力パラメータを更新します。

      次のスクリーンショットでは、UpdateUserストアド・プロシージャの新規追加した属性(customer_id)を強調表示しています。

    5. OIM_FND_USER_TCA_PKG Bodyを開いて、CreateUserストアド・プロシージャを選択します。

    6. 新規追加した属性を含むプロシージャでCreateUser APIのコールを更新します。

      次のスクリーンショットに、更新したCreateUser APIを示します。

    7. ステップ3.3.cから3.3.fを繰り返して、新規追加した属性を含めるようにUPDATEUSERストアド・プロシージャを更新します。

    8. ラッパー・パッケージを再コンパイルします。

    これで、リコンシリエーションおよびプロビジョニングのための新規単一値属性を追加する手順は終了です。

リコンシリエーションおよびプロビジョニング用の新規複数値属性の追加

リコンシリエーションおよびプロビジョニング用に新しい複数値属性を追加できます。

デフォルトでは、表3-3に示した属性が、リコンシリエーションおよびプロビジョニング用にOracle Identity Managerとターゲット・システム間でマップされます。必要に応じて、リコンシリエーションおよびプロビジョニング用に追加の複数値属性をマップできます。次の項に、新規複数値属性を追加するために実行する手順について説明します。セキュリティ属性の複数値属性が、次の手順を示すために例として使用されています。

リコンシリエーションおよびプロビジョニング用の新規複数値属性を追加するステップのサマリー

リコンシリエーションおよびプロビジョニング用の新規複数値属性を追加する際に実行するステップのサマリーは次のとおりです。

  1. DBラッパー・パッケージを更新して新規複数値属性を含めます。「コネクタ・スキーマの拡張」の説明に従って、get_schemaプロシージャのメインの属性リストに親属性を含めてから、すべての子属性を含む属性リストを作成します。
  2. Oracle Identity Managerメタデータの拡張の説明に従って、Oracle Identity Managerメタデータを更新して新規属性を追加します。
  3. スケジュール済ジョブの作成の説明に従ってスケジュール済ジョブを作成し、新規作成した複数値属性に対応するターゲット・システムの属性の値をOracle Identity Managerの値と同期します。
  4. 「コネクタ・バンドルの更新」の説明に従ってコネクタ・バンドルを更新し、新規複数値属性をsearch.propertiesファイルおよびProcedures.propertiesファイルに含めます。
  5. 「ラッパー・パッケージへのAPIの追加」の説明に従ってAPIをラッパー・パッケージに追加し、新規追加した複数値属性でプロビジョニング操作を有効化します。

コネクタ・スキーマの拡張

コネクタ・スキーマを拡張して、リコンシリエーションおよびプロビジョニング用の新規複数値属性を含める必要があります。そのように行うには:

  1. 任意のSQLクライアントを開き、APPSユーザーを使用してデータベースに接続します。
  2. OIM_FND_USER_TCA_PKG.pckラッパー・パッケージの本体を開きます。
  3. get_schema()ストアド・プロシージャを選択します。
  4. 新規複数値属性を宣言します。新規複数値属性を宣言する構文は次のとおりです。

    attr := attributelist();

  5. 次の形式で、新規複数値属性に含む必要のある子属性の数を指定することにより、属性リストを初期化します。

    attr.extend(NUM);

    ここで、NUMは子属性の数です。指定された数の子属性の配列が内部で作成されます。

    サンプル値: attr.extend(4);

    属性リストを初期化したり、追加する子属性ごとに次の構文を使用して1ずつリスト内の子属性の数を増やしたりすることもできます。

    attr.extend;

    関連項目:

    サンプル・コード・スニペットの詳細は、「コネクタ・スキーマの拡張のためのサンプル・コード・スニペット」を参照してください

  6. 各子属性を定義して、次の形式で、属性名、データ型および権限フラグなどの情報を含めます。

    attr (ORD_NO) := attributeinfo(ATTR_NAME,ATTR_TYPE,CREATE_FLAG,UPDATE_FLAG,REQUIRED_FLAG,READ_FLAG)

    この形式の詳細は次のとおりです。

    • ORD_NOはリスト内での属性の順序です。これは必須です。

    • ATTR_NAMEは子属性の名前です。

    • ATTR_TYPEは子属性のSQLデータ型です。

    • CREATE_FLAGは、作成プロビジョニング操作時に属性が必要かどうかを示すフラグです。

    • UPDATE_FLAGは属性が更新可能かどうかを示すフラグです。

    • REQUIRED_FLAGは属性が必須かどうかを示すフラグです。

    • READ_FLAGは属性が読取り可能かどうかを示すフラグです。

    各フラグの値1または0は、それぞれTrueまたはFalseを示します。たとえば、フラグの値1, 0, 1, 0は、属性が必須属性で、作成プロビジョニング操作時に想定する必要があることを意味しています。

  7. 次の文を使用して、新規複数値属性の定義およびスキーマを終了します。
    schemaout.extend;
    schemaout(ORD_NO) := schema_object('ATTR_NAME', attr)
    

    この文で、ORD_NOはコネクタ・スキーマでの複数値属性の順序で、ATTR_NAMEは追加される複数値属性の名前です。次に、文の例を示します。

    schemaout.extend;
    schemaout( 4 ) := schema_object('__SECURITY_ATTRS__',attr);
    
  8. ラッパー・パッケージを再コンパイルします。

Oracle Identity Managerメタデータの拡張

Oracle Identity Managerのメタデータを拡張して、コネクタ・スキーマの拡張で追加した新規属性を含める必要があります。Oracle Identity Managerメタデータを拡張するには、次の手順を実行します。

参照定義の作成

次のように、コネクタ・スキーマの拡張で追加した新規属性の参照定義を作成する必要があります:

  1. Design Consoleにログインします。
  2. 「管理」を開き、「参照定義」をダブルクリックします。
  3. 「コード」フィールドに、参照定義の名前を入力します。たとえば、Lookup.Oracle EBS UM.SecAttrNamesと入力します。
  4. 「参照タイプ」オプションを選択して、参照定義が参照フィールドを示すことを指定します。
  5. 「グループ」フィールドに、参照定義を表示するフォームの名前を入力します。たとえば、EBS UMと入力します。
  6. 「保存」アイコンをクリックします。

    参照定義が作成されます。関連する参照フィールドが指定したフォームに表示されます。

  7. ステップ2から6を繰り返して、Lookup.Oracle EBS UM.SecAttrTypes参照定義を作成します。

子プロセス・フォームの作成

次のように、新規追加した属性の子プロセス・フォームを作成します。

  1. 「開発ツール」を開き、「フォーム・デザイナ」をダブルクリックします。
  2. 「表名」フィールドに、フォームに関連付けるデータベース表の名前を入力します。たとえば、UD_UM_SECと入力します。
  3. 「説明」フィールドに、フォームに関する説明を入力します。たとえば、Form for UM security attributesと入力します。
  4. 「プロセス」オプションを選択します。これは、フォームをプロビジョニング・プロセスに割り当てるためです。
  5. 「保存」アイコンをクリックします。

    フォームが作成されます。最新バージョン・フィールドに、初期バージョンと表示されます。

  6. 「Additional Columns」タブで、「Add」をクリックします。

    空白の行が表示されます。

  7. フォームに追加するすべての属性に対して、「名前」、「バリアント・タイプ」、「長さ」、「フィールド・ラベル」などの列の値を入力します。
  8. 必要な属性ごとにステップ6と7を繰り返します。次の表に、追加可能なサンプル属性のリストを示します。
    Name Variant Type Length Field Label Field Type Order

    UD_UM_SEC_APP_ID

    String

    200

    アプリケーション名

    参照フィールド

    1

    UD_UM_SEC_ATTR_NAME

    String

    200

    セキュリティ属性名

    参照フィールド

    2

    UD_UM_SEC_ATTR_VALUE

    String

    200

    セキュリティ属性値

    TextField

    3

    UD_UM_SEC_ATTR_TYPE

    String

    200

    セキュリティ属性タイプ

    参照フィールド

    4

  9. 「保存」アイコンをクリックします。
  10. 「プロパティ」タブでプロパティとプロパティ値を追加するデータ・フィールドを選択してから、「プロパティの追加」をクリックします。たとえば、「アプリケーション名」データ・フィールドを選択し、「プロパティの追加」をクリックします。
  11. 「プロパティの追加」ダイアログ・ボックスで「プロパティ名」を選択してから、プロパティ値を入力します。たとえば、「プロパティ名」リストから「参照コード」を選択して、「プロパティ値」フィールドにLookup.Oracle EBS UM.Applicationsと入力します。
  12. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。
  13. プロパティおよびプロパティ値を追加するフィールドごとにステップ10から12を繰り返します。次の表に、サンプル・データ・フィールドおよび対応するプロパティ値を示します。
    列名 列型 プロパティ名 プロパティ値

    セキュリティ属性名

    参照フィールド

    参照コード

    Lookup.Oracle EBS UM.SecAttrNames

    セキュリティ属性タイプ

    参照フィールド

    参照コード

    Lookup.Oracle EBS UM.SecAttrTypes

  14. 「保存」アイコンをクリックします。
  15. 「バージョンをアクティブにする」をクリックします。表示される確認メッセージを受け入れます。

親プロセス・フォームの更新

次のように、新規追加した属性の親プロセス・フォームを更新します。

  1. 「開発ツール」を開き、「フォーム・デザイナ」をダブルクリックします。
  2. UD_EBS_UMプロセス・フォームを検索して開きます。
  3. 「Create New Version」をクリックして、フォームのバージョンを作成します。
  4. 「Label」フィールドで、バージョン名を入力します。たとえば、version#2
  5. 「保存」アイコンをクリックします。
  6. 「現行バージョン」リストから、ステップ4で作成された現在のバージョンを選択します。
  7. 子表タブで「割当て」をクリックして、子表をフォームに割り当てます。
  8. 子表の割当てダイアログ・ボックスで、新規作成した子フォームを選択して右矢印をクリックします。たとえば、UD_UM_SECを選択します。
  9. 「OK」をクリックします。

    選択した子表がフォームに割り当てられます。

  10. 「保存」アイコンをクリックします。
  11. 「Make Version Active」をクリックします。

リコンシリエーション属性マッピングの参照定義の更新

リコンシリエーション属性マッピングの参照定義に、次のようにして新規属性のエントリを追加します。

  1. 「管理」を開き、「参照定義」をダブルクリックします。
  2. Lookup.Oracle EBS UM.UM.ReconAttrMap参照定義を検索して開きます。
  3. 行を追加するには、「追加」をクリックします。
  4. コード・キー列とデコード列に、新規追加した子属性に対応する値を入力します。コード・キーとデコードの値は次の形式にする必要があります。

    コード・キー: MULTIVALUED_FIELD_NAME~CHILD_FORM_FIELD_NAME[LOOKUP]

    この形式の詳細は次のとおりです。

    • MULTIVALUED_FIELD_NAMEは、親プロセス・フォーム上の名前フィールドです。

    • CHILD_FORM_FIELD_NAMEは、子プロセス・フォーム上のフィールドの名前です。

    • [LOOKUP]は、フィールドが参照フィールドであることを示すフラグです。

    デコード: 対応するターゲット・システム属性。

  5. 新規追加した属性ごとに、ステップ3と4を繰り返します。次の表に、追加可能なサンプル・エントリを示します。
    コード・キー デコード

    SecAttrs~Application Name[LOOKUP]

    __SECURITY_ATTRS__~__SECURITY_ATTRS__~SECURITY_APP_ID

    SecAttrs~Security Attribute Name[LOOKUP]

    __SECURITY_ATTRS__~__SECURITY_ATTRS__~SECURITY_ATTR_NAME

    SecAttrs~Security Attribute Value

    __SECURITY_ATTRS__~__SECURITY_ATTRS__~SECURITY_ATTR_VALUE

    SecAttrs~Security Attribute Type[LOOKUP]

    __SECURITY_ATTRS__~__SECURITY_ATTRS__~SECURITY_ATTR_TYPE

  6. 「保存」アイコンをクリックします。

プロビジョニング属性マッピングの参照定義の更新

プロビジョニング属性マッピングの参照定義に、次のようにして属性のエントリを追加します。

  1. 「管理」を開き、「参照定義」をダブルクリックします。
  2. Lookup.Oracle EBS UM.UM.ProvAttrMap参照定義を検索して開きます。
  3. 行を追加するには、「追加」をクリックします。
  4. コード・キー列とデコード列に、新規追加した子属性に対応する値を入力します。コード・キーとデコードの値は次の形式にする必要があります。

    コード・キー: CHILD_FORM_NAME~CHILD_FIELD_LABEL[LOOKUP]

    この形式の詳細は次のとおりです。

    • CHILD_FORM_NAMEは、子フォームの名前を指定します。

    • CHILD_FIELD_NAMEは、子フォームのフィールドの名前を指定します。

    • [LOOKUP]は、フィールドが参照フィールドであることを示すフラグです。

    デコード: 対応するターゲット・システム属性。

  5. 新規追加した属性ごとに、ステップ3と4を繰り返します。次の表に、追加可能なサンプル・エントリを示します。
    コード・キー デコード

    UD_UM_SEC~Application Name[LOOKUP]

    __SECURITY_ATTRS__~__SECURITY_ATTRS__~SECURITY_APP_ID

    UD_UM_SEC~Security Attribute Name[LOOKUP]

    __SECURITY_ATTRS__~__SECURITY_ATTRS__~SECURITY_ATTR_NAME

    UD_UM_SEC~Security Attribute Value

    __SECURITY_ATTRS__~__SECURITY_ATTRS__~SECURITY_ATTR_VALUE

    UD_UM_SEC~Security Attribute Type[LOOKUP]

    __SECURITY_ATTRS__~__SECURITY_ATTRS__~SECURITY_ATTR_TYPE

  6. 「保存」アイコンをクリックします。

Oracle EBS User Managementリソース・オブジェクトの更新

次のようにして、リソース・オブジェクトに、新規属性に対応するリコンシリエーション・フィールドを追加します。

  1. 「リソース管理」フォルダを開き、「リソース・オブジェクト」をダブルクリックします。
  2. Oracle EBS User Managementリソース・オブジェクトを検索して開きます。
  3. 「Object Reconciliation」タブで、「ADD Field」をクリックして、「Add Reconciliation Field」ダイアログ・ボックスを開きます。
  4. 「フィールド名」フィールドに、属性の名前を入力します。たとえば、SecAttrs
  5. 「Field Type」リストから、フィールドのデータ・タイプを選択します。たとえば、Multi-Valued Attributeを選択します。
  6. 属性を必須属性として指定する場合は、「必須」チェック・ボックスを選択します。
  7. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。
  8. 新規作成したフィールド(たとえば、SecAttrs)を右クリックして、「プロパティ・フィールドの定義」を選択します。

    たとえば、「フィールド名」フィールドでApplication Nameと入力し、フィールド・タイプ・リストから「文字列」を選択します。

  9. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。
  10. ステップ8と9を繰り返して、すべての子フィールドを追加します。次の表に、追加可能なサンプル・フィールド名とフィールド・タイプを示します。
    フィールド名 Field Type

    セキュリティ属性名

    String

    また、「必須」チェック・ボックスを選択し、この属性を必須として指定します。

    セキュリティ属性値

    String

    セキュリティ属性タイプ

    String

  11. 「Create Reconciliation Profile」をクリックします。これにより、リソース・オブジェクトに行われた変更がMDSにコピーされます。

Oracle EBS UMユーザー・プロセス定義の更新

次のようにして、新規追加した属性用のリコンシリエーション・フィールド・マッピングをプロセス定義に作成します。

  1. 「Process Management」を開き、「Process Definition」をダブルクリックします。
  2. 「Oracle EBS UMユーザー」プロセス定義を検索して開きます。
  3. リコンシリエーション・フィールド・マッピング・タブで「表マップの追加」をクリックして、新規作成した複数値フィールドをマップします。
  4. リコンシリエーション表マッピングの追加ダイアログ・ボックスの「フィールド名」リストから、Oracle EBS User Managementリソース・オブジェクトの更新でリソース・オブジェクトを作成したターゲット・システムの複数値フィールドを選択します。たとえば、SecAttrsを選択します。
  5. 「表名」リストから、子プロセス・フォームの作成で作成した子表のプロセス・フォームを選択します。たとえば、UD_UM_SECを選択します。
  6. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。
  7. マップしたばかりの複数値フィールドを右クリックし、表示されるメニューから「プロパティ・フィールド・マップの定義」を選択します。たとえば、SecAttrs複数値フィールドを右クリックし、「プロパティ・フィールド・マップの定義」を選択します。
  8. 「フィールド名」リストから、マップする子フィールドを選択します。たとえば、「アプリケーション名」を選択します。
  9. 「プロセス・データ・フィールド」フィールドをダブルクリックし、「参照」ダイアログ・ボックスで適切マッピングを選択し、「OK」をクリックします。たとえば、「プロセス・データ・フィールド」フィールドをダブルクリックし、UD_UM_SEC_APP_IDを選択します。
  10. 複数値フィールドで定義されている各子フィールドについて、ステップ7から9を繰り返します。次の表に、追加可能なサンプル・フィールド名とプロセス・データ・フィールドを示します。
    フィールド名 プロセス・データ・フィールド

    セキュリティ属性名

    _UM_SEC_ATTR_NAME

    また、リコンシリエーション照合用キー・フィールド・チェック・ボックスを選択します。

    セキュリティ属性値

    UD_UM_SEC_ATTR_VALUE

    セキュリティ属性タイプ

    UD_UM_SEC_ATTR_TYPE

  11. 「保存」アイコンをクリックします。

新規UIフォームへのフォーム・デザイナの変更のレプリケート

次のように新しいUIフォームに、Design Consoleのフォーム・デザイナに対して行われたすべての変更を複製します。

  1. Oracle Identity System Administrationにログインします。
  2. サンドボックスを作成し、アクティブにします。詳細は、サンドボックスの作成およびアクティブ化を参照してください。
  3. アップグレードされたフィールドを表示するためのUIフォームを新規作成します。UIフォームの作成の詳細は、UIフォームの新規作成を参照してください。
  4. 新たに作成したUIフォームをターゲット・システムのアプリケーション・インスタンスに関連付けます。そのためには、「フォーム」フィールドの、リソースの既存のアプリケーション・インスタンスを開き、(以前のステップで作成した)フォームを選択して、アプリケーション・インスタンスを保存します。
  5. サンドボックスを公開します。詳細は、サンドボックスの公開を参照してください。

新規属性のプロビジョニング操作の有効化

次のように、新規追加した属性でのプロビジョニング操作の処理用にプロセス・タスクを作成することにより、プロセス定義を更新します。:

  1. 「プロセス管理」を開いて、「プロセス定義」をダブルクリックします。
  2. 「Oracle EBS UMユーザー」プロセス定義を検索して開きます。
  3. 「タスク」タブで、「追加」をクリックします。

    新しいタスクの作成ダイアログ・ボックスが表示されます。

  4. 「タスク名」フィールドに、プロセス・タスクの名前を入力します。たとえば、Add Attributesと入力します。
  5. 「タスクの説明」フィールドに、タスクの説明を入力します。たとえば、Task to add security attributesと入力します。
  6. 「タスク・プロパティ」リージョンで、要件に合ったプロパティを選択して「保存」アイコンをクリックします。たとえば、「タスク・プロパティ」リージョンで次のアクションを実行します。
    • 次のチェック・ボックスを選択します。

      Conditional

      Allow Cancellation While Pending

      Allow Multiple Instances

    • 子表リストから、子表名UD_UM_SECを選択します。

    • 「Trigger Type」リストで「Insert」を選択します。

  7. 「統合」タブで、「追加」をクリックして、前述のステップで作成したプロセス・タスクにアダプタを割り当てます。
  8. ハンドラ・セクション・ダイアログ・ボックスで「アダプタ」オプションを選択します。
  9. 「ハンドラ名」リージョンに表示されるアダプタのリストから、プロセス・タスクに割り当てるアダプタを選択します。たとえば、adpEBSUMADDCHILDDATAアダプタを選択します。
  10. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。
  11. 「統合」タブの「アダプタ変数」リージョンの表で、マップする変数をクリックします。たとえば、objectType変数をクリックします。
  12. 変数のデータ・マッピングの編集ダイアログ・ボックスで、必要に応じてアダプタ変数マッピングを作成します。たとえば、次のマッピングを作成します。

    変数名: objectType

    マップ先: Literal

    修飾子: String

    リテラル値: User

  13. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。
  14. 「アダプタ変数」リージョンの残りの変数について、ステップ11から13を実行します。次の表に、各変数について「マップ先」、「修飾子」および「リテラル値」リストから選択可能なサンプル値を示します。
    変数 マップ先 修飾子 リテラル値

    procInstanceKey

    Process Data

    Process Instance

    該当なし

    itResourceFieldName

    Literal

    String

    UD_EBS_UM_EBS_ITRES

    childTableName

    Literal

    String

    UD_UM_SEC

    childPrimaryKey

    Process Data

    子の主キー

    該当なし

    Adapter return value

    Response Code

    該当なし

    該当なし

  15. 「プロセス定義」フォームの「保存」アイコンをクリックします。
  16. ステップ3から15を繰り返して、更新および削除プロビジョニング操作のプロセス・タスクを作成します。
  17. 「レスポンス」タブで「追加」をクリックして、少なくともSUCCESSレスポンス・コードをステータスCとともに追加します。これにより、カスタム・タスクが正常に実行されると、タスクのステータスが「完了」として表示されます。
  18. 「Save」アイコンをクリックしてダイアログ・ボックスを閉じ、プロセス定義を保存します。

スケジュール済ジョブの作成

ノート:

親属性または子属性にすることができる参照属性に使用する参照スケジュール済ジョブの場合、この項で説明する手順を実行します。

(新規作成した複数値フィールドに対応する)ターゲット・システムの属性の値を参照定義の作成で作成した参照定義と同期するためにスケジュール済ジョブを作成する必要があります。そのように行うには:

  1. Oracle Identity System Administrationコンソールにログインします。
  2. 左ペインの「システム構成」で、「スケジューラ」をクリックします。拡張管理が表示され、「システム管理」タブの「スケジューラ」セクションがアクティブになります。
  3. 左ペインの「アクション」メニューから、「作成」を選択します。あるいは、「表示」リストの横のプラス(+)記号が付いたアイコンをクリックします。
  4. 「ジョブの作成」ページで、「ジョブ情報」セクションの次のフィールドに値を入力します。
    • ジョブ名: ジョブの名前を入力します。たとえば、Oracle EBS UM Target Security Attributes Lookup Reconciliationと入力します。

    • タスク: ジョブを実行するスケジュール済タスクの名前を指定または選択します。たとえば、Oracle EBS UM ターゲット・コネクタ参照リコンシリエーションを選択します。

    • 「開始日」、「再試行」および「スケジュール・タイプ」などの残りのフィールドに値を入力します。

  5. 「パラメータ」セクションで、スケジュール済ジョブのすべてのパラメータに値を入力します。たとえば、スケジュール済ジョブおよびその値は次のとおりです。
    • コード・キー属性: Code

    • デコード属性: Decode

    • ITリソース名: Oracle EBS UM

    • 参照名: Lookup.Oracle EBS UM.SecAttrNames

    • オブジェクト・タイプ: __SECURITY_ATTR_NAMES__

  6. 「適用」をクリックします。
  7. ステップ2から6を作成して、残りの複数値フィールドのスケジュール済ジョブを作成します。たとえば、これらのステップを繰り返して、Lookup.Oracle EBS UM.SecAttrTypes参照定義の値を__SECURITY_ATTR_TYPES__オブジェクト・タイプと同期するためのスケジュール済ジョブを作成します。

コネクタ・バンドルの更新

コネクタ・バンドル(org.identityconnectors.ebs-1.0.1115.jar)を更新して、前述の項で行った更新をすべて含める必要があります。そのように行うには:

  1. JARダウンロード・ユーティリティを実行して、コネクタ・バンドル(org.identityconnectors.ebs-1.0.11150.jar)ファイルをOracle Identity Managerデータベースからダウンロードします。このユーティリティは、Oracle Identity Managerのインストール時に次の場所にコピーされます。

    ノート:

    このユーティリティを使用する前に、Oracle WebLogic ServerをインストールしたディレクトリにWL_HOME環境変数が設定されていることを確認してください。

    Microsoft Windowsの場合:

    OIM_HOME/server/bin/DownloadJars.bat

    UNIXの場合:

    OIM_HOME/server/bin/DownloadJars.sh

    ユーティリティを実行すると、Oracle Identity Manager管理者のログイン資格証明、Oracle Identity Managerホスト・コンピュータのURL、コンテキスト・ファクトリ値、アップロードするJARファイルのタイプおよびJARファイルがアップロードされる場所の入力を求めるプロンプトが表示されます。JARタイプの値として4を指定します。

  2. Oracle Identity ManagerをホストするコンピュータのディレクトリにJARファイルの内容を抽出します。
  3. テキスト・エディタで、抽出したJARファイルの構成ディレクトリにあるsearch.propertiesファイルを開きます。
  4. search.propertiesファイルの最初の部分で、新規追加した属性に対応するエントリを追加します。
  5. search.propertiesファイルの最初の部分で、オブジェクト名、リコンシリエーション操作のタイプおよびSQL問合せ名を定義することにより、新規追加した属性のエントリに対応するエントリを追加します。たとえば、次のエントリを追加します。
    __SECURITY_ATTR_NAMES__.lookup=LOOKUP_SECATTR_NAME_QUERY
    __SECURITY_ATTR_TYPES__.lookup=LOOKUP_SECATTR_DATATYPE_QUERY
    

    この例の説明は、次のとおりです。

    • __SECURITY_ATTR_NAMESおよび__SECURITY_ATTR_TYPES__はオブジェクト名です。

    • lookupは、このエントリの問合せが参照フィールドの同期を実行するために使用されることを指定します。

    • LOOKUP_SECATTR_NAME_QUERYおよびLOOKUP_SECATTR_DATATYPE_QUERYはSQL問合せ名です。

  6. search.propertiesファイルの2番目の部分で、ステップ5で指定したSQL問合せ名に対応するSQL問合せを追加します。たとえば、次のエントリを追加します。
    LOOKUP_SECATTR_DATATYPE_QUERY= select datatype as CODE, datatype as DECODE from ( select distinct(DATA_TYPE) as datatype from AK_ATTRIBUTES)
    
    LOOKUP_SECATTR_NAME_QUERY= select sa.ATTRIBUTE_CODE as CODE, (CONCAT(fa.application_short_name || '~', sa.ATTRIBUTE_CODE)) AS DECODE FROM fnd_application fa, AK_ATTRIBUTES sa where fa.application_id=sa.attribute_application_id
    
  7. UM_USER_RECONおよびUM_USER_SYNCのSQL問合せを更新して、新規追加した属性に関する情報を含めます。たとえば、UM_USER_RECONとUM_USER_SYNC SQL問合せの両方を「複数値属性を含めるために更新されるサンプルSQL問合せ」のSQL問合せを使用して更新します。
  8. search.propertiesファイルを保存して閉じます。
  9. テキスト・エディタで、ステップ2で抽出したJARファイルの構成ディレクトリにあるProcedures.propertiesファイルを開きます。
  10. 新規追加した属性に対応するエントリを追加します。たとえば、次のエントリを追加します。
    __SECURITY_ATTRS__.add=OIM_FND_USER_TCA_PKG.ADDUSERSECURITYATTRIBUTE
    __SECURITY_ATTRS__.remove=OIM_FND_USER_TCA_PKG.DELETEUSERSECURITYATTRIBUTE
    

    Procedures.propertiesファイルへのエントリの追加の形式の詳細は、プロビジョニング・プロシージャを参照してください。

  11. Procedures.propertiesファイルを保存して閉じます。
  12. 更新した.propertiesファイルでコネクタ・バンドルのJARファイルを再作成します。
  13. Oracle Identity ManagerのJARアップロード・ユーティリティを実行して、新規コネクタ・バンドル(ステップ12で更新済)をOracle Identity Managerデータベースに対して投稿します。このユーティリティは、Oracle Identity Managerのインストール時に次の場所にコピーされます。

    ノート:

    このユーティリティを使用する前に、Oracle WebLogic ServerをインストールしたディレクトリにWL_HOME環境変数が設定されていることを確認してください。

    Microsoft Windowsの場合:

    OIM_HOME/server/bin/UploadJars.bat

    UNIXの場合:

    OIM_HOME/server/bin/UploadJars.sh

    ユーティリティを実行すると、Oracle Identity Manager管理者のログイン資格証明、Oracle Identity Managerホスト・コンピュータのURL、コンテキスト・ファクトリ値、アップロードするJARファイルのタイプおよびJARファイルがアップロードされる場所の入力を求めるプロンプトが表示されます。JARタイプの値として4を指定します。

ラッパー・パッケージへのAPIの追加

APIをラッパー・パッケージに追加して、新規追加した属性でプロビジョニング操作を実行するようにコネクタを有効化します。そのように行うには:

  1. 任意のSQLクライアントを開きます。たとえば、SQL Developerなどです。
  2. OIM_FND_USER_TCA_PKGパッケージの仕様部を開いて、プロビジョニング操作を実行するためのメソッドおよび入力パラメータを定義するエントリを追加します。たとえば、新規追加した属性に対して次のメソッドを追加します。
    procedure addUserSecurityAttribute(user_id in number, SECURITY_ATTR_NAME in varchar2, SECURITY_APP_ID varchar2,SECURITY_ATTR_VALUE varchar2,SECURITY_ATTR_TYPE varchar2);
    procedure deleteUserSecurityAttribute(user_id in number, SECURITY_ATTR_NAME in varchar2, SECURITY_APP_ID varchar2,SECURITY_ATTR_VALUE varchar2,SECURITY_ATTR_TYPE varchar2);
    
  3. OIM_FND_USER_TCA_PKGパッケージの本体を開いて、前述のステップで定義したメソッドの実装を追加します。たとえば、新規追加した属性に対して次の実装を追加します。
    procedure addUserSecurityAttribute(user_id in number, SECURITY_ATTR_NAME in varchar2, SECURITY_APP_ID varchar2,SECURITY_ATTR_VALUE varchar2,SECURITY_ATTR_TYPE varchar2)
        IS
              x_return_status VARCHAR2(2000);
              x_msg_count NUMBER;
              x_msg_data VARCHAR2(2000);
      l_varchar2_value varchar2(2000);
      l_date_value date;
      l_number_value NUMBER;
        begin
        if SECURITY_ATTR_TYPE = 'NUMBER' then
    l_number_value := SECURITY_ATTR_VALUE;
    elsif SECURITY_ATTR_TYPE = 'DATE' then
        l_date_value := SECURITY_ATTR_VALUE;
    else
    l_varchar2_value := SECURITY_ATTR_VALUE;
    end if;
            icx_user_sec_attr_pub.create_user_sec_attr(
               p_api_version_number   => 1,
               p_return_status        => x_return_status,
               p_msg_count            => x_msg_count,
               p_msg_data             => x_msg_data,
               p_web_user_id          => user_id,
               p_attribute_code       => SECURITY_ATTR_NAME,
               p_attribute_appl_id    => SECURITY_APP_ID,
               p_varchar2_value       => l_varchar2_value,
               p_date_value           => l_date_value,
               p_number_value         => l_number_value,
               p_created_by           => -1,
               p_creation_date        => sysdate,
               p_last_updated_by      => -1,
               p_last_update_date     => sysdate,
               p_last_update_login    => -1);
        end addUserSecurityAttribute;
    
    procedure deleteUserSecurityAttribute(user_id in number, SECURITY_ATTR_NAME in varchar2, SECURITY_APP_ID varchar2,SECURITY_ATTR_VALUE varchar2,SECURITY_ATTR_TYPE varchar2)
        IS
              x_return_status VARCHAR2(2000);
              x_msg_count NUMBER;
              x_msg_data VARCHAR2(2000);
      l_varchar2_value varchar2(2000);
      l_date_value date;
      l_number_value NUMBER;
        begin
        if SECURITY_ATTR_TYPE = 'NUMBER' then
    l_number_value := SECURITY_ATTR_VALUE;
    elsif SECURITY_ATTR_TYPE = 'DATE' then
        l_date_value := SECURITY_ATTR_VALUE;
    else
    l_varchar2_value := SECURITY_ATTR_VALUE;
    end if;
            icx_user_sec_attr_pub.Delete_User_Sec_Attr(
               p_api_version_number   => 1,
               p_return_status        => x_return_status,
               p_msg_count            => x_msg_count,
               p_msg_data             => x_msg_data,
               p_web_user_id          => user_id,
               p_attribute_code       => SECURITY_ATTR_NAME,
               p_attribute_appl_id    => SECURITY_APP_ID,
               p_varchar2_value       => l_varchar2_value,
               p_date_value           => l_date_value,
               p_number_value         => l_number_value
        );
        end deleteUserSecurityAttribute;
    
  4. ファイルを保存して閉じます。
  5. ラッパー・パッケージをコンパイルするスクリプトを再実行します。

ユーザー・リコンシリエーション中のデータ変換の構成

要件に応じて、リコンサイルされた単一値アカウント・データの変換を構成できます。

ノート:

この項ではオプションの手順を説明します。この手順は、リコンシリエーション時のデータの変換を構成する場合にのみ実行します。

要件に応じて、リコンサイルされた単一値データの変換を構成できます。たとえば、電子メールを使用して、Oracle Identity Managerの「電子メール」フィールドに異なる値を作成します。

データの変換を構成するには:

  1. 必要な変換ロジックをJavaクラスに実装するコードを記述します。

    次のサンプル変換クラスは、ターゲット・システムのEMAIL_ADDRESS列からフェッチした値を使用して、「電子メール」属性の値を作成します。

    package oracle.iam.connectors.common.transform;
     
    import java.util.HashMap;
     
    public class TransformAttribute {
     
          /*
          Description:Abstract method for transforming the attributes
          
          param hmUserDetails<String,Object> 
     
          HashMap containing parent data details
     
          param hmEntitlementDetails <String,Object> 
     
          HashMap containing child data details 
          
          */
          public Object transform(HashMap hmUserDetails, HashMap hmEntitlementDetails,String sField) {
          /*
           * You must write code to transform the attributes.
           Parent data attribute values can be fetched by 
           using hmUserDetails.get("Field Name").
           *To fetch child data values, loop through the
           * ArrayList/Vector fetched by hmEntitlementDetails.get("Child          Table")
           * Return the transformed attribute.
           */
          String sEmail= "trans" + (String)hmUserDetails.get(sField);
          return sEmail;
          }
    }
    
  2. Javaクラスを保持するJARファイルを作成します。

  3. Oracle Identity Manager JARアップロード・ユーティリティを実行して、JARファイルをOracle Identity Managerデータベースに投稿します。このユーティリティは、Oracle Identity Managerのインストール時に次の場所にコピーされます。

    ノート:

    このユーティリティを使用する前に、Oracle WebLogic ServerをインストールしたディレクトリにWL_HOME環境変数が設定されていることを確認してください。

    Microsoft Windowsの場合:

    OIM_HOME/server/bin/UploadJars.bat

    UNIXの場合:

    OIM_HOME/server/bin/UploadJars.sh

    ユーティリティを実行すると、Oracle Identity Manager管理者のログイン資格証明、Oracle Identity Managerホスト・コンピュータのURL、コンテキスト・ファクトリ値、アップロードするJARファイルのタイプおよびJARファイルがアップロードされる場所の入力を求めるプロンプトが表示されます。JARタイプの値として1を指定します。

  4. 次のように変換用の参照定義を作成し、それにエントリを追加します。

    1. Design Consoleにログインします。

    2. 「管理」を開いて、「参照定義」をダブルクリックします。

    3. 「コード」フィールドに、参照定義の名前としてLookup.Oracle EBS UM.UM.ReconTransformationを入力します。

    4. 「Lookup Type」オプションを選択します。

    5. 参照コード情報タブで、「追加」をクリックします。

      新しい行が追加されます。

    6. コード・キー列に、変換済の値を格納するリソース・オブジェクト・フィールド名を入力します。たとえば: Email

    7. デコード列に、変換ロジックを実装するクラスの名前を入力します。たとえば、oracle.iam.connectors.common.transform.TransformAttributeです。

    8. 参照定義に変更を保存します。

  5. 次のように、Lookup.Oracle EBS UM.UM.Configuration参照定義にエントリを追加して、変換を有効にします。

    1. 「管理」を開いて、「参照定義」をダブルクリックします。

    2. Lookup.Oracle EBS UM.UM.Configuration参照定義を検索して開きます。

    3. 次のように、変換に使用する参照定義の名前を保持するエントリを作成します。

      コード・キー: Recon Transformation Lookup

      デコード: Lookup.Oracle EBS UM.UM.ReconTransformation

    4. 参照定義に変更を保存します。

リコンシリエーションおよびプロビジョニング中のデータ検証の構成

要件に応じて、リコンサイルおよびプロビジョニングされた単一値データの検証を構成できます。

たとえば、「電子メール」属性からフェッチしたデータを検証して、そのデータに番号記号(#)が含まれていないことを確認します。また、プロセス・フォームの「名」フィールドに入力したデータを検証して、プロビジョニング操作中にターゲット・システムに番号記号(#)が送信されないようにします。

検証チェックで合格しないデータについては、次のメッセージが表示されるか、ログ・ファイルに記録されます。

oracle.iam.connectors.icfcommon.recon.SearchReconTask : handle : Recon event skipped, validation failed [Validation failed for attribute: [FIELD_NAME]]

データの検証を構成するには:

  1. 必要な検証ロジックをJavaクラスに実装するコードを記述します。

    次のサンプル検証クラスは、「電子メール」属性の値に番号記号(#)が含まれるかどうかを確認します。

    package com.validate;
    import java.util.*;
    public class MyValidation {
    public boolean validate(HashMap hmUserDetails,
                  HashMap hmEntitlementDetails, String field) {
                /*
             * You must write code to validate attributes. Parent
             * data values can be fetched by using hmUserDetails.get(field)
             * For child data values, loop through the
             * ArrayList/Vector fetched by hmEntitlementDetails.get("Child Table")
             * Depending on the outcome of the validation operation, 
             * the code must return true or false.
             */
             /*
             * In this sample code, the value "false" is returned if the field
             * contains the number sign (#). Otherwise, the value "true" is
             * returned.
             */
                boolean valid=true;
                String sEmail=(String) hmUserDetails.get(field);
                for(int i=0;i<sEmail.length();i++){
                  if (sEmail.charAt(i) == '#'){
                        valid=false; 
                        break;
                  } 
                }
                return valid;
          }
    }
    
  2. Javaクラスを保持するJARファイルを作成します。

  3. Oracle Identity Manager JARアップロード・ユーティリティを実行して、JARファイルをOracle Identity Managerデータベースに投稿します。このユーティリティは、Oracle Identity Managerのインストール時に次の場所にコピーされます。

    ノート:

    このユーティリティを使用する前に、Oracle WebLogic ServerをインストールしたディレクトリにWL_HOME環境変数が設定されていることを確認してください。

    Microsoft Windowsの場合:

    OIM_HOME/server/bin/UploadJars.bat

    UNIXの場合:

    OIM_HOME/server/bin/UploadJars.sh

    ユーティリティを実行すると、Oracle Identity Manager管理者のログイン資格証明、Oracle Identity Managerホスト・コンピュータのURL、コンテキスト・ファクトリ値、アップロードするJARファイルのタイプおよびJARファイルがアップロードされる場所の入力を求めるプロンプトが表示されます。JARタイプの値として1を指定します。

  4. リコンシリエーションのプロセス・フォーム・フィールドを検証するJavaクラスを作成した場合は、次の手順を実行します。

    1. Design Consoleにログインします。

    2. 「管理」を開いて、「参照定義」をダブルクリックします。

    3. 「コード」フィールドに、参照定義の名前としてLookup.Oracle EBS UM.UM.ReconValidationを入力します。

    4. 「Lookup Type」オプションを選択します。

    5. 参照コード情報タブで、「追加」をクリックします。

      新しい行が追加されます。

    6. コード・キー列に、リソース・オブジェクト・フィールド名を入力します。たとえば、Email

    7. デコード列に、クラス名を入力します。たとえば、com.validate.MyValidationです。

    8. 参照定義に変更を保存します。

    9. Lookup.Oracle EBS UM.UM.Configuration参照定義を検索して開きます。

    10. 次の値を使用してエントリを作成します。

      コード・キー: Recon Validation Lookup

      デコード: Lookup.Oracle EBS UM.UM.ReconValidation

    11. 参照定義に変更を保存します。

  5. プロビジョニングのプロセス・フォーム・フィールドを検証するJavaクラスを作成した場合は、次の手順を実行します。

    1. Design Consoleにログインします。

    2. 「管理」を開いて、「参照定義」をダブルクリックします。

    3. 「コード」フィールドに、参照定義の名前としてLookup.Oracle EBS UM.UM.ProvValidationを入力します。

    4. 「Lookup Type」オプションを選択します。

    5. 参照コード情報タブで、「追加」をクリックします。

      新しい行が追加されます。

    6. 「Code Key」列に、プロセス・フォーム・フィールド名を入力します。デコード列で、クラス名を入力します。

    7. 参照定義に変更を保存します。

    8. Lookup.Oracle EBS UM.UM.Configuration参照定義を検索して開きます。

    9. 次の値を使用してエントリを作成します。

      コード・キー: Provisioning Validation Lookup

      デコード: Lookup.Oracle EBS UM.UM.ProvValidation

    10. 参照定義に変更を保存します。