使用bex查询中的替换路径将日期字段转换为具有客户退出变量的关键指标

2020-09-27 06:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我有一个查询,我们必...

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

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


大家好,

我有一个查询,我们必须带上日期字段(date字段是截止期的最后日期)。 此日期字段在另一个DSO中。 因此,我们必须应用基于sy-datum的逻辑,并检查结束时间的最后日期,并在查询中填充为关键值。

例如:每次关闭日期都会更改。

每个示例今天的日期是2017年9月7日(sy-datum)

但是8月(05)尚未关闭,它将于2017年11月7日关闭。

日期字段,我们将在查询中显示2017年8月31日作为关键指标。

我尝试过一个。

我为客户出口变量(逻辑)编写了cmod代码,当用于替换路径变量(将日期字段转换为关键值)中的客户出口变量时,它显示错误。

" YVAR_DATE_CE01"时。 客户出口(逻辑)
如果i_step ='2'。
数据:lv_day。
使用键VNAM ='YVAR_FISC_YEAR'读表I_T_VAR_RANGE到LOC_VAR_RANGE。
lv_year = sy-datum + 0(4 )。
lv_mon = sy-datum + 4(2)。
lv_day = sy-datum + 6(2)。
IF LOC_VAR_RANGE-low LT lv_year。
CONCATENATE LOC_VAR_RANGE-low'03' '31'INTO lv_date。
l_s_range-low = lv_date。
l_s_range-sign ='I'。
l_s_range-opt ='EQ'。
附加l_s_range到e_t_range。
ELSE。

数据:WA_TABD393类型/BIC/AYSD_D3900。


从/BIC/AYSD_D3900选择单*到WA_TABD393 CALDAY = SY-DATUM。
lv_year = WA_TABD393-/BIC/YACT_TO + 0(4)。
lv_mon = WA_TABD393-/BIC/YACT_TO + 4(3)。
通话功能'LAST_DAY_IN_PERIOD_GET'
导出
I_GJAHR = lv_year
I_PERIV ='V3 '
I_POPER = lv_mon
导入
E_DATE = lv_date
如果SY-SUBRC <> 0.
ENDIF。
l_s_range-low = lv_date。
l_s_range-sign =' I'。
l_s_range-opt ='EQ'。
APPEND l_s_range到e_t_range。
ENDIF。
ENDIF

感谢您的宝贵意见。

2条回答
SC_Yao
2020-09-27 07:04

嗨,

如果我做对了,您只想获取DSO中保存的期末数据。

所以要走的路是:

" YVAR_DATE_CE01"时。
 如果i_step ='2'。

 DATA WA_TABD393类型/BIC/AYSD_D3900-/BIC/YACT_TO。

 使用键VNAM ='YVAR_FISC_YEAR'将表I_T_VAR_RANGE读入LOC_VAR_RANGE。

 从/BIC/AYSD_D3900中选择/BIC/YACT_TO到CALDAY = SY-DATUM的WA_TABD393中。
 
 如果sy-subrc = 0。
  lv_year = WA_TABD393(4)。
  lv_mon = WA_TABD393 + 4(2)。
  通话功能" LAST_DAY_IN_PERIOD_GET"
  出口
  I_GJAHR = lv_year
  I_PERIV ='V3'
  I_POPER = lv_mon
  输入
  E_DATE = lv_date
  如果SY-SUBRC = 0。
 l_s_range-low = lv_date。
  l_s_range-sign ='I'。
  l_s_range-opt ='EQ'。
  附录l_s_range至e_t_range。
 万一。 万一。 万一。

 

一周热门 更多>