• BADI(ビジネスアドイン)の探し方


    概要

    元々、SAPはユーザEXITと呼ばれるインクルードプログラムを実装することによって標準機能の拡張を実現してきたが、それに置き換わる新拡張技術としてBADI(ビジネスアドイン)を提供している。これにより、今後新たなユーザEXITを提供する事はないと言われている。 また、BADIはクラス化されている為に予め定義された引数・戻り値しか使用する事ができず苦労する事も多い。

    BADIの探し方

    1.トランザクションコード:SE24でクラス:CL_EXITHANDLERを照会

    2.メソッド:GET_INSTANCEを選択しプログラムソースを表示

    3.下記にブレイクポイント指定 14行目当たりの”CALL METHOD CL_EXITHANDLER=>GET_CLASS_NAME_BY_INTERFACE”

    4.確認したいトランザクションを別セッションで実行

    4.上記メソッドの戻り値:EXIT_NAMEに返される値が使用されているBADIの定義名にあたる。  ※共通的なBADIも実行されるので、関係のなさそうな名称であればスルーしてください。

    例えば、品目マスタの変更(トランザクションコード:MM02)で表示→保存と実行した場合は以下のBADIが実行されている事がわかる。 BADI_MATERIAL_OD GOS_SRV_SELECT BADI_LAYER BADI_MATERIAL_OD ECM_EXIT BADI_GTIN_VARIANT BADI_MATERIAL_CHECK BADI_SCREEN_LOGIC_RT W_RETAILSYSTEM_IDENT BADI_MATN1

    これらで品目に関係がありそうなのはBADI_MATERIAL_OD、BADI_MATERIAL_CHECK、BADI_MATN1だろうと推測できる為、 その中で要件が実現可能なメソッドが存在するかを確認していけば良い。 またBADIの定義はトランザクションコード:SE18で確認する事ができ、BADIの実装を行いたい場合は トランザクションコード:SE19にてBADIの定義を継承して拡張登録する事ができる。 また、実装後の変更でクラス名が判っていればトランザクションコード:SE24から直接変更する事も可能だ。

    関連トランザクションコードまとめ

    SE24: クラス/インタフェース SE18: ビジネスアドイン(定義) SE19: ビジネスアドイン(実装)

  • 相关阅读:
    大话位运算
    Docker部署jar包
    linux系统备份mysql数据库
    关于Centos7 firewalld防火墙开放端口后仍不能访问ftp和nginx的问题解决
    MySql查询当天、本周、本月、本季度、本年的数据
    c#模拟线性回归
    监控服务器配置(五)-----Redis_exporter安装配置
    监控服务器配置(二)-----Grafana安装配置
    监控服务器配置(三)-----Node_exporter安装配置
    js网页唤起支付宝进行支付
  • 原文地址:https://www.cnblogs.com/yjyongil/p/11155169.html
Copyright © 2020-2023  润新知