2

我想以编程方式检索使用 BW 生成的 ABAP 程序的源代码。

我想要一个 ABAP 程序,它可以使用名称作为参数检索 BADI 源,然后将源保存在本地磁盘上,将每个 BADI 保存在具有程序名称的文件中。

4

2 回答 2

1

如果您知道实现的名称,则必须查找实现类的名称。根据 BAdI 类型(经典或快速内核),您必须使用不同的例程来读取类名(尝试功能模块SXO_IMPL_FOR_BADI_READ并阅读类CL_ENH_BADI_RUNTIME_FUNCTIONS方法的编码GET_BADI_SHORTTEXT以了解如何使用各种 BAdI 类型) . 然后,看看命名的功能模块SEO*——你会发现所有你需要的东西来阅读一个类的结构、它的超类和它的方法(仅仅导出源代码是不够的,对吧?)。

于 2012-11-13T09:19:46.787 回答
0

您可以通过以下方式实现此目的:

SELECT class_name
  INTO TABLE @DATA(lt_badi)
  FROM badi_impl
 WHERE badi_name = 'value'. " <- your badi name

LOOP AT lt_badi ASSIGNING FIELD-SYMBOL(<badi_class>).

  DATA(lo_instance) =  cl_oo_factory=>create_instance( ).
  DATA(lo_source) = lo_instance->create_clif_source( clif_name = CONV string( <badi_class> )
                                                     version   = 'A' ).
  lo_source->get_source( IMPORTING source = DATA(rt_source) ).

ENDLOOP.

将带有源的内部表保存到文件是微不足道的。

于 2019-08-08T22:35:55.937 回答