*REC

Die *REC( )-Anweisung teilt dem Programm mit, was zu tun ist, wenn die festgelegten Kriterien erfüllt sind.

Jede REC-Anweisung generiert einen an die Datenbank zu übermittelnden neuen Datensatz. Jeder Quelldatensatz kann so viele Sätze wie gewünscht generieren – selbst solche, die auf dieselbe Zielzelle verweisen.

Die Parameter der Funktion REC( ) geben an, was im Originaldatensatz zu ändern ist. Jedes Dimensionselement kann mit folgender Syntax geändert werden:

{DimensionName}={member}

Beispiel

*XDIM_MEMBERSET P_ACCT = CE0004010

*WHEN CATEGORY

*IS ACTUAL *REC(FACTOR = 1.1, CATEGORY="FORECAST")

*ENDWHEN

In der WHEN-Anweisung können Sie Eigenschaftswerte verwenden.

Beispiel

*XDIM_MEMBERSET CATEGORY = PLAN

*WHEN TIME.YEAR

*IS "2007"

*REC(FACTOR = 1.1, CATEGORY="FORECAST")

*ENDWHEN

Das o. g. Skript kopiert die Plandaten für 2007 in die Prognose. Sie können auch Eigenschaftswerte lesen und Dimensionen zuordnen.

Beispiel

*XDIM_MEMBERSET P_ACCT = CE0004010,CE0652000

*WHEN P_ACCT

*IS "CE0004010"

*REC(EXPRESSION=([P_ACCT].[CE0004010],[P_ACTIVITY].[NONE])/([P_ACCT].[CE0652000],[P_ACTIVITY].[LABPRD]), RPTCURRENCY=[ENTITY].CURRENCY, P_ACCT=CE0661000)

*ENDWHEN

Einschränkungen für die Verwendung der REC-Anweisung

  • Sie können keine anderen MDX-Schlüsselwörter (wie PARENT und DESCENDANTS) in FACTOR- oder EXPRESSION-Anweisungen verwenden. Die einzigen zulässigen Operationen sind Addition (+), Subtraktion (-), Multiplikation (*) und Division (/), Kombinationen dieser Operatoren und Klammern für Tupel und Prioritäten dieser Operationen.

  • Sie können die Funktion GET() nicht verwenden, um einen anderen Quellwert heranzuziehen. Das MDX-Tupelformat agiert als GET-Funktion.

  • Sie können die NOADD- oder die FLD-Funktion in REC nicht verwenden.

  • Dynamische Eigenschaften wie HLEVEL und PARENTHn werden in der REC-Anweisung nicht unterstützt.

  • REC muss immer gemeinsam mit WHEN / IS / ENDWHEN verwendet werden. Ausschließliche REC-Anweisungen sind wirkungslos.

  • Sie können nicht SIGNEDDATA oder einen anderen Kennzahlennamen in einer WHEN-Anweisung verwenden, um einen Kennzahlenwert mit einer Bedingung zu versehen.

  • WHEN / IS / REC / ENDWHEN können nicht in SELECTCASE / ENDSELECT verwendet werden.

Mehrfache REC-Anweisungen verwenden

Sie können mehrfache REC-Anweisungen innerhalb einer WHEN-/IS-/ENDWHEN-Anweisung schreiben.

Syntax

*WHEN {dim}

* IS {condition_value}

*REC({FACTOR or EXPRESSION instruction},dim=…)

*REC({FACTOR or EXPRESSION instruction},dim=…)

*REC({FACTOR or EXPRESSION instruction},dim=…)

*ENDWHEN

Beispiel

*XDIM_MEMBERSET TIME = 2006.AUG,2006.SEP

*XDIM_MEMBERSET P_ACCT=CE0004010

*XDIM_MEMBERSET CATEGORY=ACTUAL

*WHEN P_ACCT

*IS "CE0004010"

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

*REC(EXPRESSION=%VALUE%/1.0666, RPTCURRENCY="CAD")

*REC(EXPRESSION=%VALUE%/1.9183, RPTCURRENCY="GBP")

*ENDWHEN

Das o. g. Skript erstellt im InfoProvider EUR-, CAD- und GBP-Übermittlungen.

Einen anderen Quellwert in einer FACTOR/EXPRESSION-Anweisung referenzieren

Sie können einen Quellwert aus dem Datenumfang für eine FACTOR- oder EXPRESSION-Anweisung bestimmen, um einen neuen Wert innerhalb einer *REC( )-Anweisung zu berechnen. Um einen anderen Quellwert zu referenzieren, müssen Sie die vollständig qualifizierte MDX-Formatierung einschließlich einer Kontodimension verwenden.

Hinweis
Sie haben die Möglichkeit, implizite Kontoelemente in direkten MDX-Anweisungen in der Skriptlogik zu verwenden.

Syntax

*WHEN {dim}

* IS {condition_value}

*REC({FACTOR or EXPRESSION instruction},dim=…)

*REC({FACTOR or EXPRESSION instruction},dim=…)

*REC({FACTOR or EXPRESSION instruction},dim=…)

*ENDWHEN

Beispiel

Environment: EnvironmentShell_V (Kopie von EnvironmentShell)

Modell: Planung

*XDIM_MEMBERSET P_ACCT = CE0004010,CE0004020

*WHEN P_ACCT

*IS "CE0004010"

*REC(EXPRESSION=%VALUE%/[P_ACCT].[CE0004020], P_ACCT="CE0661000")

*ENDWHEN

Sie können auch Tupel verwenden.

Beispiel

Environment: EnvironmentShell_V (Kopie von EnvironmentShell)

Modell: Planung

*XDIM_MEMBERSET P_ACCT = CE0004010,CE0652000

*WHEN P_ACCT

*IS "CE0004010"

*REC(EXPRESSION=%VALUE%/([P_ACCT].[CE0652000],[P_ACTIVITY].[LABPRD]), P_ACCT="CE0661000")

*ENDWHEN

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.