*RUNALLOCATION
割当を利用して、ソース領域からターゲット領域への指定ドライバによるデータ配分を行うことができます。
構文
*RUNALLOCATION
*FACTOR=<driver>*DIM P_ACCT WHAT=<soure>; WHERE=<target>; USING=<distribution key>; [TOTAL=<distribution key>]
*DIM <other dimensions>*ENDALLOCATION
WHAT (ソース)
ソース値は、割当機能によって割り当てられるデータ値の範囲を表します。この値は、モデル内の 1 つまたは複数のタプルによって識別されます。
利用可能な WHAT オプションは、以下のとおりです。
オプション |
説明 |
例 |
|---|---|---|
メンバー |
指定されたディメンションのベースメンバーです。 |
*DIM Region WHAT = US |
[プロパティ]="プロパティ値" |
指定プロパティとそのプロパティの特定の値に基づいてディメンションメンバーを選択するフィルタです。 |
*DIM Product_Group = [Fruit] = "apples" |
BAS |
特定ディメンションの親メンバーのすべてのベースレベルメンバーを表します。 |
*DIM Product_Group = BAS(TotalProduct) |
WHERE と同じ |
指定ディメンションに対して WHERE パラメータで定義されたメンバーと同じメンバーを使用します。 |
*DIM Account WHERE = Rent *DIM Account WHAT = Rent |
<> メンバー |
<> オペランドにより、指定されたメンバーと一致しないすべてのメンバーが参照されます。 <> メンバーモードでは、メンバーがディメンションのベースメンバーである必要があります。 <> を使用する場合は、ディメンション内のその他のベースメンバーがすべて領域に含まれていることが必要です。 |
*DIM Region USING <> Corp |
WHAT の制限
空白または [ALL] を WHAT 条件で使用することはできません。
ベースメンバー以外のメンバーを <> で使用することはできません。
USING および TOTAL (配信キー)
割当の基準は、割当対象の一部または全部のソース値の定義です。基準を定義する方法として係数を使用します。係数は、値を誘導するために乗算または除算することができる値にすることができます (加算および減算は今後サポートされる可能性があります)。
係数によって、USING として参照されるデータの定義された領域、または基準領域に基づいて値が決定されます。
利用可能な USING および TOTAL のオプションは、以下のとおりです。
オプション |
説明 |
例 |
|---|---|---|
メンバー |
指定されたディメンションのベースメンバーです。 |
*DIM Region USING = US |
BAS |
特定ディメンションの親メンバーのすべてのベースレベルメンバーを表します。 |
*DIM Product_Group = BAS(TotalProduct) |
WHERE と同じ |
指定ディメンションに対して WHERE パラメータで定義されたメンバーと同じメンバーを使用します。WHERE と USING の両方で同じディメンションにする必要があります。 注記 WHERE では、単一メンバーのみ参照できます。 |
*DIM Account WHERE = Rent *DIM Account USING = PercentAcct |
<> メンバー |
<> オペランドにより、指定されたメンバーと一致しないすべてのメンバーが参照されます。 <> メンバーモードでは、メンバーがディメンションのベースメンバーである必要があります。 <> を使用する場合は、ディメンション内のその他のベースメンバーがすべて領域に含まれていることが必要です。 |
*DIM Region USING <> Corp |
[プロパティ]="プロパティ値" |
指定プロパティとそのプロパティの特定の値に基づいてディメンションメンバーを選択するフィルタです。 |
*DIM Product_Group = [Fruit] = "apples" |
USING の制限
>0 を使用することはできません。たとえば、USING = Amount >0 はサポートされていません。
USING と TOTAL には、同じディメンションを使用する必要があります。
ベースメンバー以外のメンバーを <> で使用することはできません。
USING で親メンバーを直接使用することはできません。上述されているように、BAS(parent) は引き続き使用可能です。
FACTOR (ドライバ)
FACTOR を使用して、({expression} パラメータで指定される) 任意の算術式を定義することができます。また、オペランド、括弧、定数のほか、USING 領域の数値 (すなわちドライバの数値) を表す USING キーワードと、TOTAL 領域の数値 (すなわちドライバの合計) を表す TOTAL キーワードの両方または一方を含めることができます。
FACTOR が省略される場合、FACTOR はデフォルトで 1 となります。
算術式が省略される場合、デフォルトで乗法が使用されます。
利用可能な FACTOR オプションは、以下のとおりです。
オプション |
説明 |
例 |
|---|---|---|
.8 |
割当のソース値に適用されるのは固定値のみです。 |
WHAT のタプル値は、製品 A に対して 10 です。 10*.8 = 8 |
USING |
定義されている USING 領域の値が割当の基準として使用されます。これにより、割当の定義を編集しなくても値を変更することができます。 |
WHAT のタプル値は、製品 A に対して 10 で、USING のタプル値は .8 です。 10*.8 = 8 |
-1 * USING/100 または 1 * USING/100 |
計算では、定義した領域が USING として採用され、値 (負) の正負が反転された後に 100 で除算されます。 |
USING 領域のタプル値は、製品 A に対して 70 です。 -70/100 = -.7 (-70%) (1-70)/100 = -.69 (-69%) 注記 これは、値のレポートされないドライバ勘定で使用されます。 |
USING/TOTAL |
計算では、USING として定義した領域が採用され、TOTAL として定義した領域の合計値が除算されます。 |
USING 領域のタプル値は、製品 A に対して 70 です。USING 領域が US だけではなくすべての領域を示すと想定すると、TOTAL 領域 (タプル) の合計は 700 です。 70/700 = .1 (10%) |
USING および TOTAL による基本の算術式 (例: 1 + USING、USING -1、および 1 -USING) |
計算では USING として定義した領域が採用され、TOTAL として定義した領域の合計値を使用して必要な数学的演算が実行されます。 |
USING 領域のタプル値は、製品 A に対して 70 です。 1+70 = 71 70 -1 = 69 1-70 = -69 |
FACTOR の制限
FACTOR 式でスクリプトロジックキーワードを使用することはできません。
WHERE (ターゲット)
ターゲットによって、値の割当先となるタプルを識別します。ターゲットは、値を配分する必要があるディメンションメンバーの組合せを表します。ターゲットは、ソースと比較してメンバーの値を変更するディメンションを識別します。明示的に言及され、指定されたディメンションのみが変更されます。
キーワード WHERE はキーワード *DIM との組合せで使用され、ターゲットディメンションメンバーが識別されます (ソースに対して変更される値)。
利用可能な WHERE オプションは、以下のとおりです。
オプション |
説明 |
例 |
|---|---|---|
メンバー |
指定されたディメンションのベースメンバーです。 |
*DIM Region WHERE = US |
BAS |
特定ディメンションの親メンバーのすべてのベースレベルメンバーを表します。 |
*DIM Product_Group = BAS(TotalProduct) |
WHAT と同じ |
指定ディメンションに対して WHAT パラメータで定義されたメンバーと同じメンバーを使用します。 |
*DIM Account WHAT = Rent *DIM Account WHERE = Rent |
空白または [All] |
空白パラメータまたは [ALL] キーワードを使用して、特定のディメンションのすべてのベースメンバーを想定します。 |
*DIM Entity = *DIM IntCo = [ALL] |
[プロパティ]="プロパティ値" |
指定プロパティとそのプロパティの特定の値に基づいてディメンションメンバーを選択するフィルタです。 |
*DIM Product_Group = [Fruit] = "apples" |
共通の制限
*APP (必要に応じて別のモデルに書き込む機能)、RUNALLOCATION 内の COUNT キーワードおよび LIST キーワード、または上記で言及されていないその他のオプションはサポートされません。
例
例 1
勘定 RENT は、エンティティ GLOBALOPS、会社間 NON_INTERCO に入力されます。この金額の割当は、CATEGORY ディメンション、TIME ディメンション、DATASRC ディメンション、および RPTCURRENCY ディメンションの目的のメンバーに対し、適切なエンティティの勘定 PERCENT にユーザが入力する割当の割合 (%) を使用して行われる必要があります。
この割当では、以下の機能が使用されています。
{dimensiontype}DIM キーワードにより、タイプ別にディメンションが識別されます。
<<< および >>> キーワードにより、使用される定義で左側または右側が参照されます。
割当前
ソース勘定 (RENT) データ:
RENT CHINA |
中国 |
|
RENT JAPAN |
日本 |
|
RENT INDIA |
インド |
|
RENT ASAREST |
その他のアジア |
|
RENT ASA |
アジア |
50,000,000.00 |
ドライバ (割合勘定) データ:
PERCENT CHINA |
中国 |
10.00 |
PERCENT JAPAN |
日本 |
32.00 |
PERCENT INDIA |
インド |
8.00 |
PERCENT ASAREST |
その他のアジア |
50.00 |
*XDIM_MEMBERSET TIME=2006.SEP
*XDIM_MEMBERSET P_ACCT=RENT,PERCENT
*XDIM_MEMBERSET ENTITY=ASA,INDIA,CHINA,JAPAN,ASAREST
*RUNALLOCATION
*FACTOR=USING/100
*DIM P_ACCT WHAT=RENT; WHERE=<<<; USING=PERCENT
*DIM ENTITY WHAT=ASA; WHERE=INDIA,CHINA,JAPAN,ASAREST; USING=<<<
*ENDALLOCATION
割当後
RENT CHINA |
中国 |
5,000,000.00 |
RENT JAPAN |
日本 |
16,000,000.00 |
RENT INDIA |
インド |
4,000,000.00 |
RENT ASAREST |
その他のアジア |
25,000,000.00 |
RENT ASA |
アジア |
50,000,000.00 |
例 2
勘定 RENT は、エンティティ GLOBALOPS、会社間 NON_INTERCO に入力されます。この金額の割当は、ヨーロッパの全エンティティで使用される賃貸スペースの平方メートルに基づいて行われます。
この割当では、以下の機能が使用されています。
割当によって、賃貸料の履歴がドライバとして使用されます。
BAS( ) キーワードにより、メンバー一覧が構築されます。
割当前
以下は、2008 年 1 月期について示された履歴データです。アジアが親ノードとなっています。
エンティティ |
カテゴリ |
2008 年 1 月 |
|
|---|---|---|---|
全アジア |
ACTUAL |
||
アジア |
ACTUAL |
||
中国 |
ACTUAL |
1,500.00 |
|
日本 |
ACTUAL |
7,000.00 |
|
インド |
ACTUAL |
500.00 |
|
その他のアジア |
ACTUAL |
5,000.00 |
|
アジア計画 |
ACTUAL |
ソース勘定 (RENT) データ:
50,000 を基本の国に割り当てます。
この入力は、アジア計画エンティティで受信されます。
ドライバデータ:
履歴データがドライバです。
*XDIM_MEMBERSET TIME=2008.JAN,2009.JAN
*XDIM_MEMBERSET P_ACCT=RENT
*XDIM_MEMBERSET CATEGORY=ACTUAL,PLAN
*XDIM_MEMBERSET ENTITY=ASA,BAS(RASA)
//Create total rent data to be allocated.
*WHEN ENTITY
*IS "ASA"
*REC (EXPRESSION=50000,TIME=2009.JAN,CATEGORY=PLAN)
*ENDWHEN
*COMMIT
//Allocate to base countries.
*RUNALLOCATION
*FACTOR=USING/TOTAL
*DIM P_ACCT WHAT=RENT; WHERE=<<<; USING=<<<; TOTAL=<<<
*DIM ENTITY WHAT=ASA; WHERE=BAS(RASA); USING=<<< TOTAL=<<<
*DIM TIME WHAT=>>>; WHERE=2009.JAN; USING=2008.JAN; TOTAL=<<<
*DIM CATEGORY WHAT=>>>; WHERE=PLAN; USING=ACTUAL; TOTAL=<<<
*ENDALLOCATION
//Clear the total rent account.
*WHEN ENTITY
*IS "ASA"
*REC (EXPRESSION=0,TIME=2009.JAN,CATEGORY=PLAN)
*ENDWHEN
割当後
エンティティ |
カテゴリ |
2009 年 1 月 |
|
|---|---|---|---|
全アジア |
PLAN |
50,000.00 |
|
アジア |
PLAN |
50,000.00 |
|
中国 |
PLAN |
7,500.00 |
|
日本 |
PLAN |
35,000.00 |
|
インド |
PLAN |
2,500.00 |
|
その他のアジア |
PLAN |
5,000.00 |
|
アジア計画 |
PLAN |
2009 年 1 月 には、各国の賃貸料がシェアの履歴に基づいて転記されます。
例 3
すべてのヨーロッパ事業で発生したすべての ADVERTISING 費用の合計は、それぞれの外部 SALES に基づいて各ヨーロッパ事業に再割当する必要があります。
この割当では、以下の機能が使用されています。
DOT({type}) キーワードにより、タイプ別にディメンションが識別されます。
WHAT 領域 (SALESEUROPE と ALL_INTCO が親メンバー) で集約が実行されます。
ディメンションの複数対 1 のリダイレクトが示されます (会社間メンバーの合計が読み込まれ、その値が INTCO ディメンションの NON_INTERCO メンバーに書き込まれます)。
ディメンションの 1 対 1 のリダイレクトが示されます (INPUT メンバーが読み込まれ、その結果が DATASRC ディメンションの ALLOCATED メンバーに書き込まれます)。
割当前
ソースデータ - 外部売上の履歴データ:
実績 - 期別 |
2008 年 1 月 |
|---|---|
アジア計画 |
|
中国 |
500,000 |
日本 |
600,000 |
インド |
200,000 |
その他のアジア |
800,000 |
アジア |
2,100,000 |
全アジア |
2,100,000 |
割当対象のデータ (ADVERTISING):
計画 - 期別 |
2009 年 1 月 |
|---|---|
アジア計画 |
500,000 |
中国 |
|
日本 |
|
インド |
|
その他のアジア |
|
アジア |
|
全アジア |
500,000 |
係数: USING/TOTAL
APP または (Dim) または VALUE |
WHAT |
WHERE |
USING |
TOTAL |
|---|---|---|---|---|
DOT(A) |
ADVERTISING |
<<< |
EXTSALES |
<<< |
DOT(E) |
SALESEUROPE |
BAS(SALESEUROPE) |
<<< |
<<< |
DOT(I) |
ALL_INTERCO |
NON_INTERCO |
>>> |
BAS(ALL_INTERCO) |
DATASRC |
INPUT |
ALLOCATED |
INPUT |
<<< |
*RUNALLOCATION
*FACTOR =USING/TOTAL
*DIM P_ACCT WHAT=ADVERTISING; WHERE=<<<; USING=EXTSALES; TOTAL=<<<
*DIM ENTITY WHAT=ASA; WHERE=BAS(RASA); USING=<<<; TOTAL=<<<
*DIM INTERCO WHAT=WORLD_INTERCO; WHERE=I_NONE; USING=>>>; TOTAL=BAS(World_InterCo)
*DIM P_DATASRC WHAT=MANUAL; WHERE=ALLOCATED; USING=MANUAL; TOTAL=<<<
*DIM TIME WHAT=2009.JAN; WHERE=2009.JAN; USING=2008.JAN; TOTAL=<<<
*ENDALLOCATION
割当後
計画 - 期別 |
2009 年 1 月 |
|---|---|
アジア計画 |
|
中国 |
119,048 |
日本 |
142,857 |
インド |
47,619 |
その他のアジア |
190,476 |
アジア |
500,000 |
全アジア |
500,000 |
例 4
この例では、例 3 と同じシナリオを実行しますが、年に対してシステム変数 (%YEAR%) を使用します。これにより、現在のカレンダ年が返されます。スクリプトは 2009 年に関するものであるとします。
割当前
ソースデータ - 外部売上の履歴データ:
実績 - 期別 |
2008 年 1 月 |
|---|---|
アジア計画 |
|
中国 |
500,000 |
日本 |
600,000 |
インド |
200,000 |
その他のアジア |
800,000 |
アジア |
2,100,000 |
全アジア |
2,100,000 |
割当対象のデータ (ADVERTISING):
計画 - 期別 |
2009 年 1 月 |
|---|---|
アジア計画 |
500,000 |
中国 |
|
日本 |
|
インド |
|
その他のアジア |
|
アジア |
|
全アジア |
500,000 |
係数: USING/TOTAL
APP または (Dim) または VALUE |
WHAT |
WHERE |
USING |
TOTAL |
|---|---|---|---|---|
DOT(A) |
ADVERTISING |
<<< |
EXTSALES |
<<< |
DOT(E) |
SALESEUROPE |
BAS(SALESEUROPE) |
<<< |
<<< |
DOT(I) |
ALL_INTERCO |
NON_INTERCO |
>>> |
BAS(ALL_INTERCO) |
DATASRC |
INPUT |
ALLOCATED |
INPUT |
<<< |
*RUNALLOCATION
*FACTOR =USING/TOTAL
*DIM P_ACCT WHAT=ADVERTISING; WHERE=<<<; USING=EXTSALES; TOTAL=<<<
*DIM ENTITY WHAT=ASA; WHERE=BAS(RASA); USING=<<<; TOTAL=<<<
*DIM INTERCO WHAT=WORLD_INTERCO; WHERE=I_NONE; USING=>>>; TOTAL=BAS(World_InterCo)
*DIM P_DATASRC WHAT=MANUAL; WHERE=ALLOCATED; USING=MANUAL; TOTAL=<<<
*DIM TIME WHAT=%YEAR%.JAN; WHERE=%YEAR%.JAN; USING=%YEAR%(-1).JAN; TOTAL=<<<
*ENDALLOCATION
割当後
計画 - 期別 |
2009 年 1 月 |
|---|---|
アジア計画 |
|
中国 |
119,048 |
日本 |
142,857 |
インド |
47,619 |
その他のアジア |
190,476 |
アジア |
500,000 |
全アジア |
500,000 |
例 5
3 つのエンティティ (ITALY、FRANCE、および UK) について、カテゴリ ACTUAL の損益におけるすべての勘定が、カテゴリ BUDGET のエンティティ GLOBALOPS の関連勘定にコピーされます。この割当は、基本的には単純なコピーアクションの一例であり、FACTOR をまったく使用しません。この例では、エンジンにより、1 対 1 のコピー (ACTUAL から BUDGET へのコピー) と、複数対 1 のコピー (ITALY、FRANCE、および UK の合算および GLOBALOPS へのコピー) が実行されます。
割当前
実績 - 期別 |
2007 年 12 月 |
|---|---|
UK (イギリス) |
30,000 |
イタリア |
10,000 |
フランス |
10,000 |
予算 - 期別 |
2008 年 2 月 |
|---|---|
グローバル事業 |
係数:
APP または (Dim) または VALUE |
WHAT |
WHERE |
|---|---|---|
ACCOUNT |
[GROUP] = "profit & loss" |
<<< |
CATEGORY |
ACTUAL |
BUDGET |
ENTITY |
SALESITALY; SALESFRANCE; SALESUK |
GLOBALOPS |
DOT(R) |
LC |
<<< |
ALLOCATION でサポートされないプロパティは、*SELECT ステートメントを使用する変数で置き換えられます。*SELECT ステートメントでは、必ずベースメンバーのみを選択してください。
*XDIM_MEMBERSET ACCOUNT=ADVERTISING,EXTSALES
*XDIM_MEMBERSET ENTITY=UK,ITALY,FRANCE,GLOBAL
*XDIM_MEMBERSET P_DATASRC = INPUT
*XDIM_MEMBERSET TIME = 2007.DEC,2008.JAN
*XDIM_MEMBERSET CATEGORY = ACTUAL,BUDGET
*XDIM_MEMBERSET INTCO= I_NONE
*XDIM_MEMBERSET RPTCURRENCY = LC
*SELECT(%ACCT%, "[ID]",ACCOUNT,"[CALC]='N'","[GROUP]='PL'")
*RUNALLOCATION
*FACTOR=
*DIM ACCOUNT WHAT=[GROUP]="PL" AND [CALC]="N"; WHERE=<<<
*DIM CATEGORY WHAT=ACTUAL; WHERE=BUDGET
*DIM ENTITY WHAT=UK,ITALY,FRANCE; WHERE=GLOBAL
*DIM DOT(R) WHAT=LC; WHERE=<<<
*DIM TIME WHAT=2007.DEC; WHERE=2008.FEB
*ENDALLOCATION
割当後
予算 - 期別 |
2008 年 2 月 |
|---|---|
グローバル事業 |
50,000 |
この文書に含まれるソフトウェアコーディングおよびコード行/文字列 (以下 "コード" という) は例として示されるものであり、本稼動システム環境で使用することを意図するものではありません。コードは、特定のコーディングの構文とフレージングルールを分かりやすく説明し、視覚化することを目的としています。SAP は、ここで提供されるコードの正確性や完全性を保証せず、コードの使用によって生じたエラーまたは損害に対して責任を負いません。ただし、当該損害が SAP の故意または重大な過失によって生じた場合は除くものとします。