我们可以使用IF条件来调用逻辑脚本吗?

2020-09-26 09:06发布

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

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


我们有一个要求,必须根据某些条件通过逻辑脚本调用业务规则。 例如,如果ACCOUNT VALUE> 0,则* INCLUDE ABC.LGF,否则为PQR.LGF。

我们可以实现吗? 如有需要,我们乐意进一步阐述。

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

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


我们有一个要求,必须根据某些条件通过逻辑脚本调用业务规则。 例如,如果ACCOUNT VALUE> 0,则* INCLUDE ABC.LGF,否则为PQR.LGF。

我们可以实现吗? 如有需要,我们乐意进一步阐述。

付费偷看设置
发送
7条回答
Nan4612
1楼-- · 2020-09-26 09:42

不,我们不能!

脚本逻辑不是真正的语言,并且其中没有IF THEN。

更何况您无法基于事务数据值更改脚本执行。

WHEN/ENDWHEN循环中唯一支持的是三元运算符:

*帐户开通时间

* IS A1

* REC(EXPRESSION =%VALUE%> 0?%VALUE%:0,ACCOUNT = A2)

* ENDWHEN

如果您可以使用WHEN/REC/ENDWHEN代替规则,则可以执行某些操作!

四川大学会员
2楼-- · 2020-09-26 09:39

感谢Vadim和Pratyush的回复。 我们试图为满足以下要求在逻辑脚本中放入逻辑。 任何人都可以检查是否正确 语法?

要求是-

如果C_ACCOUNT_ORIG上的TECH_INT_TOTAL-默认> 0,则

1)INT_04 = TECH_INT_04 + TECH_INT_16

2)INT_05 = TECH_INT_05 + TECH_INT_17

3)INT_06 = TECH_INT_06 + TECH_INT_18

4)INT_07 = TECH_INT_07 + TECH_INT_19

5)INT_16 = 0

6)INT_17 = 0

7)INT_18 = 0

8)INT_19 = 0

如果C_ACCOUNT_ORIG上的TECH_INT_TOTAL-默认<= 0,则

1)INT_04 = 0

2)INT_05 = 0

3)INT_06 = 0

4)INT_07 = 0

5)INT_16 = TECH_INT_04 + TECH_INT_16

6)INT_17 = TECH_INT_05 + TECH_INT_17

7)INT_18 = TECH_INT_06 + TECH_INT_18

8)INT_19 = TECH_INT_07 + TECH_INT_19

逻辑脚本:

*当C_ACCOUNT *为TECH_INT_TOTAL时

* REC(C_ACCOUNT = INT_04,EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])> 0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_04] + [C_ACCOUNT]。[ TECH_INT_16]):0)

* REC(C_ACCOUNT = INT_16,EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])== 0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_04] + [C_ACCOUNT]。 [TECH_INT_16]):EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])<0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_04] + [C_ACCOUNT]。[TECH_INT_16]):0 )

* REC(C_ACCOUNT = INT_05,EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])> 0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_05] + [C_ACCOUNT]。[ TECH_INT_17]):0)

* REC(C_ACCOUNT = INT_17,EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])== 0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_05] + [C_ACCOUNT]。 [TECH_INT_17]):EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])<0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_05] + [C_ACCOUNT]。[TECH_INT_17]):0 )

* REC(C_ACCOUNT = INT_06,EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])> 0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_06] + [C_ACCOUNT]。[ TECH_INT_18]):0)

* REC(C_ACCOUNT = INT_18,EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])== 0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_06] + [C_ACCOUNT]。 [TECH_INT_18]):EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])<0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_06] + [C_ACCOUNT]。[TECH_INT_18]):0 )

* REC(C_ACCOUNT = INT_07,EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])> 0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_07] + [C_ACCOUNT]。[ TECH_INT_19]):0)

* REC(C_ACCOUNT = INT_19,EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])== 0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_07] + [C_ACCOUNT]。 [TECH_INT_19]):EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])<0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_07] + [C_ACCOUNT]。[TECH_INT_19]):0 )

Alawn_Xu
3楼-- · 2020-09-26 09:55

对不起,但您似乎没有阅读我的答案!

" * REC(C_ACCOUNT = INT_04,EXPRESSION =(([[C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])> 0)?EXPRESSION =([C_ACCOUNT]。[TECH_INT_04] + [C_ACCOUNT]。 [TECH_INT_16]):0)"-错误的语法!

我的帖子中的语法:

* REC(EXPRESSION =%VALUE%> 0?%VALUE%:0,ACCOUNT = A2)

您的REC必须是:

* REC(EXPRESSION =([C_ACCOUNT]。[TECH_INT_TOTAL],[C_ACCOUNT_ORIG]。[DEFAULT])> 0?[C_ACCOUNT]。[TECH_INT_04] + [C_ACCOUNT]。[TECH_INT_16]:0,C_ACCOUNT = INT_04)

对于其他内容,您必须解释范围界定逻辑...

hengyuye
4楼-- · 2020-09-26 09:50

P.S。 请评论答案,而不是问题!

SC_Yao
5楼-- · 2020-09-26 09:46

嗨,Sameer,

我不确定您在哪个SP中,但是您可以浏览关键字

* XDIM_SKIPNULLCHECK-

正如Vadim所建议的那样,脚本并非旨在将条件语句放在事务数据上,并且该条件语句非常本机。 您必须在"何时"条件下进行操作,或通过跳空键才能获得所需的结果。

根据需求进一步扩展,可能会有解决方法。

https ://www.column5.com/blog/how-to-create-conditional-logic-in-sap-business-objects-planning-consolidation-version-for-netweaver

huskylover
6楼-- · 2020-09-26 09:53
< p>对不起,但您没有提供有关此案的完整信息-我无法为您提供帮助!

请阅读: https ://blogs.sap.com/2014/01/31/how-to-ask-questions-about-script-logic-issues /

并提供所需的信息和示例测试用例!

"系统未考虑..."范围可能不正确!

"我们应该放入

*当C_ACCOUNT

* IS ????????"-解释您拥有的数据!

一周热门 更多>