我想以编程方式检索使用BW生成的ABAP程序的源代码。
我想有一个ABAP程序,可以检索BADIs源使用其名称作为参数,然后保存在本地磁盘上的源保存每个BADI在一个文件中与该程序的名称。
发布于 2012-11-13 17:19:47
如果您知道实现的名称,则必须查找实现类的名称。根据BAdI类型(经典或快速内核),您必须使用不同的例程来读取类名(尝试使用函数模块SXO_IMPL_FOR_BADI_READ并阅读类CL_ENH_BADI_RUNTIME_FUNCTIONS方法GET_BADI_SHORTTEXT的代码,以了解如何使用各种BAdI类型)。然后,看一下名为SEO*的函数模块--你会发现阅读一个类的结构,它的超类和它的方法所需要的所有东西(仅仅导出源代码是不够的,对吧?)
发布于 2019-08-09 06:35:56
您可以通过以下方式实现此目的:
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.将带有源代码的内部表保存到文件中非常简单。
https://stackoverflow.com/questions/13352889
复制相似问题