现金流的BPC脚本逻辑

2020-09-23 12:45发布

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

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


我对现金流量的逻辑脚本有疑问:

(预先:我们不会为此使用基于帐户的计算(ABC),请不要向ACB提供任何信息)

通常运行(它计算当前期间与上一年12月之间的资产负债表头寸的差额):

但是,仅当帐户在当年具有条目(非空白)时,它才能正确运行。

示例:

帐户A在当年和上一年的12月都有分录,帐户B在当年没有(!)分录,而在去年12月有分录

=>在这种情况下,逻辑脚本仅计算A,B为零

我如何"说"他本年度不忽略空白帐户的逻辑脚本(在这种情况下,他不应忽略前一年12月的金额)?

* XDIM_MEMBERSET TIME =%TIME_SET%
* XDIM_MEMBERSET ACTUALITY =%ACTUALITY_SET%
* XDIM_MEMBERSET BANK = NONE
* XDIM_MEMBERSET MATURITIES = NONE

* LOOKUP合并
* DIM OPEN:TIME = TIME.PRIOR//营业时间(前一年的十二月)
* DIM OPEN:ACTUALITY = ACTUALITY.CATEGORY_FOR_OPE//营业时间
* ENDLOOKUP

//库存
* 当帐户
* IS 1422100,1422200,1424100,1424200,1426100,1426200,1428100,1428200,1429000
*当MOVEMENTTYPE
* IS结束
* REC(EXPRESSION =%VALUE%-LOOKUP( OPEN),ACCOUNT = CF240000,ACTUALITY =%ACTUALITY_SET%,MOVEMENTTYPE = END)
* ENDWHEN
* ENDWHEN

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

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


我对现金流量的逻辑脚本有疑问:

(预先:我们不会为此使用基于帐户的计算(ABC),请不要向ACB提供任何信息)

通常运行(它计算当前期间与上一年12月之间的资产负债表头寸的差额):

但是,仅当帐户在当年具有条目(非空白)时,它才能正确运行。

示例:

帐户A在当年和上一年的12月都有分录,帐户B在当年没有(!)分录,而在去年12月有分录

=>在这种情况下,逻辑脚本仅计算A,B为零

我如何"说"他本年度不忽略空白帐户的逻辑脚本(在这种情况下,他不应忽略前一年12月的金额)?

* XDIM_MEMBERSET TIME =%TIME_SET%
* XDIM_MEMBERSET ACTUALITY =%ACTUALITY_SET%
* XDIM_MEMBERSET BANK = NONE
* XDIM_MEMBERSET MATURITIES = NONE

* LOOKUP合并
* DIM OPEN:TIME = TIME.PRIOR//营业时间(前一年的十二月)
* DIM OPEN:ACTUALITY = ACTUALITY.CATEGORY_FOR_OPE//营业时间
* ENDLOOKUP

//库存
* 当帐户
* IS 1422100,1422200,1424100,1424200,1426100,1426200,1428100,1428200,1429000
*当MOVEMENTTYPE
* IS结束
* REC(EXPRESSION =%VALUE%-LOOKUP( OPEN),ACCOUNT = CF240000,ACTUALITY =%ACTUALITY_SET%,MOVEMENTTYPE = END)
* ENDWHEN
* ENDWHEN

付费偷看设置
发送
6条回答
wang628962
1楼-- · 2020-09-23 13:30

示例之外的

帐户A:当前期间= 60,上一年12月= 100,正确结果= -40

帐户B:当前期间=(空白),上一年12月= 30,正确结果= -30

正确的总和= -70

但是逻辑脚本结果只显示-40(帐户A),帐户B由于当前期间的空白而被忽略

Nir深蓝
2楼-- · 2020-09-23 13:26

您只能使用"单个替换任务"。

hengyuye
3楼-- · 2020-09-23 13:34

>

但是它可以分配多个变量! 请搜索,我已经解释了百次。

SAP小菜
4楼-- · 2020-09-23 13:36

使用PUSH代替PULL(带有LOOKUP)!

一些其他问题:

%TIME_SET%-包含一年的期间?

%ACTUALITY_SET%-单个成员还是多个成员?

何必丶何苦呢
5楼-- · 2020-09-23 13:36

TIME_SET是单个时间段,例如 2018.02

并且在2018.02的时间维度优先级中是2017.12

ACTUALITY是一个类别,例如 测试

,在ACTUALITY维度的CATEGORY_FOR_OPE中,TEST为ACTUAL。

用PUSH代替PULL是什么意思? 我尚未在脚本中输入PUSH。

...

...

同时我还测试了另一种方式(而不是脚本中的LOOKUP):

我对此进行了如下更改(例如,2017.12和ACTUAL可以在此处手动输入)

PROMPT(SELECTINPUT ,,,"%TIME_DIM%,%CATEGORY_DIM%")
PROMPT(TEXT,%OT%," Enter TIME( yyyy.mm )应该用于期初余额",)
PROMPT(COMBOBOX,%OA%,"选择应用于期初余额的ACTUALITY", 0 ,, {ACTUAL,BUDGET,MYP1,TEST,FC08})
INFO(%EQU%,=)

任务(/CPMB/DEFAULT_FORMULAS_LOGIC,SUSER,%USER%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPPSET,%APPSET%)
'任务(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPP,Consolidation)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPP,%APP%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SELECTION,%SELECTION%)
任务(/CPMB/DEFAULT_FORMULAS_LOGIC,LOGICFILENAME,CASHFLOW.LGF)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,REPLACEPARAM,OT%EQU %% OT%)
TASK(/ CPMB/DEFAULT_FORMULAS_LOGIC,REPLACEPARAM,OA%EQU %% OA%)

然后我想在Logic脚本中使用$ OT $和$ OA $(因此我已经调整了Logic脚本)。 但是他只识别$ OT $,而不识别$ OA $:

选择=/.../合并/PRIVATEPUBLICATIONS/NOLDEN/TempFiles/FROM.TMP@@@SAVE@@@@@@@EXPAND@@@|DIMENSION:ACTUALITY|TEST|DIMENSION:TIME|2018.02
OT = 2017.12
OA =实际

[消息]
----------------------------- ---------------------------------

RUN_LOGIC:成员在维度(ACTUALITY)上无效

..

(以及在公式日志中)

#dim_memberset = 4
银行:总计,无1。
成熟度:无,总计1。
时间:2017.12,1,共有。
实用性:$ OA $,1 总计。

...

此第二项测试的(调整后)逻辑脚本:

*当帐户
时* IS 1422100,1422200,1424100,1424200,1426100,1426200,1428100,1428200,1429000
*当MOVEMENT类型
* IS结束时
* REC(EXPRESSION =%VALUE %,ACCOUNT = CF241000,MOVEMENTTYPE = END)
* ENDWHEN
* ENDWHEN

* XDIM_MEMBERSET TIME = $ OT $
* XDIM_MEMBERSET ACTITYITY = $ OA $
*当ACCOUNT < br> * IS 1422100,1422200,1424100,1424200,1426100,1426200,1428100,1428200,1429000
*当MOVEMENTTYPE
* IS END
* REC(EXPRESSION =-%VALUE%,ACCOUNT = CF241100, TIME =%TIME_SET%,ACTUALITY =%ACTUALITY_SET%,MOVEMENTTYPE = END)
* ENDWHEN
* ENDWHEN

6楼-- · 2020-09-23 13:26

" TIME_SET是单个时间段,例如2018.02

并且在2018.02的时间维度优先级中是2017.12

ACTUALITY是一个类别,例如 测试

,并且在ACTUALITY维维度CATEGORY_FOR_OPE中,TEST为ACTUAL"。

然后:

 * SELECT(%Y%,YEAR,TIME,ID =%TIME_SET%)
 * SELECT(%J%,ID,TIME,YEAR =%Y%AND MONTHNUM = 1)
 * SELECT(%TJ%,TIMEID,TIME,ID =%J%)
 * SELECT(%LTJ%,TIMEID,TIME,TIMEID <%TJ%AND CALC = N)
 * SELECT(%GED%,ID,TIME,TIMEID> =%LTJ%AND CALC = N)
 * SELECT(%D%,ID,TIME,ID =%GED%AND TIMEID <%TJ%)

 * SELECT(%A%,CATEGORY_FOR_OPE,ACTUALITY,ID =%ACTUALITY_SET%)

 * XDIM_MEMBERSET TIME =%TIME_SET%,%D%
 * XDIM_MEMBERSET ACTUALITY =%ACTUALITY_SET%,%A%
 * XDIM_MEMBERSET BANK = NONE
 * XDIM_MEMBERSET MATURITIES = NONE
 * XDIM_MEMBERSET ACCOUNT = 1422100,1422200,1424100,1424200,1426100,1426200,1428100,1428200,1429000
 * XDIM_MEMBERSET MOVEMENTTYPE = END

 *到时
 * IS%TIME_SET%//2018.02
   *实际情况
   * IS%ACTUALITY_SET%//测试
     * REC(EXPRESSION =%VALUE%,ACCOUNT = CF240000)
   *结束
 * IS%D%//2017.12
   *实际情况
   * IS%A%//实际
     * REC(EXPRESSION =-%VALUE%,ACCOUNT = CF240000,,ACTUALITY =%ACTUALITY_SET%,TIME =%TIME_SET%)
   *结束
 * ENDWHEN 

PUSH方法!

一周热门 更多>