新しいディメンション構築ルールの作成

Essbase Webインタフェースでルール・エディタを使用して、ディメンション構築ルールを作成しテストします。フラット・ファイルまたは様々な外部ソースからのデータを使用して、Essbaseキューブ内にディメンションを構築します。この例では、フラット・ファイルを使用します。

既存のルール(アプリケーション・ワークブックからのデプロイ時に作成されるルールなど)に変更を加えると、はるかに効率的が高くなります。ただし、Essbase Webインタフェースで新しいルールを作成する場合、このトピックでは、Essbaseキューブでのディメンション・メンバーの追加および編集を目的として、それを作成するためのサンプル・フローを示します。

前提条件:

  • Sample Basicキューブをインポート/構築します。このとき、Essbaseサーバーのファイル・カタログにあるギャラリから利用可能なアプリケーション・ワークブックを使用します。

  • 次に示すようなタブ区切りのデータ・ファイルを作成し、add_product.txtという名前を付けて、Sample Basicキューブ・ディレクトリにアップロードします

    500	500-10
    500	500-10
    500	500-20
    500	500-20
    500	500-20
  1. 「アプリケーション」ページで、アプリケーション(Sample)を展開します。

  2. キューブ名(Basic)の右側にある「アクション」メニューから、インスペクタを起動します。


    インスペクタを選択したポップアップ・メニュー

  3. 「スクリプト」タブを選択して、「ルール」をクリックします。


    データベース・インスペクション・ダイアログで選択されている「スクリプト」タブ

  4. 「作成」をクリックして、「ディメンション構築(標準)」を選択します。


    データベース・インスペクション・ダイアログで、作成ボタンが押されていて、「ディメンション構築(標準)」オプションが選択されています

    ノート:

    標準のディメンション構築ルールには、フィールドの順序に関する検証要件があります。たとえば、世代1のプロパティは、世代1の後に配置する必要があります。その他の世代は、親/子の順に配置する必要があります。フィールドの順序が正しくないと、検証処理によるエラー・メッセージが表示されます。

    索引ベースのルール(BPMルールとも呼ばれる)の場合、フィールドは任意の順序に配置できます。たとえば、世代2を世代1の前に配置することも、世代1のプロパティを実際の世代1の列の前に配置することもできます。索引ベースのルールは、列の操作(結合、分割および移動)をサポートしていません。

    ディメンション構築ルールのタイプを変更するには、編集用にルールを開くときに、Essbase WebインタフェースのURLの末尾を変更します。標準タイプのルールは、URLの末尾が&type=regularです。また、索引ベースのルールは、URLの末尾が&type=indexです。

    データ・ロード・ルールには、タイプが異なるものはありません。標準のディメンション構築ルールと同様の検証ルールが存在します。

  5. 「新規ルール」ダイアログで、次のように操作します。


    各ステップで説明したオプションが入力された「新規ルール」ダイアログ

    1. ルール名を入力します。

    2. このワークフロー例ではフラット・データ・ファイルの使用を前提としているため、「ソース・タイプ」「ファイル」を選択します。アップロードしたデータ・ファイルを選択します。たとえば、「カタログ」をクリックして、add_product.txtまでナビゲートします。

      ノート:

      「ファイル」以外の他のオプションを「ソース・タイプ」として使用できます。これらは、ディメンション構築ソース・データがフラット・ファイルではなく、外部ソースであるときに使用します。
      ディメンション構築ルールに選択できるソース・タイプには、「ファイル」、「ODBC (DSNレス)」、「Oracle Call Interface (OCI)」、「データソース」および「SQLデータ・ソース(DSN)」があります。

      ディメンションの構築に外部ソースのデータを使用している場合、データのソースに対する接続のタイプに応じて、一定の前提条件を満たす必要があります。

      • Essbaseで確立された接続およびデータソースを使用してアプリケーション管理者またはサービス管理者によって事前定義された接続の場合は、ディメンション構築ルールのソース・タイプとして「データソース」を選択します。接続の準備が整っているこを確認するには、「接続とデータソースを使用した外部データへのアクセス」を参照して前提条件のステップを理解してください。
      • Essbaseサーバーで構成したODBCドライバに依存する接続の場合は、ディメンション構築ルールのソース・タイプとして「ODBC (DSNレス)」または「SQLデータ・ソース(DSN)」を選択します。接続の準備が整っているこを確認するには、「ODBC接続を使用したデータ・アクセス」を参照して前提条件のステップを理解してください。
      • OCI構文が含まれている接続文字列に依存する接続の場合は、ディメンション構築ルールのソース・タイプとして「Oracle Call Interface (OCI)」を選択します。接続の準備が整っていることを確認するには、「Oracle Call Interfaceを使用したOracle Databaseへのアクセス」を参照して、前提条件のステップを理解してください。
    3. レコード番号のフィールドは、空のままにしておきます。

    4. サンプルのデータ・ファイルはタブで区切られているため、「デリミタ」値は「タブ」に変更します。

    5. 「続行」をクリックします。

    6. ディメンション構築ルールは、未定義のフィールドと、フィールドの下のグリッドに移入されたプレビュー・データ(テキスト・ファイルからのデータ)とともに表示されます。


      ディメンションとタイプが未定義のフィールドと、テキスト・ファイルからのプレビュー・データが示された、新しいディメンション構築ルール。

      ソース・データ内の各行がレコードであり、ルールのプレビュー・データに示される行に対応します。各レコードが親子の順序で始まっていることからわかるように、データはトップダウンになっています(たとえば、500は全般的な製品カテゴリであり、500-10は具体的な製品タイプを表します)。

  6. ディメンション構築ルールでは、すべてのフィールドをディメンションにマップする必要があります。一般に、1つのディメンションを使用して、ディメンション構築ルールのすべてのフィールドに対応します。Sample Basic上で構築しているため、関連付けるディメンションはすでに存在しています。ただし、新しいキューブを作成する場合はディメンションが存在しないため、ディメンションを作成してルールにマップする必要があります。

    Sample Basicを使用するかわりに、ディメンションの存在しない新しいキューブで作業を進める場合を除いて、次のステップは省略してください。または、新しいディメンションを追加する場合は、この手順を使用します。

    1. ディメンションを作成してマップする場合は、「ディメンション」をクリックします。
      ルール・エディタの「ディメンション」ボタン

    2. ディメンション名「Products」を入力します。「追加」をクリックします。
  7. フィールド1の「ディメンション」をクリックし、「Product」を選択してディメンションとフィールド1を関連付けます。


    フィールド1の「ディメンション」ボックスから選択可能なProductディメンション

    Productは、このルールのすべてのフィールドの「ディメンション」セレクタに移入されています。これが許容されるのは、この演習例では、Essbaseキューブ内の1つのディメンションにのみ基づいて構築するルールを設計しているためです。

  8. フィールドごとにフィールド・タイプを選択します。

    1. フィールド1には、タイプとして「親」を選択します。


      タイプが「親」の場合のフィールド1の選択

    2. フィールド2には、タイプとして「子」を選択します。

    この時点で、ルールは次のようになっています。


    Productの親として定義され、プレビュー列の値が500のフィールド1。Productの子として定義され、プレビュー列の値が500-10と500-20のフィールド2。

  9. ルールを検証してから、保存して閉じます。

  10. キューブ・インスペクタを閉じてから、「ジョブ」をクリックしてディメンション構築ルールをテストします。

  11. 「新規ジョブ」「ディメンションの構築」の順にクリックします。

    • 「アプリケーション」には、「Sample」を選択します。
    • 「データベース」には、「基本」を選択します。
    • 「スクリプト」では、Sample Basicディレクトリに作成したルール・ファイルまでナビゲートします。
    • 「ロード・タイプ」には、「ファイル」を選択します。
    • 「データ・ファイル」では、前提条件ステップでアップロードしたテキスト・ファイルまでナビゲートします。

    「ディメンションの構築」ダイアログ

  12. ジョブのステータスが「完了」になるまでリフレッシュ・アイコンをクリックします。

  13. 「アプリケーション」ページで、アプリケーション(Sample)を展開します。

  14. キューブ名(Basic)の右側にある「アクション」メニューから、「アウトライン」をクリックします。

  15. Productsディメンションを展開して、新しい製品500がその子とともに追加されていることを確認します。


    アウトライン・ビューアのProductディメンション。新しい製品カテゴリ500が子の500-10および500-20とともに追加されていることを確認できるように展開されています

特別演習: コメントの追加

前述のステップでは、標準のディメンション構築ルールを使用して、Sample Basicキューブに製品メンバーを追加しました。このトピックでは、新しいメンバーのプロパティを変更するために索引ベースのルールを作成します。

  1. 次の内容が含まれているaddcomment.txtという名前のファイルをSample Basicディレクトリにアップロードします。

    500,"New product added 2021"
  2. AddCommentという名前で索引ベースのルールを作成し、アップロードしたテキスト・ファイルでルールをプレビューします。

  3. フィールド1では、「ディメンション」をProductに設定し、「タイプ」「参照メンバー」に設定して、「世代」を2に増分します。

  4. フィールド2では、「タイプ」「コメント」に設定して、「世代」を2に増分します。


    Product、参照メンバー、2として定義されたフィールド1。Product、コメント、2として定義されたフィールド2。

  5. 「ディメンション」、Product、「詳細」の順にクリックします。

  6. 「プロパティの変更可能」を選択して、「OK」をクリックします。


    「プロパティの変更可能」が有効化されているルールの詳細ディメンション・プロパティ

  7. ルールを検証してから、保存して閉じます。

  8. ディメンション構築ジョブを実行します。

  9. アウトラインを表示し、Productメンバー500のプロパティを調べて、コメントが追加されていることを確認します。


    「説明」フィールドにコメントが追加されていることを示している、メンバー500のメンバー・インスペクタ