如何在转换中获取DTP选择值。

2020-08-23 08:58发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在通过DTP加载多...

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

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


嗨,

我正在通过DTP加载多维数据集。

此DTP始终由选择值手动执行。 (例如0CALMNOTH = 1.2007至6.2008)。

我想在转换例程中使用此选择值来求立方。

请告诉我,如何获取转换中的选择值?

预先感谢您的帮助。

此致

Suresh Muthuramalingam

6条回答
半个程序猿
2020-08-23 09:38

是的,您可以在启动例程中执行此操作,并将其用于全局变量。

启动例程中唯一的键是request。 您可以使用它来获取DTP(LOGDPID)。 然后,您可以获取DTP过滤器值。

这里是一个独立的程序,展示了如何执行此操作。

报告zz_print_dtp_filter。


 参数:请求类型RSREQUNR DEFAULT'DTPR_4B67BH1XA4LG7NMQDUCVWAFG7'。


 数据:
   l_r_rsbk_dtp类型参考cl_rsbk_dtp,
   l_r_rsbc_filter类型参考cl_rsbc_filter,
   l_r_rsbk_dtp_a类型参考cl_rsbk_dtp_a,
   l_s_rsbk_select类型rsbk_s_select,
   l_v_logdpid TYPE rslogdpid。


 选择开始。
   选择单个r〜logdpid INTO l_v_logdpid
        从rsreqdone AS r
          内联rsbkdtpt AS t
             开t〜dtp = r〜logdpid
        在哪里r〜rnr =请求
        AND t〜langu = sy-langu。


 *创建DTP对象的工厂方法
   l_r_rsbk_dtp = cl_rsbk_dtp =>工厂(l_v_logdpid)。

 *获取对活动版本的对象引用
   l_r_rsbk_dtp_a?= l_r_rsbk_dtp-> get_obj_ref_objvers(rs_c_objvers-active)。

 *获取对DTP过滤器对象的引用
   呼叫方法l_r_rsbk_dtp_a-> if_rsbk_dtp_display〜get_obj_ref_filter
     接收
       r_r_filter = l_r_rsbc_filter。

 *打印过滤条件
   循环至l_r_rsbc_filter-> n_t_seltab INTO l_s_rsbk_select。
     写/:l_s_rsbk_select-field,
              l_s_rsbk_select-sign,
              l_s_rsbk_select-option,
              l_s_rsbk_select-low,
              l_s_rsbk_select-高,
              l_s_rsbk_select-sel_type。
     跳跃。
   ENDLOOP。