フィールドに対する操作の実行
Essbaseによるディメンションの構築方法やデータのロード方法をカスタマイズするには、ソース・データ内のフィールドに対して操作を実行するルールを設計します。そのルールを使用すると、フィールドの追加、結合、分割、コピー、名前変更および移動、フィールドまたは文字列の無視、およびメンバー名へのデータ・フィールドのマップができます。
フィールドの無視
ディメンションの構築時またはデータのロード時にEssbaseでソース・データの1つ以上のフィールドをスキップするには、このルールを使用してそれらのフィールドを無視します。
ソース内の無視されたフィールドは、Essbaseキューブにロードされません。たとえば、Sample.Basicキューブには5つの標準ディメンション(Year、Product、Market、MeasuresおよびScenario)があります。ソース内にどのディメンションのメンバーでもない追加フィールド(Salespersonなど)がある場合は、そのSalespersonフィールドを無視するようにEssbaseに指示できます。
列を無視するには、その列を選択して「分割」をクリックします。
文字列の無視
ディメンション構築またはデータ・ロードの間にEssbaseで特定のソース・データ・フィールド(特定の文字を含むフィールドなど)を無視するには、ルールのソース・プロパティを使用して、照合する文字列またはトークンの条件を指定します。
データ・ロードおよびディメンション構築のルールでは、文字列(トークンと呼びます)と一致するソースのフィールドを無視できます。文字列値に基づいてフィールドを無視すると、そのフィールドは、特定の列内に限らず、ソース・データ内のどこにあっても無視されます。たとえば、ソースがコンピュータで生成されたテキスト形式のレポートの場合、ページ間の水平線や見出しの囲み枠は、特殊なASCII文字を使用して作成されていることがあります。これらの特殊文字をトークンとして定義し、無視されるようにできます。
ソース・データの文字列/トークンを無視するには:
-
ルール・エディタで、「ソース・プロパティ」をクリックします。
-
無視する文字列を「無視するトークン」に入力します。
-
複数の文字列を入力した場合は、「トークン結合方法」で「AND」または「OR」を選択して、文字列の照合が論理的なANDまたはORのどちらで実行されるかを制御します。「AND」を選択した場合、無視されるようにするには、ソースに両方の文字列が存在している必要があります。「OR」を選択した場合は、そのどちらかが存在している必要があります。
-
「OK」をクリックします。ルールを検証してから保存します。
フィールドの移動
ルールを使用して、Essbaseでディメンション構築時またはデータ・ロード時にソース・データのフィールド1つ以上を移動します。ルールでのフィールドの移動は、ソース・レコードをアウトラインと一致するように配置する必要がある場合に役立ちます。
ルール・ファイルを使用して、フィールドを別の場所に移動できます。たとえば、ソース・データ内の最初のフィールドがデータ・ロードまたはディメンション構築の間に3番目のフィールドになるように指定できます。
移動操作は、任意のフィールド順序が可能な索引ベースのディメンション構築ルールでは利用できません。
フィールドを移動するには:
-
フィールドを選択します。
-
「移動」をクリックします。
-
移動先の位置を指定して、「OK」をクリックします。
フィールドの追加
ルールへのフィールドの追加は、Essbaseアウトラインへの新規メンバーまたはデータの追加、結合の準備、修飾メンバー名の構築、Essbaseディメンション構築またはデータ・ロードに必要なその他の操作の実行に役立ちます。
ロード・ルールに新しいフィールドを追加するには、次のようにします。
-
既存のフィールドを選択して新しいフィールドを追加すると、新しい列が既存の列の左側に追加されます。
-
フィールドを選択しないと、新しいフィールドは最後(すべての既存のフィールドの右側)に追加されます。
次のディメンション構築ルールの例では、既存の世代3フィールドの前に世代2フィールドを追加するとします。

-
フィールドを選択して強調表示します。
-
「作成」→「標準」をクリックします。
フィールド1が移動してフィールド2になり、新しいフィールド1が追加されます。
-
追加したばかりのフィールドに関して必要な情報を入力します。
フィールドの結合
Essbaseディメンション構築ルールまたはデータ・ロード・ルールで、複数のフィールドを1つのフィールドに結合できます。新しいフィールドには、結合された最初のフィールドの名前が付けられます。
たとえば、ソース・データに製品番号(100)と製品ファミリ(-10)に対応する個別のフィールドがある場合は、Sample.Basicキューブにロードする前に、それらのフィールドを結合(100-10)するためのルールを使用する必要があります。
次に示すディメンション構築ルールとプレビューについて考えてみます。

目標は、フィールドを結合して次の形式の修飾メンバー名を作成することと仮定します。
[500].[500-10].[500-10-10]
開始するには:
-
フィールド1を選択して、「作成」>「静的値による」の順にクリックします。
-
[と入力します。
フィールド1は、入力した文字が含まれた新しいフィールドで置換され、その他のフィールドは右側にシフトされます。
-
フィールド3を選択して、「作成」>「静的値による」の順にクリックします。
-
]と入力します。
フィールド3は、入力した文字が含まれた新しいフィールドで置換され、フィールド4と5は右側にシフトされます。
-
フィールド1を選択します。
-
[Shift]キーを押しながらフィールド2と3をクリックして、現在の選択にフィールド2と3を追加します。
-
「結合」をクリックします。
フィールド1、2および3は、新しいフィールド1に結合され、
[500]
が含まれています。結合したフィールドに誤った向きの大カッコが含まれている場合(たとえば、
]500[
)、フィールドの選択順序がフィールド1、2、3ではなく、フィールド3、2、1になっていた可能性があります。選択の順序は、結合の動作に影響します。この状態を修正するには、不適切に結合されたフィールドを選択し、「分割」をクリックして(位置1の次に位置3を使用)、選択順序を逆にしてから「結合」をクリックして試してみます。 -
ピリオドと大カッコの静的値を追加して、次に示す目的の形式の修飾メンバー名が含まれるフィールドを構築できるまで結合の実践を続けてください。
[500].[500-10].[500-10-10]
-
列操作(結合、分割、移動および静的値の作成を含む)の履歴を確認する必要がある場合は、「列操作」をクリックして、最近の操作の実行順のリストを表示します。
フィールド式(索引ベースのディメンション構築ルールに使用可能)
索引ベースのルールには、分割、結合および移動の列操作はありませんが、フィールド式を使用することでフィールドの結合などの操作を実行できます。
-
フィールドを選択し、「式」をクリックして、フィールドに演算式を追加します。
-
2つの列を結合するには、関数をクリックして、引数として列インデックスを指定します。次に例を示します。
フィールド結合によるフィールドの作成
前のトピック「フィールドの結合」では、結合によってEssbaseディメンション構築ルール内の既存のフィールドが置換されました。
たとえば、データのソースに製品番号(例: 100
)と製品ファミリ(例: -10
)に対応する別々のフィールドがある場合に、それらのフィールドを結合(例: 100-10
)してからSample.Basicキューブにロードする必要があるとします。しかしながら、ソース内の2つの既存フィールドを保持する必要がある場合は、元のフィールド(100
と-10
)を保持しながら、結合を使用して新しいフィールド(100-10
)を作成できます。
次に示すディメンション構築ルールとプレビューについて考えてみます。

目標は、次の形式の世代4フィールドを追加することとします。
500-500-10
開始するには:
-
フィールド2を選択して、「作成」>「静的値による」の順にクリックします。
-
ハイフン-を入力して、「OK」をクリックします。
-
フィールド1、2、3を選択(この順序で選択)して、「作成」>「結合による」をクリックします(結合位置4を使用)。
-
列操作(結合、分割、移動および静的値の作成を含む)の履歴を確認する必要がある場合は、「列操作」をクリックして、最近の操作の実行順のリストを表示します。
-
フィールド2は、今後の再利用のために別の場所に移動できます。ルール機能に影響しないようにするには、それを選択してから「無視」をクリックします。
フィールド式(索引ベースのディメンション構築ルールに使用可能)
索引ベースのルールには、分割、結合および移動の列操作はありませんが、フィールド式を使用することでフィールドの結合などの操作を実行できます。
-
「作成」>「式による」の順にクリックして、式を使用するように定義するフィールドを追加します。
-
2つの列を結合するには、関数をクリックして、引数として列インデックスを指定します。次に例を示します。
フィールドの分割
Essbaseディメンション構築ルールまたはデータ・ロード・ルールで、1つのフィールドを2つのフィールドに分割できます。
この操作は結合とは逆であり、標準ルールでのみ使用できます。たとえば、Sample.Basicデータベースのデータソースに、UPC100-10-1を含むフィールドがある場合、フィールドからUPCを分割して無視できます。その後、製品番号100-10-1のみがロードされます。
フィールドを分割するには:
-
フィールドを選択します。
-
「分割」をクリックします。
-
分割位置(左から右に向けて数えた文字数)を指定します。たとえば、
10
を500-
から分離するには、分割位置4を指定します。 -
「OK」をクリックします。ルールを検証してから保存します。
フィールドのコピー
Essbaseディメンション構築ルールまたはデータ・ロード・ルールで、元のフィールドを変更せずにフィールドのコピーを作成できます。
たとえば、1回のディメンション構築で、複数レベルの属性ディメンションを定義して、属性を基本ディメンションのメンバーに関連付ける場合、いくつかのフィールドをコピーする必要があります。
フィールドをコピーするには:
-
フィールドを選択します。
-
「作成」、「結合による」の順にクリックします。
-
複製するフィールドの番号を入力します。
-
「OK」をクリックします。ルールを検証してから保存します。
フィールドのマッピング
データ・ロード・ルールでEssbaseメンバー名にソース・データ・フィールドをマップできます。
この項は、データ・ロードにのみ適用されます。ディメンション構築を実行する場合、この項はスキップします。
ソース内のどのフィールドをEssbaseキューブ内のどのメンバーまたはメンバーの組合せにマップするかを指定することで、データ・ロードの間にソース内のフィールドをEssbaseキューブ内のフィールドに直接マップします。ソース・データは変更されません。
ノート:
SQLデータソースを開くと、フィールドにSQLデータソース列名がデフォルト設定されます。SQL列名とEssbaseディメンション名が同じである場合、列名をマップする必要はありません。
-
マップされていないデータ・ロード・ルールのフィールドを選択します。
-
メンバー名を入力するか、フィールドの横にあるフィールドの編集/メンバーの選択ツールをクリックします。
-
メンバー選択ツールを使用する場合は、このフィールドに関連付けるメンバーを検索するか、そのメンバーまでナビゲートします。
-
メンバーをダブルクリックして、そのメンバーを「フィールド名」に追加します。
-
「OK」をクリックします。ルールを検証してから保存します。
フィールド名の変更
データ・ロードの間にEssbaseアウトラインのディメンション名と照合するように、ルール内のフィールドに名前を指定できます。
データ・ソースをロードするには、ソースのフィールドをキューブのディメンションとメンバーにマップする方法を指定する必要があります。ルールでは、ソースがロードされるたびに、フィールドとメンバー名が一致するようにソースのフィールドを変換できます。このプロセスによってソースが変更されることはありません。
ルール・ファイルでは次の操作を実行します。
-
ソース・ファイルのメンバー・フィールドを、キューブのディメンションとメンバーにマップします
-
ソース・ファイルのデータ・フィールドを、キューブのメンバー名またはメンバーの組合せ(Jan, Actualなど)にマップします
フィールドの命名
フィールドに名前を付けるには:
-
フィールドを選択します。
-
「フィールド・プロパティ」をクリックします。
-
「名前」フィールドに名前を入力します。名前にスペースが含まれている場合は、その名前を引用符で囲みます。
-
「OK」をクリックします。ルールを検証してから保存します。
テキスト文字列の置換
データ・ロード時またはディメンション構築時に、フィールドがEssbaseメンバー名にマップされるように、テキスト文字列を置換できます。データソースは変更されません。たとえば、データソースでNew YorkがNYに省略される場合、ルール・ファイルを使用して各NYをNew Yorkに置換できます。
フィールドの文字列を置換するには:
-
フィールドを選択します。
-
「フィールド・プロパティ」をクリックします。
-
「フィルタ」タブをクリックします。
-
「置換」をクリックします。
-
「+」アイコンをクリックして、文字列置換条件を追加します。
-
「検索」と「置換」の値を入力します。たとえば、
CA
をCalifornia
に置換します。 -
置換操作に必要な処理を指定します。
- 大/小文字を区別する
- 単語が完全に一致した場合にのみ置換する。たとえば、文字列
100 10 1
の10
をAに置換する場合は、「完全に一致する語」を選択すると、文字列が100 A 1
に変更されます。「完全に一致する語」が選択解除されたままの場合、文字列はA0 10 1
に変更されます。 - 文字列のすべての出現箇所を置換する。たとえば、文字列
100 10 1
のすべての10
の出現箇所をAに置換するために「すべて置換」を選択すると、文字列はA0 A 1
に変更されます。
-
「OK」をクリックします。ルールを検証してから保存します。
フィールドの大文字と小文字の変更
データ・ロード時またはディメンション構築時に、フィールドがEssbaseメンバー名にマップされるように、フィールドの大文字と小文字を変更できます。データソースは変更されません。たとえば、データベースで小文字(jan)のフィールドがデータソースでは大文字(JANなど)表記される場合、ルール・ファイルを使用してフィールドを小文字に変更できます。
-
フィールドを選択します。
-
「フィールド・プロパティ」をクリックします。
-
「大文字/小文字」には、受信データに対して実行する操作を選択します。
-
「OK」をクリックします。ルールを検証してから保存します。
先頭スペースおよび末尾スペースの削除
ソース・データのフィールドから先頭スペースおよび末尾スペースを削除できます。先頭スペースまたは末尾スペースを含むフィールド値は、スペースに囲まれた名前が完全に一致していても、メンバー名にマップされません。
-
フィールドを選択します。
-
「フィールド・プロパティ」をクリックします。
-
「切捨て」をクリックします。
-
「OK」をクリックします。ルールを検証してから保存します。
デフォルトでは、Essbaseでは、先頭スペースおよび末尾スペースが削除されます。
スペースからアンダースコアへの変換
データソースのフィールド内のスペースをアンダースコアに変換して、そのフィールド値をデータベースのメンバー名と一致させることができます。
-
フィールドを選択します。
-
「フィールド・プロパティ」をクリックします。
-
「スペースをアンダースコアに変換」をクリックします。
-
「OK」をクリックします。ルールを検証してから保存します。
フィールド値への接頭辞または接尾辞の追加
データソースの各フィールド値に接頭辞および接尾辞を追加できます。たとえば、Yearディメンションのすべてのメンバー名に2017を接頭辞として追加できます。
-
フィールドを選択します。
-
「フィールド・プロパティ」をクリックします。
-
追加する接頭辞または接尾辞を入力します。
-
「OK」をクリックします。ルールを検証してから保存します。