【三代增强干货一枚】外向交货单Delivery (VL01N)Header屏幕增强

先了解一下内向交货与外向交货:
1、外向交货:VL03N;内向交货:VL33N
2、外向与内向相对于库存来说的,一个出库,一个入库

场景:我们做一个外向交货单Header Level的一个屏幕增强。
1、SE11 Append Structure 在交货单抬头增强需要在Likp中添加新结构
 
增强的结构的字段,我们一般已ZZ / YY开头。
 

2、SE80创建一个Function Group函数组:YDELIVER_HEAD(Deliver Header:customer Fields)
分别创建两个Function module:
Y_GET_DATA_DELI_HEAD(get values for screen)
 
source code:
  1.   cs_likp-yyfull     = gv_full.
  2.   cs_likp-yypartial  = gv_partial.
  3.   cs_likp-yyveh_no   = gv_veh_no.
  4.   cs_likp-yylr_dkt_no = gv_lr_dkt_no.
  5.   cs_likp-yylr_dkt_dt = gv_lr_dkt_dt.
  6.   cs_likp-yydriver    = gv_driver.
  7.   cs_likp-yyinote_num = gv_inote_num .
  8.   cs_likp-yyinote_dt  = gv_inote_dt.
  9.   cs_likp-yyinote_cntr = gv_inote_cntr.
  10.   cs_likp-yytrnsp      = gv_trnsp.
复制代码

Y_SET_DATA_DELI_ITEM(set values for screen)
 
source code:
  1.   gv_full       = is_likp-yyfull  .
  2.   gv_partial    = is_likp-yypartial .
  3.   gv_veh_no     = is_likp-yyveh_no  .
  4.   gv_lr_dkt_no  = is_likp-yylr_dkt_no.
  5.   gv_lr_dkt_dt  = is_likp-yylr_dkt_dt .
  6.   gv_driver     = is_likp-yydriver .
  7.   gv_inote_num  = is_likp-yyinote_num .
  8.   gv_inote_dt   = is_likp-yyinote_dt .
  9.   gv_inote_cntr = is_likp-yyinote_cntr.
  10.   gv_trnsp      = is_likp-yytrnsp.
复制代码

3、创建一个Subscreen屏幕9000
 
画出屏幕增强需要的字段
 
输入*,点击Get From Program按钮,获取程序中所有的变量,选中想要的即可
别忘了激活全部元素

4、查找相应的BADI
查找方法请参考: SAP第三代增强BADI的实现方法及查找方式
Delivery Header level:LE_SHP_TAB_CUST_HEAD
Delivery Item level:LE_SHP_TAB_CUST_ITEM
这里Additional tab,我们只需要LE_SHP_TAB_CUST_HEAD

5、SE18 BADI实施
 
在BADI对象的方法中实现我们相应的代码
 
IF_EX_LE_SHP_TAB_CUST_HEAD~ACTIVATE_TAB_PAGE
  1.   METHOD if_ex_le_shp_tab_cust_head~activate_tab_page.
  2.     ef_caption = text-000. " screen caption
  3.     ef_program = 'SAPLYDELIVER_HEAD'."FunctionPool:sapl + function group name
  4.     ef_position = 4. "tab position
  5.     ef_dynpro  = '9000'. "screen number
  6.     cs_v50agl_cust = 'X'.
  7.   ENDMETHOD.
复制代码

IF_EX_LE_SHP_TAB_CUST_HEAD~TRANSFER_DATA_TO_SUBSCREEN
  1.   METHOD if_ex_le_shp_tab_cust_head~transfer_data_to_subscreen.
  2.     CALL FUNCTION 'Y_SET_DATA_DELI_ITEM'
  3.       EXPORTING
  4.         is_likp = is_likp.
  5.   ENDMETHOD.
复制代码

IF_EX_LE_SHP_TAB_CUST_HEAD~TRANSFER_DATA_FROM_SUBSCREEN
  1.   METHOD if_ex_le_shp_tab_cust_head~transfer_data_from_subscreen.
  2.     CALL FUNCTION 'Y_GET_DATA_DELI_HEAD'
  3.       IMPORTING
  4.         cs_likp = cs_likp.
  5.   ENDMETHOD.
复制代码

激活代码,激活BADI对象
这里的FUNCTION的import/export为什么是CS_LIKP、IS_LIKP?能不能自己随便定义能?
当然不能,我们可以在Interface:IF_EX_LE_SHP_TAB_CUST_HEAD中Parameter中查找我们所需的传入、传出参数

6、VL02N测试
F4查找一个存在的交货单
 
这里就能查看我们增强的屏幕了
 
输入数据,保存,然后再标准表LIKP就能看到去刚才增强字段的值了

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值