无法从自定义度量中读取

2020-09-10 16:32发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

在我们的项目中执行实体分配时,我们必须考虑实体实际数据的最后13个期间的平均值。 为此,我们创建了一个名为R13的自定义度量,该度量保存最近13个实际周期的平均数据。 使用此度量,我们设计了脚本逻辑来读取R13(自定义)度量数据,并在此之上计算将用于分配预测数据的分配(%)值。

我们遇到的问题是,没有从R13(自定义)度量中读取数据,并且默认情况下采用了周期性度量并将其过帐到周期性度量中。 此外,在尝试在输入计划中使用此自定义度量时,它工作正常,并从中读取值。

我们正在使用BPC 10.1 NW Standarad,SP13。

请在下面找到脚本逻辑。上述情况下的任何线索都会有很大帮助。 谢谢!

* XDIM_MEMBERSET P_CATEGORY =%P_CATEGORY_SET%

* XDIM_MEMBERSET P_CUSTOMER =%P_CUSTOMER_SET%

* XDIM_MEMBERSET P_TIME =%P_TIME_SET%,2020.INP

* XDIM_MEMBERSET P_PACKAGE =%P_PACKAGE_SET%

* XDIM_ADDMEMBERSET MEASURES = R13,PERIODIC

* XDIM_ADDMEMBERSET P_ENTITY = BAS(PB)

*何时P_TIME

* IS%P_TIME_SET%

*当P_PACKAGE时

* IS%P_PACKAGE_SET%

*当P_CATEGORY时

*实际有效

*当P_CUSTOMER时

* IS%P_CUSTOMER_SET%

*何时P_DATASRC

*消费

*何时P_ACCOUNT

* IS 1000

*当P_ENTITY

* IS BAS(PB)

*何时采取措施

* IS R13

* REC(EXPRESSION =(%VALUE%)/([P_CATEGORY]。[ACTUAL],[P_PROMO]。[NO_PROMO],[P_DATASRC]。[CONSUMPTION],[P_INSTANCE]。[NO_IN],[P_CUSTOMER] 。[TOT_DSD],[P_PACKAGE]。[TOT_PKG],[P_ENTITY]。[PB]),P_DATASRC = USER_INPUT,P_TIME = 2019.INP,P_ACCOUNT = WKPCT)

* ENDWHEN

* ENDWHEN

* ENDWHEN

* ENDWHEN

* ENDWHEN

* ENDWHEN

* ENDWHEN

* ENDWHEN

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

在我们的项目中执行实体分配时,我们必须考虑实体实际数据的最后13个期间的平均值。 为此,我们创建了一个名为R13的自定义度量,该度量保存最近13个实际周期的平均数据。 使用此度量,我们设计了脚本逻辑来读取R13(自定义)度量数据,并在此之上计算将用于分配预测数据的分配(%)值。

我们遇到的问题是,没有从R13(自定义)度量中读取数据,并且默认情况下采用了周期性度量并将其过帐到周期性度量中。 此外,在尝试在输入计划中使用此自定义度量时,它工作正常,并从中读取值。

我们正在使用BPC 10.1 NW Standarad,SP13。

请在下面找到脚本逻辑。上述情况下的任何线索都会有很大帮助。 谢谢!

* XDIM_MEMBERSET P_CATEGORY =%P_CATEGORY_SET%

* XDIM_MEMBERSET P_CUSTOMER =%P_CUSTOMER_SET%

* XDIM_MEMBERSET P_TIME =%P_TIME_SET%,2020.INP

* XDIM_MEMBERSET P_PACKAGE =%P_PACKAGE_SET%

* XDIM_ADDMEMBERSET MEASURES = R13,PERIODIC

* XDIM_ADDMEMBERSET P_ENTITY = BAS(PB)

*何时P_TIME

* IS%P_TIME_SET%

*当P_PACKAGE时

* IS%P_PACKAGE_SET%

*当P_CATEGORY时

*实际有效

*当P_CUSTOMER时

* IS%P_CUSTOMER_SET%

*何时P_DATASRC

*消费

*何时P_ACCOUNT

* IS 1000

*当P_ENTITY

* IS BAS(PB)

*何时采取措施

* IS R13

* REC(EXPRESSION =(%VALUE%)/([P_CATEGORY]。[ACTUAL],[P_PROMO]。[NO_PROMO],[P_DATASRC]。[CONSUMPTION],[P_INSTANCE]。[NO_IN],[P_CUSTOMER] 。[TOT_DSD],[P_PACKAGE]。[TOT_PKG],[P_ENTITY]。[PB]),P_DATASRC = USER_INPUT,P_TIME = 2019.INP,P_ACCOUNT = WKPCT)

* ENDWHEN

* ENDWHEN

* ENDWHEN

* ENDWHEN

* ENDWHEN

* ENDWHEN

* ENDWHEN

* ENDWHEN

付费偷看设置
发送
14条回答
Violet凡
1楼 · 2020-09-10 17:01.采纳回答

只需在ENVIRONMENTSHELL副本中进行简单测试-模型规划(PERIODIC):

测量R6-最近6个周期的平均值:

'IIF(([[%ACCOUNT%]  .CURRENTMEMBER.PROPERTIES(" 2/CPMB/ACCTYPE")=" INC"或[%ACCOUNT%]。CURRENTMEMBER.PROPERTIES(" 2/CPMB/ACCTYPE")=" EXP"),SUM(LASTPERIODS(6,[%  TIME%]。CURRENTMEMBER),[MEASURES]。[/CPMB/SDATA])/6,[MEASURES]。[/CPMB/SDATA])'; SOLVE_ORDER = 3 

脚本:

 * XDIM_MEMBERSET ACCOUNT = PL110
 * XDIM_MEMBERSET ENTITY = DE
 * XDIM_MEMBERSET INTERCO =第三方
 * XDIM_MEMBERSET CATEGORY =预算
 * XDIM_MEMBERSET TIME = BAS(2007.TOTAL)
 * XDIM_MEMBERSET PRODUCT =产品A
 * XDIM_MEMBERSET AUDITTRAIL =输入
 * XDIM_MEMBERSET RPTCURRENCY = LC
 * XDIM_MEMBERSET MEASURES = PERIODIC

 *当帐户
 *是*
 * REC(EXPRESSION = [MEASURES]。[R6],ACCOUNT = PL120)
 * ENDWHEN 

结果:

没有问题,已复制PL110的R6尺寸 至PL120

PS 不含HANA的BW 750 SP12上的BPC

me_for_i
2楼-- · 2020-09-10 17:13

HANA现在是一种商品, 不再提及:-)

当然,性能可能是个问题,但他将能够评估是否

这是否是瓶颈。 使用该度量,脚本将更具可读性。

吹牛啤
3楼-- · 2020-09-10 17:16

嗨,瓦迪姆,

感谢您的回复。

我们目前正在使用WEEKS作为基本成员来推动TIME维度,因此我们无法维护TIMEID,因为有些星期需要两个月。
我们在CATEGORY维度中具有一个属性LAST_ACT_PER,该属性保存最近的实际周期(周)值。
使用此属性,我们无法使用逻辑脚本来计算最近13个实际周期的平均值。

能否请您指导我们如何使用逻辑脚本来计算平均值?
谢谢!

hengyuye
4楼-- · 2020-09-10 17:14

PERIODIC是您的存储类型吗?

小灯塔
5楼-- · 2020-09-10 17:04
< p>您好Vadim,

下表将说明您的实际需求是什么,以及为什么我们要计算最近的13个期间的实际金额。

第一个表显示了3个实体N,S和W的实际期间。突出显示的WK15是作为类别维的一部分维护的最后一个实际期间。 我们的逻辑将查找该值,然后返回最近的13个周期并计算%值。

根据该表,我们将为每个实体得出%。 我们有一个输入表单,用户可以通过该输入表单将汇总的预测数据输入到虚拟Entity。 使用计算出的百分比值,我们需要从用户输入的总数中找到金额,并且需要将相同的金额分配给每个实体的剩余预测周。

第二张表显示了用户输入和从得出的百分比得出的总计算量。

每个实体的结果将被复制到上表中所示的该年度剩余的预测期间。

请让我们知道您的输入。

谢谢。

浮生未央
6楼-- · 2020-09-10 17:14

逻辑描述仍不清楚!

通常:

如果要基于一个月计算平均值 在之前的13个月中,您可以将TMVL与正确维护的TIMEID属性一起使用

另一个选择是在TIME维度中创建13个属性并使用LOOKUP

大道至简
7楼-- · 2020-09-10 17:13

您好,Sindhuja,您 能够在逻辑中使用自定义度量,直接在EXPRESSION语句中使用它。

* REC(EXPRESSION = [MEASURES]。[R13]/([P_CATEGORY]。[ACTUAL],[P_PROMO]。[NO_PROMO],[P_DATASRC]。[CONSUMPTION],[P_INSTANCE]。[NO_IN],[ P_CUSTOMER]。[TOT_DSD],[P_PACKAGE]。[TOT_PKG],[P_ENTITY]。[PB],

[措施]。[R13]

),P_DATASRC = USER_INPUT,P_TIME = 2019.INP,P_ACCOUNT = WKPCT)

但是,您需要小心触发的位置。 如果您在当前期间进行范围划分,并且如果过去我们拥有数据的某个组合不存在任何值,则不会为该组合计算任何值。 您必须分析是否会发生这种情况。 但是,您也可以使用完整的MDX表达式来解决该问题。

示例

* SELECTCASE [TIME] .CURRENTMEMBER.NAME
* CASE%P_TIME_SET%

[P_ACCOUNT]。[#WKPCT] =([P_ACCOUNT]。[1000],[P_DATASRC]。[消费],[措施]。[R13])

* ENDSELECT

* COMMIT

一周热门 更多>