Mit der Allokation können Daten eines Quellbereichs anhand des angegebenen Faktors auf einen Zielbereich verteilt werden.
Syntax
*RUNALLOCATION
*FACTOR=<driver>
*DIM P_ACCT WHAT=<soure>; WHERE=<target>; USING=<distribution key>; [TOTAL=<distribution key>]
*DIM <other dimensions>
*ENDALLOCATION
Der Quellwert stellt den Bereich von Datenwerten dar, die mit der Allokationsfunktion auf den Zielbereich verteilt werden sollen. Dieser Wert wird durch einen oder mehrere Tupel im Cube qualifiziert.
Mögliche WHAT-Optionen sind:
Optionen |
Beschreibung |
Beispiel |
---|---|---|
Element |
Ein angegebenes Basiselement der Dimension |
|
[property]=„Eigenschaftswert“ |
Ein Filter, mit dem Dimensionselemente auf der Grundlage einer angegebenen Eigenschaft und eines angegebenen Werts für diese Eigenschaft ausgewählt werden |
|
BAS |
Alle Elemente der Blattebene eines Vaterelements einer bestimmten Dimension |
|
dieselben wie bei WHERE |
Verwenden Sie dieselben Elemente wie im WHERE-Parameter für die angegebene Dimension definiert. |
|
<> Element |
Der Operand <> referenziert alle Elemente, die ungleich einem definierten Element sind. Im <>-Elementmodus sollte das Element das Basiselement der Dimension sein. Wenn <> verwendet wird, sollten alle anderen Basiselemente dieser Dimension in den Bereich eingebunden sein. |
|
Sie können in der WHAT-Bedingung kein Leerzeichen oder [ALL] verwenden.
Sie können mit <> keine Nicht-Basiselemente verwenden.
Grundlage der Allokation ist die Definition eines zu verteilenden Quellwertes. Dieser kann teilweise oder vollständig angegeben werden. Die Basis wird unter Verwendung eines Faktors definiert. Ein Faktor kann der Wert oder die Werte sein, aus denen durch Multiplikation oder Division ein Wert abgeleitet wird (in der Zukunft werden möglicherweise auch Addition und Subtraktion unterstützt).
Mit einem Faktor können Werte auch basierend auf einem definierten Bereich von Daten abgeleitet werden, der als USING bzw. Basisbereich bezeichnet wird.
Mögliche USING- und TOTAL-Optionen sind:
Optionen |
Beschreibung |
Beispiel |
---|---|---|
Element |
Ein angegebenes Basiselement der Dimension |
|
BAS |
Alle Elemente der Blattebene eines Vaterelements einer bestimmten Dimension |
|
dieselben wie bei WHERE |
Verwenden Sie dieselben Elemente wie im WHERE-Parameter für die angegebene Dimension definiert. Die Dimension muss für WHERE und USING dieselbe sein. Hinweis WHERE unterstützt nur das Referenzieren eines einzelnen Elements. Ende des Hinweises |
|
<>-Element |
Der Operand <> referenziert alle Elemente, die ungleich einem definierten Element sind. Im <>-Elementmodus sollte das Element das Basiselement der Dimension sein. Wenn <> verwendet wird, sollten alle anderen Basiselemente dieser Dimension in den Bereich eingebunden sein. |
|
[property]=„Eigenschaftswert“ |
Ein Filter, mit dem Dimensionselemente auf der Grundlage einer angegebenen Eigenschaft und eines angegebenen Werts für diese Eigenschaft ausgewählt werden |
|
>0 kann nicht verwendet werden. USING = Amount >0
wird z. B. nicht unterstützt.
USING und TOTAL müssen dieselbe Definition aufweisen.
Sie können mit <> keine Nicht-Basiselemente verwenden.
Sie können übergeordnete Elemente in USING nicht direkt verwenden. BAS(parent) ist dagegen erlaubt, wie oben beschrieben.
Mit FACTOR können Sie arithmetische Ausdrücke definieren, die in den {expression}-Parameter geschrieben wurden. FACTOR kann Operanden, Klammern, Konstanten und eines der Schlüsselwörter USING und TOTAL (oder beide) enthalten, die jeweils den Betrag aus dem Bereich USING, den Betrag des Faktors und den Betrag aus dem Bereich TOTAL, der die Summe der Faktoren darstellt, enthalten.
Wenn FACTOR weggelassen wird, wird FACTOR standardmäßig auf 1 gesetzt.
Wenn der arithmetische Ausdruck weggelassen wird, wird als Standard Multiplikation verwendet.
Mögliche FACTOR-Optionen sind:
Optionen |
Beschreibung |
Beispiel |
---|---|---|
.8 |
Nur ein fester Betrag darf als Quellwert für die Allokation verwendet werden. |
Der Tupel-Wert von WHAT ist 10 für Produkt A. 10*.8 = 8 |
USING |
Der Wert des definierten USING-Bereichs wird als Basis der Allokation verwendet. Damit wird es möglich, Werte zu ändern, ohne dass die Definition der Allokation bearbeitet werden muss. |
Der Tupel-Wert von WHAT ist 10 für Produkt A, der Tupel-Wert von USING ist 8. 10*.8 = 8 |
-1 * USING/100 Oder 1 * USING/100 |
Bei der Berechnung wird der Wert des Bereichs, der als USING definiert ist, umgekehrt (negativ) und dann durch 100 geteilt. |
Der Tupel-Wert des USING-Bereichs ist 70 für Produkt A. -70/100 = -.7 (-70%) (1-70)/100 = -.69 (-69%) Hinweis Diese Funktion wird für primäre Konten verwendet und nicht für Berichtswerte. Ende des Hinweises |
USING/TOTAL |
Bei der Berechnung wird der Wert des Bereichs, der als USING definiert ist, durch den Gesamtwert des als TOTAL definierten Bereichs geteilt. |
Der Tupel-Wert des USING-Bereichs ist 70 für Produkt A. Der Gesamtwert des TOTAL-Bereichs (Tupels) ist 700, vorausgesetzt, dass der USING-Bereich für alle Regionen gilt und nicht nur für US. 70/700 = .1 (10%) |
Grundlegende mathematische Ausdrücke mit USING und TOTAL (Beispiel: 1 + USING, USING -1 und 1 – USING) |
Bei der Berechnung werden mit dem Wert des Bereichs, der als USING definiert ist, anhand des Gesamtwertes des als TOTAL definierten Bereichs die notwendigen mathematischen Operationen durchgeführt. |
Der Tupel-Wert des USING-Bereichs ist 70 für Produkt A. 1+70 = 71 70 -1 = 69 1-70 = -69 |
In einem FACTOR-Ausdruck können Sie keine Skriptlogikschlüsselwörter verwenden.
Das Ziel identifiziert die Tupel, auf die die Werte verteilt werden sollen. Es stellt Kombinationen von Dimensionselementen dar, auf die die Werte verteilt werden sollen. Das Ziel identifiziert die Dimension, für die der Wert der Elemente im Vergleich zur Quelle verändert wird, und nur ausdrücklich erwähnte und charakterisierte Dimensionen sollten geändert werden.
Das Schlüsselwort WHERE wird in Kombination mit dem Schlüsselwort *DIM zum Identifizieren der Elemente der Zieldimension (der im Vergleich zur Quelle zu ändernden Werte) verwendet.
Mögliche WHERE-Optionen sind:
Optionen |
Beschreibung |
Beispiel |
---|---|---|
Element |
Ein angegebenes Basiselement der Dimension |
|
BAS |
Alle Elemente der Blattebene eines Vaterelements einer bestimmten Dimension |
|
dieselben wie bei WHAT |
Verwenden Sie dieselben Elemente wie im WHAT-Parameter für die angegebene Dimension definiert. |
|
leer oder [All] |
Die Möglichkeit, entweder über einen Leer-Parameter oder das Schlüsselwort [ALL] alle Basiselemente einer bestimmten Dimension anzunehmen. |
|
[property]=„Eigenschaftswert“ |
Ein Filter, mit dem Dimensionselemente auf der Grundlage einer angegebenen Eigenschaft und eines angegebenen Werts für diese Eigenschaft ausgewählt werden |
|
Die Schlüsselwörter *APP (Möglichkeit, bei Bedarf in eine andere Anwendung zu schreiben), COUNT und LIST in RUNALLOCATION sowie alle anderen Optionen, die oben nicht erwähnt sind, werden nicht unterstützt.
Das Konto RENT wird in die Entität GLOBALOPS eingegeben, Intercompany NON_INTERCO. Dieser Betrag muss anhand eines Allokationsprozentsatzes verteilt werden, der vom Benutzer in das Konto PERCENT in den entsprechenden Entitäten und für die gewünschten Elemente der Kategorien CATEGORY, TIME, DATASRC und RPTCURRENCY eingetragen wird.
Diese Allokation weist folgende Merkmale auf:
Sie verwendet das Schlüsselwort {dimensiontype}DIM zum Identifizieren der Dimensionen nach Typ.
Sie verwendet die Schlüsselwörter <<< und >>> um die Definitionen zu referenzieren, die weiter rechts oder weiter links verwendet werden
Vor der Allokation
Daten des Quellkontos (RENT):
RENT CHINA |
China |
|
RENT JAPAN |
Japan |
|
RENT INDIA |
Indien |
|
RENT ASAREST |
restliches Asien |
|
RENT ASA |
Asien |
50,000,000.00 |
Faktordaten (Prozentkonto):
PERCENT CHINA |
China |
10.00 |
PERCENT JAPAN |
Japan |
32.00 |
PERCENT INDIA |
Indien |
8.00 |
PERCENT ASAREST |
restliches Asien |
50.00 |
Syntax
*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
Nach der Allokation
RENT CHINA |
China |
5,000,000.00 |
RENT JAPAN |
Japan |
16,000,000.00 |
RENT INDIA |
Indien |
4,000,000.00 |
RENT ASAREST |
restliches Asien |
25,000,000.00 |
RENT ASA |
Asien |
50,000,000.00 |
Das Konto RENT wird in die Entität GLOBALOPS eingegeben, Intercompany NON_INTERCO. Dieser Betrag muss auf Grundlage der gemieteten Quadratmeter, die von allen europäischen Entitäten genutzt werden, aufgeteilt werden.
Diese Allokation weist folgende Merkmale auf:
Die historische Miete wird als Faktor verwendet
Mit dem Schlüsselwort BAS( ) wird eine Elementliste erstellt
Vor der Allokation
Im Folgenden sind die historischen Daten für die Periode 2008.JAN aufgeführt. Der Vaterknoten ist Asien.
ENTITY (Entität) |
CATEGORY (Kategorie) |
2008.JAN |
||
---|---|---|---|---|
ganz Asien |
ACTUAL |
|||
Asien |
ACTUAL |
|||
China |
ACTUAL |
1,500.00 |
||
Japan |
ACTUAL |
7,000.00 |
||
Indien |
ACTUAL |
500.00 |
||
restliches Asien |
ACTUAL |
5,000.00 |
||
Planung Asien |
ACTUAL |
Daten des Quellkontos (RENT):
50.000 auf Basisländer verteilen
Diese Eingabe kann in der Entität Planung Asien empfangen werden.
Faktordaten:
Die historischen Daten sind der Faktor
Syntax
*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
Nach der Allokation
ENTITY (Entität) |
CATEGORY (Kategorie) |
2009.JAN |
||
---|---|---|---|---|
ganz Asien |
PLAN |
50,000.00 |
||
Asien |
PLAN |
50,000.00 |
||
China |
PLAN |
7,500.00 |
||
Japan |
PLAN |
35,000.00 |
||
Indien |
PLAN |
2,500.00 |
||
restliches Asien |
PLAN |
5,000.00 |
||
Planung Asien |
PLAN |
2009.JAN wird mit Mieten für einzelne Länder basierend auf deren historischem Anteil gebucht.
Die Summe aller ADVERTISING-Ausgaben, die bei allen europäischen Vorgängen angefallen sind, müssen basierend auf ihren externen SALES wieder auf die einzelnen europäischen Vorgänge aufgeteilt werden.
Diese Allokation weist folgende Merkmale auf:
Sie verwendet das Schlüsselwort DOT({type}) zum Identifizieren der Dimensionen nach Typ.
Sie demonstriert die Möglichkeit, in der WHAT-Region Aggregationen durchzuführen (SALESEUROPE und ALL_INTCO sind Vaterelemente).
Sie demonstriert die n-zu-eins-Umleitung einer Dimension (sie liest die Summe der Intercompany-Elemente und schreibt sie in das NON_INTERCO-Element der INTCO-Dimension).
Sie demonstriert die Eins-zu-eins-Umleitung einer Dimension (sie liest das INPUT-Element und schreibt das Ergebnis in das ALLOCATED-Element der DATASRC-Dimension).
Vor der Allokation
Quelldaten – Historische Daten für External Sales
Ist – Periodisch |
2008.JAN |
---|---|
Planung Asien |
|
China |
500,000 |
Japan |
600,000 |
Indien |
200,000 |
restliches Asien |
800,000 |
Asien |
2,100,000 |
ganz Asien |
2,100,000 |
Zu verteilende Daten (ADVERTISING):
Plan – Periodisch |
2009.JAN |
---|---|
Planung Asien |
500,000 |
China |
|
Japan |
|
Indien |
|
restliches Asien |
|
Asien |
|
ganz Asien |
500,000 |
Syntax
Faktor: USING/TOTAL
APP oder (Dim) oder 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
Nach der Allokation
Plan – Periodisch |
2009.JAN |
---|---|
Planung Asien |
|
China |
119,048 |
Japan |
142,857 |
Indien |
47,619 |
restliches Asien |
190,476 |
Asien |
500,000 |
ganz Asien |
500,000 |
In diesem Beispiel wird dasselbe Szenario implementiert wie in Beispiel 3, aber mit einer Systemvariable für Jahr (%YEAR%). Dabei wird das aktuelle Kalenderjahr zurückgegeben. Es wird angenommen, dass das Skript für das Jahr 2009 vorgesehen ist.
Vor der Allokation
Quelldaten – Historische Daten für External Sales
Ist – Periodisch |
2008.JAN |
---|---|
Planung Asien |
|
China |
500,000 |
Japan |
600,000 |
Indien |
200,000 |
restliches Asien |
800,000 |
Asien |
2,100,000 |
ganz Asien |
2,100,000 |
Zu verteilende Daten (ADVERTISING):
Plan – Periodisch |
2009.JAN |
---|---|
Planung Asien |
500,000 |
China |
|
Japan |
|
Indien |
|
restliches Asien |
|
Asien |
|
ganz Asien |
500,000 |
Syntax
Faktor: USING/TOTAL
APP oder (Dim) oder 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
Nach der Allokation
Plan – Periodisch |
2009.JAN |
---|---|
Planung Asien |
|
China |
119,048 |
Japan |
142,857 |
Indien |
47,619 |
restliches Asien |
190,476 |
Asien |
500,000 |
ganz Asien |
500,000 |
Alle Konten in der GuV von Kategorie ACTUAL, für die drei Entitäten ITALY, FRANCE und UK, werden in die entsprechenden Konten der Entität GLOBALOPS für Kategorie BUDGET übernommen. Diese Allokation ist im Grunde ein Beispiel für einen simplen Kopiervorgang, in dem FACTOR überhaupt nicht verwendet wird. In diesem Beispiel führt die Engine eine Eins-zu-eins-Kopie (ACTUAL nach BUDGET) und viele n-zu-eins-Kopien (ITALY, FRANCE und UK werden addiert und nach GLOBALOPS kopiert) aus.
Vor der Allokation
Ist – Periodisch |
2007.DEC |
---|---|
UK (Großbritannien) |
30,000 |
Italien |
10,000 |
Frankreich |
10,000 |
Budget – Periodisch |
2008.FEB |
---|---|
Geschäftstätigkeit weltweit |
Syntax
Faktor:
APP oder (Dim) oder VALUE |
WHAT |
WHERE |
---|---|---|
ACCOUNT |
[GROUP] = ”profit & loss” |
<<< |
CATEGORY |
ACTUAL |
BUDGET |
ENTITY |
SALESITALY; SALESFRANCE; SALESUK |
GLOBALOPS |
DOT(R) |
LC |
<<< |
Eine in ALLOCATION nicht unterstützte Eigenschaft ersetzt über eine SELECT-Anweisung eine Eigenschaft mit einer Variablen. Stellen Sie sicher, dass die *SELECT-Anweisung nur Basiselemente auswählt.
*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
Nach der Allokation
Budget – Periodisch |
2008.FEB |
---|---|
weltweite Geschäftstätigkeit |
50,000 |
Alle in dieser Dokumentation enthaltenen Software-Quelltextzeilen oder -Strings („Code“) dienen nur als Beispiele und sind nicht für die Anwendung in einem Produktivsystem vorgesehen. Der angegebene Quelltext soll lediglich die Syntax und die Ausdrucksregeln bestimmter Softwarecodes erläutern. SAP übernimmt keine Verantwortung für die Richtigkeit und Vollständigkeit des angegebenen Quelltextes und übernimmt keine Haftung für Fehler oder Schäden, die aus dessen Anwendung entstehen könnten; es sei denn, derartige Schäden wurden von SAP vorsätzlich oder fahrlässig hervorgerufen.