根据application ID打印该application所包含的object
ID object 打印 根据 包含 application
2023-09-14 09:03:02 时间
Created by Jerry Wang, last modified on Sep 03, 2014
输入application id:
输出是application包含object的name和类型:
REPORT zdisplay_app. PARAMETERS: id TYPE if_fdt_types=>id OBLIGATORY DEFAULT 'FA163E8EAB031EE48B847A9EF751D5F0'. START-OF-SELECTION. TYPES: BEGIN OF ty_code, code TYPE if_fdt_types=>object_type, text TYPE string, END OF ty_code. DATA: lo_instance TYPE REF TO if_fdt_admin_data, lo_app TYPE REF TO cl_fdt_application, lt_all TYPE if_fdt_types=>ts_object_id, lv_unknown TYPE boolean, lt_map TYPE STANDARD TABLE OF ty_code WITH KEY code. CALL METHOD cl_fdt_factory=>get_instance_generic EXPORTING iv_id = id IMPORTING eo_instance = lo_instance ev_id_unknown = lv_unknown. lo_app ?= lo_instance. lo_app->if_fdt_application_objects~get_all( IMPORTING ets_object_id = lt_all ). LOOP AT lt_all ASSIGNING FIELD-SYMBOL(<id>). PERFORM display USING <id>. ENDLOOP. FORM display USING id TYPE if_fdt_types=>id. CALL METHOD cl_fdt_factory=>get_instance_generic EXPORTING iv_id = id IMPORTING eo_instance = lo_instance ev_id_unknown = lv_unknown. IF lv_unknown = abap_true. WRITE: / 'ID Unknown.' COLOR COL_NEGATIVE. EXIT. ENDIF. DATA(lo_object) = cl_abap_classdescr=>describe_by_object_ref( lo_instance ). DATA(lv_type) = lo_object->get_relative_name( ). WRITE: / lv_type COLOR COL_NEGATIVE. PERFORM display_by_type USING lo_instance lv_type. ENDFORM. FORM display_by_type USING io_obj TYPE REF TO if_fdt_admin_data iv_type TYPE string. DATA: lv_type_full TYPE string, lv_text TYPE string, lt_dt_all TYPE if_fdt_types=>ts_object_id, lt_fo_all LIKE lt_dt_all. CASE iv_type. WHEN 'CL_FDT_ELEMENT'. DATA(lo_element) = CAST cl_fdt_element( io_obj ). lv_text = lo_element->if_fdt_admin_data~get_name( ). DATA(lv_type) = lo_element->if_fdt_admin_data~get_object_type( ). PERFORM get_type USING lv_type CHANGING lv_type_full. WRITE: / 'element text: ', lv_text, ' type: ', lv_type_full COLOR COL_POSITIVE. WHEN 'CL_FDT_DECISION_TABLE'. DATA(lo_dt) = CAST cl_fdt_decision_table( io_obj ). lv_text = lo_dt->if_fdt_admin_data~get_name( ). WRITE: / 'Decision table name: ', lv_text COLOR COL_GROUP. CLEAR: lt_dt_all. lo_dt->if_fdt_admin_data~get_referenced_objects( IMPORTING ets_object_id = lt_dt_all ). WRITE: / 'Below elements are within decision table' COLOR COL_POSITIVE. LOOP AT lt_dt_all ASSIGNING FIELD-SYMBOL(<dt_id>). PERFORM display USING <dt_id>. ENDLOOP. WRITE: / 'Decision table element display finished' COLOR COL_POSITIVE. WHEN 'CL_FDT_FORMULA'. DATA(lo_fo) = CAST cl_fdt_formula( io_obj ). lv_text = lo_fo->if_fdt_admin_data~get_name( ). WRITE: / 'Formula name: ' , lv_text COLOR COL_KEY. lo_fo->if_fdt_admin_data~get_referenced_objects( IMPORTING ets_object_id = lt_fo_all ). LOOP AT lt_fo_all ASSIGNING FIELD-SYMBOL(<fo_id>). WRITE: / 'Below elements are within formula' COLOR COL_POSITIVE. PERFORM display USING <fo_id>. WRITE: / 'formula element display finished' COLOR COL_POSITIVE. ENDLOOP. ENDCASE. ENDFORM. FORM get_type USING iv_code TYPE if_fdt_types=>object_type CHANGING cv_type TYPE string. DATA: ls_posttype TYPE ty_code, lv_code TYPE dd07l-domvalue_l, lv_result TYPE dd07v. READ TABLE lt_map WITH KEY code = iv_code INTO ls_posttype. IF sy-subrc = 0. cv_type = ls_posttype-text. ELSE. CLEAR ls_posttype. lv_code = iv_code. CALL FUNCTION 'DD_DOMVALUE_TEXT_GET' EXPORTING domname = 'FDT_OBJECT_TYPE' value = lv_code IMPORTING dd07v_wa = lv_result. ls_posttype-code = iv_code. ls_posttype-text = lv_result-ddtext. APPEND ls_posttype TO lt_map. cv_type = lv_result-ddtext. ENDIF. ENDFORM.
相关文章
- 【R语言】获取最新的人的所有miRNA的ID号
- 印刷排版设计软件Id下载:Adobe InDesign 2023最新版安装激活
- ORA-47284: error adding Realm Object string.string. string is not a valid object type ORACLE 报错 故障修复 远程处理
- ORA-00022: invalid session ID; access denied ORACLE 报错 故障修复 远程处理
- ORA-03142: Session ID: number Serial number: number ORACLE 报错 故障修复 远程处理
- MySQL自动生成ID:精确控制数据库记录(mysql自动生成id)
- MySQL数据库中的自增ID特性(mysql数据库自增id)
- 数据MySQL清空ID数据的正确操作方法(mysql清空id)
- 字段为Oracle表添加ID字段(oracle表的id)
- MongoDB 快速获取新ID的方法(mongodb返回id)
- Redis实现唯一ID生成机制(redis生成唯一id)
- Linux下如何更改用户ID(linux更改用户id)
- 如何在Linux中获取进程ID?(linux进程id获取)
- Linux 下如何快速获取进程ID的秘诀(linux 打印进程id)
- Linux磁盘分区:妙用ID掌控不同卷(linux分区id)
- MSSQL如何清空自动增长的ID(mssql清空自动id)
- Oracle构建全局ID码记录数据地理位置(oracle 全局id)
- 简易步骤如何获取Redis服务器ID(获取redis服务器id)
- Oracle权限认证之ID管理探究(id oracle权限)
- Oracle中ID自增长应用实现(oracle中id自增长)
- Oracle ID序列号自动生成与分配的机制(oracle id序列号)
- oracle中的ID号实现自增长的方法