BPC脚本逻辑-根据连接的属性将结果发布到PC

2020-09-19 15:58发布

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

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


BPC专家您好,

我需要一个脚本,该脚本将比较PC和INTCO的属性,然后比较Entity和INTCO,然后如果通过* REC语句将两个属性(PC/ENTITY)连接起来以得出利润中心elim成员,则比较发布结果是否相等 至。 如果不相等,它将发布到固定的PC Elim。 我已经在每个这些维度中创建了属性,以便可以对其进行比较,并在组合后创建ELIM PC。 我还有其他一些场景也需要包括在内-共有四种(相同,相同,相同,差异,差异,相同,差异,差异)。 这是到目前为止我拥有的same-same和same-diff的代码的副本,如果我注释掉same-diff部分,这种方法也可以工作,但是它创建了太多的记录-4条记录而不是1条记录。 结束了。 我们目前没有BADI选项,因此我坚持使用标准脚本逻辑。 任何建议,不胜感激! 请参阅下面的系统配置信息。

//PC ELIM-第1部分

* SELECT(%PC_SEL%,ID,C_PROFITCENTER,VAR1 <>"")

* SELECT(%ENT_SEL%,ID,C_ENTITY,VAR2 <>"")

* SELECT(%PC_VAR1%,VAR1,C_PROFITCENTER,ID =%PC_SEL%)

* SELECT(%ENT_VAR2%,VAR2,C_ENTITY,ID =%ENT_SEL%)

* XDIM_MEMBERSET C_AUDITTRAIL = AT_INPUT

* XDIM_MEMBERSET C_ENTITY =%ENT_SEL%

* XDIM_MEMBERSET C_PROFITCENTER =%PC_SEL%

* FOR%PCVAR1%=%PC_VAR1%AND%ENTVAR2%=%ENT_VAR2%

*当C_PROFITCENTER.VAR1//相同时-此部分有效,但记录太多

* IS = C_INTERCO.VAR1

*当C_ENTITY.VAR2//相同时

* IS = C_INTERCO.VAR2

* REC(EXPRESSION =%VALUE%,C_PROFITCENTER =%PCVAR1 %% ENTVAR2%,C_AUDITTRAIL = AT_PCELIMCALC)

//* IS *//same-diff-但它不起作用,包含时什么也没发生

//* REC(表达式=%VALUE%,C_PROFITCENTER =%PCVAR1%CROSSREG_ELIM,C_AUDITTRAIL = AT_PCELIMCALC)

* ENDWHEN

* ENDWHEN

* NEXT

系统配置:

-HANA sp 8上的BPC 10.1 NW

-标准-SAP BW 7.4 sp13

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

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


BPC专家您好,

我需要一个脚本,该脚本将比较PC和INTCO的属性,然后比较Entity和INTCO,然后如果通过* REC语句将两个属性(PC/ENTITY)连接起来以得出利润中心elim成员,则比较发布结果是否相等 至。 如果不相等,它将发布到固定的PC Elim。 我已经在每个这些维度中创建了属性,以便可以对其进行比较,并在组合后创建ELIM PC。 我还有其他一些场景也需要包括在内-共有四种(相同,相同,相同,差异,差异,相同,差异,差异)。 这是到目前为止我拥有的same-same和same-diff的代码的副本,如果我注释掉same-diff部分,这种方法也可以工作,但是它创建了太多的记录-4条记录而不是1条记录。 结束了。 我们目前没有BADI选项,因此我坚持使用标准脚本逻辑。 任何建议,不胜感激! 请参阅下面的系统配置信息。

//PC ELIM-第1部分

* SELECT(%PC_SEL%,ID,C_PROFITCENTER,VAR1 <>"")

* SELECT(%ENT_SEL%,ID,C_ENTITY,VAR2 <>"")

* SELECT(%PC_VAR1%,VAR1,C_PROFITCENTER,ID =%PC_SEL%)

* SELECT(%ENT_VAR2%,VAR2,C_ENTITY,ID =%ENT_SEL%)

* XDIM_MEMBERSET C_AUDITTRAIL = AT_INPUT

* XDIM_MEMBERSET C_ENTITY =%ENT_SEL%

* XDIM_MEMBERSET C_PROFITCENTER =%PC_SEL%

* FOR%PCVAR1%=%PC_VAR1%AND%ENTVAR2%=%ENT_VAR2%

*当C_PROFITCENTER.VAR1//相同时-此部分有效,但记录太多

* IS = C_INTERCO.VAR1

*当C_ENTITY.VAR2//相同时

* IS = C_INTERCO.VAR2

* REC(EXPRESSION =%VALUE%,C_PROFITCENTER =%PCVAR1 %% ENTVAR2%,C_AUDITTRAIL = AT_PCELIMCALC)

//* IS *//same-diff-但它不起作用,包含时什么也没发生

//* REC(表达式=%VALUE%,C_PROFITCENTER =%PCVAR1%CROSSREG_ELIM,C_AUDITTRAIL = AT_PCELIMCALC)

* ENDWHEN

* ENDWHEN

* NEXT

系统配置:

-HANA sp 8上的BPC 10.1 NW

-标准-SAP BW 7.4 sp13

付费偷看设置
发送
2条回答
clever101
1楼-- · 2020-09-19 16:27

要添加的奖励问题:

在比较这样的动态属性并将其放入上面的逻辑中时,我该如何等效于<>? 在相同差异,差异相同和差异差异的其他情况下,我将需要它。

这是行不通的,因为在比较动态属性时,它仅接受" =":

* FOR%PCVAR1%=%PC_VAR1%AND%ENTVAR2%=%ENT_VAR2%//AND%ENTCROSS%= CROSSREG_ELIM

//相同

*当C_PROFITCENTER.VAR1时

* IS = C_INTERCO.VAR1

*当C_ENTITY.VAR2时

* IS = C_INTERCO.VAR2

* REC(EXPRESSION =%VALUE%,C_PROFITCENTER =%PCVAR1 %% ENTVAR2%,C_AUDITTRAIL = AT_PCELIMCALC)

* ENDWHEN

//相同的十字

*当C_ENTITY.VAR2时

* IS <> C_INTERCO.VAR2

* REC(EXPRESSION =%VALUE%,C_PROFITCENTER =%PCVAR1%CROSSREG_ELIM,C_AUDITTRAIL = AT_PCELIMCALC)

* ENDWHEN


* ENDWHEN

* NEXT

愤怒的猪头君
2楼-- · 2020-09-19 16:39

将诸如C_PROFITCENTER =%PCVAR1 %% ENTVAR2%之类的属性串联起来,由于使用了FOR/NEXT,通常是个坏主意。

请解释业务需求(而不是您的脚本),也许我将向您展示一些更好的解决方案! 提供数据样本和所需的结果!

一周热门 更多>