IBP_DB() コマンドに基づいて定義されたエキスパートルールの概要
エキスパートルールはIBP_DB() コマンドを使用して定義することもできます。まずはエキスパート計算ルールを定義する必要があります。「エキスパートルールの定義」を参照してください。
Infor BI OLAP DB() 関数構文は以下の通りです。
DB(Cube,Dim1Element,Dim2Element,...,DimxElement)
Cube = the name of the external Cube.
Dim1Element = an element of the first dimension of Cube, Dim2Element is an element of the 2nd dimension of Cube, etc...
- ピボット属性の追加のディメンションを含む、DB() のすべてのディメンションは、正しい順番で指定されなければなりません。ピボット属性はサイクルモジュール固有でもかまいませんが、DB() コマンドで定義済である必要があります。
- IBP_DB () は、エキスパート計算ルールに使用される内部のコマンドで、OLAP DB () 関数を素早く定義するメソッドです。
- OLAP ([更新] オプションで [開始] または [再開] を使用してサイクル期間を開始する) で計算ルールを作成する際、IBP_DB() コマンドを含む [エキスパートルール] 内の全ルールは、OLAP キューブ用ルールの対応する DB() 関数に変換されます。この変換は変数の代入前に発生します。
変換ルール:
- パラメーターの名前付け規則、たとえば <parameter name>="<parameter value>" があります。
- パラメーター値に「,」または「)」が含まれる場合は、二重引用符が必要です。含まれない場合、引用符は除いて構いません。
- 「=」と次の「,」の間の (トリミングされた) テキストはすべてパラメーター値と見なされます。
- 引用符が使用された場合、たとえば、\"value\".のように、すべての「内部」引用は「\」を使って「エスケープ」しなければなりません。
- 計算ターゲットと異なるディメンション要素のみ指定する必要があります。
- ソースキューブから同じディメンションと要素を読み込む %cube および !%items のようなディメンション変数にのみ基づくパラメーターは、指定する必要がありません。
- 欠落しているディメンションは、OLAP DB() 関数内で適切なキューブディメンション名に置き換えられます。
- IBP_DB はサイクル期間のディメンションに動的に調整します (つまり、関連するピボットディメンションの追加)。IBP_DB コマンド内に欠落しているピボットディメンションがあれば、OLAP DB() 関数内の適切なキューブディメンションに置き換えられます。
- ディメンションは、対応するディメンションのパラメーターを表すために 1 文字に省略されます。
- i = アイテムディメンション
- l = 場所
- s = シナリオ
- p = 期間
- m = メジャー
- ia1 = 品目属性 1 (ia2 など)
- la1 = 場所の属性 1 (la2 など)
例 (2 つの品目属性がエキスパートルールに使用される場合):
A.現在のシナリオを、このサイクルの前 (1 つ前) のサイクル期間の公開済シナリオに設定します、そのほかすべてのディメンション:
IBP_DB(cube="%previouscube(1)", s=%previouspublishedscenario)
は、以下の通りに変換されます。
DB(%previouscube(1), !%items, !%locations, !%periods, %previouspublishedscenario, !%measures, !%itemsA1, !%itemsA2)
B.現在の期間を、前 (1 つ前) の期間の値に設定します。同じメジャーとディメンション:
IBP_DB(p="GETATTR(%periods,!%periods,1,'PreviousPeriod')")
は、以下の通りに変換されます。
DB(%cube, !%items, !%locations, GETATTR(%periods,!%periods,1,'PreviousPeriod'), !%scenarios, !%measures, !%itemsA1, !%itemsA2)
C. 現在の期間を、最初の子期間の値に設定します。同じメジャーとディメンション:
IBP_DB(p="DE.CHILDNAME(%periods, !%periods,1)")
は、以下の通りに変換されます。
DB(%cube, !%items, !%locations, DE.CHILDNAME(%periods, !%periods,1) ,!%scenarios, !%measures, !%itemsA1, !%itemsA2)