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

2020-09-27 06:34发布

         点击此处--->   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

感谢您的宝贵意见。

         点击此处--->   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
1楼-- · 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。
 万一。 万一。 万一。

 
骆驼绵羊
2楼-- · 2020-09-27 06:56

嗨,科恩,

感谢给予的支持,现在我在使用客户出口使用公式变量后获得了查询中日期字段的数据。

一周热门 更多>