zoukankan      html  css  js  c++  java
  • ABAP 增强实战:Enhancement Implementation增强点实施例子

    今天遇到一个需求,很有意思,所以我把它记录下来。

     

     

    需求: IW32输入order ,进入界面中后点击change Status,之后会显示一个子屏幕,想通过增强的方式,把这个自屏幕的内容设为不可编辑。

    寻找增强:我们直接通过F1帮助进入子屏幕,先看看当前屏幕的PBO有没有出口,

     

    很幸运,我们刚好发现程序本身就有对这个字段不可输入的控制,而控制的字段,我们发现是一个叫DISPLAY_ON的变量,经过DEBUG发现,这个字段确实能控制这个屏幕的不可编辑。

     

    下面我们有两种想法,一种可以尝试在这里直接加,还有就是看一下这个display在哪里赋值,是否还控制其他内容。

     

     

    发现当前位置没有合适的点,那我们只能去看一下这个display_NO的赋值位置。

    反查这个变量赋值的位置,发现两处赋值。

     

    在这两个位置打断点之后,运行程序,发现程序运行到这个function中,我点击他的上一个调用的位置,发现它仅仅是由一个自定义的变量L_display控制的。

     

    而且debug测试这个字段赋值后,可以能成功,所以我觉得在这个位置加增强点,而且这个位置是有加增强点的位置的。

    下面创建增强(创建增强,创建一次后面就是傻瓜式点鼠标,重点还是在上面的查找增强,能找到一个合适的增强点,才是增强中比较困难的部分。)

    首先点击这个鸣人卷似的按钮,然后选择显示隐式增强

     

     

    把光标放在有黑色箭头的那行上,点击Create

     

    选择code

     

    点击新建

     

    输入新建Enhancement Implementation的命名及简短描述

     

    创建完了,再点对勾

     

    然后这个位置就会出现可编辑的区域了。

     

    我一般喜欢在里面加个include,在include里面写相关代码,我们需要加上对应的tcode限制及公司代码限制,并且我们发现下面的变量是定义在我们出口下方的,所以我们需要新定义一个变量去调用下面那个函数,并且在后面写个return,跳过下方的代码。

     

    结果成功显示不可编辑的样子。

    闫默涵
  • 相关阅读:
    八皇后问题
    窃贼问题
    汉诺塔算法
    HDOJ(HDU) 1570 A C
    HttpClient4.2 Fluent API学习
    CUDA编程(六)进一步并行
    动态规划-迷宫-百度之星-Labyrinth
    hdu 5288||2015多校联合第一场1001题
    [单调队列] hdu 3415 Max Sum of Max-K-sub-sequence
    java 内存数据存储
  • 原文地址:https://www.cnblogs.com/yanmohan/p/14298653.html
Copyright © 2011-2022 走看看