点击此处---> 群内免费提供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
只需在ENVIRONMENTSHELL副本中进行简单测试-模型规划(PERIODIC):
测量R6-最近6个周期的平均值:
脚本:
结果:
没有问题,已复制PL110的R6尺寸 至PL120
PS 不含HANA的BW 750 SP12上的BPC
HANA现在是一种商品, 不再提及:-)
当然,性能可能是个问题,但他将能够评估是否
这是否是瓶颈。 使用该度量,脚本将更具可读性。
嗨,瓦迪姆,
感谢您的回复。
我们目前正在使用WEEKS作为基本成员来推动TIME维度,因此我们无法维护TIMEID,因为有些星期需要两个月。
我们在CATEGORY维度中具有一个属性LAST_ACT_PER,该属性保存最近的实际周期(周)值。
使用此属性,我们无法使用逻辑脚本来计算最近13个实际周期的平均值。
能否请您指导我们如何使用逻辑脚本来计算平均值?
谢谢!
PERIODIC是您的存储类型吗?
下表将说明您的实际需求是什么,以及为什么我们要计算最近的13个期间的实际金额。
第一个表显示了3个实体N,S和W的实际期间。突出显示的WK15是作为类别维的一部分维护的最后一个实际期间。 我们的逻辑将查找该值,然后返回最近的13个周期并计算%值。
根据该表,我们将为每个实体得出%。 我们有一个输入表单,用户可以通过该输入表单将汇总的预测数据输入到虚拟Entity。 使用计算出的百分比值,我们需要从用户输入的总数中找到金额,并且需要将相同的金额分配给每个实体的剩余预测周。
第二张表显示了用户输入和从得出的百分比得出的总计算量。
每个实体的结果将被复制到上表中所示的该年度剩余的预测期间。
请让我们知道您的输入。
谢谢。
逻辑描述仍不清楚!
通常:
如果要基于一个月计算平均值 在之前的13个月中,您可以将TMVL与正确维护的TIMEID属性一起使用
另一个选择是在TIME维度中创建13个属性并使用LOOKUP
您好,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
一周热门 更多>