2016.4.26_写了个下载abap代码的程序【ABAP】

系统里存了很多以前写的代码,好长时间不看都忘了,还是想存到本地,挨个复制粘贴太麻烦了,有好多程序写的很正式,有很多include,复制起来就更麻烦了。

所以想着写个程序把程序名一输,自动下载所有代码。

*&---------------------------------------------------------------------*
*& REPORT  YZ_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT YZ_TEST NO STANDARD PAGE HEADING
                   MESSAGE-ID YTEST.

TYPES :BEGIN OF TYP_DATA,
         DATA(200) TYPE C,
       END OF TYP_DATA.
DATA GT_ALLCODE TYPE STANDARD TABLE OF TYP_DATA WITH HEADER LINE.
DATA GT_TEMPCODE TYPE STANDARD TABLE OF TYP_DATA WITH HEADER LINE.
DATA GT_INCLUDE  TYPE STANDARD TABLE OF TYP_DATA WITH HEADER LINE.
DATA LV_LENG TYPE I.
DATA LV_PROGLEN TYPE I.
DATA LV_FPATH TYPE STRING.
DATA GV_MARK TYPE C.
CONSTANTS: LC_POINT TYPE C VALUE ‘.‘.
CONSTANTS: LC_INCLUDE TYPE C LENGTH 7 VALUE ‘INCLUDE‘.

PARAMETERS:P_REPORT TYPE RSRD1-OBJNAME OBLIGATORY DEFAULT ‘YZTEST‘.

PARAMETERS: P_PATH TYPE IBIPPARMS-PATH OBLIGATORY
                DEFAULT ‘C:\Users\xabap01\Desktop\test.xls‘ .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.
  PERFORM F_F4_PATH  CHANGING P_PATH.

START-OF-SELECTION.
  LV_PROGLEN = STRLEN( P_REPORT ) + 3.
  READ REPORT P_REPORT INTO GT_ALLCODE.

  LOOP AT GT_ALLCODE.
    SEARCH GT_ALLCODE-DATA FOR ‘INCLUDE‘.
    IF SY-SUBRC EQ 0.
      GV_MARK = ‘X‘.

      LV_LENG = STRLEN( GT_ALLCODE-DATA ).
      SHIFT GT_ALLCODE-DATA UP TO LC_INCLUDE LEFT.
      GT_ALLCODE-DATA = GT_ALLCODE-DATA+8(LV_PROGLEN).

      GT_INCLUDE-DATA = GT_ALLCODE-DATA.
      APPEND GT_INCLUDE.
      CLEAR: GT_INCLUDE,GT_ALLCODE.
    ENDIF.
  ENDLOOP.

  IF GV_MARK EQ ‘x‘.
  LOOP AT GT_INCLUDE.
      READ REPORT GT_INCLUDE-DATA INTO GT_TEMPCODE.
      IF SY-SUBRC EQ 0.
        APPEND LINES OF GT_TEMPCODE TO GT_ALLCODE.
        CLEAR:GT_TEMPCODE,GT_TEMPCODE[].
      ENDIF.
    ENDLOOP.
    CLEAR GV_MARK.
  ENDIF.

  LV_FPATH = P_PATH.
  CALL FUNCTION ‘GUI_DOWNLOAD‘
    EXPORTING
      FILENAME                = LV_FPATH
      FILETYPE                = ‘ASC‘
      WRITE_FIELD_SEPARATOR   = ‘X‘
    TABLES
      DATA_TAB                = GT_ALLCODE
    EXCEPTIONS
      FILE_WRITE_ERROR        = 1
      NO_BATCH                = 2
      GUI_REFUSE_FILETRANSFER = 3
      INVALID_TYPE            = 4
      NO_AUTHORITY            = 5
      UNKNOWN_ERROR           = 6
      HEADER_NOT_ALLOWED      = 7
      SEPARATOR_NOT_ALLOWED   = 8
      FILESIZE_NOT_ALLOWED    = 9
      HEADER_TOO_LONG         = 10
      DP_ERROR_CREATE         = 11
      DP_ERROR_SEND           = 12
      DP_ERROR_WRITE          = 13
      UNKNOWN_DP_ERROR        = 14
      ACCESS_DENIED           = 15
      DP_OUT_OF_MEMORY        = 16
      DISK_FULL               = 17
      DP_TIMEOUT              = 18
      FILE_NOT_FOUND          = 19
      DATAPROVIDER_EXCEPTION  = 20
      CONTROL_FLUSH_ERROR     = 21
      OTHERS                  = 22.
  IF SY-SUBRC <> 0.
    MESSAGE E000 WITH ‘download failed !‘ .
    RETURN.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  F_F4_PATH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_P_PATH  text
*----------------------------------------------------------------------*
FORM F_F4_PATH  CHANGING P_PATH.

  DATA: LV_EXTEN TYPE STRING,
        LV_FILTER TYPE STRING,
        LV_DIREC TYPE STRING,
        LV_FP TYPE STRING,
        LV_RC TYPE I,
        LT_FT TYPE FILETABLE,
        LS_FT LIKE LINE OF LT_FT.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
      DEFAULT_EXTENSION       = LV_EXTEN
      FILE_FILTER             = LV_FILTER
      INITIAL_DIRECTORY       = LV_DIREC
    CHANGING
      FILE_TABLE              = LT_FT
      RC                      = LV_RC
    EXCEPTIONS
      FILE_OPEN_DIALOG_FAILED = 1
      CNTL_ERROR              = 2
      ERROR_NO_GUI            = 3
      NOT_SUPPORTED_BY_GUI    = 4
      OTHERS                  = 5.
  READ TABLE LT_FT INTO LS_FT INDEX 1.
  LV_FP = LS_FT.

  P_PATH = LV_FP.
ENDFORM.                    " F_F4_PATH

写完以后给同事看,结果人家给了一个更好的代码:

http://blog.163.com/fuwa_beijing/blog/static/50467514201041135032400/

功能看起来很多,下载程序代码同时还能吧程序中用到的表结构下载成html文件。最终还是用这个代码备份了所有程序。

时间: 2024-10-23 11:57:39

2016.4.26_写了个下载abap代码的程序【ABAP】的相关文章

[python] 1、python鼠标点击、移动事件应用——写一个自动下载百度音乐的程序

1.问题描述: 最近百度总爱做一些破坏用户信任度的事——文库金币变券.网盘限速,吓得我赶紧想办法把存在百度云音乐中的歌曲下载到本地. http://yinyueyun.baidu.com/ 可问题是云音乐中并没有批量下载,而上面我总共存了700多首音乐! 因此:有必要写一个脚本自动下载这些音乐了!!! 2.解决问题 自动下载歌曲有两种方法: JS法 模拟鼠标点击法 由于考虑到JS法需要分析网页结构.寻找下载链接,工作量有点大,于是选择用模拟鼠标点击法! 在linux上我首先想到用python来做

2016全球资产配置白皮书(附下载)

2016全球资产配置白皮书(附下载) 2017年04月6日 中国经济, 投资&经济, 研究报告 报告下载:添加199IT官方微信[i199it],回复关键词[2016全球资产配置白皮书]即可 白皮书建议,在优质投资渠道收窄的今天,通过组合式的资产配置获利避险,是中国投资者现阶段的必然选择. 合理资产配置多元化投资是关键 "根据宏观经济学家预测,2016年全球的经济增长速度应该在2.8%~3%之间,是历史上相对发展缓慢的一年,可能会导致新兴市场经济的硬着陆."INVESCO全球资

C#开发课堂实录_页数447_出版日期2016.02_完整版PDF电子书下载 带索引书签目录高清版

C#开发课堂实录_页数447_出版日期2016.02_完整版PDF电子书下载 带索引书签目录高清版_13937404 下载链接  http://pan.baidu.com/s/1bo4lFzh [作 者]张冬旭,马春兴编 [丛书名]课堂实录 [形态项] 447 [出版项] 北京:清华大学出版社 , 2016.02 [ISBN号]7-302-40539-5 [中图法分类号]TP312 [原书定价]69.00 [主题词]C语言-程序设计 [参考文献格式] 张冬旭,马春兴编. C#开发课堂实录. 北京

2016阿里安全峰会重点资料下载

2016阿里安全峰会重点资料下载 风声与暗算,无中又生有:威胁情报应用的那些事儿 内容整理:https://yq.aliyun.com/articles/57700 PDF下载: ·     Webshell安全分析实践谈-陈中祥 ·     安全威胁情报如何敲开企业安全管理的大门-苏砫 ·     打赢企业信息安全这场仗-姚威 ·     风声与暗算-严雷 ·     攻击过程的威胁情报应对体系-王云翔 ·     如何产生威胁情报高级恶意攻击案例分析-宋超 ·     网络安全情报在企业侧的

用Python写一个ftp下载脚本

用Python写一个ftp下载脚本 ----基于Red Hat Enterprise Linux Server release 6.4 (Santiago):python 2.6.6 Ps:少侠我接触Python半个月以来接到的第一个需求,虽然如此简单的一个脚本,少侠我磕磕绊绊却用了将近一天半的时间才写出来,但还是很开心,毕竟也粗来了,废话不多说,切入正题.因为一开始没有用过ftplib模块,所以各种谷歌度娘一堆资料杂乱不堪,话不清,理不乱的,本文实现的功能简单,下面介绍一下,以免误导读者. 需

Exchange Server 2016预览版正式开放下载

正如今年5月微软所做出的承诺,今天Exchange Server 2016预览版正式开放下载,而且毫不奇怪的微软再次称这是历史上的最棒的版本.微软表示:"该Exchange版本是与众不同,因为它是为'云'而生的.想到全球Exchange社区在内的各种机构灵活运用该产品来开发新产品而感到异常的激动." Exchange Server 2016架构发生了很大的变化,如图: Microsoft Exchange Server 2016 - Preview 下载链接: 官方下载链接:http:

【ABAP系列】SAP ABAP 实现FTP的文件上传与下载

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 实现FTP的文件上传与下载 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 在SAP的实际应用中,经常会需要将生成的文件上传到FTP,或从FTP下载相关文档数据.本例实现将本地指定文件上传到FTP,及从FTP下载文件到本地的功能. 从FTP复制文件共有两种方式,一种是直接复制文件,另

如何写出优雅的CSS代码 ?(转)

对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来清晰易懂,代码具有可拓展性,这样的代码有利于团队合作和后期的维护:而有的混乱,虽然表达出了最终的效果,然而却晦涩难懂,显然团队成员在读这样的代码时就显得无从下手,更不利于后期的维护了.那么如何写出优雅的代码呢?下面我将以一个很小的项目就以下几个方面简单的表达一下自己的看法,如有不妥,望批评指正. 如何整理一个项目. 如何写出清晰易懂的HTML代码. 如何写出优雅的css代

聊聊程序员如何学习英语单词:写了一个记单词的小程序

背景: 关于英文对程序员的重要性,就不多说了! 英语的学习,有很多,今天也不聊多,只聊英语单词! 关于单词的记忆,找过很多方法,下载过很多软件. 如图(其它不好用的都卸载了): 上图算是我以前用过软件,注意,是以前哦~~~ 意思就是没有坚持下来~~~~ 随时间的推移,最后它们还是被我遗忘了~~~ 为什么???不能:坚持!坚持!坚持! 学习思考: 一直在找方法: 1:下载过联想记忆法.背文章记单词,词根,各种视频~~~ 2:连单词的数据库都网上下载了一份了,期望从数据库的直接记忆单词快些~~~ 通