how to create BRF application via code

94 阅读1分钟

使用如下代码自动创建新的BRF application:

REPORT zceate_application.
 
DEFINE write_errors.
  IF &1 IS NOT INITIAL.
  LOOP AT &1 ASSIGNING <ls_message>.
  WRITE: <ls_message>-text.
  ENDLOOP.
  RETURN.
  ENDIF.
END-OF-DEFINITION.
 
START-OF-SELECTION.
 
  DATA: lo_factory     TYPE REF TO if_fdt_factory,
        lo_application TYPE REF TO if_fdt_application,
        lt_message     TYPE if_fdt_types=>t_message,
        lv_boolean     TYPE abap_bool.
  FIELD-SYMBOLS: <ls_message> TYPE if_fdt_types=>s_message.
  lo_factory = cl_fdt_factory=>if_fdt_factory~get_instance( ).
  lo_application = lo_factory->get_application( ).
  lo_application->if_fdt_transaction~enqueue( ).
  lo_application->set_development_package( '$TMP' ).
  lo_application->if_fdt_admin_data~set_name( 'PRICING' ).
  lo_application->if_fdt_admin_data~set_texts(
  iv_short_text = 'Pricing' ).
 
  lo_application->if_fdt_transaction~activate(
      IMPORTING et_message           = lt_message
                ev_activation_failed = lv_boolean ).
 
  write_errors lt_message.
  lo_application->if_fdt_transaction~save( ).
  lo_application->if_fdt_transaction~dequeue( ).
 
  lo_factory = cl_fdt_factory=>if_fdt_factory~get_instance(
  iv_application_id = lo_application->mv_id ).
 
  BREAK-POINT.
 
  WRITE:/ lo_application->mv_id.

记下输出的application id: FA163E8EAB031EE48B80D14409724BFF

使用BRF+ tcode打开BRF work bench:

利用如下搜索条件查找刚刚创建好的application:

clipboard1
找到匹配的application. 点击expand button查看header信息:

clipboard2

ID和report里输出一致,证明这就是report里刚刚创建的application:

clipboard3