問合せの作成が、カスタム・レポートの作成の最初のステップです。問合せの作成には次の3つの方法があります:
問合せを作成するには:
「タイプ」で、次のタイプのいずれかを選択します。
パラメータ問合せ
「パラメータ問合せ」タイプは、このパラメータの値に指定できるオプションのリストを表示するために使用されます。「パラメータ問合せ」では、レポート問合せに対するパラメータの値の入力時に使用されるオプションのリストを表示できます。このオプションのリストはすでに定義済の単純な属性ではなく、定義が必要とされる複雑な問合せです。
レポートへのパラメータ問合せの選択の例については、レポートへのパラメータ問合せの追加を参照してください。
レポート問合せ
レポートに含めるレコードを選択します。設計中のレポートにパラメータが含まれる場合は、レコードを表示しない、またはすべてのレコードを表示するようにレポートを設計できます。
照合コンプライアンスのために、セキュリティ・フィルタを適用できます。これによって、ユーザーには各自の役割に基づいて参照を許可されているデータと、割り当てられている照合のみが表示されます。レポート問合せにセキュリティ・フィルタを適用するには、問合せのWHERE CLAUSE文の最後に次の構文を追加します:
照合コンプライアンス: $ARM_SECURITY_CLAUSE$
WHERE $ARM_SECURITY_CLAUSE$ AND ReconciliationEO
問合せで$ARM_SECURITY_CLAUSE$
を使用する際、ARM_RECONCILIATIONS
はReconciliationEO
に別名設定される必要があります。
注:
Account Reconciliationに含まれる多くの事前定義済問合せにはセキュリティ・フィルタが適用されているため、独自のものを作成する際例として使用できます。
問合せの例は、下記の「照合コンプライアンスの例」を参照してください。
「問合せの生成」をクリックし、レポート問合せを生成します。詳細は、後述の問合せの生成を参照してください。
必要な詳細を入力して「問合せの生成」ダイアログを閉じると、生成されたレポート問合せが「問合せ」に表示されます。
注:
レポート内にパラメータが必要な場合は、レポート問合せSQLにパラメータを追加します。パラメータ名は任意の名前にできますが、ティルデ(~)で囲む必要があります。次の項の例を参照してください。次のいずれかのアクションを行います:
「検証」をクリックして、問合せにエラーがあるかどうかをテストします。
「プランの検証と説明」をクリックして、問合せにエラーがあるかどうかをテストし、この問合せの実行に使用されるプランを生成します。生成されたプランは、問合せと同じ名前を使用する.txt
ファイルに格納されます。生成されたプランは表示またはダウンロードできます。
生成されたプランには、問合せの実行に使用される一連のステップが含まれています。プランを使用して、最適でない問合せパフォーマンスを引き起こす可能性のある問題を特定します。その後、問合せを調整してパフォーマンスを向上できます。
注:
デフォルトでは、実行プランの生成はOCI (Gen 2)環境でのみ使用できます。クラシック環境で使用可能にするには、サービス・リクエストを使用してオラクル社にお問い合せください。BI Publisherでテンプレートとして使用するサンプルXMLファイルを問合せから生成するには、「サンプルXMLの生成」をクリックします。
注:
「アクション」メニューを使用すると、簡単に問合せを削除したり、複製できます。問合せの生成
「問合せの生成」ダイアログは、問合せまたはフィルタ処理(あるいはその両方)の対象となる既存の製品内の属性を選択可能にすることで、データベースに対する問合せの作成に役立ちます。ダイアログでは指定された属性およびフィルタと一致するようにSQLが生成されます。この時点で変更および改善が可能です。
レポート問合せを生成するには:
「モジュール」で、「照合マネージャ」または「トランザクション照合」を選択します。
「問合せ」で、問合せのタイプを選択します。
「モジュール」で「照合マネージャ」を選択した場合は、次のオプションのいずれかを選択します: 「照合」、「プロファイル」または「トランザクション」。
「モジュール」で「トランザクション照合」を選択した場合は、ドロップダウン・リストに表示される問合せから1つ選択します。
「セキュリティの適用」を選択して、セキュリティ・フィルタを適用します。これによって、ユーザーには各自の役割に基づいて参照を許可されているデータと、割り当てられている照合のみが表示されます。
注:
「セキュリティの適用」オプションは、「問合せ」で「照合タイプ」を選択した場合は表示されません問合せに含める列を選択し、「次」をクリックします。
注:
トランザクション照合では、トランザクションに対する問合せの自動生成をサポートしています。注:
「トランザクション照合」の場合、「勘定科目ID」列は、「使用可能」列のリストから選択されない場合でも、生成される問合せに含まれます。「勘定科目ID」列をレポートから除外するには、生成された問合せのSELECTリストから「勘定科目ID」列を削除します。レポートへのパラメータ問合せの追加
レポートへのパラメータ問合せを追加するには:
「問合せ」を選択してから、パラメータ問合せタイプ(CurrencyListなど)を選択します。
「問合せの編集」ダイアログで、パラメータ問合せをレビューまたは編集(あるいはその両方)してから、「保存して閉じる」をクリックします。
「レポート構成」画面に戻ります。
「レポート」を選択してから、目的のレポート(照合別残高など)を選択します。
「レポートの編集」ダイアログで、「パラメータ」を選択します。
目的の「パラメータ・コード」について、「パラメータ・タイプ」で「問合せ」、「属性/問合せ」でCurrencyListをドロップダウンから選択します。
「パラメータ値」ドロップダウンには、通貨リストが表示されます。
注:
「属性/問合せ」ドロップダウンにパラメータ問合せのリストが表示されるのは、「パラメータ・タイプ」ドロップダウンで「問合せ」を選択した場合のみです。注:
「パラメータ・タイプ」ドロップダウンを使用して、モジュールごとにモジュール属性(照合マネージャまたはトランザクション照合)を選択できます。パラメータ・タイプに対してモジュール属性が選択されると、「属性/問合せ」ドロップダウンにモジュールの属性のリストが表示されます。「保存」と「閉じる」をクリックします。
照合コンプライアンスの例
これらの照合コンプライアンスの例では、「月次」の頻度を含む期間のリストを表示するレポートを実行することを想定しています。設計中のレポートにパラメータが含まれる場合は、レコードを表示しない、またはすべてのレコードを表示するようにレポートを設計できます。
パラメータ問合せ: Select frequency_id, frequency_name from arm_frequencies
レポート問合せ、オプション1: (ユーザーが頻度の値を指定しない場合、期間は返されません):
Select p.period_name from arm_periods p, arm_period_frequencies pf where p.period_id = pf.period_id and pf.frequency_id = ~FREQUENCY~
レポート問合せ、オプション2: (ユーザーが頻度の値を指定しない場合、すべての期間が返されます):
Select p.period_name from arm_periods p, arm_period_frequencies pf where p.period_id = pf.period_id and pf.frequency_id = coalesce(~FREQUENCY~,pf.frequency_id)
注:
パラメータ名は任意の名前にできますが、ティルデ(~)で囲む必要があります。
2番目のオプションでは、coalesce()
関数はリストの最初のnull以外の値を返します; したがって、FREQUENCYがnullのときは、pf.frequency_id
を返すことになり、その場合、条件は必ずtrue(pf.frequency_id = pf.frequency_id
)なので、すべてのレコードが返されます。
トランザクション照合の例
これらの例では、特定の照合タイプの照合のリストを表示することを想定しています。
パラメータ問合せ: SELECT TM_RECON_TYPE.TEXT_ID AS RECONCILIATION_TYPE_ID , (TM_RECON_TYPE.NAME || ' (' || TM_RECON_TYPE.TEXT_ID || ')') AS RECONCILIATION_TYPE_NAME FROM TM_RECON_TYPE TM_RECON_TYPE
レポート問合せ、オプション1: (ユーザーが照合タイプを選択していない場合は照合を返しません):
SELECT TM_RECON.TEXT_ID AS RECONCILIATION_ID,TM_RECON.NAME AS RECONCILIATION_NAME, TM_RECON_TYPE.TEXT_ID AS RECONCILIATION_TYPE_ID, TM_RECON_TYPE.NAME AS RECONCILIATION_TYPE_NAME, NVL ((SELECT P_FCM_USERS.USER_NAME FROM FCM_USERS_V P_FCM_USERS WHERE TM_RECON.PREPARER = P_FCM_USERS.USER_ID ), TM_RECON.PREPARER ) AS PREPARER, TM_RECON.DESCRIPTION DESCRIPTION FROM TM_RECON TM_RECON, TM_RECON_TYPE TM_RECON_TYPE WHERE TM_RECON.RECON_TYPE_ID = TM_RECON_TYPE.RECON_TYPE_ID AND (TM_RECON_TYPE.TEXT_ID = '~RECONCILIATION_TYPE_ID~')
レポート問合せ、オプション2: (ユーザーが照合タイプを選択していない場合はすべての照合を返します):
SELECT TM_RECON.TEXT_ID AS RECONCILIATION_ID,TM_RECON.NAME AS RECONCILIATION_NAME, TM_RECON_TYPE.TEXT_ID AS RECONCILIATION_TYPE_ID, TM_RECON_TYPE.NAME AS RECONCILIATION_TYPE_NAME, NVL ((SELECT P_FCM_USERS.USER_NAME FROM FCM_USERS_V P_FCM_USERS WHERE TM_RECON.PREPARER = P_FCM_USERS.USER_ID ), TM_RECON.PREPARER ) AS PREPARER, TM_RECON.DESCRIPTION DESCRIPTION FROM TM_RECON TM_RECON, TM_RECON_TYPE TM_RECON_TYPE WHERE TM_RECON.RECON_TYPE_ID = TM_RECON_TYPE.RECON_TYPE_ID AND COALESCE('~RECONCILIATION_TYPE_ID~',TM_RECON_TYPE.TEXT_ID)
注:
パラメータ名は任意の名前にできますが、ティルデ(~)で囲む必要があります。
2番目のオプションでは、coalesce()
関数はリストの最初のnull以外の値を返します。したがって、RECONCILIATION_TYPE_IDがnullの場合は、TM_RECON_TYPE.TEXT_ID
を返すことになり、その場合、条件は必ずtrue((TM_RECON_TYPE.TEXT_ID = TM_RECON_TYPE.TEXT_ID)
)なので、すべてのレコードが返されます。
レポート問合せ、オプション3 (ユーザーにアクセス権がある場合はすべての照合を返します): SELECT TM_RECON.TEXT_ID AS RECONCILIATION_ID, TM_RECON.NAME AS RECONCILIATION_NAME, TM_RECON_TYPE.TEXT_ID AS RECONCILIATION_TYPE_ID, TM_RECON_TYPE.NAME AS RECONCILIATION_TYPE_NAME, TM_RECON.DESCRIPTION DESCRIPTION FROM TM_RECON TM_RECON, TM_RECON_TYPE TM_RECON_TYPE, ARM_RECONCILIATIONS ProfileEO WHERE TM_RECON.RECON_TYPE_ID = TM_RECON_TYPE.RECON_TYPE_ID AND TM_RECON.TEXT_ID = ProfileEO.RECONCILIATION_ACCOUNT_ID AND $ARM_SECURITY_CLAUSE$ AND ProfileEO.PERIOD_ID = -2