自定义度量公式
您可以使用 UJA_MAINTAIN_MEASURE_FORMULA 程序创建和维护自定义度量公式。
对维护度量的限制
无法删除随 Business Planning and Consolidation 交付的度量。
无法更改随 Business Planning and Consolidation 交付的定期信息提供者上的 PERIODIC 度量和年初迄今(YTD)信息提供者上的 YTD 度量。您可以更改交付的其他度量,但风险自负。
注意从“管理”屏幕对该模型进行任何更改,都将覆盖随 Business Planning and Consolidation 交付的度量更改。建议您创建自定义度量,而不要更改交付的度量。公式名称不能重复。
公式名称必须以大写字母形式输入。
层次结构的父项节点不能用于度量公式中。
针对公式维护的提示
在 [MEASURES].[<measure name>] 中指定度量名称时,请使用在“公式名称”字段中定义的相同公式名称。
如果您的公式需要引用其他度量,请在公式语句部分一同输入其他公式语句和新公式。例如,引用模型中 YTD 存储类型的定期和季初迄今(QTD)度量公式语句。
如果您希望在“度量公式”中使用某个维属性,则必须包括 SAP Business Warehouse 技术名称。例如,您可以使用事务 MDXTEST 找到此名称。在此事务中,选择信息提供者作为目录,然后选择您的模型(信息提供者)。系统会显示维列表。展开维及其属性查看属性列表。
[%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/GJPDBWP ") 是使用 TIME 维的 TIMEID 属性时采用的语法。
创建自定义度量公式
转到 ABAP 层的 “SE38” 事务,然后输入 UJA_MAINTAIN_MEASURE_FORMULA 作为程序名称。
单击“调试”按钮。
在“维护度量公式”屏幕中,输入模型集 ID、模型 ID 和用户 ID。您必须拥有核心模型的写访问权限才能保存公式。
单击“系统功能条”上的“Enter” 按钮。
在“维护度量公式”屏幕中,进行下列任一操作:
要创建度量:
请单击新项目按钮。
请输入度量公式名称、描述和公式。
要显示度量公式,请双击它。
要显示现有度量,请将光标放在要显示的度量上,然后单击“显示”按钮。
要更改现有度量,请将光标放在要更改的度量上,然后单击“更改”按钮。
要删除度量,请将光标放在要删除的度量上,然后单击“删除”按钮。
示例 - YTD 模型上的 YTD
MEMBER [MEASURES].[YTD] AS 'IIF(([%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="INC" OR [%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="LEQ"),-([MEASURES].[/CPMB/SDATA], CLOSINGPERIOD([%TIME%].[LEVEL02])), ([MEASURES].[/CPMB/SDATA], CLOSINGPERIOD([%TIME%].[LEVEL02])))' SOLVE_ORDER=3
示例 - YTD 模型上的 PERIODIC
MEMBER [MEASURES].[YTD] AS 'IIF(([%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="INC" OR [%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="LEQ"),-([MEASURES].[/CPMB/SDATA], CLOSINGPERIOD([%TIME%].[LEVEL02])), ([MEASURES].[/CPMB/SDATA], CLOSINGPERIOD([%TIME%].[LEVEL02])))' SOLVE_ORDER=3## AS 'IIF(([%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="INC" OR [%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="EXP") AND NOT ([%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/PERIOD")="TOTAL" OR [%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/PERIOD")="Q1" OR [%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/PERIOD")="JAN" ), [MEASURES].[YTD]-([MEASURES].[YTD],[%TIME%].LAG(1)), [MEASURES].[YTD])' SOLVE_ORDER=3
示例 - YTD 模型上的 QTD
MEMBER [MEASURES].[YTD] AS 'IIF(([%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="INC" OR [%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="LEQ"),-([MEASURES].[/CPMB/SDATA], CLOSINGPERIOD([%TIME%].[LEVEL02])), ([MEASURES].[/CPMB/SDATA], CLOSINGPERIOD([%TIME%].[LEVEL02])))' SOLVE_ORDER=3
AS 'IIF(([%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="INC" OR [%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="EXP") AND NOT ([%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/PERIOD")="TOTAL" OR [%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/PERIOD")="Q1" OR [%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/PERIOD")="JAN" ), [MEASURES].[YTD]-([MEASURES].[YTD],[%TIME%].LAG(1)), [MEASURES].[YTD])' SOLVE_ORDER=3
MEMBER [MEASURES].[QTD] AS 'IIF(([%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="INC" OR [%P_ACCT%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="EXP"),IIF([%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/TILEVEL")="QUARTER",[MEASURES].[PERIODIC],IIF([%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/TILEVEL")="MONTH" OR [%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/TILEVEL")="WEEK" OR [%TIME%].CURRENTMEMBER.PROPERTIES("2/CPMB/TILEVEL")="DAY",SUM(PERIODSTODATE([%TIME%].CURRENTMEMBER.PARENT.LEVEL, [%TIME%].CURRENTMEMBER),[MEASURES].[PERIODIC]),NULL)),[MEASURES].[YTD])' SOLVE_ORDER = 3