目录


调用
ABAP调用代码,
REPORT ztest_brf3. PARAMETERS: p_ebeln TYPE ebeln. START-OF-SELECTION. *获取function实例DATA(lo_fuction) = CAST cl_fdt_function( cl_fdt_factory=>if_fdt_factory~get_instance( )->get_function( '005056A4CCA61ED8AAF183894A92CC2B' ) ). *获取context实例DATA(lo_context) = CAST cl_fdt_context( lo_fuction->if_fdt_function~get_process_context( ) ). *将将采购订单号输入到contextlo_context->if_fdt_context~set_value( : iv_name = 'EBELN' ia_value = p_ebeln ) . *处理,获取结果和跟踪数据lo_fuction->if_fdt_function~process( EXPORTING io_context = lo_context iv_trace_mode = if_fdt_constants=>gc_trace_mode_lean IMPORTING eo_result = DATA(lo_result) eo_trace = DATA(lo_trace) ).
如代码所示,可以通过IF_FDT_FUNCTION~PROCESS方法的IV_TRACE_MODE参数控制跟踪模式。跟踪信息会存储在系统数据库中中,可以在任何时间点进行查看。 跟踪功能仅将最少的数据写入系统数据库。 这是通过记录对象引用和数据更改而不是在某个特定时间点显式写下有关给定对象的所有可用信息来实现的。 此策略可使数据库内容较少,并降低性能上的负面影响。
如果要在内存中直接获得跟踪结果,可以在返回对象lo_trace的属性IF_FDT_LEAN_TRACE~MTS_RECORD中看到

ID是BRF+应用中的各个对象的ID,PARENT_ID用来表示它们间的层级关系,REF字段则是各步骤的运行结果的值的引用。
跟踪的读取和显示
可以增加一些代码,获取ID对应的BRF+对象的描述文本,让跟踪记录的可读性更好些:
DATA: lo_admin_data TYPE REF TO cl_fdt_admin_data, id_initial TYPE if_fdt_types=>id VALUE `00000000000000000000000000000000`. data: l_result TYPE string. FIELD-SYMBOLS: <data> TYPE any. DATA(lo_fdt_trace) = CAST cl_fdt_trace( lo_trace ). DATA(lo_brf_query) = CAST if_fdt_query( cl_fdt_factory=>get_instance( )->get_query( ) ). DATA(out) = cl_demo_output=>new( ).
关键字:

