LOOKUP

Eine Funktion, die einen anderen Quellwert heranzieht

Um in einer *REC( )-Anweisung einen neuen Wert zu berechnen, können Sie über die LOOKUP-Funktion einen Quellwert zuordnen, der außerhalb des Datenumfangs für eine FACTOR- oder eine EXPRESSION-Anweisung liegt.

Syntax

*LOOKUP {Model}

*DIM [{LookupID}:]{DimensionName}="Value" | {CallingDimensionName}[.{Property}]

*DIM MEASURES="MeasureName"

*ENDLOOKUP

Beispiel

Im folgenden Beispiel lesen Sie RATE-Informationen und verwenden sie bei der Berechnung. Sie können auch FOR/NEXT verwenden, um Lookups für mehrere Werte durchzuführen.

Environment: EnvironmentShell_V: (Kopie der Musterumgebung EnvironmentShell)

Modell: Planung

*XDIM_MEMBERSET TIME = 2006.AUG

*XDIM_MEMBERSET P_ACCT=CE0004010

*XDIM_MEMBERSET CATEGORY=ACTUAL

*LOOKUP RATE

*DIM TIME="2006.AUG"

*DIM CATEGORY="ACTUAL"

*DIM R_ACCT="AVG"

*DIM R_ENTITY="GLOBAL"

*DIM RATEEUR:INPUTCURRENCY="EUR"

*DIM MEASURES="PERIODIC"

*ENDLOOKUP

*WHEN P_ACCT

*IS "CE0004010"

*REC(EXPRESSION=%VALUE%/LOOKUP(RATEEUR), RPTCURRENCY="EUR")

*ENDWHEN

Beispiel

Im folgenden Beispiel lesen Sie zunächst alle Berichtswährungen in der *SELECT-Anweisung und ordnen die Werte der Variable %CUR% zu. Mithilfe von FOR/NEXT lesen Sie die zugehörigen Umrechnungskurse aus dem Kursmodell. Danach verwenden Sie sie in der Berechnung.

Werte in den Modellen vor der Ausführung des Skripts:

Daten im Planungsmodell:

TIME

P_ACCT

ENTITY

P_ACTIVITY

CATEGORY

Currency

P_DATASRC

SignData

2006.AUG

CE0004010

C9000

NONE

ACTUAL

LC

UPLOAD

157.915,81

Daten im Kursmodell:

Category

InputCurrency

R_ACCT

R_ENTITY

TIME

SignData

ACTUAL

EUR

AVG

GLOBAL

2006.AUG

1,5022

ACTUAL

USD

AVG

GLOBAL

2006.SEP

1,0000

*XDIM_MEMBERSET TIME=2006.AUG

*XDIM_MEMBERSET P_ACCT=CE0004010

*XDIM_MEMBERSET CATEGORY=ACTUAL

*SELECT(%CUR%, "[ID]", RPTCURRENCY, "[REPORTING]=Y")

*LOOKUP RATE

*DIM CATEGORY="ACTUAL"

*DIM R_ACCT="AVG"

*DIM R_ENTITY="GLOBAL"

*DIM TIME="2006.AUG"

*DIM MEASURES="PERIODIC"

*FOR %LOOP_CUR%=%CUR%

*DIM C_%LOOP_CUR%:INPUTCURRENCY="%LOOP_CUR%"

*NEXT

*ENDLOOKUP

*WHEN P_ACCT

*IS "CE0004010"

*FOR %LOOP_CUR%=%CUR%

*REC(EXPRESSION=%VALUE%/LOOKUP(C_%LOOP_CUR%), RPTCURRENCY=%LOOP_CUR%)

*NEXT

*ENDWHEN

Werte in den Modellen nach der Ausführung des Skripts:

2006.AUG

CE0004010

C9000

NONE

ACTUAL

EUR

UPLOAD

105.123,03

2006.SEP

CE0004010

C9000

NONE

ACTUAL

USD

UPLOAD

157.915,81

Sie können auch Eigenschaftswerte an Umfangselemente übermitteln, um Lookups von Daten durchzuführen.

Beispiel

In diesem Beispiel wird die Währung der entsprechenden Entität aus Stammdaten gelesen und dann zum Nachschlagen des Kurswertes verwendet.

*XDIM_MEMBERSET TIME = 2007.AUG

*XDIM_MEMBERSET P_ACCT=CE0004010

*XDIM_MEMBERSET CATEGORY=ACTUAL

*XDIM_MEMBERSET ENTITY=C9000

*LOOKUP RATE *DIM TIME="2006.AUG"

*DIM CATEGORY="ACTUAL"

*DIM R_ACCT="AVG"

*DIM R_ENTITY="GLOBAL"

*DIM RATE:INPUTCURRENCY=ENTITY.CURRENCY

*DIM MEASURES="PERIODIC"

*ENDLOOKUP

*WHEN P_ACCT

*IS "CE0004010"

*REC(EXPRESSION=%VALUE%/LOOKUP(RATE), RPTCURRENCY=ENTITY.CURRENCY)

*ENDWHEN

Einschränkung

  • Das Lesen mehrerer Kennzahlen innerhalb eines einzelnen LOOKUP durch Zuordnen mehrerer Lookup-IDs wird nicht unterstützt.

Alle in dieser Dokumentation enthaltenen Software-Quelltextzeilen und/oder -Strings („Code“) dienen nur als Beispiele und sind nicht für die Anwendung in einem Produktivsystem vorgesehen. Der Code soll lediglich dazu dienen, die Syntax- und die Phrasierungsregeln bestimmter Kodierungen besser zu erklären und zu veranschaulichen. 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.