文字列の一致に基づくメンバーの追加

Essbaseアウトラインに新しいメンバーを追加する必要があるが、ソース・データでそれらの祖先が指定されていない場合は、文字列一致に基づいてそれらを名前が似ているメンバーに兄弟として追加するディメンション構築ルールを設計できます。「一致文字列の兄弟として追加」 ディメンション構築方法を使用します。

この構築方法を使用した場合は、Essbaseでソース内に新規メンバーが検出されると、テキストが似ているメンバー名がないかアウトラインがスキャンされ、その新規メンバーが、名前の文字列が最も類似するメンバーの兄弟として追加されます。

たとえば、次のデータのテキスト・ファイルには、Productディメンションに追加される2つの新規メンバー(100-11および200-22)が含まれています。新規メンバーには、Productディメンションの文字列と同様に、3桁の数字、ダッシュ、2桁の数字が含まれています。

100-11	Texas	Sales	100	120	100
200-22	Texas	Sales	111	154	180

次の階層には、100の兄弟として追加された100-11と、200の兄弟として追加された200-22が示されています。


このイメージは、既存メンバーの兄弟として追加された新規メンバーを示しています。

この例を再現するには、次のようにします。

  1. Sample Basicキューブをインポートまたは構築します。その際には、Essbaseサーバーにあるファイル・カタログ内のギャラリから入手可能な、アプリケーション・ワークブックを使用します。

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

    100-11	Texas	Sales	100	120	100
    200-22	Texas	Sales	111	154	180
  3. 「アプリケーション」ページで、アプリケーション(Sample)を展開します。

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


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

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


    データベース・インスペクション・ダイアログで「スクリプト」タブが選択されており、「ルール」が強調表示されています

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


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

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

    1. ルール名を入力します(例: stringmatch)。

    2. 「ソース・タイプ」「ファイル」を選択し、「カタログ」をクリックし、stringmatch.txtに移動します。

      「カタログ」をクリックする場合、そのファイルは、デフォルトではEssbaseサーバー上のキューブ・ディレクトリに配置されると想定されているため、Essbase Webインタフェース「ファイル」セクションを使用してすでにアップロードしてある必要があります。そのファイルがクライアント・マシンにある場合は、「ファイル・ブラウザ」をクリックしてそのファイルを特定します。

    3. 「ヘッダー・レコード番号」および「ディメンション構築レコード番号」フィールドは0のままにします。ヘッダー・レコードは、ディメンション構築には役立ちません。

    4. 「デリミタ」の値を「カンマ」から「タブ」に変更します。

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

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


      stringmatchという名前の未完成の新規ルール。フィールド1から6のフィールド・メタデータは、フィールド・セレクタでは空白になっています。レコードはフィールド・セレクタの下に移入され、手順2の.txtファイル内のデータと一致しています。

  8. これは新しいルールであるため、ディメンションはまだ関連付けられていません。

    1. 「ディメンション」をクリックします。
      ルール・エディタの「ディメンション」ボタン

    2. ディメンション名「Product」を選択または入力し、「追加」をクリックします。
  9. 次は、構築方法を定義し、他のディメンション構築操作手順を確認する必要があります。「Product」をクリックしてそのプロパティを編集します。
    「ディメンションの編集」ダイアログ内のクリック可能な「Product」ディメンション名。

  10. 「構築方法」「一致文字列の兄弟として追加」に変更し、その下の「メンバー名」フィールドを空白のままにします。


    「一致文字列の兄弟として追加」構築方法が選択されている、ディメンション構築ルール・エディタ内の「ディメンションの編集」ダイアログの図。他のオプションはすべてデフォルトのままになっています。

    「OK」をクリックします。

  11. フィールド1で「ディメンション」セレクタをクリックし、「Product」を選択します。


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

  12. フィールド1の「タイプ」セレクタは空白のままにします。

  13. フィールド2から6までを選択します。これを行うには、フィールド2というラベルが付いた非アクティブなヘッダー領域をクリックし、[Shift]キーを押したまま、フィールド6ヘッダー領域をクリックします。「無視」をクリックします。


    stringmatchという名前の完成した新しいルール。メンバーを名前が最も似ているメンバーに兄弟として追加するように設計されています。フィールド1から6のフィールド・メタデータには、ディメンションの「Product」が含まれており、「タイプ」は空白のままです。レコードはそれらのフィールドの下に移入されます。フィールド2から6は、ディメンション構築の間は無視されるようにマークされています。

    そのため、このルールは各レコードの最初のフィールドにのみ影響します。フィールドの無視は、ディメンション構築にソース内のすべてのフィールドを使用する必要はなく別のソースを準備する必要もない場合に役立ちます。

  14. ルールを検証してから、保存して閉じます。エラーがある場合は、「有効なディメンション構築ルール・ファイルの要件」を参照してください。

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

  16. アウトラインを表示し、子Productメンバー100と200を調べて、それらのメンバーが追加されたことを確認します。


    Essbase Webインタフェースにあるアウトライン・ビューア。Productディメンションが展開され、メンバー100と200の子が表示されており、2つの新しいメンバー(100-11と200-22)が追加されています。

表14-1 文字列一致を使用したメンバー追加の要約

フィールド 詳細情報

Productディメンション

「一致文字列の兄弟として追加」の構築方法を選択する

構築方法の選択

フィールド1 (Product)

  • このフィールドのフィールド・タイプは選択しない

  • フィールドのディメンションをProductに設定する

ディメンション構築のフィールド・タイプ情報の設定

フィールド2から6

フィールドを無視する

フィールドの無視