*REC
L’instruction *REC( ) indique au programme la marche à suivre une fois que les critères spécifiés sont réunis.
Chaque instruction REC génère un nouvel enregistrement à comptabiliser dans la base de données. Chaque enregistrement source peut générer autant d’enregistrements que souhaité, même pointant vers la même cellule de destination.
Les paramètres de la fonction REC( ) spécifient les modifications à effectuer dans l’enregistrement d’origine. Tout membre de dimension peut être modifié en utilisant la syntaxe suivante :
{DimensionName}={member}
*XDIM_MEMBERSET P_ACCT = CE0004010
*WHEN CATEGORY
*IS ACTUAL *REC(FACTOR = 1.1, CATEGORY="FORECAST")
*ENDWHEN
Vous pouvez utiliser des valeurs de propriété dans l'instruction WHEN.
*XDIM_MEMBERSET CATEGORY = PLAN
*WHEN TIME.YEAR
*IS "2007"
*REC(FACTOR = 1.1, CATEGORY="FORECAST")
*ENDWHEN
Le script ci-dessus permet de copier les données planifiées 2007 dans Prévisions. Vous pouvez également lire des valeurs de propriété et les affecter aux dimensions.
*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
Restrictions d'utilisation de l'instruction REC
Vous ne pouvez pas utiliser d'autres mots clés MDX (par exemple, PARENT et DESCENDANTS) dans les instructions FACTOR ou EXPRESSION. Les seules opérations autorisées sont l'addition (+), la soustraction (-), la multiplication (*) et la division (/), les combinaisons de ces opérateurs et les parenthèses pour les nuplets et priorités des opérations.
Vous ne pouvez pas utiliser la fonction GET() pour faire référence à une autre valeur source. Le format de nuplet MDX agit comme une fonction GET.
Vous ne pouvez pas utiliser les fonctions NOADD ou FLD dans REC.
Les propriétés dynamiques comme HLEVEL et PARENTHn ne sont pas prises en charge par l'instruction REC.
REC doit toujours être accompagné de WHEN/IS/ENDWHEN. Les instructions REC autonomes n'ont aucun effet.
Vous ne pouvez utiliser ni SIGNEDDATA, ni aucun nom de mesure dans une instruction WHEN pour écrire une condition sur une valeur de mesure.
WHEN/IS/REC/ENDWHEN ne peuvent pas être utilisés dans SELECTCASE/ENDSELECT.
Utilisation de plusieurs instructions REC
Vous pouvez écrire plusieurs instructions REC dans une instruction WHEN/IS/ENDWHEN.
Syntaxe
*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
Le script ci-dessus crée des écritures EUR, CAD et GBP dans l'InfoProvider.
Référence à une autre valeur source dans une instruction FACTOR/EXPRESSION
Vous pouvez affecter une valeur source issue du périmètre de données pour une instruction FACTOR ou EXPRESSION afin de calculer une nouvelle valeur dans une instruction *REC( ). Pour faire référence à une autre valeur source, vous devez utiliser le formatage MDX complet, y compris une dimension de compte.
Syntaxe
*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 (Copie de EnvironmentShell)
Modèle : Planification
*XDIM_MEMBERSET P_ACCT = CE0004010,CE0004020
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/[P_ACCT].[CE0004020], P_ACCT="CE0661000")
*ENDWHEN
Vous pouvez également utiliser des nuplets.
Environment : EnvironmentShell_V (Copie de EnvironmentShell)
Modèle : Planification
*XDIM_MEMBERSET P_ACCT = CE0004010,CE0652000
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/([P_ACCT].[CE0652000],[P_ACTIVITY].[LABPRD]), P_ACCT="CE0661000")
*ENDWHEN
Tous les codes logiciels et/ou lignes/chaînes de code ("Code") inclus dans cette documentation sont fournis à titre d'exemples et ne sont en aucun cas destinés à un usage dans un environnement système productif.Le Code a pour but de mieux expliquer et d'offrir un exemple visuel des règles de syntaxe et de rédaction de certains codes.SAP ne garantit pas l'exactitude et l'exhaustivité du Code ci-après et SAP ne pourra pas être tenu responsable des erreurs ou dommages causés par l'utilisation dudit Code, sauf si de tels dommages ont été causés volontairement par SAP ou par négligence grave de SAP.