ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity Manager管理者ガイド
11g リリース2 (11.1.2.2.0)
B69535-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

28 フォーム・アップグレード・ジョブおよびフォーム・バージョン制御ユーティリティの使用

OIMユーザーのアカウント・データを保持するために、プロセス・フォームおよび子フォームが使用されます。フォームは、フォーム上のフィールドを追加、変更または削除することによってアップグレードできます。たとえば、アップグレード操作の一部として、「入社日」フィールドを追加し、フォームから出生国フィールドを削除できます。さらに、親フォームから子フォームにフィールドを移動できます。Oracle Identity Managerフォーム・バージョン制御(FVC)ユーティリティを使用すると、フォームのアップグレード操作後にフォーム・データの変更を簡単に管理できます。

フォームのバージョンとデータは、次に示す方法のどちらか一方でアップグレードできます。

FVCユーティリティまたはフォーム・アップグレード・ジョブ・スケジュール済タスクを使用すると、フォーム・バージョンとフォーム・データを要件に応じてアップグレードできます。ただし、どちらか一方を使用してください。次の表では、ユース・ケースに応じて使用するツールについて説明します。

ユース・ケース 使用するツール
すべてのユーザーが最新のアクティブ・バージョン・フォームとフォーム・データを持つ必要がある。 フォーム・アップグレード・ジョブ・スケジュール済タスク
監査のために、Oracle Identity Managerデータベースとターゲット・システムでフォーム・バージョンとフォーム・データを同期する。 フォーム・アップグレード・ジョブ・スケジュール済タスク
あるリリースから次のリリースまでの間にフォーム関連の変更がない。 なし
フォームのバージョンを別のバージョンに切り替える。 FVCユーティリティ
親フォームと子フォームのバージョン間でフォーム・フィールドをマップする。 FVCユーティリティ
フォーム・フィールドにデフォルト値を指定する。 FVCユーティリティ

この章の内容は次のとおりです。


注意:

FVCユーティリティは、今後のリリースで非推奨になる予定です。このユーティリティは、次のシナリオでのみ使用してください。
  • コネクタをアップグレードするときに、そのアップグレードにスキームの変更が必要になる。

  • コネクタをアップグレードするときに、そのアップグレードにデータのコピーが必要になる。

次のシナリオでは、フォーム・アップグレード・ジョブ・スケジュール済タスクを使用してください。

  • 作成した新しいバージョンのフォームには、新しいフィールドが含まれていない。

  • 新しいフィールドを含む新しいバージョンのフォームを作成したときに、そのフィールドにはターゲットに伝播する必要のあるデフォルト値が設定されている。


28.1 フォーム・アップグレード・ジョブの使用

フォーム・アップグレード・ジョブ・スケジュール済タスクは、すべてのユーザーが最新のアクティブ・バージョン・フォームとフォーム・データを持つようにする場合に使用します。このジョブは、サーバー側ですべてのアカウントを最新のアクティブ・バージョン・フォームとフォーム・データに更新して、パフォーマンスを向上します。このジョブを有効にして構成するには、「事前定義済のスケジュール済タスク」を参照してください。

フォーム・アップグレード・ジョブは、Oracle Identity Managerデータベースとターゲット・システムで、監査のためにフォーム・バージョンとフォーム・データを同期する場合に必須のものです。新しいバージョンのフォームの作成後に、このスケジュール・ジョブを実行しないと、監査スナップショットとレポート表に示されるフォームのバージョンとデータが不正になります。監査の詳細は、「監査の構成」を参照してください。

このスケジュール済タスクが受け入れる構成パラメータには制限があります。このタスクは、FVCユーティリティではサポートされている、次の構成をサポートしていません

  • フォームをバージョン間で移動する。

    すべてのフォームは、暗黙的に最新のアクティブ・バージョンのプロセス・フォームにアップグレードされます。

  • 親フォームと子フォームのバージョン間でフォーム・フィールドをマップする。

  • スケジュール済タスクでフォーム・フィールドにデフォルト値を指定する。

    ただし、フィールドのデフォルト値は、フォームの作成時にフォーム定義(sdc_default_value)で指定できます。また、フォーム・フィールドの作成時にUIフォーム・デザイナで値を指定することもできます。

28.2 FVCユーティリティの使用

FVCユーティリティは、Oracle Identity Managerデータベース上で直接機能するコマンド行ユーティリティです。Oracle Identity Manager Design Consoleをインストールする場合、このユーティリティはOIM_DC_HOMEディレクトリにあります。このユーティリティで実行する必要があるフォーム・データの更新を指定するには、プロパティ・ファイルを使用します。このユーティリティは、プロビジョニング・プロセス・フォームおよびその関連子フォームでのフィールド・マッピングとデータ更新をサポートしています。

次の各項では、FVCユーティリティについて説明します。

28.2.1 FVCユーティリティでサポートされているユースケース

FVCユーティリティを使用すると、単一の実行で次のフォーム変更に対応するフォーム・データの更新を管理できます。


関連項目:

フォーム・データの処理を開始する前にユーティリティによって実行される検証の詳細は、「フォーム・バージョン制御プロセスのサマリー」を参照してください。

  • 親フォームのフィールド名が変更される場合。

  • 子フォームのフィールド名が変更される場合。

  • フィールドが親フォームから子フォームに移動される場合。

  • フィールドが親フォームから親フォームに移動される場合。

  • フィールドが子フォームから親フォームに移動される場合。このシナリオは、子フォームに単一のレコードが含まれている場合にのみサポートされます。

  • フィールドが子フォームから、同じ親フォームの別の子フォームに移動される場合。このシナリオは、移動元の子フォームに単一のレコードが含まれている場合にのみサポートされます。

  • フィールドが子フォームから、同じ親フォームの別の子フォームに移動される場合。このシナリオは、子フォームに単一のレコードが含まれている場合にのみサポートされます。

  • フィールドが子フォームから親フォームに移動され、移動されるフィールドのデータ型が、親フォームで「参照フィールド」または「コンボ・ボックス」型から「チェック・ボックス」型に変更される場合。

  • 前述のいずれかのユースケースで、親フォームのフィールドのデータ型が「参照フィールド」または「コンボ・ボックス」型から「チェック・ボックス」型に変更される場合。

  • 前述のいずれかのユースケースで、フィールド名の大文字と小文字が変更される場合。たとえば、フィールド名がMyFieldからmyfieldに変更される場合。

  • フィールドのデータ型が「参照フィールド」または「コンボ・ボックス」型から「チェック・ボックス」型に変更され、フォームに対してそれ以外の変更は行われない場合。

  • 特定のOIMユーザーについて、USR表のユーザー・レコードのステータスがDeletedでない場合にのみ、ユーティリティでアカウント・データの更新が続行される場合。

    USR表のステータスがDeletedでないOIMユーザーについて、アカウントのステータスがRevokedでない場合にのみ、ユーティリティでUD_表のアカウント・データが更新される場合。

28.2.2 FVCユーティリティでサポートされていないユースケース

次のシナリオでは、FVCユーティリティを使用してフォーム・データを更新できません。

  • フィールドが複数のプロセス(親)フォームにわたって変更される場合。

  • フィールドが同じフォームの複数のフィールドにマップされる場合。

  • フィールドが異なる子フォームの複数のフィールドにマップされる場合。

  • フィールドのデータ型が「参照フィールド」または「コンボ・ボックス」型以外の型から変更される場合。

  • フィールドのデータ型が、「参照フィールド」または「コンボ・ボックス」型から「チェック・ボックス」型以外の型に変更される場合。

  • 複数のフィールドが1つのフィールドに結合される場合。

28.2.3 フォーム・バージョン制御プロセスのサマリー

FVCユーティリティの各実行中に、次の手順が実行されます。

  1. FVCユーティリティによって実行されるデータ変換処理に関する情報は、プロパティ・ファイルに格納されます。ユーティリティはこのプロパティ・ファイルの内容を読み取ります。

  2. ユーティリティはUSR表のレコードのオブジェクト・ステータスをチェックします。次の手順は、レコードのステータスによって異なります。

    • ユーザーのレコードがDeleted状態の場合、ユーティリティは次のユーザーのレコードに進みます。

    • ユーザーのレコードがDeleted状態でない場合、ユーティリティはそのユーザーのコネクタ固有(UD_)表のアカウント・レコードのステータスをチェックします。次の手順は、アカウント・レコードごとに、そのステータスによって異なります。

      • アカウント・レコードがRevoked状態の場合、ユーティリティはそのユーザーの次のアカウント・レコードに進みます。

      • アカウント・レコードがRevoked状態でない場合、ユーティリティはプロパティ・ファイルで指定されている更新を実行します。

  3. 特定のアカウント・レコードについて、ユーティリティは最初にレコードのバージョンを更新し、次にプロパティ・ファイルで指定されているデータを更新します。


    注意:

    エラーが発生した場合、コマンド・ウィンドウにエラー・メッセージが表示されます。エラーの原因を修正してユーティリティに戻った後、エラーの発生前に更新されていたレコードは再度処理されません。

28.2.4 FVCユーティリティのコンポーネント

次に、FVCユーティリティのコンポーネントを示します。


注意:

Design Consoleをインストールする場合、これらのファイルはOIM_DC_HOMEディレクトリにコピーされます。

  • プロパティ・ファイル: .properties拡張子の付いたファイルは、ユーティリティを実行するプロセス・フォーム、子フォームおよびリソース・オブジェクトの詳細を指定するために使用します。サンプルとしてfvc.propertiesファイルが提供されています。新しいプロパティ・ファイルを使用する場合は、このファイルの名前をfvcutil.shまたはfvcutil.cmdで変更する必要があります。

  • xlFvcUtil.jar: このJARファイルには、FVCユーティリティを実行するのに必要なユーティリティのクラスが含まれます。

  • fvcutil.shおよびfvcutil.cmd: このスクリプトを使用してユーティリティを実行します。

28.2.5 プロパティ・ファイルの準備

前述のように、FVCユーティリティで実行するデータ変換処理を定義するには、プロパティ・ファイルを使用します。プロパティ・ファイルを作成または更新する必要があるかどうかは、アップグレードのシナリオによって異なります。

  • コネクタの事前定義済リリースから事前定義済リリースにアップグレードする場合は、コネクタ・デプロイメント・パッケージでプロパティ・ファイルを見つけます。

  • カスタム・リリースからアップグレードする場合、またはカスタム・リリースにアップグレードする場合は、プロパティ・ファイルで必要なエントリを追加する必要があります。

  • コネクタのカスタム・リリースから事前定義済リリースにアップグレードする場合は、コネクタのプロセス・フォームおよび子フォームへの変更に関する情報がコネクタ・ガイドに記載されているかどうかを確認します。この情報を使用して、プロパティ・ファイルで追加する必要があるエントリを決定できます。

次に、プロパティ・ファイルのサンプル・エントリを示します。

ResourceObject;OID User
FormName;UD_OID_USR
FromVersion;8
ToVersion;9
Parent;UD_OID_USR_DEFTVAL;ABC
Child;UD_OID_GRP_NORMALFIELD;XYZ;Update
ParentChild;UD_OID_USR_FNAME;UD_OID_GRP_NORMALFIELD
ChildChild;UD_OID_GRP_GROUP_NAME;UD_OID_GRP_NORMALFIELD
ChildParent;UD_OID_GRP_NORMALFIELD;UD_OID_USR_LNAME
ParentParent;UD_OID_USR_FNAME;UD_OID_USR_LOGIN;
ParentParentLookupOrComboToCheckBox;UD_OID_USR_PREF_LANG;UD_OID_USR_CHKBOXTEST
ChildParentLookupOrComboToCheckBox;UD_OID_GRP_GROUP_NAME;UD_OID_USR_CHKBOXTEST
ChildDiffChild;UD_OID_GRP_NORMALFIELD;UD_OID_ROLE_DIFFFIELD

プロパティ・ファイルでエントリを追加または変更する際には、次のガイドラインが適用されます。


注意:

ガイドラインをよりよく理解するには、前述のサンプル・エントリを参照してください。

  • プロパティ・ファイルで、各行は、ユースケース名、古いフィールド名および新しいフィールド名で構成されます。これらはセミコロンで区切られます。

    たとえば、プロパティ・ファイルの次のエントリについて考えてみます。

    ParentChild;UD_OID_USR_FNAME;UD_OID_GRP_NORMALFIELD
    

    ParentChild: 親のフィールドの名前が変更されたか、または親のフィールドが新しい子フォームへ移動されたことを表します。

    UD_OID_USR_FNAME: 親フォームでの古いフィールド名を表します。

    UD_OID_GRP_NORMALFIELD: 新しいフォームでアップグレードされるフィールドの新しい名前を表します。


    注意:

    セミコロンの直後を除き、値にスペースを含めることができます。

  • プロパティ・ファイルに次の行を含める必要があります。


    注意:

    プロパティ・ファイルでのこれらの4行の場所と順序は重要ではありません。

    • ResourceObject;RESOURCE_OBJECT_NAME

      この行では、RESOURCE_OBJECT_NAMEをリソース・オブジェクトの名前に置き換えます。

      サンプル行:

      ResourceObject;OID User

    • FormName;FORM_NAME

      この行では、FORM_NAMEをプロセス(親)フォームの名前に置き換えます。

      サンプル行:

      FormName;UD_OID_USR

    • FromVersion;CURRENT_VERSION_OF_FORM

      この行では、CURRENT_VERSION_OF_FORMをフォームの現在のバージョンに置き換えます。


      注意:

      FVCユーティリティを実行する場合、バージョンがCURRENT_VERSION_OF_FORMと同じレコードのみがユーティリティによって更新されます。

      サンプル行:

      FromVersion;8

    • ToVersion;NEW_VERSION_OF_FORM

      この行では、NEW_VERSION_OF_FORMをフォームの新しいバージョンに置き換えます。


      注意:

      バージョンが変更されていないフォームのフォーム・データを更新する場合は、NEW_VERSION_OF_FORMCURRENT_VERSION_OF_FORMと同じ値に設定します。

      サンプル行:

      ToVersion;9

  • 次の行は、任意に組み合せてプロパティ・ファイルに含めることができます。

    • Parent;FIELD_NAME;DEFAULT_FIELD_VALUE;Update

      親フォームのすべてのレコードに対して、ユーティリティはFIELD_NAMEフィールドの値をDEFAULT_FIELD_VALUEで更新します。


      注意:

      親フォームで必須(必要な)フィールドが追加された場合は、必須フィールドのプロパティ・ファイルにこの行を含める必要があります。

      サンプル行:

      Parent;UD_OID_USR_DEFTVAL;MyString;Update

    • Child;FIELD_NAME;DEFAULT_FIELD_VALUE;Update

      子フォームのすべてのレコードに対して、ユーティリティはFIELD_NAMEフィールドの値をDEFAULT_FIELD_VALUEに更新します。


      注意:

      子フォームで必須(必要な)フィールドが追加された場合は、プロパティ・ファイルにこの行を含める必要があります。

      サンプル行:

      Child;UD_OID_GRP_NORMALFIELD;XYZ;Update

    • ParentParent;OLD_FIELD_NAME;NEW_FIELD_NAME

      親フォームで、ユーティリティはデータをOLD_FIELD_NAMEフィールドからNEW_FIELD_NAMEフィールドに移動します。

      サンプル行:

      ParentParent;UD_OID_USR_FNAME;UD_OID_USR_DEFTVAL;

    • ParentParentLookupOrComboToCheckBox;OLD_FIELD_NAME;NEW_FIELD_NAME;

      親フォームで、「チェック・ボックス」型フィールドに変更され、名前も変更された「参照フィールド」または「コンボ・ボックス」型フィールドについて、このフィールドの値がTrue(大/小文字は区別されません)の場合、ユーティリティは各レコードのチェック・ボックスを選択済の状態に設定します。それ以外の値の場合、ユーティリティはチェック・ボックスを選択解除の状態に設定します。

      サンプル値:

      ParentParentLookupOrComboToCheckBox;UD_OID_USR_PREF_LANG;UD_OID_USR_CHKBOXTEST

    • ChildChild;OLD_FIELD_NAME;NEW_FIELD_NAME

      子フォームで、ユーティリティは以前のバージョンのOLD_FIELD_NAMEフィールドから新しいバージョンのNEW_FIELD_NAMEフィールドにデータをコピーします。

      サンプル行:

      ChildChild;UD_OID_GRP_GROUP_NAME;UD_OID_GRP_NORMALFIELD

    • ParentChild;OLD_FIELD_NAME;NEW_FIELD_NAME

      OLD_FIELD_NAMEフィールドが親フォームから子フォームへ移動され、NEW_FIELD_NAMEという名前に変更されました。ユーティリティはデータをOLD_FIELD_NAMEフィールドからNEW_FIELD_NAMEフィールドに移動します。

      サンプル行:

      ParentChild;UD_OID_USR_FNAME;UD_OID_GRP_NORMALFIELD

    • ChildParent;OLD_FIELD_NAME;NEW_FIELD_NAME

      OLD_FIELD_NAMEフィールドが子フォームから親フォームへ移動され、NEW_FIELD_NAMEという名前に変更されました。ユーティリティはデータをOLD_FIELD_NAMEフィールドからNEW_FIELD_NAMEフィールドに移動します。

      サンプル行:

      ChildParent;UD_OID_GRP_NORMALFIELD;UD_OID_USR_DEFTVAL

    • ChildParentLookupOrComboToCheckBox;OLD_FIELD_NAME;NEW_FIELD_NAME

      「参照フィールド」または「コンボ・ボックス」型フィールド(OLD_FIELD_NAME)が「チェック・ボックス」型フィールドに変更され、子フォームから親フォームに移動されます。親フォームで、このフィールドの値がTrue(大/小文字は区別されません)の場合、ユーティリティは各レコードのチェック・ボックスを選択済の状態に設定します。それ以外の値の場合、ユーティリティはチェック・ボックスを選択解除の状態に設定します。

      サンプル行:

      ChildParentLookupOrComboToCheckBox;UD_OID_GRP_GROUP_NAME;UD_OID_USR_CHKBOXTEST

    • ChildDiffChild;OLD_FIELD_NAME;NEW_FIELD_NAME

      ユーティリティは、移動元の子フォームのOLD_FIELD_NAMEフィールドから移動先の子フォームのNEW_FIELD_NAMEフィールドへデータを移動します。


      注意:

      この更新は、移動元の子フォームに単一の行が含まれている場合にのみ実行されます。移動元の子フォームに複数の行が含まれているシナリオはサポートされません。

      サンプル行:

      ChildDiffChild;UD_OID_GRP_NORMALFIELD;UD_OID_ROLE_DIFFFIELD

28.2.6 FVCユーティリティを使用するための前提条件への対処

ユーティリティを実行する前に、次の手順を実行します。

  1. FVCユーティリティ・スクリプトで次のようにJavaホーム・ディレクトリ・パスを設定します。

    1. 使用しているオペレーティング・システムおよびアプリケーション・サーバーに応じて、テキスト・エディタで次のいずれかのファイルを開きます。

      fvcutil.sh

      fvcutil.cmd

    2. set JAVA_HOMEを検索します。

    3. 次の例に示すように、Javaホーム・ディレクトリ・パスを設定します。

      set JAVA_HOME=C:\Java\
      
    4. Microsoft WindowsおよびOracle WebLogic Application Server上でFVCユーティリティを実行している場合は、次の設定を行います。

      set APPSERVER_TYPE=wls
      
    5. ファイルを保存して閉じます。

  2. ユーティリティを実行するプロセス(親)フォームのバージョンがアクティブ・バージョンであることを確認します。

    フォームのバージョンがアクティブ・バージョンであるかどうかを確認するには、次の手順を実行します。

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

    2. 「Development Tools」フォルダを開き、「Form Designer」をダブルクリックします。

    3. このフォームを検索して開きます。

    4. フォームのアクティブ・バージョン・フィールドに、フォームのアクティブ・バージョンが表示されます。

  3. ユーティリティは、フィールドがエラー処理アダプタに関連付けられている場合、フォーム・フィールドを更新できません。フィールドがエラー処理アダプタに関連付けられている場合は、次のようにアダプタへの関連付けを解除します。


    注意:

    ユーティリティの実行後、フィールドとそのエラー処理アダプタ間の関連を再度設定できます。その方法については、この章で後述します。

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

    2. 「Process Management」フォルダを開き、「Process Definition」をダブルクリックします。

    3. コネクタのプロセス定義を検索して開きます。

    4. フィールドを更新するタスクの名前をメモします。

    5. タスクをダブルクリックします。たとえば、「userID」フィールドにエラー処理アダプタがある場合は、「updateUserID」タスクをダブルクリックします。

    6. 「タスクの編集」ダイアログ・ボックスの「統合」タブで、アダプタ変数名とその説明をメモします。

    7. 「削除」をクリックします。

    8. イベント・ハンドラ・アダプタを削除することを確認するには、表示されたメッセージで「OK」をクリックします。

    9. 「保存」をクリックします。

28.2.7 ユーティリティの実行


注意:

フォーム・バージョンが変更されるたびにFVCユーティリティを実行する必要があります。

次のスクリプトを実行します。

Unixの場合:

sh fvcutil.sh 

Windowsの場合:

fvcutil.bat

これにより、次の詳細を入力するように要求されます。

  1. Oracle Identity Manager管理者のユーザー名の入力: Oracle Identity Manager管理者のユーザー名を入力します。

  2. Oracle Identity Manager管理者のパスワードの入力: Oracle Identity Manager管理者のパスワードを入力します。

  3. ロガー・レベルの入力: ロガー・レベルを入力します。DEBUG、WARN、INFOまたはERRORを指定できます。

  4. ロガーの場所の入力: ユーティリティで各実行の終了時に作成するログ・ファイルの場所と名前を入力します。たとえば、<Path name>/FVC.logのようにします。

28.2.8 トラブルシューティング

表28-1に、ログ・ファイルに記録される可能性があるエラー・メッセージ、および問題を修正するために実行できる対応するアクションを示します。

表28-1 エラー・メッセージおよび解決策

エラー・メッセージ 解決策

名前OBJECT_NAMEのオブジェクトが見つかりませんでした

プロパティ・ファイルで指定されているリソース・オブジェクトの名前を確認します。名前の綴りが正しいことを確認してください。

名前がFORM_NAMEのフォームが見つかりませんでした

プロパティ・ファイルで指定されているフォームの名前を確認します。名前の綴りが正しいことを確認してください。

フォームのアクティブ・バージョンが見つかりませんでした。

新規に作成されたフォームがコミットされておらず、Active状態に設定されていない可能性があります。フォームがActive状態であることを確認します。

ToVersion値とフォームのアクティブ・バージョンが一致しません。

ToVersion値が現在アクティブなフォームのバージョンと同じであることを確認します。

ToVersion値またはFromVersion値が有効なバージョンではありません。

ToVersion値およびFromVersion値が正しいことを確認します。

FIELD_NAMEフィールドがOracle Identity Managerデータベースに存在しません。

フィールド名の綴りが正しいことを確認してください。