• 增强之BADI修改VL02N屏幕字段


    SE18查看badi LE_SHP_DELIVERY_PROC.
    我们会发现系统对这个badi有实现了一个类.下面我们会参考这个类的方法实现我们的需求.如图.

    1.SE19创建badi LE_SHP_DELIVERY_PROC的实现: ZI_SHP_DELIVERY_PROC.
    再创建增强实现: ZIM_SHP_DELIVERY_PROC.之后如下图,比较它与SE18的区别.

    2.双击接口类型的方法: CHANGE_FIELD_ATTRIBUTES. 实现它,代码如下:
    method IF_EX_LE_SHP_DELIVERY_PROC~CHANGE_FIELD_ATTRIBUTES.
    data: ls_field_attributes type shp_screen_attributes,
    ls_xvbup
    type vbupvb.
    if is_likp-vbeln = '0080003022'.
    ls_field_attributes
    -name = 'LIPSD-G_LFIMG'. "屏幕字段为交货数量,修改其属性为不可输入.
    ls_field_attributes
    -input = 0.
    append ls_field_attributes to ct_field_attributes.
    endif.
    endmethod.

    *******************************************************例2

    初次写BADI,如图,我是如下步骤:

    1、找到系统VL02N的BADI,“DELIVERY_PUBLISH”;
    2、在SE19下创建“ZDELIVERY_PUBLISH”;
    3、双击“PUBLISH_BEFORE_COMMIT”中写入图二的测试代码;
    4、激活程序,设置断点;

    然后在VL02N中执行发货过账操作,但是程序无法在断点处停顿,请问是不是哪个步骤丢失了?

    BADI是不是找到后,加进去代码就可以使用?

    你要定义一个实例来调用这个类接口。比如:
    data: L_object type ref to <class_name>. (一般情况下为你这个实施中的接口名) 。

  • 相关阅读:
    Partial Tree(DP)
    Petya and Array (权值线段树+逆序对)
    Tomb Raider(暴力模拟)
    Tunnel Warfare (区间合并|最大值最小值巧妙方法)
    Array Product(模拟)
    Saving Tang Monk II(bfs+优先队列)
    Water Tree(树链剖分+dfs时间戳)
    Tree(树链剖分+线段树延迟标记)
    Jiu Yuan Wants to Eat(树链剖分+线段树延迟标记)
    旅行(树链剖分+动态开点线段树)
  • 原文地址:https://www.cnblogs.com/huangjianisgood/p/2742765.html
Copyright © 2020-2023  润新知