*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}
*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.
*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.
*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
*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.
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
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.
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.