通过查询选择多个时间段

2020-09-09 15:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好BPC专家, 以下脚本按预...

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

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


您好BPC专家,

以下脚本按预期工作,如果我选择一个月(Ex 01.2018)时间段并运行该程序包,则基于上一年同月(Ex 01.2017)的汇率进行汇率转换。 结果是错误的,如果我一次选择了12个蛾月周期(例如,从01.2018到12.2018)并执行该程序包,则货币转换将在12个月后的周期(例如,Ex 01.2017)进行。 要求是即使每个用户选择多个月,也要检查每个期间前12个月的转换因子。 例如:如果用户选择三个月01.2018、02.2018、03.2018,则汇率转换应基于01.2017、02.2017、03.2017。 我是脚本逻辑的新手,不知道如何在以下脚本中声明和引入FOR循环以实现所需的结果。

版本为BPC 10 Netweaver

请帮助我。

克里希纳

 * SELECT(%VERSION_LIST%,FX_SOURCE_CATEGORY,VERSION,ID =%VERSION_SET%)

 *查询率
 * DIM TIME = TMVL(-12,%TIME_SET%)
 * DIM R_ENTITY =" GLOBAL"
 * DIM VERSION =%VERSION_LIST%
 * DIM R_ACCT = summary_ACCOUNT.RATETYPE
 * DIM LKPLC:INPUTCURRENCY = E_ENTITY.CURRENCY
 * DIM LKPSUB:INPUTCURRENCY = E_ENTITY.SUBMISSION_CURRENCY
 * ENDLOOKUP

 * XDIM_MEMBERSET E_ENTITY = BAS(%E_ENTITY_SET%)
 * XDIM_MEMBERSET TIME = BAS(%TIME_SET%)

 *当RPTCURRENCY
 * IS Subm
 *当E_ENTITY.SUBMISSION_CURRENCY
 * IS <>""
 *当summary_ACCOUNT.RATETYPE时
 * IS <>""
 * REC(EXPRESSION =%VALUE%* LOOKUP(LKPSUB),RPTCURRENCY = USD)
 *其他
 * REC(FACTOR = 1,RPTCURRENCY = USD)
 *结束
 *结束
 *结束
 
7条回答
me_for_i
2020-09-09 15:34

此代码:

 * SELECT(%VERSION_LIST%,FX_SOURCE_CATEGORY,VERSION,ID =%VERSION_SET%)
 *查询率
 * DIM TIME = TIME.PREVYEARMONTH
 * DIM R_ENTITY =" GLOBAL"
 * DIM VERSION =%VERSION_LIST%
 * DIM R_ACCT = summary_ACCOUNT.RATETYPE
 * DIM LKPLC:INPUTCURRENCY = E_ENTITY.CURRENCY
 * DIM LKPSUB:INPUTCURRENCY = E_ENTITY.SUBMISSION_CURRENCY
 * ENDLOOKUP

 * XDIM_MEMBERSET E_ENTITY = BAS(%E_ENTITY_SET%)
 * XDIM_MEMBERSET TIME = BAS(%TIME_SET%)
 *当RPTCURRENCY
 * IS Subm
 *当E_ENTITY.SUBMISSION_CURRENCY
 * IS <>""
 *当summary_ACCOUNT.RATETYPE时
 * IS <>""
 * REC(EXPRESSION =%VALUE%* LOOKUP(LKPSUB),RPTCURRENCY = USD)
 *其他
 * REC(FACTOR = 1,RPTCURRENCY = USD)
 *结束
 *结束
 * ENDWHEN 

可以!

LOOKUP/ENDLOOKUP-是一个定义,而不是直接执行的代码。

LOOKUP将在WHEN/的每次迭代中执行 ENDWHEN循环,并将WHEN/ENDWHEN循环的当前成员传递给LOOKUP。

在这种情况下,我们可以查看E_ENTITY和TIME

如果WHEN/ENDWHEN中TIME的当前成员是2019.02,则 LOOKUP将从存储在2019.02的PREVYEARMONTH属性中的2018.02开始获取数据

希望很清楚!

尝试在UJKT中执行脚本

PS 与E_ENTITY

一周热门 更多>