小工具:对比两个结构重叠/不重叠字段
(2023-02-25 16:56:31)
标签:
abapalvf4liumengsap |
分类: 自己写的小工具程序 |
因为最近改老代码接口,有日志表记录多个表信息啥的。
为了确认字段全不全之类的,写了个小工具。
*&---------------------------------------------------------------------*
*& Report ZLM_CHECK_FIELD
*&
*&---------------------------------------------------------------------*
*& 功能说明 检查结构1中在结构2中存在和不存在的字段
*& 创建人 LiuMeng
*& 创建时间
*& 修改记录:
*& 修改人修改原因
*"----------------------------------------------------------------------
*& SAP干货铺
*&---------------------------------------------------------------------*
REPORT zlm_check_field.
TYPES slis.
DATA:lt_field1 TYPE slis_t_fieldcat_alv.
DATA:lt_field2 TYPE slis_t_fieldcat_alv.
DATA:lt_field_exist TYPE slis_t_fieldcat_alv.
DATA:lt_field_non TYPE slis_t_fieldcat_alv.
PARAMETERS:
is_str1 LIKE dd02l-tabname,
is_str2 LIKE dd02l-tabname.
START-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = is_str1
CHANGING
ct_fieldcat = lt_field1
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
RETURN.
ENDIF.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = is_str2
CHANGING
ct_fieldcat = lt_field2
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
RETURN.
ENDIF.
LOOP AT lt_field1 INTO DATA(ls_filed).
READ TABLE lt_field2 TRANSPORTING NO FIELDS
WITH KEY fieldname = ls_filed-fieldname.
IF sy-subrc = 0 .
APPEND ls_filed TO lt_field_exist.
ELSE.
APPEND ls_filed TO lt_field_non.
ENDIF.
ENDLOOP.
cl_demo_output=>write( lt_field_exist ).
cl_demo_output=>write( lt_field_non ).
cl_demo_output=>display( ).
临时用的,没注释,凑合看吧。
其实也不常用,就是方便自己而已。
推荐阅读:
《ABAP新语法1》