フィールドに対する操作の実行

Essbaseによるディメンションの構築方法またはデータのロード方法をカスタマイズするには、ソース・データのフィールドに対して操作を実行するルールを設計します。このルールを使用して、フィールドの追加、結合、分割、コピー、名前変更および移動、フィールドまたは文字列の無視、およびデータ・フィールドのメンバー名へのマップを行うことができます。

フィールドを無視

ディメンションの構築時またはデータのロード時に、Essbaseでソース・データの1つ以上のフィールドをスキップするには、ロード・ルールを使用してこれらのフィールドを無視します。

ソースから無視されたフィールドは、Essbaseキューブにロードされません。たとえば、Sample.Basicキューブには5つの標準ディメンション(Year、Product、Market、MeasuresおよびScenario)があります。ソース内にどのディメンションのメンバーでもない追加フィールド(SalesPersonなど)がある場合は、そのSalespersonフィールドを無視するようにEssbaseに指示できます。

Essbaseデータ・ロードまたはディメンション構築時に列を無視するには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. 不要なフィールドを選択し、「無視」をクリックします。


    ルールで無視されたフィールド

  3. ルールを検証して保存します。

文字列を無視

ディメンション構築またはデータ・ロード(特定の文字を含むものなど)中にEssbaseで特定のソース・データ・フィールドが無視されるようにするには、ルールのソース・プロパティを使用して、一致する文字列/トークン基準を指定します。

データ・ロードおよびディメンション構築のルールでは、文字列(トークンと呼びます)と一致するソースのフィールドを無視できます。文字列値に基づいてフィールドを無視すると、そのフィールドは、特定の列内に限らず、ソース・データ内のどこにあっても無視されます。たとえば、ソースがコンピュータで生成されたテキスト形式のレポートの場合、ページ間の水平線や見出しの囲み枠を、特殊なASCII文字を使用して作成されていることがあります。これらの特殊文字をトークンとして定義し、無視されるようにできます。

Essbaseディメンション構築中にソース・データの文字列/トークンを無視するには、

  1. Essbase Webインタフェースでディメンション構築ルールを開きます。

  2. 「ソース・プロパティ」をクリックします。


    ルール・エディタの「ソース・プロパティ」ボタン

  3. 「詳細」タブの「無視するトークン」に、無視する1つ以上の文字列を空白で区切って入力します。


    ルール・ファイルの「ソース・プロパティ」、「無視するトークン」に&&およびUNDEFINEDがリストされており、「トークン結合方法」はANDに設定されています

  4. 複数の文字列を入力した場合は、「トークン結合方法」で「AND」または「OR」を選択して、文字列の照合が論理的なANDまたはORのどちらで実行されるかを制御します。「AND」を選択した場合、無視されるようにするには、ソースに両方の文字列が存在している必要があります。「OR」を選択した場合は、そのどちらかが存在している必要があります。

  5. 「OK」をクリックします。ルールを検証して保存します。

フィールドの移動

ルールを使用して、Essbaseでディメンションの構築時またはデータのロード時に、ソース・データの1つ以上のフィールドを移動させます。ルールのフィールドを移動すると、ソース・レコードをアウトラインに合せて配置する必要がある場合に役立ちます。

ルール・ファイルを使用して、フィールドを別の場所に移動できます。たとえば、データ・ロードまたはディメンション構築時に、ソース・データの最初のフィールドが3番目のフィールドになるように指定できます。

移動操作は、任意のフィールド順序が可能な索引ベースのディメンション構築ルールでは利用できません。

Essbaseデータ・ロード・ルールまたはディメンション構築ルールのフィールドを移動するには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. フィールドを選択します。


    フィールドは選択されていて、500-10の値が含まれています

  3. 「移動」をクリックします。

  4. 移動先の位置を指定して、「OK」をクリックします。


    数値セレクタが付属している「フィールド移動先」ラベルと、「OK」および「取消」ボタン

  5. ルールを検証して保存します。

フィールドの追加

ルールへのフィールドの追加は、Essbaseアウトラインへの新規メンバーまたはデータの追加、結合の準備、修飾メンバー名の構築、またはEssbaseディメンション構築またはデータ・ロードに必要なその他の操作の実行に役立ちます。

ロード・ルールに新しいフィールドを追加するには、次のようにします。

  • 既存のフィールドを選択して新しいフィールドを追加すると、新しい列が既存の列の左側に追加されます。

  • フィールドを選択しないと、新しいフィールドは最後(すべての既存のフィールドの右側)に追加されます。

次のディメンション構築ルールの例では、既存の世代3フィールドの前に世代2フィールドを追加するとします。


ディメンション構築ルールのフィールド1。関連付けられているディメンションは「Market」です。タイプは「世代」、世代番号は3です。世代名はSTATEです。

Essbaseデータ・ロード・ルールまたはディメンション構築ルールにフィールドを追加するには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. フィールドを選択して強調表示します。


    フィールド1が選択されています

  3. 「作成」→「標準」をクリックします。


    フィールド1が選択され、フィールド操作として「作成」→「標準」が選択されています。

    フィールド1が移動してフィールド2になり、新しいフィールド1が追加されます。


    新しい空白のフィールド1が元のフィールド(現在はフィールド2)の左側に追加されます。

  4. 追加したばかりのフィールドに関して必要な情報を入力します。


    ディメンション構築ルールのフィールド1およびフィールド2。フィールド1: 関連付けられているディメンションは「Market」、タイプは「世代」、世代番号は「2」、世代名は「REGION」です。フィールド2: 関連付けられているディメンションは「Market」、タイプは「世代」、世代番号は「3」、世代名は「STATE」です。

  5. ルールを検証して保存します。

結合フィールド

Essbaseディメンション構築ルールまたはデータ・ロード・ルールでは、複数のフィールドを1つのフィールドに結合できます。新しいフィールドには、結合された最初のフィールドの名前が付けられます。

たとえば、ソース・データに製品番号(100)と製品ファミリ(-10)に対応する個別のフィールドがある場合は、Sample.Basicキューブにロードする前に、それらのフィールドを結合(100-10)するためのルールを使用する必要があります。

次に示すディメンション構築ルールとプレビューについて考えてみます。


フィールド1には製品世代2が含まれていて、すべての行のプレビュー値は500になっています。フィールド2には製品世代3が含まれていて、プレビュー値は500-10や500-20などのようになっています。フィールド3には製品世代4が含まれていて、プレビュー値は500-10-10や500-10-20などのようになっています。

次の演習では、フィールドを結合して次の形式の修飾メンバー名を作成することを目標とします。

[500].[500-10].[500-10-10]

フィールド3/第4世代を新しい修飾メンバー名書式に置き換えることができます。

Essbaseディメンション構築ルールで結合および分割を使用して必須フィールドを構築するには、

  1. フィールドの選択 1


    フィールド1は「Category」という名前の製品世代2を含み、すべての行のプレビュー値は500になっています。

  2. 「作成」→「静的値」をクリックします。

  3. [と入力し、「OK」をクリックします。

    フィールド1は、入力した文字が含まれた新しいフィールドで置換され、その他のフィールドは右側にシフトされます。


    フィールド1には[が含まれます。フィールド2には製品世代2が含まれていて、すべての行のプレビュー値は500になっています。フィールド3には製品世代3が含まれていて、プレビュー値は500-10や500-20などのようになっています。フィールド4には製品世代4が含まれていて、プレビュー値は500-10-10や500-10-20などのようになっています。

  4. フィールド3を選択して、「作成」>「静的値による」の順にクリックします。

  5. []と入力し、「OK」をクリックします。

    フィールド3は、入力した文字が含まれた新しいフィールドで置換され、フィールド4と5は右側にシフトされます。


    フィールド1には[が含まれます。フィールド2には製品世代2が含まれていて、すべての行のプレビュー値は500になっています。フィールド3には].が含まれます。フィールド4には製品世代3が含まれていて、プレビュー値は500-10や500-20などのようになっています。フィールド5には製品世代4が含まれていて、プレビュー値は500-10-10や500-10-20などのようになっています。

  6. フィールドの選択 1


    フィールド1は選択されていて、[が含まれています。フィールド2は選択解除されていて、500が含まれています。フィールド3は選択されていて、]が含まれています。

  7. [Shift]キーを押しながらフィールド2と3をクリックして、現在の選択にフィールド2と3を追加します。


    フィールド1、2および3のすべてが現在選択されていて、それぞれの値は[、500および]になっています。

  8. 「結合」をクリックします。

    フィールド1、2および3は、新しいフィールド1に結合され、[500]が含まれています。


    フィールド1、2および3は、新しいフィールド1に結合され、[500]が含まれています。

    結合したフィールドに誤った向きの大カッコが含まれている場合(たとえば、]500[)、フィールドの選択順序がフィールド1、2、3ではなく、フィールド3、2、1になっていた可能性があります。選択の順序は、結合の動作に影響します。この状態を修正するには、不適切に結合されたフィールドを選択し、「分割」をクリックして(位置1の次に位置3を使用)、選択順序を逆にしてから「結合」をクリックして試してみます。

  9. 「作成」>「結合」を使用して残りの世代フィールド(世代3および4)をコピーし、目的の形式の修飾メンバー名を含むフィールドを作成するまで、期間および大カッコの静的値をさらに追加します。

    [500].[500-10].[500-10-10]
  10. 列操作(結合、分割、移動および静的値の作成を含む)の履歴を確認する必要がある場合は、「列操作」をクリックして、最近の操作のリストを表示してください。直前の操作を取り消すことができます。


    ルール・エディタで実行された最新の列編集操作をリストする「列操作」ダイアログ

  11. ルールの編集を終了し、検証して保存します。この演習の最後の目標は、「Generation 4」フィールドを置き換えて、修飾メンバー名を使用することです。この例では、(フィールド4の)元の第4世代フィールドは、フィールド3で置き換えられたため無視されるようになりました。


    フィールド1には製品世代2が含まれていて、すべての行のプレビュー値は500になっています。フィールド2には製品世代3が含まれており、プレビュー値は500-10や500-20などのようになっている。フィールド3には製品世代4が含まれ、プレビュー値は[500].[500-10].[500-10-10]、 [500].[500-10].[500-10-20]などのようになっています。フィールド4は無視されます。

フィールド式(索引ベースのディメンション構築ルールに使用可能)

索引ベースのルールには、分割、結合および移動の列操作はありませんが、フィールド式を使用することでフィールドの結合などの操作を実行できます。

  1. フィールドを選択し、「式」をクリックして、フィールドに演算式を追加します。

  2. 2つの列を結合するには、関数をクリックして、引数として列インデックスを指定します。例


    索引ベースのディメンション構築ルールの「フィールド式」ダイアログこの例の式は、join(column1,column5)です。Substring関数も使用できます。

結合付きフィールドの作成

前のトピックの「結合フィールド」では、結合によってEssbaseディメンション構築ルールの既存のフィールドが置換されました。

元のフィールドをそのままにして、結合したフィールドを新しいフィールドに配置することにより、フィールドを結合することもできます。ルールでのフィールドの作成は、ソース・データのフィールドを連結してEssbaseアウトラインにメンバーを作成する必要がある場合に役立ちます。

たとえば、データ・ソースに製品番号(例: 100)と製品ファミリ(例: -10)に対応する個別のフィールドがある場合、それらのフィールドは結合(例: 100-10)してからSample.Basicキューブにロードする必要がある場合があります。ただし、ソース内の2つの既存フィールドを維持する場合は、結合を使用してフィールド(100-10)を作成し、元のフィールド(100および-10)を保持できます。

次に示すディメンション構築ルールとプレビューについて考えてみます。


フィールド1には製品世代2が含まれていて、すべての行のプレビュー値は500になっています。フィールド2には製品世代3が含まれていて、プレビュー値は500-10や500-20などのようになっています。

目標は、次の形式の世代4フィールドを追加することとします。

500-500-10

はじめに、

  1. フィールド2を選択して、「作成」>「静的値による」の順にクリックします。

  2. ハイフン-を入力して、「OK」をクリックします。


    フィールド1には製品世代2が含まれていて、すべての行のプレビュー値は500になっています。フィールド2には、ハイフンが含まれています。フィールド3には製品世代3が含まれていて、プレビュー値は500-10や500-20などのようになっています。

  3. フィールド1、2、3を選択(この順序で選択)して、「作成」>「結合による」をクリックします(結合位置4を使用)。


    フィールド1には製品世代2が含まれていて、すべての行のプレビュー値は500になっています。フィールド2には、ハイフンが含まれています。フィールド3には製品世代3が含まれていて、プレビュー値は500-10や500-20などになっています。フィールド4には500-500-10などの連結された値が含まれています。

  4. 列操作(結合、分割、移動および静的値の作成を含む)の履歴を確認する必要がある場合は、「列操作」をクリックして、最近の操作の実行順のリストを表示します。

  5. フィールド2は、今後の再利用のために別の場所に移動できます。ルール機能に影響しないようにするには、それを選択してから「無視」をクリックします。

フィールド式(ディメンション構築ルールで使用可能)

索引ベースのルールには、分割、結合および移動の列操作はありませんが、フィールド式を使用することでフィールドの結合などの操作を実行できます。

  1. 「作成」>「式による」の順にクリックして、式を使用するように定義するフィールドを追加します。


    「作成」→「式による」操作は、ディメンション構築ルール対して表示されます

  2. 2つの列を結合するには、関数をクリックして、引数として列インデックスを指定します。例


    索引ベースのディメンション構築ルールの「フィールド式」ダイアログこの例の式は、join(column1,column5)です。Substring関数も使用できます。

フィールドの分割

Essbaseディメンション構築ルールまたはデータ・ロード・ルールでは、フィールドを2つのフィールドに分割できます。

この操作は結合の反対で、通常のルールでのみ使用できます。たとえば、Sample.Basicデータベースのデータソースに、UPC100-10-1を含むフィールドがある場合、フィールドからUPCを分割して無視できます。その後、製品番号100-10-1のみがロードされます。

Essbaseデータ・ロードまたはディメンション構築中にフィールドを分割するには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. フィールドを選択します。


    フィールドは選択されていて、500-10の値が含まれています

  3. 「分割」をクリックします。

  4. 分割位置と方向を文字単位で指定します。たとえば、10500-から分離するには、分割位置4を左から右に指定します。


    位置4を左から右に分割

  5. 「OK」をクリックします。ルールを検証して保存します。

フィールドのコピー

Essbaseディメンション構築ルールまたはデータ・ロード・ルールでフィールドのコピーを作成でき、元のフィールドはそのまま残ります。

たとえば、1回のディメンション構築で、複数レベルの属性ディメンションを定義して、属性を基本ディメンションのメンバーに関連付ける場合、いくつかのフィールドをコピーする必要があります。

Essbaseデータ・ロード中にフィールドをコピーするには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. コピーするフィールドを選択します。

  3. 「作成」「結合による」の順にクリックします。


    ルール・エディタでの「作成」>「結合による」の選択

  4. 複製するフィールドの番号を入力します。

  5. 「OK」をクリックします。ルールを検証して保存します。

式の使用方法を学習するには、「作成」「結合付き」が使用できない場合は、「結合付きフィールドの作成」を参照してください。

フィールドのマップ

データをロードできるように、ソース・データ・フィールドをEssbaseメンバー名にマップする必要がある場合があります。データ・ロード・ルールを使用してフィールドを作成できます。

この項の内容は、データ・ロードのみに適用されます。ディメンション構築を実行する場合、この項はスキップします。

ソース内の任意のフィールドをEssbaseキューブ内の任意のメンバーまたはメンバーの組合せにマップするかを指定することにより、データ・ロード時にソース内のフィールドをEssbaseキューブ内のフィールドに直接マップできます。ソース・データは変更されません。

ノート:

SQLデータソースを開くと、フィールドにSQLデータソース列名がデフォルト設定されます。SQL列名とEssbaseディメンション名が同じである場合、列名をマップする必要はありません。

Essbaseデータ・ロード中にフィールドをマップするには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. マップされていないフィールドを選択します。


    フィールド1が選択されています。タイプまたはメンバーのフィールドが未定義です。

  3. メンバー名を入力するか、フィールドの横にあるフィールドの編集/メンバーの選択ツールをクリックします。 メンバーの選択およびフィールドの編集のための鉛筆アイコン

  4. メンバー選択ツールを使用する場合は、このフィールドに関連付けるメンバーを検索する(または、そのメンバーまでナビゲートします)。


    Sample Basicキューブのアウトライン・ツリーが表示されている、データ・ロード・ルールのメンバー選択ツール

  5. メンバーをダブルクリックして、そのメンバーを「フィールド名」に追加します。


    メンバー・セレクタ内のフィールド・プロパティは、フィールド1がProductという名前のデータ・フィールドでないことを示しています。

  6. 「OK」をクリックします。ルールを検証して保存します。

フィールド名の変更

多くの場合、ソース・データのフィールドまたは列はEssbaseキューブの名前と一致しませんが、これによってデータのロードやディメンションの構築が妨げられることはありません。ロード・ルールを使用して、アウトラインのディメンション名と一致するフィールドに名前を付けることができます。

データ・ソースをロードするには、ソースのフィールドをキューブのディメンションとメンバーにマップする方法を指定する必要があります。ルールでは、ソースがロードされるたびに、フィールドとメンバー名が一致するようにソースのフィールドを変換できます。このプロセスによってソースが変更されることはありません。

ルール・ファイルでは次の操作を実行します。

  • ソース・ファイルのメンバー・フィールドを、キューブのディメンションとメンバーにマップします

  • ソース・ファイルのデータ・フィールドを、キューブのメンバー名またはメンバーの組合せ(Jan, Actualなど)にマップします

フィールドの命名

Essbaseデータ・ロードまたはディメンション構築時にフィールドに名前を付けるには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. フィールドを選択します。


    フィールドが選択されています。Marketディメンション、子タイプ

  3. 「フィールド・プロパティ」をクリックします。


    「フィールド・プロパティ」ボタン

  4. 「名前」フィールドに名前を入力します。名前にスペースが含まれている場合は、その名前を引用符で囲みます。


    フィールド・プロパティの「フィールド名」ボックスに"New York"が含まれています

  5. 「OK」をクリックします。ルールを検証して保存します。

テキストの文字列の置換

データ・ロードまたはディメンション構築時に、フィールドがEssbaseメンバー名にマップされるように、テキスト文字列を置換できます。データソースは変更されません。たとえば、データソースでNew YorkがNYに省略される場合、ルール・ファイルを使用して各NYをNew Yorkに置換できます。

Essbaseデータ・ロードまたはディメンション構築中に文字列を置換するには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. フィールドを選択します。


    フィールドが選択されています。Marketディメンション、子タイプ

  3. 「フィールド・プロパティ」をクリックします。

  4. 「フィルタ」タブをクリックします。

  5. 「置換」をクリックします。

  6. 「+」アイコンをクリックして、文字列置換条件を追加します。

  7. 「検索」「置換」の値を入力します。たとえば、CA Califに置き換えます。


    「置換」が選択されている「フィールド・プロパティ」、「フィルタ」タブ。検索文字列はCAで、置換文字列はCalifです。「完全一致」にチェックマークが入っています

  8. 置換操作に必要な処理を指定します。

    • 大/小文字を区別する
    • 単語が完全に一致した場合にのみ置換する。
    • 文字列のすべての出現箇所を置換する。
  9. 「OK」をクリックします。ルールを検証して保存します。

フィールドの大文字と小文字を変更する

データ・ロード時またはディメンション構築時に、フィールドがEssbaseメンバー名にマップされるように、フィールドの大文字と小文字を変更できます。データソースは変更されません。たとえば、ソース・データがキューブ・アウトライン(JAN)で制限されたinit内のフィールド(JANなど)を大文字にする場合、ルール・ファイルを使用してフィールドをFirst Letter Capitalに変更できます。

Essbaseデータ・ロードまたはディメンション構築中にフィールド・ケースを変更するには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. フィールドを選択します。


    フィールドが選択されています。Marketディメンション、子タイプ

  3. 「フィールド・プロパティ」をクリックします。

  4. 「大文字/小文字」には、受信データに対して実行する操作を選択します。


    ケース操作が展開されたフィールド・プロパティの「詳細」タブ。オプションは、「操作なし」、「小文字」、「大文字」および「最初の文字は大文字」です

  5. 「OK」をクリックします。ルールを検証して保存します。

先頭および末尾の空白の削除

ソース・データのフィールドから先頭スペースおよび末尾空白を削除できます。先頭スペースまたは末尾スペースを含むフィールド値は、スペースに囲まれた名前が完全に一致していても、メンバー名にマップされません。

Essbaseデータ・ロードまたはディメンション構築中にスペースを削除するには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. フィールドを選択します。


    フィールドが選択されています。Marketディメンション、子タイプ

  3. 「フィールド・プロパティ」をクリックします。

  4. 「詳細」タブで、「切捨て」を選択します。

  5. 「OK」をクリックします。ルールを検証して保存します。

デフォルトでは、Essbaseでは、先頭スペースおよび末尾スペースが削除されます。

スペースのアンダースコアへの変換

データソースのフィールド内のスペースをアンダースコアに変換して、そのフィールド値をデータベースのメンバー名と一致させることができます。

Essbaseデータ・ロードまたはディメンション構築中にスペースをアンダースコアに変換するには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. フィールドを選択します。


    フィールドが選択されています。Marketディメンション、子タイプ

  3. 「フィールド・プロパティ」をクリックします。

  4. 「詳細」タブで、「スペースをアンダースコアに変換」をクリックします。

  5. 「OK」をクリックします。ルールを検証して保存します。

フィールド値に接頭辞または接尾辞を追加します。

データソースの各フィールド値に接頭辞および接尾辞を追加できます。たとえば、Yearディメンションのすべてのメンバー名に2024を接頭辞として追加できます。

Essbaseデータ・ロードまたはディメンション構築中に接頭辞または接尾辞を追加するには、

  1. Essbase Webインタフェースでロード・ルールを開きます。

  2. フィールドを選択します。


    フィールドが選択されています。Marketディメンション、子タイプ

  3. 「フィールド・プロパティ」をクリックします。

  4. 「詳細」タブで、追加する接頭辞または接尾辞を入力してください。


    ESSが含まれた「接頭辞」ボックス空の「接尾辞」ボックス。

  5. 「OK」をクリックします。ルールを検証して保存します。