*REC
*REC( ) 指令提示程序在符合指定条件后应该执行的操作。
每个 REC 指令生成一个要过账到数据库的新记录。每个源记录可生成要求数量的记录,即使指向相同的目标单元格。
REC( ) 函数的参数指定对原始记录所做的修改。任何维成员都可以使用下列语法进行修改:
{DimensionName}={member}
*XDIM_MEMBERSET P_ACCT = CE0004010
*WHEN CATEGORY
*IS ACTUAL *REC(FACTOR = 1.1, CATEGORY="FORECAST")
*ENDWHEN
可以使用 WHEN 语句中的属性值。
*XDIM_MEMBERSET CATEGORY = PLAN
*WHEN TIME.YEAR
*IS "2007"
*REC(FACTOR = 1.1, CATEGORY="FORECAST")
*ENDWHEN
上述脚本将 2007 计划数据复制到“预测”。还可以读取属性值,并将它们分配给各维。
*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
使用 REC 指令的限制条件
不能在 FACTOR 或 EXPRESSION 指令中使用其他 MDX 关键字(例如 PARENT 和 DESCENDANTS)。允许的运算符有加号(+)、减号(-)、乘号(*)、除号(/)、这些运算符的组合,以及表示运算的元组和优先级的圆括号。
不能使用 GET() 函数来参考其他源值。MDX 元组格式作为 GET 函数使用。
不能在 REC 中使用 NOADD 或 FLD 函数。
REC 语句中不支持动态属性,如 HLEVEL 和 PARENTHn。
REC 指令必须包含 WHEN / IS / ENDWHEN。单独的 REC 语句不会有任何作用。
不能使用 WHEN 语句中的 SIGNEDDATA 或任何度量名称来写入度量值条件。
WHEN / IS / REC / ENDWHEN 不能用于 SELECTCASE / ENDSELECT。
使用多个 REC 语句
可以在一个 WHEN/ IS/ ENDWHEN 语句中写入多个 REC 语句。
语法
*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
上面显示的脚本在信息提供者中创建欧元、加元和英镑过账。
引用 FACTOR/EXPRESSION 指令中的其他源值
可以分配 FACTOR 或 EXPRESSION 指令的范围数据中的源值,以计算 *REC( ) 语句中的新值。要引用其他源值,必须使用完全限定的 MDX 格式,包括“科目”维。
语法
*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(EnvironmentShell 的副本)
应用程序:计划
*XDIM_MEMBERSET P_ACCT = CE0004010,CE0004020
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/[P_ACCT].[CE0004020], P_ACCT="CE0661000")
*ENDWHEN
您还可以使用元组。
Environment:EnvironmentShell_V (EnvironmentShell 的副本)
应用程序:计划
*XDIM_MEMBERSET P_ACCT = CE0004010,CE0652000
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/([P_ACCT].[CE0652000],[P_ACTIVITY].[LABPRD]), P_ACCT="CE0661000")
*ENDWHEN
“本文档中包括的任何软件编码和/或代码行/字符串(“代码”)仅为示例,不可用于生产系统环境中。”“代码仅为更好、更直观地解释特定编码的语法和语法规则。”SAP 不担保本文中代码的正确性和完整性,且 SAP 不对因使用代码而造成的错误或损害负责,除非这些损害是由 SAP 故意或因其重大疏忽所造成。