关于ECP直接修改ABAP代码

1.针对REPORT

REPORT zfc_mm_change.
TABLES: rs38m.
PARAMETERS: p_progm LIKE rs38m-programm OBLIGATORY MEMORY ID rid,
            p_uname LIKE sy-uname DEFAULT sy-uname .
DATA i_code TYPE TABLE OF string.

READ REPORT p_progm INTO i_code."读取程序行到i_code中
IF p_progm(1) = ‘Z‘ OR p_progm(2) = ‘LZ‘ OR p_progm(4) = ‘DEMO‘.
  EDITOR-CALL FOR i_code."执行可编辑逻辑
ENDIF.

IF sy-ucomm = ‘WB_SAVE‘.
  sy-uname = p_uname.
  INSERT REPORT p_progm FROM i_code. "更改写入逻辑
ENDIF.

READ REPORT prog INTO itab [MAXIMUM WIDTH INTO wid].

标准代码实例:

DATA prog TYPE c LENGTH 30.
DATA itab TYPE TABLE OF string. 

prog  = ‘...‘. 

READ REPORT prog INTO itab. 

IF sy-subrc = 0.
  APPEND ‘FORM subr.‘            TO itab.
  ...
  APPEND ‘PERFORM ...‘ TO itab.
  APPEND ‘ENDFORM.‘    TO itab.
  GENERATE SUBROUTINE POOL itab NAME prog.
  PERFORM (‘SUBR‘) IN PROGRAM (prog).
ENDIF. 

可执行代码:

REPORT zfr_test.

DATA prog TYPE c LENGTH 30.
DATA itab TYPE TABLE OF string.
DATA: mess TYPE string,
      sid  TYPE string.

prog  = ‘ZFR_TEST11‘.

READ REPORT prog INTO itab.
IF sy-subrc = 0.
  APPEND ‘FORM TEST.‘ TO itab.
  APPEND ‘WRITE: 1.‘ TO itab.
  APPEND ‘ENDFORM.‘    TO itab.
  GENERATE SUBROUTINE POOL itab NAME prog MESSAGE mess SHORTDUMP-ID sid.
  PERFORM (‘TEST‘) IN PROGRAM (prog) IF FOUND.
ENDIF.
REPORT ZFR_TEST11.

结果为: 1.

  GENERATE SUBROUTINE POOL itab NAME prog MESSAGE mess SHORTDUMP-ID sid. "通过现有代码,生成可执行程序

EDITOR-CALL FOR REPORT prog [DISPLAY-MODE].

REPORT zfr_test.

DATA prog TYPE c LENGTH 30.
DATA itab TYPE TABLE OF string.

prog  = ‘ZFR_TEST11‘.
READ REPORT prog INTO itab. "读取代码
EDITOR-CALL FOR itab ."DISPLAY-MODE. 设置代码可编辑

IF sy-ucomm = ‘WB_SAVE‘.
  INSERT REPORT prog FROM itab. "代码写入
ENDIF.

2.使用SE37->TRINT_OBJECTS_CHECK_AND_INSERT: 487行断点,ct_ko200[]内表清空更改。

时间: 2024-11-05 17:14:55

关于ECP直接修改ABAP代码的相关文章

node js 修改js代码自动发布到服务器

重新修改js代码后,不需要手动重启服务.需要安装supervisor 工具替代手工. 在联网的前提下在cmd中输入npm install supervisor -g 命令行会自动安装supervisor 工具 然后启动服务时就不用node  XXX.js  使用supervisor XXX.js后 修改js后不再需要手动重启node服务,supervisor 会自动发布最新修改的代码.

【安卓】数据库基于脚本的"增量更新",每次更新时不需修改java代码、!

思路: 1.当然是基于SQLiteOpenHelper.onCreate(第一次安装程序时调用).onUpdate(升级程序时调用) 2.用"脚本"(脚本制作具体方法问度娘)做数据库升级,文件名标识对应版本,java中根据"上一版本.当前版本"选择执行的脚本. 升级时,修改DB_VERSION(当前版本)即可. DBManager.java: package com.example.test; import java.io.ByteArrayOutputStream

本地修改js代码并时时生效的解决办法

js作为客户端语言(当然它也可以作服务端语言),非常强悍,一般情况下,我们都是在开发阶段不停的改,然后上线之后就作为稳定运行的代码. 然而有时候可能因为js写得有问题,导致上线后,某些功能无法使用,这就悲催了,而且一般的公司上线应该都不会很容易. 那么对于这种js一类的修改,如果能在本地临时生效,做一些紧急问题的修复,就很重要了.(我也是遇到这个坑,只要把这次临时问题修复,等下一个功能代码要上线时,再修复也是可以的) 那么,怎样做到本地修改js文件,从而达到代码运行ok的效果呢? 本文将会给出多

无需修改程序代码,轻松实现云存储加速

最近公司网站打开速度非常慢,外网压力测试发现带宽始终处于峰值,前几天听说云存储有镜像功能,更重要的是免费,哈哈,开工... 如果从程序本身去调用云存储,需要修改的代码太多..突发奇想,能不能用nginx的反向代理,对静态文件的请求解析到云存储 名词:主站 : 需要做加速的网站 步骤: 1.复制主站程序到一个新目录,在nginx新建网站,域名可以用static, 测试下是否可以正常访问.可以正常访问,去3. 2.如果程序本身是通过绝对路径定位网站资源,需要修改配置文件,例如config文件,吧域名

用ildasm/ilasm修改IL代码

原文地址:http://www.cnblogs.com/dudu/archive/2011/05/17/ildasm_ilasm_il.html 在开发中遇到这样一个场景,需要修改一个dll文件(.NET程序集)中某些地方的类型名称,但没有源代码,只能修改IL代码. 操作步骤如下: 1. 运行ildasm ildasm是由微软提供的.NET程序反编译工具,位于"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\". 2. 用ildasm

Chrome扩展修改页面代码执行环境的方法

Chrome的扩展程序可以通过content scripts向页面中注入js代码,所注入的js代码能够对页面中所有的DOM对象进行操作.由于Chrome在js执行环境上对页面代码和content scripts代码进行了隔离,所以,在content scripts中,无法直接修改页面代码执行环境.不过我们还是可以通过一些技巧向页面代码执行环境中插入想要执行的js代码段,从而能够修改页面代码的执行环境. 第一种方法,通过在DOM对象上添加一个event handler,然后派发对应的event给该

Eclipse中Tomcat 修改后台代码即时生效

修改类后不用重启Tomcat就能自动生效,对于提高开发效率的帮助很大. server.xml 中节点定义时一般会有如下配置: <Context docBase="test1"reloadable="false" /> <Context docBase="test2" reloadable="true" /> reloadable设置成true: 是tomcat自动帮助重启,无需手动重启(热部署), 要做

【Eclipse】修改java代码不强制重启

找到tomcat的server.xml文件,修改以下代码,重新发布重启.然后修改java代码就可以不用重启了. 将reloadable=“true”改成reloadable="false" 原代码 <Context docBase="gdgpms" path="/gdgpms" reloadable="true" source="org.eclipse.jst.jee.server:gdgpms"/&

数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案

作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段.简单地说,Sharding就是将原来单一数据库按照一定的规则进行切分,把数据分散到多台物理机(我们称之为Shard)上存储,从而突破单机限制,使系统能以Scale-Out的方式应对不断上涨的海量数据,但是这种切分对上层应用来说是透明的,多个物理上分布的数据库在逻辑上依然是一个库.实现Sharding需要解决一系列关键的技术问题,这些问题主