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

前
 
次
 

22 フォーム・バージョン制御ユーティリティの使用方法

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

FVCユーティリティは、Oracle Identity Managerデータベース上で直接機能するコマンドライン・ユーティリティです。Oracle Identity Manager Design Consoleをインストールする場合、このユーティリティはOIM_DC_HOMEディレクトリにあります。このユーティリティで実行する必要があるフォーム・データの更新を指定するには、プロパティ・ファイルを使用します。

このユーティリティは、プロビジョニング・プロセス・フォームおよびその関連子フォームでのフィールド・マッピングとデータ更新をサポートしています。


注意:

FVCユーティリティでは、次の機能は実行できません

  • オブジェクト・フォームでのデータ更新の管理

  • フォーム間での行の移動

さらに、リリース間でフォーム関連の変更がない場合は、FVCユーティリティを実行する必要はありません


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

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

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


関連項目:

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


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

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

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

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

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

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

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

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

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

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

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


    注意:

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


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

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


注意:

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


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

次の項では、FVCユーティリティを使用する手順について説明します。

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

前述のように、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

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

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

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

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

      fvcutil.sh

      fvcutil.cmd

    2. set JAVA_HOMEを検索します。

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

      set JAVA_HOME=C:\Java\
      
    4. ファイルを保存して閉じます。

  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. 「保存」をクリックします。

22.5.3 ユーティリティの実行


注意:

フォーム・バージョンが変更されるたびに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のようにします。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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