BPC脚本中的LOOP以检查上个月的数据

2020-08-27 06:39发布

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

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


嗨,

有人可以提供一些有关使用For Loop(在脚本逻辑中)检查当月数据的见解吗?如果当前月为零,请复制上个月的数据。

从DM程序包中的用户选择中将触发月份选择。

非常感谢!

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

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


嗨,

有人可以提供一些有关使用For Loop(在脚本逻辑中)检查当月数据的见解吗?如果当前月为零,请复制上个月的数据。

从DM程序包中的用户选择中将触发月份选择。

非常感谢!

付费偷看设置
发送
15条回答
蓋茨
1楼 · 2020-08-27 07:04.采纳回答

您还可以尝试以下操作:

//%TIME_SET%= 2019.04(当前期间-选择单个期间)
 * XDIM_MEMBERSET TIME = TMVL(-1,%TIME_SET%)//范围为上个月2019.03
 *当TIME.MONTHNUM
 * IS <> 12//如果当前期间不是-JAN
 * REC(EXPRESSION =([TIME]。[%TIME_SET%]> 0 || [TIME]。[%TIME_SET%] <0)?[TIME]。[%TIME_SET%]:%VALUE%,TIME =%TIME_SET  %)
 * ENDWHEN 

" ||" -OR运算符: https://launchpad.support.sap.com/#/notes/0002228643

SAP小菜
2楼-- · 2020-08-27 07:07

对不起,但您似乎没有阅读我的博客。 仍未提供完整信息...

shere_lin
3楼-- · 2020-08-27 06:58

完整的UJKT结果:

----------- ABAP代码生成错误:4 -------------
MESSAGEG27关系运算符")"不受支持。
Line13 Word )
--------代码---------
程序。
类主要定义。
公共部分。
方法METH1导入
P1 类型decfloat34
P2类型decfloat34
导出RET类型decfloat34
提高CX_SY_ZERODIVIDE。
endclass。
类主要实现。
方法METH1。
"([TIME]。[2020.04 ] = 0)?%VALUE%:[TIME]。[2020.04]
如果0)。
RET =P2。else。
RET = P1。
endif。
抱歉,
endclass。

歪着头看世界
4楼-- · 2020-08-27 07:03

但这是我要阅读 https://blogs.sap.com/2014/01/31/how-to-ask-questions-about-script -logic-issues /

并提供所需的信息! 您使用的是ABAP计算引擎!

悻福寶寶
5楼-- · 2020-08-27 07:05

嗨,Vadim,

信息:SAP BW 7.5,SP级别5

在此之前,我还有另一个错误:

UJKT中的脚本:

* XDIM_MEMBERSET TIME = 2020.04
* XDIM_MEMBERSET TIME = TMVL(-1,2020.04)
* XDIM_MEMBERSET AUDITTRAIL = INPUT
* XDIM_MEMBERSET CATEGORY = ACTUAL
* XDIM_MEMBERSET ENTITY = K XDIM_MEMBERSET GROUPS = G_NONE
* XDIM_MEMBERSET MOVEMENT = F500
* XDIM_MEMBERSET RPTCURRENCY = USD
* XDIM_MEMBERSET ACCOUNT = 244000


*当TIME.MONTHNUM
* IS <> 12
* REC(EXPRESSION =([TIME]。[2020.04] == 0)?%VALUE%:[TIME]。[2020.04],TIME = 2020.04)
* ENDWHEN ----
错误消息:

REC:([TIME]。[2020.04] == 0)吗? %VALUE%:[TIME]。[2020.04]
------------ ABAP代码生成错误:4 -------------
MESSAGEG27相关运算符 <=>不支持。
Line13 Word ==
--------代码---------
程序。
类主定义。
公共部分。方法METH1导入P1类型decfloat34
P2类型decfloat34
导出RET类型decfloat34提高CX_SY_ZERODIVIDE。 endclass。
类主要实现。
方法METH1。
"([TIME]。[2020.04] == 0)?%VALUE%:[TIME]。[2020.04]
if(P1 == 0)。
RET = P2。< br> else。
RET = P1.endif。
endmethod。
endclass。
--------输入公式---------
([TIME]。[2020.04] == 0)?%VALUE%:[TIME]。[2020.04]
------------ ABAP代码生成错误结束----- -------

南山jay
6楼-- · 2020-08-27 07:11

无法正常工作:

REC:([TIME]。[2020.04] <> 0)吗? [TIME]。[2020.04]:%VALUE%1
([TIME]。[2020.04] <> 0)吗? [TIME]。[2020.04]:%VALUE%
var $ 2 $ = 4.1972426137439489E-01; var $ 1 $ = 6.6735165584877876E-01;($ 1 {replace1} lt;> 0)吗? $ 1 $:0;

UJK_VALIDATION_EXCEPTION:LINE 15语法错误:"语法错误"

CPLASF-自律
7楼-- · 2020-08-27 07:07

使用JavaScript计算引擎,我的代码将正常工作。

对于ABAP,请尝试以下操作:

//%TIME_SET  %= 2019.04(当期-单期选择)
 * XDIM_MEMBERSET TIME = TMVL(-1,%TIME_SET%)//范围为上个月2019.03
 *当TIME.MONTHNUM
 * IS <> 12//如果当前期间不是-JAN
 * REC(EXPRESSION =([TIME]。[%TIME_SET%] <> 0)?[TIME]。[%TIME_SET%]:%VALUE%,TIME =%TIME_SET%)
 * ENDWHEN 

而不是" =="尝试" <>"

一周热门 更多>