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

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

フィールドの無視

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

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

列を無視するには、その列を選択して「分割」をクリックします。
ディメンション構築ルールでの無視されたフィールド

文字列の無視

ディメンション構築またはデータ・ロードの間にEssbaseで特定のソース・データ・フィールド(特定の文字を含むフィールドなど)を無視するには、ルールのソース・プロパティを使用して、照合する文字列またはトークンの条件を指定します。

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

ソース・データの文字列/トークンを無視するには:

  1. ルール・エディタで、「ソース・プロパティ」をクリックします。


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

  2. 無視する文字列を「無視するトークン」に入力します。


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

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

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

フィールドの移動

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

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

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

フィールドを移動するには:

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


    ルール・エディタのフィールドはクリックすることで選択されます

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


    フィールド2を選択して、「移動」ボタンが押されています

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


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

フィールドの追加

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

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

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

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

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


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

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


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

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


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

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


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

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


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

フィールドの結合

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]

開始するには:

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

  2. [と入力します。

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


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

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

  4. ]と入力します。

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


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

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


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

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


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

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

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


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

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

  8. ピリオドと大カッコの静的値を追加して、次に示す目的の形式の修飾メンバー名が含まれるフィールドを構築できるまで結合の実践を続けてください。

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

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

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

  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ディメンション構築ルールまたはデータ・ロード・ルールで、1つのフィールドを2つのフィールドに分割できます。

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

フィールドを分割するには:

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


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

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

  3. 分割位置(左から右に向けて数えた文字数)を指定します。たとえば、10500-から分離するには、分割位置4を指定します。


    分割位置4

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

フィールドのコピー

Essbaseディメンション構築ルールまたはデータ・ロード・ルールで、元のフィールドを変更せずにフィールドのコピーを作成できます。

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

フィールドをコピーするには:

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


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

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


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

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

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

フィールドのマッピング

データ・ロード・ルールでEssbaseメンバー名にソース・データ・フィールドをマップできます。

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

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

ノート:

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

  1. マップされていないデータ・ロード・ルールのフィールドを選択します。


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

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

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


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

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


    フィールド1がJanという名前のデータ・フィールドであること示す、メンバー・セレクタのフィールド・プロパティ

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

フィールド名の変更

データ・ロードの間にEssbaseアウトラインのディメンション名と照合するように、ルール内のフィールドに名前を指定できます。

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

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

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

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

フィールドの命名

フィールドに名前を付けるには:

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


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

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


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

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


    フィールド・プロパティの「フィールド名」ボックスに

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

テキスト文字列の置換

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

フィールドの文字列を置換するには:

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


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

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


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

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

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

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

  6. 「検索」「置換」の値を入力します。たとえば、CACaliforniaに置換します。


    「フィールド・プロパティ」、「置換」が選択されている「フィルタ」タブ。検索文字列はCAです。また、置換文字列はCaliforniaです。「大/小文字を区別」が選択されています

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

    • 大/小文字を区別する
    • 単語が完全に一致した場合にのみ置換する。たとえば、文字列100 10 110をAに置換する場合は、「完全に一致する語」を選択すると、文字列が100 A 1に変更されます。「完全に一致する語」が選択解除されたままの場合、文字列はA0 10 1に変更されます。
    • 文字列のすべての出現箇所を置換する。たとえば、文字列100 10 1のすべての10の出現箇所をAに置換するために「すべて置換」を選択すると、文字列はA0 A 1に変更されます。
  8. 「OK」をクリックします。ルールを検証してから保存します。

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

データ・ロード時またはディメンション構築時に、フィールドがEssbaseメンバー名にマップされるように、フィールドの大文字と小文字を変更できます。データソースは変更されません。たとえば、データベースで小文字(jan)のフィールドがデータソースでは大文字(JANなど)表記される場合、ルール・ファイルを使用してフィールドを小文字に変更できます。

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


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

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


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

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


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

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

先頭スペースおよび末尾スペースの削除

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

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


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

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


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

  3. 「切捨て」をクリックします。

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

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

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

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

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


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

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


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

  3. 「スペースをアンダースコアに変換」をクリックします。

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

フィールド値への接頭辞または接尾辞の追加

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

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


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

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


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

  3. 追加する接頭辞または接尾辞を入力します。


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

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