SAP ABAP读取程序源代码 && 源代码存放表REPOLOAD REPOSRC研究

1. 关于REPOLOAD REPOSRC和ABAP Buffer

2. 解析(读取)REPOSRC的源代码

  • SE38显示的代码
    2

  • 方法一:READ REPORT语法直接读取

    	DATA: source  TYPE TABLE OF string WITH EMPTY KEY.
    	
    	READ REPORT 'ZHIDE_03' INTO source.
    	cl_demo_output=>display( source ).
    

    1

  • 方法二:通过decompress工具读取

    • 使用ZS_REPOSRC_DOWNLOAD下载REPOSRC源代码RAWSTRING字符串

      	DATA: v_fnam TYPE rlgrap-filename,  " Local file name
      	      v_file TYPE string,           " Same, but as a string
      	      v_xstr TYPE xstring,          " Source (compressed)
      	      v_xlen TYPE i,                " Length of source
      	      t_xtab TYPE TABLE OF x255.    " Source plugged into a table
      	
      	PARAMETERS: report TYPE progname DEFAULT sy-repid           "#EC *
      	                   MATCHCODE OBJECT progname OBLIGATORY.
      	
      	START-OF-SELECTION.
      	
      	  " -- Select local file name
      	  WHILE v_fnam IS INITIAL.
      	    v_fnam = report.
      	
      	    CALL FUNCTION 'NAVIGATION_FILENAME_HELP'
      	      EXPORTING
      	        default_path      = v_fnam
      	        mode              = 'S'
      	      IMPORTING
      	        selected_filename = v_fnam.
      	  ENDWHILE.
      	
      	  v_file = v_fnam.
      	
      	  " -- Fetch compressed source code
      	  SELECT SINGLE data INTO v_xstr FROM reposrc
      	          WHERE progname = report AND r3state = 'A'.
      	
      	  v_xlen = XSTRLEN( v_xstr ).
      	
      	  " -- Plug source into a table
      	  CALL METHOD cl_swf_utl_convert_xstring=>xstring_to_table
      	    EXPORTING
      	      i_stream = v_xstr
      	    IMPORTING
      	      e_table  = t_xtab
      	    EXCEPTIONS
      	      OTHERS   = 1.
      	
      	  " -- Download to local file
      	  CALL FUNCTION 'GUI_DOWNLOAD'
      	    EXPORTING
      	      filetype     = 'BIN'
      	      filename     = v_file
      	      bin_filesize = v_xlen
      	    TABLES
      	      data_tab     = t_xtab
      	    EXCEPTIONS
      	      OTHERS       = 0.
      

      2
      3

    • 编译/下载decompress.exe工具

    • 使用decompress.exe解析源代码(Window需安装MinGW,然后安装gcc g++编译器)

      • 使用方法

        ------------------------------------
        SAP Source Code Decompressor, v1.2.0
        ------------------------------------
        
        Usage:
          decompress.exe <infile> <outfile> [-u] [-n]
        
        Options:
          -u : create UTF-16 output; defaults to ASCII
          -n : assume input from non-Unicode SAP system
        
      • 解析

        decompress.exe ZHIDE_03.TXT ZHIDE_03_OUT.TXT -u
        decompress.exe ZHIDE_03.TXT ZHIDE_03_OUT.TXT -n
        

        45

3. 解析(读取)REPOLOAD的源代码

  • 尝试中…
  • REPOLOAD是编译后的RAWSTRING,decompress解析后乱码;感觉解析不了呢!
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值