Oracle Identity Managerには、カスタム・レポート・エンジンが付属しており、Oracle Identity Managerのトランザクション・データベースまたはセカンダリ・データベース(構成されている場合)に対して事前定義済レポートを実行できます。Javaコードを編集しなくても新しいレポートを追加でき、ストアド・プロシージャを起動してレポート・データを取得できます。
この章の内容は次のとおりです。
注意: Oracle Identity Managerレポート・エンジンは、エンタープライズ・レポート・ソリューションにかわるものではありません。Oracle Identity Managerレポート・エンジンは、非常に大量のデータ用に最適化されておらず、エンタープライズ・レポート・アプリケーションで見られる豊富な機能を備えていません。大規模なデプロイの場合、特にOracle Identity Managerの広範な監査機能を利用しているデプロイでは、エンタープライズ規模の専用レポート・ソリューションをデプロイすることを強くお薦めします。Oracle Business Intelligence Enterprise Editionなどのツールに基づいたソリューションでは、大規模エンタープライズに必要な柔軟性、自動化およびパフォーマンスを提供できます。 |
Oracle Identity Managerのレポート機能は、次のとおりです。
管理およびユーザー・コンソールの事前定義済リストからレポートを選択および表示します。
委任管理モデルを使用して、ユーザーが使用できるレポートと、それらのレポートに含まれる情報を制御します。
画面にレポートを表示します。
インタラクティブ・レポートを提供します。
Crystal Reportsをサポートします。
次の各項では、Oracle Identity Managerのデータ、XMLおよびAPIの各レイヤーでのレポートに関するデータ保存について説明します。
データ・レイヤーでは、データベース・スキーマの変更およびストアド・プロシージャの追加ができます。
REP
表およびRPG
表が、レポート作成をサポートしています。REP
表に含まれるものは、次のとおりです。
システム内のすべてのレポートのリスト
レポート名
レポート・コード
レポート・タイプ
レポート説明
レポートのストアド・プロシージャの名前
データソースの名前
最大レポート・サイズ
レポート・ページに表示されるフィルタ数
各レポートのXMLメタデータ
RPG
表は、REP
表とUGP
表間のリンク表です。この表は、レポートと、レポートに対するアクセス権限を持つグループに関する情報を格納します。
レポートはそれぞれ、1つのストアド・プロシージャに関連付けられています。レポートを実行するには、関連付けられたストアド・プロシージャを適切な引数を指定して実行します。データベース問合せに基づいてレポートを実行することはできません。
システムには多数のレポートが存在します。このため、ストアド・プロシージャでは、ルールに従ってレポートを包括的に起動できるようにしています。詳細は、「レポートの作成方法」を参照してください。
各ストアド・プロシージャには、必須の汎用パラメータ・セットがあります。これらのパラメータは、開始行、ページ・サイズ、フィルタ列など、標準的な情報を指定します。また、ストアド・プロシージャには、レポート固有のパラメータを必要なだけ指定できます。各ストアド・プロシージャは、2つの値、すなわち1ページのレポート・データ全体を表す結果セットおよびレポート・データの合計数を返します。ストアド・プロシージャおよびXMLメタデータの標準形式により、Javaコードを変更せずにレポートを追加および実行できます。
各レポートのXMLメタデータは、そのレポートのREP
表に格納されます。メタデータは、レポートに関する次の情報を指定します。
レイアウト情報
すべての入力パラメータの表現とそれに対応するストアド・プロシージャのパラメータとの関連
ユーザー定義パラメータのサポート(操作レポートのみ)
フィールド・ラベルやフィールド・タイプ(TextField
、LookupField
など)といった各レポート入力パラメータの表示情報
レポート表示ページにおける各列の場所
各レポート・データ列に関する表示情報
フィルタのドロップダウンに含まれる列
インタラクティブ・レポート用のクリック可能な列
メタデータの構造の詳細は、「レポートの作成方法」を参照してください。
この項では、使用可能な操作レポートおよび履歴レポートを示します。
表5-1に、操作レポートの名前と説明を示します。
表5-1 操作レポートのリスト
名前 | 説明 |
---|---|
権限のサマリー |
各リソース内のステータスごとのユーザー数を出力します。 |
ポリシー・リスト |
システムに定義されたすべてのポリシーのスナップショットを表示します。 |
組織別の委任管理者 |
組織のすべての委任管理者ユーザー・グループを出力します。 |
レビューア別のアテステーション・リクエスト |
レビューア別にアテステーション・リクエストを出力します。 |
承認者別の承認ステータス |
すべての承認タスクのサマリーを示します。 |
ユーザー・リソース・アクセス |
選択したユーザーのリソースへのアクセス権を出力します。 |
リソース・アクセス・リスト |
選択したリソースへのアクセス権を持つすべてのユーザーを出力します。 |
ポリシーの詳細 |
システムに定義された特定のポリシーの詳細を出力します。 |
グループ・メンバーシップ・プロファイル |
様々な数のグループのユーザー数を出力します。 |
OIMパスワードの期限切れ |
Oracle Identity Managerパスワードの有効期限が近づいているユーザーを出力します。 |
グループ・メンバーシップ |
各グループのユーザーのスナップショットを示します。 |
リソース・パスワードの期限切れ |
Oracle Identity Managerで定められたリソース・パスワードの有効期限が近づいているユーザーを出力します。 |
組織構造 |
階層的な組織構造およびユーザー・メンバーシップを出力します。 |
初期化済リクエスト |
指定の時間間隔で開始されたすべてのリクエストを出力します。 |
ステータス別のリクエスト詳細 |
指定したステータスのすべてのリクエストの詳細を返します。 |
アテステーション・プロセス・リスト |
定義されたすべてのアテステーション・プロセスのスナップショットを示します。 |
プロセス別のアテステーション・リクエスト |
プロセス別にアテステーション・リクエストを出力します。 |
アテステーション・リクエストの詳細 |
選択したアテステーション・リクエストの詳細を出力します。 |
財務的に重要なリソース |
財務的に重要なリソースの詳細を出力します。 |
組織別の委任管理者および権限 |
組織のすべての管理者ユーザー・グループおよび権限を出力します。 |
リソース別の委任管理者および権限 |
リソースのすべての管理者ユーザー・グループおよび権限を出力します。 |
リソース別の委任管理者 |
リソースのすべての管理者および認可者ユーザー・グループを出力します。 |
表5-2に、使用可能な履歴レポートの名前と説明を示します。
表5-2 履歴レポートのリスト
名前 | 説明 |
---|---|
ユーザー・リソース・アクセス履歴 |
ユーザーのリソース・アクセスの履歴を返します。 |
リソース・アクセス・リスト履歴 |
選択したリソースへのアクセス権を持つすべてのユーザーの履歴を返します。 |
ユーザー・プロファイル履歴 |
ユーザーのプロファイルの履歴を返します。 |
ユーザー・メンバーシップ履歴 |
ユーザー・グループのユーザーのメンバーシップの履歴を返します。 |
グループ・メンバーシップ履歴 |
グループのメンバーシップの履歴を返します。 |
リソース・アクティビティ |
リソースのすべてのプロビジョニングおよび承認アクティビティの履歴を返します。 |
タスク割当て履歴 |
タスクに基づいてすべてのタスク割当ての履歴を返します。 |
パスワードの正常なリセットの失敗 |
Oracle Identity Managerユーザーのパスワード変更のメトリックを返します。 |
リソースのアカウント・アクティビティ |
各リソースのすべてのアカウント・アクティビティを出力します。 |
リソース別の統制外アカウント |
各リソースのすべての統制外アカウントを出力します。 |
リソース別のファイングレイン権限例外 |
リソース別にすべてのファイングレイン権限例外を出力します。 |
作成済ユーザー |
指定の時間間隔で作成されたすべてのユーザーを出力します。 |
削除済ユーザー |
指定の時間間隔で削除されたすべてのユーザーを出力します。 |
無効化されたユーザー |
指定の時間間隔で無効化されたすべてのユーザーを出力します。 |
ロック解除済ユーザー |
指定の時間間隔でロック解除されたすべてのユーザーを出力します。 |
関連項目: これらのレポートは、『Oracle Identity Manager管理およびユーザー・コンソール・ガイド』の第14章にも記載されています。 |
Oracle Identity Managerでの例外とは、ユーザーに権限が付与されているアカウントとユーザーに実際に割り当てられているアカウントとの相違を指します。これらのアカウントは、アクセス・ポリシー、リソースのプロビジョニング、承認リクエストおよびリコシリエーション・イベントの結果としてユーザーに割り当てられます。ターゲット・システムのユーザーに割り当てられたこれらのアカウントと、Oracle Identity Managerのユーザーに割り当てられたアカウントの相違が、例外となります。
このリリースで採用されている例外レポートは、次のとおりです。
リソース別の統制外アカウント
このレポートは、リソースに存在するすべての統制外アカウントのリストを返します。次の例外がレポートされます。
ターゲット・システムに存在するが、Oracle Identity Managerの対応するユーザーにプロビジョニングされていないアカウント
ターゲット・システムに存在するが、Oracle Identity Managerの対応するユーザーにデプロビジョニングされているアカウント
ターゲット・システムに存在するが、アカウントがプロビジョニングされるOracle Identity Managerの対応するユーザーが削除されているアカウント
統制外アカウントではあっても、次の例外はレポートされません。
ターゲット・システムに存在するが、アカウントがプロビジョニングされるOracle Identity Managerの対応するユーザーが存在したことがないアカウント
リソース別のファイングレイン権限例外
このレポートは、リコンサイルされるプロセス・フォーム・データが想定値と異なるリソースのすべてのアカウントのリストを返します。つまり、ターゲット・システムに存在し、Oracle Identity Managerの対応するユーザーにプロビジョニングされるが、プロセス・データが一致しないアカウントを返します。
注意:
|
デフォルトでは、これらの2つの例外レポートは無効になっています。使用できるようにするには、システム構成のXL.EnableExceptionReports
プロパティの値をTRUE
に設定する必要があります。プロパティの値がFALSE
(デフォルト値)に設定されていると、管理およびユーザー・コンソールの「履歴レポート」ページで例外レポートを使用できません。そのため、例外レポートのデータはRCX
、UPA_UD_FORMS
およびUPA_UD_FORMFIELDS
の各表に移入されません。これらのレポートは、移入されるリコンシリエーション・データに依存しています。
たとえば、Oracle Identity Managerをインストールした直後に、これらの例外レポートを有効にしなかったとします。かわりに、Oracle Identity Managerの使用を開始した後に例外レポートを有効にしたとします。この場合、例外レポートを実行する前に、UPA_UD_FORMSおよびUPA_UD_FORMFIELDSの各表にベースライン・フォーム・データを移入する必要があります。これを行うには、UPAフォーム・データ・アップグレード・ユーティリティを使用する必要があります。詳細は、「UPAフォーム・データ・アップグレード・ユーティリティの使用」を参照してください。
UPAフォーム・データ・アップグレード・ユーティリティは、UPA_UD_FORMS
表およびUPA_UD_FORMFIELDS
表に、例外レポートの出発点としての役目を果すベースライン・データを移入します。例外レポート機能を有効にするときは、このユーティリティを実行する必要があります。このユーティリティは、すべての権限にわたって実行されます。プロビジョニングするインスタンスのリソースにプロセスまたはオブジェクト・フォームが付属している場合、このユーティリティは、フォームのデータを読み取り、2つのデータベース表に格納します。こうしてベースラインが形成されます。これ以降のフォームへの変更は、例外レポートが有効であるため、自動的に収集されます。ベースラインが使用可能になると、例外レポートによる例外に関するレポートが開始します。処理が終了すると、UPA_Form_Data_Upgrade_Timestamp.log
というログ・ファイルが作成されます。
UPAフォーム・データ・アップグレード・ユーティリティを使用する手順:
UPAフォーム・データ・アップグレード・ユーティリティのファイルをローカル・コンピュータにコピーします。
ユーティリティを使用する前に、UPAFormDataUpgradeUtility
ディレクトリを、インストール・メディア上の次のディレクトリからローカル・コンピュータにコピーします。
Oracle Databaseの場合:
installServer/Xellerate/db/oracle/Utilities/UPAFormDataUpgradeUtility
注意: この手順の残りの部分では、UPAフォーム・データ・アップグレード・ユーティリティのファイルが含まれているローカル・ディレクトリのフルパスおよび名前をUPAFORMDATAUPGRADEUTILITY と呼びます。 |
Oracle Databaseのバッチまたはシェル・ファイルの設定は次のとおりです。
Microsoft Windowsの場合は、次のファイルを編集します。
UPAFORMDATAUPGRADEUTILITY\UPAFormDataUpgrade.bat
LinuxまたはUNIXの場合は、次のファイルを編集します。
UPAFORMDATAUPGRADEUTILITY/UPAFormDataUpgrade.sh
表5-3に、ユーティリティの実行前に設定する必要がある変数の値を示します。
表5-3 UPAフォーム・データ・アップグレード・ユーティリティの変数
変数 | 説明 |
---|---|
|
Oracleホーム・ディレクトリ。 |
|
リモート・コンピュータでデータベースが実行されているかどうかを示します。
|
|
データベースのSID。
|
|
リモート・データベースを指すTNSサービス名。
|
Oracle Databaseの場合は、次の手順を実行します。
Oracle Identity Managerリリース・データベース・スキーマ所有者の資格証明を使用してSQL*Plusにログインします。
次のファイルをテキスト・エディタで開きます。
UPAFORMDATAUPGRADEUTILITY/compile_all_XL_SP_UPA.sql
compile_all_XL_SP_UPA.sql
スクリプトに、次の変更を加えます。
変更前:
@@XL_SP_LoadFormData.sql
変更後:
@UPAFORMDATAUPGRADEUTILITY/XL_SP_LoadFormData.sql
変更前:
@@XL_SP_UPA_FormData_Upgrade.sql
変更後:
@UPAFORMDATAUPGRADEUTILITY/XL_SP_UPA_FormData_Upgrade.sql
compile_all_XL_SP_UPA.sql
スクリプトを実行します。
UPAFORMDATAUPGRADEUTILITY/compile_all_XL_SP_UPA.sql
LinuxまたはUNIX上のOracle Databaseの場合:
次の場所からUPAFormDataUpgrade.sh
ファイルを実行します。
UPAFORMDATAUPGRADEUTILITY/UPAFormDataUpgrade.sh OIM_DB_User_ID OIM_DB_User_Password
注意: UNIXの場合は、次のコマンドを実行してシェルのコマンド履歴をクリアします。history -c |
Microsoft Windows上のOracle Databaseの場合:
次の場所からUPAFormDataUpgrade.bat
ファイルを実行します。
UPAFORMDATAUPGRADEUTILITY\UPAFormDataUpgrade.bat OIM_DB_User_ID OIM_DB_User_Password
レポートはそれぞれ、1つのストアド・プロシージャをベースにしています。ストアド・プロシージャに関するルールは、次のとおりです。
ユーザー定義ファンクションではなく、ストアド・プロシージャを使用します。
ストアド・プロシージャは、2つの値、すなわちレポート・データの結果セットおよびレポートの行の合計数を返します。
レポートの結果セットは、ページ化されます。
ストアド・プロシージャの実行時に戻される結果セットは、レポート・データ全体の1ページを表します。開始行とページ・サイズは、ストアド・プロシージャの実行時に指定されます。
ストアド・プロシージャは、フィルタ・パラメータとユーザー定義入力パラメータを処理します。
各ストアド・プロシージャでは汎用パラメータを使用しますが、ストアド・プロシージャ固有のパラメータを使用することもできます。これらのパラメータ・タイプは、次の各項で説明します。
汎用パラメータは、すべてのストアド・プロシージャに共通です。汎用パラメータは、固有パラメータの前に必須の順序で指定します。
汎用パラメータは12個あります。たとえ値がNULLであっても、12個すべての汎用パラメータが必要です。次に、汎用パラメータを必須の指定順に示します。
レポート結果セット(タイプ=cursor
、OUT): レポート・データを表す結果セット。
ユーザー・キー(タイプ=int
、IN): レポートを実行するユーザーのキー。
このユーザー・キーにより、ユーザーに読取り権限があるレコードのみが必ず返されます。
ソート列(タイプ=varchar
、IN): レポート結果セットがソートされる列名のカンマ区切りのリスト。
今後の使用のために予約されています。
ソート順序(タイプ=varchar
、IN): レポート結果セットのソート順序(昇順または降順)。
今後の使用のために予約されています。
計算対象(タイプ=int
、IN): 値0、1または2を指定できます。
値0は、結果セットが計算されて返されますが、レポート・データ全体の行の合計数は計算されないことを示します。値1は、結果セットと行の合計数が計算されることを示します。値2の場合、行の合計数のみが計算され、空の結果セットが返されます。
行の合計(タイプ=int
、OUT): これは出力パラメータで、計算対象の変数が1または2のときに行の合計数を返します。
レポート・データはページ化されるため、行の合計数の値は、返される結果セットのサイズではありません。レポート全体のサイズです。
たとえば、ストアド・プロシージャがすべてのユーザーのリストを返すとします。システム内のユーザー数は200、開始行は1、ページ・サイズは50です。このストアド・プロシージャの場合、結果セットのサイズは50ですが、行の合計のアウト・パラメータの値は200です。
フィルタ列名(タイプ=varchar
、IN): これは、レポート・データをフィルタ処理できる列名のカンマ区切りのリストです。
ストアド・プロシージャには、リストされた列に使用する別名を認識する方法がありません。ストアド・プロシージャでは、このリストの列名は、必要な場合は次のように適切な表の別名で正しく修飾されているものと想定します。
usr.usr_first_name,obj.obj_name
フィルタ列値(タイプ=varchar
、IN): これは、前のパラメータにリストされた列名と1対1で対応する列値のカンマ区切りのリストです。
前のパラメータに2つの列名で構成されたカンマ区切りのリストが指定されている場合、このパラメータは、2つの値で構成されたカンマ区切りのリストとなります。Jo%,Laptop
のように、ワイルド・カード(%)文字を使用できます。
ユーザー定義列名(タイプ=varchar
、IN): これは、システム・フォームのユーザー定義列を表す列名のカンマ区切りのリストです。
これらの名前には、必要な場合は次のように適切に別名を付ける必要があります。
USR.USR_UDF_SSN
ユーザー定義列値(タイプ=varchar
、IN): これは、ユーザー定義フィールドの列値のカンマ区切りのリストです。
これらの値は、前のパラメータにリストされた列名と1対1で対応します。次のように、ワイルド・カード(%)文字を使用できます。
1234567890
固有パラメータは、各レポートに固有です。これらのパラメータは、レポート入力パラメータと1対1で対応します。ただし、日付範囲入力パラメータとユーザー定義パラメータは除きます。
固有パラメータは、汎用パラメータの後に追加する必要があります。各固有パラメータは、「レポート入力」ページの1つのレポート入力パラメータを表します。
varchar2
タイプのすべての固有パラメータでは、ワイルド・カード(%)文字を使用できます。
エラーが発生するたびに、例外がスローされます。例外には、エラー・コードが含まれます。コール元のJavaコードは、エラー・コードが埋め込まれたSQL例外としてエラーを受け取ります。ストアド・プロシージャは、次のルールに基づいてエラーがないかコードをチェックします。
開始行の値は0またはNULLでないこと
ページ・サイズの値は0またはNULLでないこと
ユーザー・キーの値は0またはNULLでないこと
計算対象の値は0、1または2のいずれかであること
フィルタ列名とフィルタ列値の間には1対1のマッピングがあること
ユーザー定義列名とユーザー定義列値の間には1対1のマッピングがあること
レポート用に返されるデータがない場合でも、空の結果セットが返されます。
例5-1に、Oracle Databaseの「ユーザー・リソース・アクセス」レポートのストアド・プロシージャのシグネチャを示します。
例5-1 Oracle Databaseの「ユーザー・リソース・アクセス」ストアド・プロシージャのシグネチャ
PROCEDURE XL_SP_UserResourceAccess ( csrresultset_inout IN OUT sys_refcursor, intuserkey_in IN NUMBER, strsortcolumn_in IN VARCHAR2, strsortorder_in IN VARCHAR2, intstartrow_in IN NUMBER, intpagesize_in IN NUMBER, intdocount_in IN NUMBER, inttotalrows_out OUT NUMBER, strfiltercolumnlist_in IN VARCHAR2, strfiltercolumnvaluelist_in IN VARCHAR2, strudfcolumnlist_in IN VARCHAR2, strudfcolumnvaluelist_in IN VARCHAR2, struserlogin_in IN VARCHAR2, strfirstname_in IN VARCHAR2, strmiddlename_in IN VARCHAR2, strlastname_in IN VARCHAR2, struseremail_in IN VARCHAR2, strorgname_in IN VARCHAR2, strusergroup_in IN VARCHAR2, strmgrfirstname_in IN VARCHAR2, strmgrlastname_in IN VARCHAR2, struserstatus_in IN VARCHAR2, struseremptype_in IN VARCHAR2 )
例5-1では、最初の12個のパラメータ(strudfcolumnvaluelist_in
まで)が汎用パラメータです。残りのパラメータは固有パラメータです。
例5-2に、Microsoft SQL Serverの「ユーザー・リソース・アクセス」ストアド・プロシージャのシグネチャを示します。
注意: Microsoft SQL Serverは、Oracle Identity Managerリリース9.1.0ではサポートされていません。動作保証されているコンポーネントの詳細は、『Oracle Identity Managerリリース・ノート』の「動作保証されているコンポーネント」を参照してください。 |
例5-2 Microsoft SQL Serverの「ユーザー・リソース・アクセス」ストアド・プロシージャのシグネチャ
CREATE PROCEDURE XL_SP_UserResourceAccess (@csrResultSet_inout INT OUTPUT, @intUserKey_in INT, @strSortColumn_in VARCHAR(4000), @strSortOrder_in VARCHAR(4000), @intStartRow_in INT, @intPageSize_in INT, @intDoCount_in INT, @intTotalRows_inout INT OUTPUT, @strFilterColumnList_in VARCHAR(8000), @strFilterColumnValueList_in VARCHAR(8000), @strudfcolumnlist_in VARCHAR(8000), @strudfcolumnvaluelist_in VARCHAR(8000), @strUserLogin_in varchar(256), @strFirstName_in varchar(80), @strMiddleName_in varchar(80), @strLastName_in varchar(80), @strUserEmail_in varchar(256), @strorgname_in varchar(256), @strUserGroup_in varchar(30), @strMgrFirstName_in varchar(80), @strMgrLastName_in varchar(80), @strUserStatus_in varchar(25), @strUserEmptype_in varchar(255) )
ストアド・プロシージャを作成したら、レポートのXMLメタデータを作成します。すべてのレポート固有の情報をメタデータに含め、レポートを正しく実行して表示できるようにします。レポートのメタデータは、レポート固有の入力パラメータの属性、レポート入力パラメータの表示プロパティ、レポート・データの表示プロパティ(レポート・レイアウト、表示ラベルなど)といった情報を指定します。
メタデータのルート要素はreport
です。この要素は、レポートのレイアウトを指定します。3つの表示レイアウト、すなわち表レイアウト、セクション・レイアウトおよびレポート・ヘッダー付きセクション・レイアウトがサポートされています。
report
要素には、2つの子要素、すなわちStoredProcedure
およびReturnColumns
があります。
StoredProcedure
要素は、ストアド・プロシージャ固有のパラメータとユーザー定義フィールドに関する情報を指定します。複数のInputParameter
要素を含む1つのInputParameters
要素で構成されます。
ストアド・プロシージャ固有の各パラメータは、「レポート入力」ページの1つの入力パラメータに対応しています。ただし、DateRange
フィールドはこのルールの例外で、2つのストアド・プロシージャ・パラメータによって表されます。入力パラメータはそれぞれ1つのInputParameter
要素で表されます。「レポート入力」ページには、システム・フォームのユーザー定義フィールドも表示されます。「レポート入力」のユーザー定義フィールドもそれぞれ1つのInputParameter
要素で表されます。ユーザー定義フィールドの数は変更できますが、ストアド・プロシージャ入力パラメータの数は毎回変更することはできません。ユーザー定義フィールドは、カンマ区切りのリストで表されます。
たとえば、レポートで7つの入力パラメータをサポートする必要があるとします。2つのパラメータはユーザー定義フィールド、5つのパラメータはストアド・プロシージャのシグネチャの固有パラメータ(12個の汎用パラメータとは別)です。これらは、5つのInputParameter
タグで表されます。2つのユーザー定義パラメータも2つのInputParameter
タグで表されますが、ストアド・プロシージャのシグネチャに対応するパラメータはありません。かわりに、列名とその値のカンマ区切りのリストとして引き渡されます。したがって、メタデータには合計7つのInputParameter
タグが必要です。
DateRange
入力タイプをサポートする場合は、一方は開始日用、他方は終了日用の2つのストアド・プロシージャ・パラメータで「レポート入力」ページをサポートする必要があります。
name
(必須): 入力パラメータの名前。
ユーザー定義以外の入力パラメータの場合、この値はなんでもかまいません。しかし、明確にするために、対応するストアド・プロシージャ入力パラメータの名前と一致している必要があります。ユーザー定義入力パラメータの場合、この名前はユーザー定義列の列名で、必要な場合は規定の表別名を前に付けます。
parameterType
(必須): 対応するストアド・プロシージャ・パラメータのSQLデータ型。
ユーザー定義入力パラメータの場合、この値はvarchar
です。
order
(必須): レポート固有の入力パラメータの順序。
順番は1から始まります。標準の入力パラメータをリストし、その後にユーザー定義入力パラメータをリストする必要があります。
fieldType
(必須): 「レポート入力」ページの表示フィールドのタイプ。
サポートされる入力タイプは、TextField
、Date
、DateRange
、LookupField
およびCombobox
です。
fieldLabel
(必須): このフィールドのフィールド・ラベルのプロパティ値。
このプロパティ値は、メッセージ・リソース・プロパティ・ファイル(この場合xlWebAdmin.properties
)の値で、実際のラベルを表します。
allowedValues
(fieldType
がCombobox
以外の場合、任意): コンボ・ボックスに関連付けられる参照コード。
required
(任意、デフォルト: false): trueに設定すると、ユーザーは実行するレポートのこのフィールドに対する値を指定する必要があります。
udf
(任意、デフォルト: false): InputParameter
要素で表されるユーザー定義フィールドの場合、この属性を指定する必要があり、値をtrueに設定します。操作レポート専用です。
属性fieldType
の値がLookupField
である場合、ValidValues
という子要素がInputParameter
要素の下に必要です。レポート機能では、3つの参照タイプ、すなわちコードによる参照、メソッドによる参照および列による参照をサポートしています。ValidValues
要素のサポートされる属性は、次のとおりです。
lookupCode
(任意): コードによる参照の場合のみ指定する必要があります。
指定する場合、この属性の値は参照コードです。
lookupColumn
(任意): 列による参照の場合のみ指定する必要があります。
指定する場合、この属性の値は参照列の列コードです。
lookupMethod
(任意): クラスまたはメソッドによる参照の場合のみ指定する必要があります。
指定する場合、この属性の値は参照値を指定するメソッド名です。
operationClass
(任意): lookupMethod属性が指定されている場合のみ指定する必要があります。
この属性の値は、参照メソッドを含むクラスの完全修飾名です。
displayColumns
(任意): lookupMethod
属性が指定されている場合のみ指定する必要があります。
参照で表示される列を表す列コードのカンマ区切りのリストです。
selectionColumn
(任意): lookupMethod
属性またはlookupColumn
属性が指定されている場合のみ指定する必要があります。
値がデータベースに保存される列の列コードを表します。
標準のTextField
入力パラメータの場合:
<InputParameter name="strfirstname_in" parameterType="varchar2" order="2" fieldType="TextField" fieldLabel="report.userResourceAccess.label.firstName" required="false" />
ユーザー定義入力パラメータの場合:
<InputParameter name="USR.USR_UDF_SSN" parameterType="varchar2" order="11" fieldType="TextField" fieldLabel="report.userResourceAccess.label.SSN" required="false" udf="true" />
Combobox
タイプの入力パラメータの場合:
<InputParameter name="struserstatus_in" parameterType="varchar2" order="10" fieldType="Combobox" allowedValues="Lookup.WebClient.Users.Status" fieldLabel="report.userResourceAccess.label.userStatus" required="false" />
lookupCode
が指定されたLookupField
タイプの入力パラメータの場合:
<InputParameter name="struseremptype_in" parameterType="varchar2" order="11" fieldType="LookupField" fieldLabel="report.userResourceAccess.label.employeeType" required="false" > <ValidValues lookupCode="Lookup.Users.Role"/> </InputParameter>
lookupColumn
が指定されたLookupField
タイプの入力パラメータの場合:
<InputParameter name="struseremail_in" parameterType="varchar2" order="5" fieldType="LookupField" fieldLabel="report.userResourceAccess.label.userEmail" required="false" > <ValidValues lookupColumn="Users.Xellerate Type" selectionColumn="Lookup Definition.Lookup Code Information.Decode" /> </InputParameter>
lookupMethod
が指定されたLookupField
タイプの入力パラメータの場合:
<InputParameter name="struserlogin_in" parameterType="varchar2" order="1" fieldType="LookupField" fieldLabel="report.userResourceAccess.label.userLogin" required="false" > <ValidValues lookupMethod="findUsersFiltered" operationClass="Thor.API.Operations.tcUserOperationsIntf" displayColumns="Users.User ID,Users.Last Name,Users.First Name" selectionColumn="Users.User ID"/> </InputParameter>
fieldType
属性の値がDateRange
である場合、2つの子要素InputStartDate
およびInputEndDate
を指定する必要があります。各要素には、次の属性が必要です。
name
(必須): パラメータの名前
この日付パラメータを表すストアド・プロシージャ・パラメータの名前と一致する必要があります。
parameterType
(必須): この日付パラメータを表すストアド・プロシージャ・パラメータのSQLタイプ
order
(必須): ストアド・プロシージャ・パラメータの順序
defaultValue
(任意、デフォルト: 01/01/1900および12/31/2049): ユーザーが「開始日」フィールドまたは「終了日」フィールドに日付を入力しなかった場合に指定されるデフォルト値
format
(任意、デフォルト: reports.generic.message.internalDateFormat
): デフォルトの日付の書式
ReturnColumns
タグは、結果セットで返されるすべての列のリストを表します。このタグには、複数のReturnColumn
タグが含まれ、それぞれが返された結果セットの1列を表します。ReturnColumn
タグの属性は、レポート・データの表示に有用な情報を指定します。
name
(必須): この名前は、この特定のタグで表される結果セットの列の列コードを表します。
列コードが使用できない場合は、別名または列名でもかまいません。
label
(必須): この列の列ヘッダーまたはラベルのプロパティ値を指定します。
このプロパティ値は、メッセージ・リソース・プロパティ・ファイル(この場合xlWebAdmin.properties
)の値で、実際のラベルを表します。
position
(必須): この属性には、3つの値、すなわちTable
、Sectional Header
またはReport Header
を指定できます。
この属性は、各列の場所を指定します。各列は、表(任意のレイアウトの場合)、セクション・ヘッダー(セクション・レイアウトおよびレポート・ヘッダー付きセクション・レイアウトの場合)またはレポート・ヘッダー(レポート・ヘッダー付きセクション・レイアウトの場合)に属すことができます。
filterColumn
(任意、デフォルト: false): この属性は、列がフィルタ列かどうかを指定します。
値がtrueの場合は、「レポート表示」ページ上部のフィルタのドロップダウン・リストに列名が含まれます。
filterColumnName
(filterColumn
が指定されていない場合、任意): この属性は、必要な場合は表の別名が前に付いた、実際の列名を表します。
filterType
(filterColumn
がtrueの場合は、任意): レポート結果ページのフィルタ表示フィールドのタイプ。サポートされる入力タイプは、Combobox
のみです。
filterLookupKey
(filterColumn
がtrueの場合は、任意): レポート結果ページのフィルタ表示フィールドに表示されるコンボ・ボックスに関連付けられる参照コードを表します。
clickable
(任意、デフォルト: false): この属性は、列値がリンクかどうかを指定します。
この属性は、レポートの動作性をサポートします。
レポート・モジュールでは、インタラクティブ・レポートを構成できます。インタラクティブ・レポートでは、列値をリンクとして定義し、ユーザーが列値をクリックすると管理およびユーザー・コンソールの内外のページに移動するようにします。リンクを構成するには、ユーザーが適切なページに移動するように、情報をメタデータに追加します。リンクには、動的または静的な場所を指定できます。リンクをクリックすると新しいブラウザ・ウィンドウが開きます。このウィンドウは、同じブラウザ・セッションを共有しますが、それ以外は独立しています。
リンクを構成するには、clickable
属性をtrue
に設定し、ReturnColumn
要素とその2つの子要素Link
およびRequestParameters
を次のように構成します。
Link
要素: この要素に1つのhref
属性を構成します。
この属性は、宛先ページのベースURLを指定します。絶対URLは、http://www.xyz.com
のようにhttp
で始まります。絶対URLの宛先ページは、管理およびユーザー・コンソールの外にあります。searchResources.do
などの相対URLは、管理およびユーザー・コンソールの中の宛先ページに移動します。
RequestParameters
要素: この要素に複数のRequestParameter
要素を構成します。
各RequestParameter
要素は、宛先ページを正しく表示するために発行される必要がある1つのリクエスト・パラメータを表します。name
属性は、リクエスト・パラメータの名前を指定します。リクエスト・パラメータが静的である場合、つまり結果セットの他の値に依存しない場合は、value
属性を使用してその値を構成します。リクエスト・パラメータの値が動的である場合、つまり結果セットの他の列(リソース・キーなど)に依存する場合は、column
属性を使用して値を指定します。column
属性には、値が返される列の列コードを指定します。
レポート・メタデータが完成したら、REP
表とRPG
表を更新してレポートを使用できるようにします。
REP
表には、システム内のすべてのレポートのリストが含まれます。新しいレポートを定義するには、そのレポートを表す新しい行をREP
表に作成する必要があります。作成日、作成者、行バージョンなどの共通の列以外に、移入される列を指定する必要があります。カッコ内の値は、「ユーザー・リソース・アクセス」レポートの例です。
REP_NAME
: この列には、ユーザーに表示されるレポートの名前が含まれます。
この名前はREP
表では一意です。(User Resource Access)
REP_DESCRIPTION
: ユーザーに表示されるレポートの説明。(Resource access rights for selected users)
REP_SP_NAME
: レポートのデータを指定するストアド・プロシージャの名前。(XL_SP_UserResourceAccess
)
REP_TYPE
: レポートのタイプ。2つの値、すなわちOperational
またはHistorical
を指定できます。(Operational
)
REP_DATASOURCE
: レポートの実行対象となるデータソースの名前。
2つの値、すなわちDefault
またはReporting
を指定できます。通常、操作レポートはデフォルト・データベースに対して実行されますが、履歴レポートはレポート・データベースに対して実行されます。(Default)
REP_MAX_REPORT_SIZE
: レポートで返すことができる最大レコード数を表します。
レポートが返す各レコードのデータ量は、レポートごとに異なります。レポートのレスポンス時間を高速に保つには、レポートで返すことができる最大レコード数をレポートごとに強制適用します。(5000)
REP
表にOracle Databaseの「ユーザー・リソース・アクセス」レポートのデータを移入するINSERT文の例を次に示します。
INSERT INTO REP (REP_KEY, REP_CODE, REP_TYPE, REP_NAME, REP_DESCRIPTION, REP_DATASOURCE, REP_SP_NAME, REP_MAX_REP_SIZE, REP_FILTER_COUNT, REP_DATA_LEVEL, REP_CREATE, REP_CREATEBY, REP_UPDATE, REP_UPDATEBY, REP_ROWVER) VALUES (rep_seq.nextval, 'UserResourceAccess', 'Operational', 'User Resource Access','Resource access rights for selected users', 'Default', 'XL_SP_UserResourceAccess', 5000, 3, 1, SYSDATE, <System Administrator User Key>, SYSDATE, <System Administrator User Key>, HEXTORAW('0000000000000000'));
REP
表にMicrosoft SQL Serverの「ユーザー・リソース・アクセス」レポートのデータを移入するINSERT
文の例を次に示します。
注意: Microsoft SQL Serverは、Oracle Identity Managerリリース9.1.0ではサポートされていません。動作保証されているコンポーネントの詳細は、『Oracle Identity Managerリリース・ノート』の「動作保証されているコンポーネント」を参照してください。 |
INSERT INTO REP (REP_CODE, REP_TYPE, REP_NAME, REP_DESCRIPTION, REP_DATASOURCE, REP_SP_NAME, REP_MAX_REP_SIZE, REP_FILTER_COUNT, REP_DATA_LEVEL, REP_CREATE, REP_CREATEBY, REP_UPDATE, REP_UPDATEBY, REP_ROWVER) VALUES ('UserResourceAccess', 'Operational', 'User Resource Access', 'Resource access rights for selected users', 'Default', 'XL_SP_UserResourceAccess', 5000, 3, 1, GETDATE(), <System Administrator User Key>, GETDATE(), <System Administrator User Key>, 0x0);
レポートに対するエントリをREP
表に作成したら、レポートのXMLメタデータをREP表のREP_XML_META
列にロードする必要があります。メタデータの作成の詳細は、「レポートのXMLメタデータの作成」を参照してください。
レポートへのアクセス権を付与する手順は、次のとおりです。
関連項目: 『Oracle Identity Manager管理およびユーザー・コンソール・ガイド』 |
新しいレポートへのアクセス権を特定のユーザー・グループに付与するには、次のようにします。
「ユーザーの管理」アプリケーションを使用して、ユーザー・グループを検索します。
ユーザー・グループの詳細ページにナビゲートします。
「追加詳細」ドロップダウンで「許可されたレポート」リンクをクリックします。
「グループの詳細」の下に「レポート」ページが表示されます。
「レポートの割当て」ボタンをクリックします。
「グループの詳細」の下の「レポート」セクションに、「レポートの割当て」ページが表示されます。作成したばかりのレポートがこのページに表示されます。
レポートへのアクセス権を付与するには、1つ以上のグループに割り当てます。
この項では、ラベル名、レポート名およびレポート説明を翻訳するために、プロパティ・ファイルを変更する方法について説明します。内容は次のとおりです。
XMLメタデータを作成したら、新しいフィールド・ラベル・プロパティをプロパティ・ファイル内のメタデータ・ファイルに挿入する必要があります。プロパティは、サポートするロケールに対応するファイルに追加します。リリース9.1.0でサポートされる言語とそれに関連するプロパティ・ファイルは次のとおりです。
中国語(簡体字)(xlWebAdmin_zh_CN.properties
)
中国語(繁体字)(xlWebAdmin_zh_TW.properties
)
デンマーク語(xlWebAdmin_da.properties
)
英語(xlWebAdmin_en_US.properties
)
フランス語(xlWebAdmin_fr.properties
)
ドイツ語(xlWebAdmin_de.properties
)
イタリア語(xlWebAdmin_it.properties
)
日本語(xlWebAdmin_ja.properites
)
韓国語(xlWebAdmin_ko.properties
)
ポルトガル語(ブラジル)(xlWebAdmin_pt_BR.properties
)
スペイン語(xlWebAdmin_es.properties
)
Oracle Identity Managerでは、サポート外のロケールが検出されると、xlWebAdmin.properties
ファイルを参照します。これらのファイルに、対象のプロパティをInputParameter
タグのfieldLabel
属性およびReturnColumn
タグのlabel属性として追加します。入力フィールド・ラベルまたは戻り列ラベルの実際の名前を指定するかわりに、プロパティ名を指定します。それぞれのプロパティ・ファイルからは、このプロパティ名が参照されます。この方法により、国際化が簡単になります。
次の例では、InputParameter
タグのfieldLabel
属性とReturnColumn
タグを設定する方法を示します。
例1
<InputParameter name="struserlogin_in" parameterType="varchar2" order="1" fieldType="TextField" fieldLabel="report.userResourceAccess.label.userLogin" required="false" />
このInputParameter
タグは、「ユーザー・リソース・アクセス」レポートのUserResourceAccess.xml
メタデータ・ファイルからのものです。このタグのfieldLabel
属性の値はreport.UserResourceAccess.label.userLogin
です。xlWebAdmin_en_US.properties
ファイルの対応するこのプロパティのエントリは、次のとおりです。
report.UserResourceAccess.label.userLogin=Userid
例2
<ReturnColumn name="Users.First Name" label="report.userResourceAccess.label.firstName" position="SectionHeader" filterColumn="true" filterColumnName="usr.usr_first_name" />
このReturnColumn
タグは、「ユーザー・リソース・アクセス」レポートのUserResourceAccess.xml
メタデータ・ファイルからのものです。このタグのlabel
属性の値はreport.userResourceAccess.label.firstName
です。xlWebAdmin_en_US.properties
ファイルの対応するこのプロパティのエントリは、次のとおりです。
report.userResourceAccess.label.firstName=First Name
注意: 実際のラベル名が(カスタマイズなどにより)変更されても、プロパティ名を変更する必要はありません。 |
次の手順に従って、xlWebAdmin_en_US.properties
ファイルを編集します。
REP
表にエントリを作成したら、レポート名およびレポート説明の翻訳プロパティをプロパティ・ファイルに追加する必要があります。この手順は、データベースの英語のエントリをローカライズするために必要で、英語のロケールのみサポートする必要がある場合でも実行する必要があります。
レポート名およびレポート説明を翻訳するためのプロパティを追加するには、次のようにします。
OIM_HOME
/webapp
ディレクトリのxlWebApp.war
ファイルを一時ディレクトリに解凍します。
テキスト・エディタで、xlWebApp.war
ファイルを解凍した一時ディレクトリのxlDefaultAdmin.properties
ファイルを開きます。
xlDefaultAdmin.properties
ファイルで、global.resultSet.Reports.Report~Name
プロパティを探します。このプロパティは、システム内のすべてのレポートの名前を識別します。このプロパティに割り当てられたレポートはそれぞれ縦線(|)で区切られます。縦線と新しいレポートの名前をこのプロパティ値の最後に追加します。パイプ文字とレポート名の間に空白がないことと、レポート名の末尾に空白がないことを確認してください。
xlDefaultAdmin.properties
ファイルで、システム内のすべてのレポートの説明が含まれるglobal.resultSet.Reports.Report~Description
プロパティを探します。このプロパティに割り当てられたレポートはそれぞれ縦線(|)で区切られます。パイプ文字と新しいレポートの説明をこのプロパティ値の最後に追加します。パイプ文字と説明の間に空白がないことと、説明の末尾に空白がないことを確認してください。
テキスト・エディタで、レポート名およびレポート説明を翻訳するロケールを表すプロパティ・ファイルを開きます。
レポート名とローカライズされた値を識別するglobal.resultSet.Reports.Report~Name.ReportNameプロパティを追加します。プロパティ名のReportName部分は、レポート名を表します。プロパティ名の空白はチルダ(~)で表します。ローカライズされた値をこのプロパティに割り当てます。たとえば、Group Informationというレポートを表すには、次のプロパティをxlWebAdmin_en_US.properties
ファイルに追加します。
global.resultSet.Reports.Report~Name.Group~Information=Group Information
レポート説明とローカライズされた値を含むglobal.resultSet.Reports.Report~Description.Report~Descriptionプロパティを追加します。プロパティ名のReport~Description部分は、デフォルトのレポート説明を表します。レポート説明の空白はチルダ(~)で表します。ローカライズされた値をこのプロパティに割り当てます。たとえば、Group Informationの説明の場合、次のプロパティをxlWebAdmin_en_US.properties
ファイルに追加します。
global.resultSet.Reports.Report~Description.Description~of~the~Group~Information~report=Description of the Group Information report
新しいレポートごとに、global.ReportName.Lookup.Report-Nameおよびglobal.ReportDesc.Lookup.Report-Description参照プロパティを追加します。各プロパティ名のReport-Name部分およびReport-Description部分はそれぞれデフォルトのレポート名およびレポート説明を表します。レポート説明の空白はハイフン(-)で表します。ローカライズされた値を各プロパティに割り当てます。たとえば、Group Informationレポートの場合、次のプロパティをxlWebAdmin_en_US.properties
ファイルに追加します。
global.ReportName.Lookup.Group-Information=Group Information global.ReportDesc.Lookup.Description~of~the~Group~Information~report=Description of the Group Information report
xlWebApp.war
ファイルを再作成し、それをOIM_HOME
/webapp
ディレクトリにコピーします。
サード・パーティのレポート・ツールでは、用意されたストアド・プロシージャを使用し、Oracle Identity Managerに対してレポートを実行することができます。データ・モデルを理解したり、事前定義済レポートの問合せを作成する必要はありません。いずれのレポート・ツールも、カスタム・ストアド・プロシージャおよびカスタム・レポートに使用できます。
スナップショットおよび変更に関する情報は、XML形式でUPA
表に格納されます。サード・パーティのXMLレポート・ツールでは、この表からレポートを生成できます。XMLが好ましい形式ではない場合は、ユーザー・プロファイル監査機能に関連するレポート表UPA_USR
、UPA_FIELDS
、UPA_GRP_MEMBERSHIP
、UPA_RESOURCE
、UPA_UD_FORMS
およびYPA_UD_FORMFIELDS
を使用して、データを取り出すことができます。
履歴レポートでは、データ・スナップショットの日付範囲とデータ変更の日付範囲の2つの異なる日付範囲を入力パラメータとして使用できます。
データ・スナップショットの日付範囲は、履歴レポートに適用する過去の日付範囲です。このリリース以降、ラベルが表示されるようになりました。これを指定すると、レコードはその日付範囲に該当するもののみに絞り込まれます。
データ変更の日付範囲は、このリリースから追加された新機能です。これを指定すると、レコードはその日付範囲が示す期間中に変更されたもののみに絞り込まれます。
指定する必要があるのはいずれか一方の日付範囲のみです。データ・スナップショットの日付範囲は、データ変更の日付範囲の上位集合です。データ・スナップショットの日付範囲には、すべてのデータ変更が自動的に含められます。
注意: 両方の日付範囲に値を指定すると、データ変更の日付範囲がデータ・スナップショットの日付範囲よりも優先され、後者は無視されます。 |
このリリースのレポート作成では、次の制限事項があります。
レポートの取得時にフィルタまたは入力パラメータを使用する場合、アンダースコア文字(_)は1文字のワイルド・カードとして機能します。
ユーザーID再利用のシステム・プロパティをtrue
に設定すると、削除済ユーザーと同じIDでユーザーを作成できます。この機能を使用して新しいユーザーを作成した場合、セクションにユーザー・データが表示されるすべてのレポートには、1つのセクションに削除済ユーザーとアクティブ・ユーザーの両方のデータが表示されます。これは、両方のユーザーが同じユーザーIDを共有しているためです。