レポート・スクリプトの基本の理解

この項の内容:

単純なレポート・スクリプトの処理

レポート・ライターの動作の理解

レポートについてのプランニング

セキュリティと複数ユーザーの問題に関するガイドライン

レポート・スクリプト作成プロセスの確認

レポート・スクリプトの作成

レポート・スクリプトの保存

レポート・スクリプトの実行

レポート・スクリプトのコピー

フリーフォーム・レポートの開発

この章のすべてのレポート・スクリプトの例は、Sample.Basicデータベースに基づいています。

単純なレポート・スクリプトの処理

ページ、行および列に使用する次元を、レポート・コマンドで宣言しメンバーを選択すると、単純なレポート・スクリプトのすべての要素が作成されます。

次のレポート・スクリプト・プロセスの例は、要素、次元およびメンバー選択コマンドを指定するサンプル・スクリプトを手順ごとに示します。このスクリプトには、スクリプトの動作を文書で説明するコメントおよび!出力コマンドが含まれます。このスクリプトは、Sample.Basicデータベースに基づいています。

  1. レポート・スクリプトを作成します。

    Oracle Essbase Administration Services Online Helpの「スクリプトの作成」を参照してください。

  2. 次の情報をレポート・スクリプトに入力します。

                   // This is a simple report script example
    // Define the dimensions to list on the current page, as below
    <PAGE (Market, Measures)
    
    // Define the dimensions to list across the page, as below
    <COLUMN (Year, Scenario)
    
    // Define the dimensions to list down the page, as below
    <ROW (Product)
    
    // Select the members to include in the report
    Sales
    <ICHILDREN Market
    Qtr1 Qtr2
    Actual Budget Variance
    <ICHILDREN Product
    
    // Finish with a bang
    !
                
  3. レポート・スクリプトを保存します。

    Oracle Essbase Administration Services Online Helpの「スクリプトの保存」を参照してください。

  4. レポート・スクリプトを実行します。

    Oracle Essbase Administration Services Online Helpの「レポート・スクリプトの実行」を参照してください。

スクリプト例をSample.Basicデータベースに対して実行すると、次のレポートが生成されます:

                                          East Sales

                        Qtr1                          Qtr2
             Actual    Budget  Variance    Actual    Budget  Variance
           ========  ========  ========  ========  ========  ========
100           9,211     6,500     2,711    10,069     6,900     3,169
200           6,542     3,700     2,842     6,697     3,700     2,997
300           6,483     4,500     1,983     6,956     5,200     1,756
400           4,725     2,800      ,925     4,956     3,200     1,756
  Product    26,961    17,500     9,461    28,678    19,000     9,678

                                    West Sales

                        Qtr1                          Qtr2
             Actual    Budget  Variance    Actual    Budget  Variance
           ========  ========  ========  ========  ========  ========
100           7,660     5,900     1,760     7,942     6,500     1,442
200           8,278     6,100     2,178     8,524     6,200     2,324
300           8,599     6,800     1,799     9,583     7,600     1,983
400           8,403     5,200     3,203     8,888     6,300     2,588
  Product    32,940    24,000     8,940    34,937    26,600     8,337

                                    South Sales

                        Qtr1                          Qtr2
             Actual    Budget  Variance    Actual    Budget  Variance
           ========  ========  ========  ========  ========  ========
100           5,940     4,100     1,840     6,294     4,900     1,394
200           5,354     3,400     1,954     5,535     4,000     1,535
300           4,639     4,000       639     4,570     3,800       770
400        #MISSING   MISSING  #MISSING  #MISSING  #MISSING  #MISSING
  Product    15,933    11,500     4,433    16,399    12,700     3,699

                                    Central Sales

                        Qtr1                          Qtr2
             Actual    Budget  Variance    Actual    Budget  Variance
           ========  ========  ========  ========  ========  ========
100           9,246      ,500     2,746     9,974     7,300     2,674
200           7,269     6,800       469     7,440     7,000       440
300          10,405     6,200     4,205    10,784     6,800     3,984
400          10,664     5,200     5,464    11,201     5,800     5,401
  Product    37,584    24,700    12,884    39,399    26,900    12,499

                                    Market Sales

                        Qtr1                       Qtr2 
             Actual    Budget  Variance    Actual    Budget  Variance
           ========  ========  ========  ========  ========  ========
100          32,057    23,000     9,057    34,279    25,600     8,679
200          27,443    20,000     7,443    28,196    20,900     7,296
300          30,126    21,500     8,626    31,893    23,400     8,493
400          23,792    13,200    10,592    25,045    15,300     9,745
  Product   113,418    77,700    35,718   119,413    85,200     34,21
   

レポート・ライターの動作の理解

レポート・ライターは次の3つの主なコンポーネントで構成されています:

  • レポート・スクリプト・エディタは、レポート・スクリプトを記述するときに使用するテキスト・エディタです。レポート・コマンドでは、フォーマットされたレポートを定義し、データベースからデータのサブセットをエクスポートし、フリーフォームのレポートを生成します。保存済のスクリプトを実行すると、レポートが生成されます。保存済のレポート・スクリプトのファイル拡張子は.repです。

  • レポート・エクストラクタは、レポート・スクリプトの実行時にEssbaseデータベースからデータ情報を取得します。

  • レポート・ビューアは、完全なレポートを表示します。保存済のレポートのファイル拡張子は.rptです。

    図 139. レポート・ライターのコンポーネント

    この図は、この図の前のテキストで説明されている、レポート・ライターのコンポーネント(レポート・エディタ、レポート・エクストラクタおよびレポート・ビューア)を示しています。

レポート・エクストラクタ

  レポート・エクストラクタでは、次のアクションを実行して、レポート・スクリプトを処理し、データを取得します:

  1. 可能なすべてのメンバーの組合せに基づいて、メンバー・リストを作成します。たとえば、<IDESCENDANTS Eastによって、メンバーEastとそのすべての子孫が取得されます。

  2. メンバーの制限を適用します。たとえば、<LINKによってメンバーの選択が限定されます。

  3. メンバーの出力の順序を決めます。たとえば、<SORTによって、メンバーのソート順が決まります。

  4. 次の領域からデータが抽出されます:

    • ローカル領域

    • パーティション化された領域

    • 動的に計算されるデータ

  5. データを制限します。たとえば、次のコマンドによって、欠落した値のみで構成されるすべての行の表示が抑止されます:

                {SUPMISSINGROWS}
             
  6. データをソートします。たとえば、<TOPによって、指定したデータ列で一番大きい値を持つ行が戻されます。

  7. 出力をフォーマットします。たとえば、{SKIP}によって、最終の出力レポートで1つ以上の行がスキップされます。

レポート・エクストラクタによるデータの取得順序は、複雑な抽出とフォーマット・コマンドの実行に影響します。たとえば、レポート・エクストラクタでは、データを制限(手順5)してから、データをソート(手順6)するので、条件付き取得コマンドを間違った順序で配置した場合、予期しないレポートの出力結果となる可能性があります。レポート・スクリプトを設計するときには、データ取得プロセスに注意してください。

レポートのパート

レポートについてプランし、それを設計する場合、レポートのパートを理解することが不可欠です。

図 140. 典型的なレポートの要素

この図は、レポートの要素(タイトル、ページ見出し、列見出し、行名およびデータ値)を示しています。

典型的なレポートは、次のパートで構成されています:

  • ページ見出しは、現在のページに表示される次元をリストします。ページのすべてのデータ値には、ページ見出しの次元が共通のプロパティとして適用されています。

                <PAGE (Market, Measures)
             
  • 列見出しは、ページ上のメンバーをリストします。複数の次元からのデータをレポートする列を定義できます。この場合、ネストされた列見出しとなります。

                <COLUMN (Year, Scenario)
             
  • 行見出しは、ページの下方向にメンバーをリストします。1つの次元内の複数のレベルからの行を含むメンバー・リストまたは複数の次元からの行を含むメンバー・リストを定義できます。行は、次元名の下にインデント表示されます。

                <ROW (Product)
             
  • タイトルには、ユーザー定義のテキスト、日付、タイム・スタンプ、レポートを実行しているユーザーの名前、ページ番号、ソース・データベースの名前またはその他の説明情報が表示されます。タイトルは、ユーザーが生成し、省略可能です。ページ、列および行の見出しは、レポート・ページ上のデータを明確に説明するために必要なので、自動的に生成されます。

                { STARTHEADING
    TEXT   1 "Prepared by:"       
          14 "*USERNAME"        
           C "The Electronics Club"       
          65 "*PAGESTRING" 
    TEXT  65 "*DATE" 
    SKIP  
    ENDHEADING }
             
  • データ値は、データベース・セルに含まれている値です。データ値は、メンバーの組合せの検索結果、またはレポート・エクストラクタでのレポート実行時の計算結果です。各データ値は、ページ見出し、列見出しおよび行名のメンバーの組合せです。

    行のすべてのデータ値は、その行の行名のプロパティを共有します。レポートにはゼロ個以上の行名次元を使用できます。各行名次元は、行名の列を生成します。最も内側の行名の列が最も速く循環します。

レポート・スクリプトのパート

レポート・スクリプトは、一連のレポート・ライター・コマンドで構成され、感嘆符(!)レポート出力コマンドで終了します。

レポート・スクリプト・ファイルに1つ以上のレポート・スクリプトを入力できます。レポート・スクリプト・ファイルは、レポート・スクリプト・エディタまたは任意のテキスト・エディタで作成するテキスト・ファイルです。

レポート・スクリプトを作成するには、レイアウト、メンバーの選択およびフォーマットを定義するコマンドをレポート・スクリプト・エディタで入力または選択します。スクリプトのそれぞれの要素は、読みやすくするために色分けされます。構文のオートコンプリートを使用可能にして、スクリプトをすばやく作成できます。

レポート・ライターのコマンドでは、データ抽出およびフォーマットの2つの処理が実行されます:

  • 抽出コマンドは、データベースから抽出された生データの選択、向き、グループ化および配列を処理します。小なり記号(<)から始まるコマンドです。

  • フォーマット・コマンドでは、レポートのフォーマットと表示形式のカスタマイズ、新しい列の作成、列と行の計算を行うことができます。このコマンドは、通常、中カッコ({ })で囲まれています。ただし、一部のコマンドは小なり記号(<)で始まります。

  • 感嘆符(!)は、一連のコマンドを終了し、データベースからの情報を要求します。同じレポート・ファイル内に、1つ以上のレポート・スクリプトを、それぞれの!コマンドで終了させて配置することができます。

レポート・コマンドの詳細は、『Oracle Essbaseテクニカル・リファレンス』を参照してください。

レポートについてのプランニング

レポートの設計は、情報の提示にとって重要です。適切な要素を入れ、優れた読みやすいレイアウトに情報を配置します。

  レポートをプランニングするには:

  1. レポートで求められる要件と、レポートの生成に必要な期間を考慮します。

  2. レポートの下絵を大まかに作成します。次のアイテムを含めます:

    • レイアウト

    • 列数

    • メンバー

    • 必要な場合はタイトル

    • データ値のフォーマット

  3. 下絵を確認します。ほとんどの場合、この段階で、追加のデータまたはフォーマットが必要かどうかがわかります。

  4. レポートの実行時間を最適化する方法を決めます。

    レポート・スクリプトを最適化する方法の詳細は、レポートおよび他の取得機能の最適化を参照してください。

    注:

    レポートをプランニングするときには、できるだけ行名を数字で表さないようにしてください。あいまいにならないように、行に説明的な名前を付けてください。

セキュリティと複数ユーザーの問題に関するガイドライン

レポート・スクリプト・エディタを使用して、レポート・スクリプトを作成または変更するときには、Administration Servicesを使用する必要があります。任意のテキスト・エディタを使用して、スクリプト・ファイルを作成できます。レポート・スクリプト・エディタを使用した場合、デスクトップ・コンピュータだけでなく、Essbaseサーバーに保管されているレポート・スクリプトも作成および変更できます。サーバーに保管されているレポート・スクリプトを変更するには、アプリケーション・マネージャまたはデータベース・マネージャのアクセス権が必要です。

Essbaseでは、複数のユーザーによるデータベースへの同時アクセスをサポートします。ほとんどの複数ユーザー環境と同様、Essbaseでは、重要なデータをセキュリティ・システムで保護します。ユーザーは、正しい権限がある場合にのみデータの読取りまたは更新ができます。

レポート・スクリプトを実行すると、Essbaseのセキュリティによって、レポートの指定されたすべてのデータ・メンバーに対して読取り以上のアクセス・レベルがユーザーにあることが確認されます。メンバーをスプレッドシートに取り込むプロセスと同じフィルタ・プロセスでは、Essbaseによって、ユーザーの権限が足りないメンバーが出力から除外されます。

データのレポートのみを行うユーザーには、他のユーザーによって行われたロックは透過的です。ユーザーがロックしていて、レポートに必要なデータの一部を更新している場合でも、ロックがレポートを妨げることはありません。レポートのデータは、レポートを実行した時点でのデータベースのデータを表します。同じレポートを後で実行すると、前回のレポート実行後に行われた変更が反映されます。

Essbaseセキュリティ・システムの詳細は、EPM Systemセキュリティ・モードでのユーザーの管理およびセキュリティを参照してください。

レポート・スクリプト作成プロセスの確認

この項では、レポート・スクリプトを作成するプロセスについて説明します。

  1. レポート・スクリプトを作成します。

    レポート・スクリプトの作成を参照してください。

  2. レポート・スクリプトの構文を確認します。

    Oracle Essbase Administration Services Online Helpの「スクリプト構文の検査」を参照してください。

  3. レポート・スクリプトを保存します。

    レポート・スクリプトの保存を参照してください。

  4. レポート・スクリプトを実行します。

    レポート・スクリプトの実行を参照してください。

  5. 必要に応じて、レポートを保存します。

    Oracle Essbase Administration Services Online Helpの「レポートの保存」を参照してください。

レポート・スクリプトの作成

データベースのデータに関してレポートするには、次のいずれかの方法を使用します:

  • レポート・スクリプト・エディタ。多次元データの多数のページで構成される大規模なレポートを作成するには、レポート・スクリプト・エディタを使用します。この規模のレポートは、ほとんどの場合、最も強力なスプレッドシートの機能も超える可能性があります。レポート・ライター・コマンドを使用して、フォーマット済レポートの定義、Essbaseデータベースからのデータのサブセットのエクスポートおよびフリーフォーム・レポートの作成を行うことができます。Oracle Essbase Administration Services Online Helpの「スクリプトの作成」を参照してください。

  • テキスト・エディタ。

  • スプレッドシート。フリーフォーム・モードまたはテンプレート取得モードでスプレッドシートのレポート・コマンドを使用します。

  • Essbase API。C、Visual BasicおよびグリッドAPIを使用したレポートの生成および『Oracle Essbase APIリファレンス』を参照してください。

  • サードパーティ製レポート生成ツール。

Administration Servicesでのレポート・スクリプトの作成と編集の詳細は、Oracle Essbase Administration Services Online Helpの「レポート・スクリプト・エディタについて」を参照してください。

レポート・スクリプトの保存

次のいずれかとして、レポート・スクリプトを保存できます:

  • クライアント・コンピュータおよびネットワーク上のファイル。

  • Essbaseサーバー上のアーティファクト。他のユーザーがレポート・スクリプトにアクセスできるようにするには、そのスクリプトをEssbaseサーバーに保存します。スクリプト・アーティファクトと次のアーティファクトを関連付けることができます:

    • アプリケーションとそのアプリケーション内のすべてのデータベース。これにより、アプリケーション内の任意のデータベースに対して、スクリプトを実行できます。

    • データベース。これにより、指定したデータベースに対してスクリプトを実行できます。

レポート・スクリプトには、デフォルトで.rep拡張子が付いています。レポート・スクリプトをAdministration Servicesで実行する場合には、そのスクリプトに.rep拡張子が必要です。

  レポート・スクリプト・エディタを使用してレポート・スクリプトを保存するには、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「レポート・スクリプトの保存」を参照してください。

レポート・スクリプトの実行

Administration Servicesを使用してレポート・スクリプトを実行すると、その結果を「レポート・ビューア」ウィンドウ、プリンタまたはファイル(あるいは3つすべて)に送信できます。「レポート・ビューア」ウィンドウでは、レポートを印刷、保存およびコピーできます。

Administration Servicesを使用すると、レポートをバックグラウンドで実行できるので、レポートの処理中でも作業を続けることができます。バックグラウンド・プロセスのステータスを確認して、レポートが完了した時間を確認できます。

Oracle Essbase Administration Services Online Helpの「レポート・スクリプトの実行」を参照してください。

レポート・スクリプトのコピー

レポート・スクリプトは、権限に応じて、Essbaseサーバー上のアプリケーションとデータベースにコピーできます。アプリケーション移行の一部として、サーバー間でスクリプトをコピーすることもできます。

  レポート・スクリプトをコピーするには、次のツールを使用します:

ツール

トピック

場所

Administration Services

スクリプトのコピー

Oracle Essbase Administration Services Online Help

MaxL

alter object

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

COPYOBJECT

『Oracle Essbaseテクニカル・リファレンス』

フリーフォーム・レポートの開発

フリーフォーム・レポートは、通常、構造化レポートを作成するよりも簡単に作成できます。フリーフォームのレポート形式は、「レポート・スクリプト・エディタ」ウィンドウでのアド・ホック・レポートに最適です。

フリーフォーム・レポートでは、PAGEコマンド、COLUMNコマンドまたはROWコマンドを使用しません。そのかわりに、レポートを実行すると、一連の内部ルールから情報が集められて、レポート・エクストラクタによってレポート・スクリプトに適用されます。

次のスクリプトおよびレポートは、フリーフォーム・レポートの例です:

      Sales Colas
Jan Feb Mar 
Actual Budget
Illinois
Ohio
Wisconsin
Missouri
Iowa
Colorado
{UCHARACTERS}
Central
     !
   

次のレポートが生成されます:

                                      Sales 100

                 Jan               Feb               Mar
           Actual   Budget   Actual   Budget   Actual   Budget
          =======  =======  =======  =======  =======  =======
Illinois      829      700      898      700      932      700
Ohio          430      300      397      300      380      300
Wisconsin     490      300      518      400      535      400
Missouri      472      300      470      300      462      300
Iowa          161        0      162        0      162        0
Colorado      643      500      665      500      640      500
========      ===      ===      ===      ===      ===      ===
 Central    3,025    2,100    3,110    2,200    3,111    2,200
   

フォーマット・コマンドを使用して、特定のフォーマットをフリーフォーム・レポートに追加できます。PAGE、COLUMNおよびROWコマンドが省略されている場合、Essbaseでは、次のルールに従ってフリーフォーム・レポートをフォーマットします:

  1. レポート・エクストラクタは、レポート指定に定義されている単一の次元の最後のメンバー(レポート出力演算子!の前)を見つけます。この次元がレポートの行次元になります。残りのすべての選択は、ルール2と3に定義されているように、ページ次元または列次元になります。

  2. レポート・エクストラクタは、単一メンバー選択をサーチします。ルール1を満たしていない単一メンバーが見つかった場合、その次元はページ次元になります。

  3. レポート・エクストラクタは、ルール1または2を満たしていない残りの次元メンバーをサーチします。残りのメンバーが見つかった場合、その次元は列次元になります。列次元は、フリーフォーム・スクリプトでの選択順にネストされます。

  4. レポート・エクストラクタは、レポート指定で指定されていない次元について、データベース・アウトラインをサーチします。指定されていない次元が見つかった場合、その次元はページ次元(ルール2に定義されている、単一メンバー選択のデフォルト)になります。

  5. ある次元から1つ以上の連続するメンバーの後に続く選択が、その次元に対する事前のどの選択にも優先します。

たとえば、次のレポートは、California、Oregon、Washington、Utah、NevadaおよびWestがMarketのメンバーとして認識されます。

      Sales
Jan Feb Mar 
Actual Budget
Apr May Jun
California
Oregon
Washington
Utah
Nevada
{UCHARACTERS}
West
    !
   

レポート・エクストラクタは、このレポートにフリーフォームのフォーマット・ルールを適用します:

  1. California、Oregon、Washington、Utah、NevadaおよびWestは最後にリストされているので、レポート・エクストラクタは、これらをROW(Market)が指定されている場合と同様に扱います(ルール1)。

  2. Salesはメジャー次元からの単一メンバー選択です。レポート・エクストラクタは、このメンバーをPAGE(Measures)が指定されている場合と同様に扱います(ルール2)。

  3. レポート・エクストラクタは、残りのメンバーをサーチすると、年次元とシナリオ次元のメンバーを検出します。このメンバーをCOLUMN(Year, Scenario)として扱います(ルール3)。

  4. レポート・エクストラクタは、データベース・アウトラインをサーチし、製品次元がレポート指定で指定されていないことを検出します。製品は単一メンバー選択なので、レポート・エクストラクタはこのメンバーをPAGE(Product)が指定されている場合と同様に扱います(ルール4)。

  5. 最後に、レポート・エクストラクタは、Apr May JunがJan Feb Marと同じ次元に含まれ、スクリプトの後続の行に表示されていることを検出します。レポート・エクストラクタは、最初の指定(Jan Feb Mar)を破棄して、2番目の指定(Apr May Jun)を使用します。

次のレポートが生成されます:

                                      Product Sales

                        Actual                  Budget
                 Apr     May     Jun     Apr     May     Jun
             =======  ======  ======  ======  ======  ======
California     3,814   4,031   4,319   3,000   3,400   3,700
Oregon         1,736   1,688   1,675   1,100   1,000   1,100
Washington     1,868   1,908   1,924   1,500   1,600   1,700
Utah           1,449   1,416   1,445     900     800     800
Nevada         2,442   2,541   2,681   1,900   2,000   2,100
======         =====   =====  =====    =====   =====   =====
  West        11,309  11,584  12,044   8,400   8,800   9,400
   

注:

フリーフォーム・モードでは、代替変数を使用できません。