您的位置:首页 > 其它

很恐怖ABAP修改程序(千万不要乱用!!!!!!!!!)

2016-12-22 17:54 363 查看
*& Report  **************

*& 

*&---------------------------------------------------------------------* 

*& 

*& 

*&---------------------------------------------------------------------* 

REPORT  **************. 

types: abapline(255) type c. 

data: it_repsrc type standard table of abapline. 

DATA: ZBACK type standard table of abapline. 

DATA: wa_repsrc TYPE  abapline. 

data : fcode like sy-ucomm. 

DATA:changed like s38e-buf_varied. 

DATA:IT_MESSAGE TYPE TABLE OF ZTEXT_EDITOR_MESSAGE WITH HEADER LINE. 

DATA: BEGIN OF INCTABL OCCURS 10, 

   LINE(100), 

END OF INCTABL. 

PARAMETERS:Zname LIKE RS38M-PROGRAMM. 

start-of-selection. 

set pf-status 'PFSTA00'. 

write: /1 '你编辑好的程序:' color 2. 

read report Zname into it_repsrc. 

read report Zname into ZBACK. 

  LOOP AT it_repsrc INTO wa_repsrc. 

    WRITE :/ wa_repsrc. 

  ENDLOOP. 

at user-command. 

if sy-ucomm = 'ZWRITE'.     "写入 

  CLEAR :INCTABL[]. 

  LOOP AT it_repsrc INTO wa_repsrc. 

    INCTABL-LINE = wa_repsrc. 

    APPEND INCTABL. 

  ENDLOOP. 

  INSERT REPORT ZNAME FROM INCTABL. 

  if sy-subrc = 0. 

    MESSAGE '写入成功,将测试运行新的程序.如果有错误,请点"还原"恢复.'  TYPE 'I'. 

  ENDIF. 

  SUBMIT Zname  AND RETURN. 

  read report Zname into it_repsrc. 

  LOOP AT it_repsrc INTO wa_repsrc. 

    WRITE :/ wa_repsrc. 

  ENDLOOP. 

elseif sy-ucomm = 'EXEC'.   "还原 

  it_repsrc[] = ZBACK[]. 

  INSERT REPORT Zname FROM ZBACK. 

  LOOP AT ZBACK INTO wa_repsrc. 

    WRITE :/ wa_repsrc. 

  ENDLOOP. 

  SUBMIT Zname  AND RETURN. 

  MESSAGE '还原成功' TYPE 'I'. 

ELSEIF SY-ucomm = 'EDIT'.   "编辑 

  perform. editor_CHX. 

  LOOP AT it_repsrc INTO wa_repsrc. 

    WRITE :/ wa_repsrc. 

  ENDLOOP. 

elseif sy-ucomm = 'ZBACK' OR sy-ucomm = 'BACK'.    "退出 

     CLEAR: inctabl[],it_repsrc[],ZBACK[],Zname. 

     FREE :inctabl[],it_repsrc[],ZBACK[],Zname. 

     leave to screen 0. 

ELSE. 

endif. 

*&---------------------------------------------------------------------* 

*&      Form  editor_CHX 

*&---------------------------------------------------------------------* 

*       text 

*----------------------------------------------------------------------* 

*  -->  p1        text 

*  <--  p2        text 

*----------------------------------------------------------------------* 

FORM. editor_CHX . 

  call function 'EDITOR_APPLICATION' 

       exporting 

            application = 'BF' 

            display     = ' ' 

            name        = '[编辑你的程序:]' 

       importing 

            fcode       = fcode 

            changed     = changed 

       tables 

            content     = it_repsrc. 

ENDFORM.                    " editor_CHX 

*********************后话 

用上面这个程序,可以修改SAP的任何程序.不需要申请KEY,也不会产生序列号.建议有丰富ABAP编写经验的人才可以使用,如果你一定要使用,请记住"写入程序"后的提示.在测试正确前,不要退出本程序,这样,你还有机会还原!!!!!!!!!(想想吧,如果使用不慎,即使几百万的SAP系统不会全毁了,某个模块也会可能毁坏.所以,一定慎重使用).

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: