很恐怖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系统不会全毁了,某个模块也会可能毁坏.所以,一定慎重使用).
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
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系统不会全毁了,某个模块也会可能毁坏.所以,一定慎重使用).
相关文章推荐
- ABAP 通过SQL修改某个程序的锁定状态
- exe崩溃用windbgattach后有宝贵现场,可看程序退出线程等,千万不要清屏
- 在ABAP程序中只允许一个用户修改数据的一种方法。
- abap程序修改程序
- 关于python自增运算(千万不要用++i,不然程序崩掉)
- 想做SAP abap开发,但是却没有权限修改/新增 abap程序
- 存储班长信息的学生类,将Stu类的数据成员的访问权限改为private,你的程序是否能完成要求的功能?如果不行,请修改程序。请不要修改给出的代码,只能修改自己写的代码。
- 11周2-2项目 - 存储班长信息的学生类,将Stu类的数据成员的访问权限改为private,你的程序是否能完成要求的功能?如果不行,请修改程序。请不要修改给出的代码,只能修改自己写的代码。
- 修改开发提交后的ABAP程序
- abap修改已有的程序
- 使用程序修改域帐户直接领导时遇到的错误
- 千万不要死于无知
- 装载修改过的WINDOWS系统内核程序(WIN2000)
- 用C编的病毒程序举例-请不要乱传,乱用!
- 使用程序修改域帐户直接领导时遇到的错误
- 千万不要在公车上吃鸡排
- 信息编辑,上传文件编辑、删除,用户个人资料修改程序完成 2004-08-21
- 你走过、路过、可千万不要错过……
- 用Nhibernate怎么实现数据的添加、删除、修改简单程序
- 修改别人的程序真是麻烦!!