用于下载ABAP CDS源码
*&---------------------------------------------------------------------*
*& Report ZDOWNLOAD_CDS_13065
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zdownload_cds_13065.
*类型定义
TYPES:
* 视图名称&源码
BEGIN OF ty_ddlsrc,
ddlname TYPE ddddlsrc-ddlname,
source TYPE ddddlsrc-source,
END OF ty_ddlsrc,
tt_ddlsrc TYPE STANDARD TABLE OF ty_ddlsrc,
* 源码
BEGIN OF ty_source,
source TYPE ddddlsrc-source,
END OF ty_source,
tt_source TYPE STANDARD TABLE OF ty_source.
DATA:
gt_ddlsrc TYPE tt_ddlsrc,
gs_ddlsrc TYPE ty_ddlsrc,
gt_source TYPE tt_source,
gs_source TYPE ty_source.
DATA:
gv_filename TYPE string,
gv_filetype TYPE char10.
*&---------------------------------------------------------------------*
* Selection Screen
*&---------------------------------------------------------------------*
PARAMETERS p_dev TYPE tadir-devclass. "包名
*&---------------------------------------------------------------------*
* Start of selection
*&---------------------------------------------------------------------*
START-OF-SELECTION.
* 根据包名获取CDS视图及源码
SELECT d~ddlname "视图名
d~source "源码
FROM tadir AS t
INNER JOIN ddddlsrc AS d
ON t~obj_name = d~ddlname
INTO TABLE gt_ddlsrc
WHERE t~pgmid = 'R3TR'
AND t~object = 'DDLS'
AND t~devclass = p_dev. "包名
IF sy-subrc = 0.
WRITE ' File downloaded successfully'.
ENDIF.
*&---------------------------------------------------------------------*
* End of selection
*&---------------------------------------------------------------------*
END-OF-SELECTION.
LOOP AT gt_ddlsrc INTO gs_ddlsrc.
CONCATENATE 'D:\CDS_Download\' gs_ddlsrc-ddlname '.txt' INTO gv_filename.
gs_source-source = gs_ddlsrc-source.
APPEND gs_source TO gt_source.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = gv_filename
filetype = 'ASC'
write_field_separator = 'X'
TABLES
data_tab = gt_source.
CLEAR:
gv_filename,
gt_source.
ENDLOOP.