• 查找SAP标准程序用户出口及BADI的方法


    查找SAP标准事务代码中使用的BADI

    在SE24中,查看类对象CL_EXITHANDLER,在其方法(Methods)GET_INSTANCE 的第14行打断点,之后运行事务代码;

    当有BADI将会被执行的时候,这时候会进入类CL_EXITHANDLER的GET_INSTANCE方法,按F6执行这个方法之后,参数EXIT_NAME中的值便是BADI定义(SE18中看到的东西),参数CLASS_NAME则是类对象名称(SE24里面看到的东西),所有的方法实现都是存在于类对象中;

    通过查找类方法中的参数(Parameter)和对对象的属性(Attribute),如果能满足自己需要实现的功能,则可以通过实现这个BADI来做增强。

    实现BADI的方法(ECC6.0版本下):

    进入SE19,选择Create Implementation中的Classic BADi,输入刚才查找到的EXIT_NAME;

    点击Create Impl,输入实现名;

    点绿勾;

    点击保存,激活(如果是ECC6.0版本,则还需要指定对应的Enhancement Spot,才可以完全创建成功。但是这里有个疑问:我第一次创建BADI实现需要指定Enhancement Spot,这次创建保存激活时直接创建成功,并没有提示我需要指定Enhancement Spot,不知道为什么!);

    双击进入方法CHANGE_SEGMENT_PSEGMENT,即可在里面实现功能;

    下面再运行F-02,执行程序,即可进入此段代码。

    查找SAP标准事务代码中使用的USER_EXIT

    在SE37中,查看函数MODX_FUNCTION_ACTIVE_CHECK ,在最后一行打断点;

       当有USER_EXIT将会被执行的时候,这时候函数MODX_FUNCTION_ACTIVE_CHECK中的参数L_FUNCNAME 会显示出口的名称。

    如果要使用这个出口,必须先激活(已经激活的则不需要);

    先去表MODSAP中查找这个程序名的出口名;

    进入CMOD,创建出口对象(以下图例使用的是一个已经存在的增强对象);

    选择Enhacement assignments;

    在这里输入增强对象名,也就是刚才在MODSAP表里面查到的F180A001,点击组件;

    选择修改,激活这些增强,双击进入EXIT_SAPLF048_001 程序;

    创建INCLUDE ZXF48U01;

    运行F-02,便会进入此出口程序。

  • 相关阅读:
    Java学习二十九天
    Java学习二十八天
    47. Permutations II 全排列可重复版本
    46. Permutations 全排列,无重复
    subset ii 子集 有重复元素
    339. Nested List Weight Sum 339.嵌套列表权重总和
    251. Flatten 2D Vector 平铺二维矩阵
    217. Contains Duplicate数组重复元素
    209. Minimum Size Subarray Sum 结果大于等于目标的最小长度数组
    438. Find All Anagrams in a String 查找字符串中的所有Anagrams
  • 原文地址:https://www.cnblogs.com/goodsmith/p/3723807.html
Copyright © 2020-2023  润新知