与Default.LGF中的* FOR * NEXT有关的问题

2020-09-22 16:49发布

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

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


嗨,

我在Default.lgf的以下脚本逻辑中遇到* for * next方面的问题

//* SELECT(%DOR%,ID,ACCOUNT,ID = 1000)
* XDIM_MEMBERSET RPTCURRENCY = USD
* XDIM_MEMBERSET度量= YTD
* XDIM_MEMBERSET FLOW = F_ACTIVITY
* XDIM_MEMBERSET CS_DATASRC = DS_LOAD,DS_INPUT
//* XDIM_MEMBERSET ACCOUNT =%DOR%
* FOR%DO%= 1000,2000
*当CS_DATASRC
* IS DS_INPUT
*当ACCOUNT
* IS USO_%DO%
* REC(表达式=%VALUE%-([CS_DATASRC]。[DS_LOAD],[ACCOUNT]。[%DO%]),CS_DATASRC = DS_CALC,ACCOUNT =%DO%)
* ENDWHEN
* ENDWHEN
* NEXT

但是单独运行时效果很好:

* XDIM_MEMBERSET RPTCURRENCY = USD

* XDIM_MEMBERSET MEASURES = YTD

* XDIM_MEMBERSET FLOW = F_ACTIVITY

* XDIM_MEMBERSET CS_DATASRC = DS_LOAD,DS_INPUT

*当CS_DATASRC时

*是DS_INPUT

*帐户开通时间

*是USO_1000

* REC(EXPRESSION =%VALUE%-([CS_DATASRC]。[DS_LOAD],[ACCOUNT]。[1000]),CS_DATASRC = DS_CALC,ACCOUNT = 1000)

* ENDWHEN

* ENDWHEN

*当CS_DATASRC时

*是DS_INPUT

*帐户开通时间

* IS USO_2000

* REC(EXPRESSION =%VALUE%-([CS_DATASRC]。[DS_LOAD],[ACCOUNT]。[2000]),CS_DATASRC = DS_CALC,ACCOUNT = 2000)

* ENDWHEN

* ENDWHEN

任何使上述脚本简短的建议

问候

Bh​​agyesh Ravange

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

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


嗨,

我在Default.lgf的以下脚本逻辑中遇到* for * next方面的问题

//* SELECT(%DOR%,ID,ACCOUNT,ID = 1000)
* XDIM_MEMBERSET RPTCURRENCY = USD
* XDIM_MEMBERSET度量= YTD
* XDIM_MEMBERSET FLOW = F_ACTIVITY
* XDIM_MEMBERSET CS_DATASRC = DS_LOAD,DS_INPUT
//* XDIM_MEMBERSET ACCOUNT =%DOR%
* FOR%DO%= 1000,2000
*当CS_DATASRC
* IS DS_INPUT
*当ACCOUNT
* IS USO_%DO%
* REC(表达式=%VALUE%-([CS_DATASRC]。[DS_LOAD],[ACCOUNT]。[%DO%]),CS_DATASRC = DS_CALC,ACCOUNT =%DO%)
* ENDWHEN
* ENDWHEN
* NEXT

但是单独运行时效果很好:

* XDIM_MEMBERSET RPTCURRENCY = USD

* XDIM_MEMBERSET MEASURES = YTD

* XDIM_MEMBERSET FLOW = F_ACTIVITY

* XDIM_MEMBERSET CS_DATASRC = DS_LOAD,DS_INPUT

*当CS_DATASRC时

*是DS_INPUT

*帐户开通时间

*是USO_1000

* REC(EXPRESSION =%VALUE%-([CS_DATASRC]。[DS_LOAD],[ACCOUNT]。[1000]),CS_DATASRC = DS_CALC,ACCOUNT = 1000)

* ENDWHEN

* ENDWHEN

*当CS_DATASRC时

*是DS_INPUT

*帐户开通时间

* IS USO_2000

* REC(EXPRESSION =%VALUE%-([CS_DATASRC]。[DS_LOAD],[ACCOUNT]。[2000]),CS_DATASRC = DS_CALC,ACCOUNT = 2000)

* ENDWHEN

* ENDWHEN

任何使上述脚本简短的建议

问候

Bh​​agyesh Ravange

付费偷看设置
发送
6条回答
葫芦娃快救爷爷
1楼 · 2020-09-22 17:39.采纳回答

在ACCOUNT维度(如SOURCEACC)中创建新属性,并为所有USO_XXXX填充相应的XXXX
,然后使用以下脚本:

 * LOOKUP CurrentModelName//使用您当前的模型名称
 * DIM SRC:ACCOUNT = ACCOUNT.SOURCEACC//从USO_XXXX的属性中获取XXXX
 * DIM CS_DATASRC = DS_LOAD
 * DIM MEASURES = YTD//只是一个要求
 * ENDLOOKUP

 * SELECT(%USO%,ID,ACCOUNT,SOURCEACC <>'')//仅用于USO_XXXX

 * XDIM_MEMBERSET MEASURES = YTD//只是一个要求

 *当RPTCURRENCY
 * IS USD//否* XDIM_MEMBERSET !!!
 *当流
 * IS F_ACTIVITY//否* XDIM_MEMBERSET !!!
 *当CS_DATASRC
 * IS DS_INPUT//否* XDIM_MEMBERSET !!!
 *当帐户
 * IS%USO%//仅适用于USO_XXXX
 * REC(EXPRESSION =%VALUE%-LOOKUP(SRC),CS_DATASRC = DS_CALC,ACCOUNT = ACCOUNT.SOURCEACC)
 *结束
 *结束
 *结束
 * ENDWHEN 

讨论后的更正:

 * SELECT(%USO%,ID,ACCOUNT,SOURCEACC <>'')

必须更改为:

 * SELECT(%USO%,ID,ACCOUNT,SOURCEACC <>''AND CALC = N)

基于 https://launchpad.support.sap.com/#/notes/ 2458948

土豆飞人
2楼-- · 2020-09-22 17:25

是的,请确保在LOOKUP中可以有多个标签! 没问题!

SAP砖家
3楼-- · 2020-09-22 17:15

首先:您没有阅读 https://blogs.sap.com/2014/01/31/how-to-ask-questions-about-script-logic-issues /

您正在发布一些脚本,而没有解释所需的逻辑!

您未提供其他常规信息...

您没有发布脚本运行的UJKT日志...

???

宇峰
4楼-- · 2020-09-22 17:27

1)下面的脚本逻辑是我在DEFAULT.LGF中执行的

2)我需要进行以下计算

([[CS_DATASRC]。[DS_INPUT],[ACCOUNT]。[USO_1000])

-([CS_DATASRC]。[DS_LOAD],[ACCOUNT]。[1000])

=([CS_DATASRC]。[DS_CALC],[ACCOUNT]。[1000])

3)我需要为其他帐户(即2000年)做同样的事情

([[CS_DATASRC]。[DS_INPUT],[ACCOUNT]。[USO_2000])

-([CS_DATASRC]。[DS_LOAD],[ACCOUNT]。[2000])

=([CS_DATASRC]。[DS_CALC],[ACCOUNT]。[2000])

4)等等(对于其他帐户)

5)用户将在([CS_DATASRC]。[DS_INPUT],[ACCOUNT]。[USO_XXXX])和

处输入

([CS_DATASRC .. [DS_LOAD],[ACCOUNT]。[XXXX])来自BW。

//* SELECT(%DOR%,ID,ACCOUNT,ID = 1000)
* XDIM_MEMBERSET RPTCURRENCY = USD
* XDIM_MEMBERSET度量= YTD
* XDIM_MEMBERSET FLOW = F_ACTIVITY
* XDIM_MEMBERSET CS_DATASRC = DS_LOAD,DS_INPUT
//* XDIM_MEMBERSET ACCOUNT =%DOR%
* FOR%DO%= 1000,2000
*当CS_DATASRC
* IS DS_INPUT
*当ACCOUNT
* IS USO_%DO%
* REC(表达式=%VALUE%-([CS_DATASRC]。[DS_LOAD],[ACCOUNT]。[%DO%]),CS_DATASRC = DS_CALC,ACCOUNT =%DO%)
* ENDWHEN
* ENDWHEN
*下一个

何必丶何苦呢
5楼-- · 2020-09-22 17:28

我不需要您的脚本来了解要求!

我需要一个流程详细信息:

1。 用户输入范围为...的数据(每个维度的解释)

2。 当数据具有特定范围(解释...)时,将执行以下计算。

3。 结果必须存储...

小灯塔
6楼-- · 2020-09-22 17:35

用户在

输入数据

[CS_DATASRC]。[DS_INPUT]

[ACCOUNT]。[USO_XXXX])(帐户可以是任意帐户)

以下数据源(即[CS_DATASRC])的数据已可用。

([[CS_DATASRC]。[DS_LOAD]

[ACCOUNT]。[XXXX])

3。 结果必须存储...

([[CS_DATASRC]。[DS_CALC]

[ACCOUNT]。[XXXX])

其他尺寸将保持不变。

类别=实际

ENTITY =相应实体

时间=各自时间

货币=美元

FLOW = F_Activity

一周热门 更多>