1.创建结构和表

结构:ZSMIGO_ITEM

表类型:

表 :ZTMIGO_ITEM(用来保存增强字段的值)

2.创建函数组

TOP里的代码:

FUNCTION-POOL zfg_migo.                     "MESSAGE-ID ..* INCLUDE LZFG_MIGOD...                      " Local class definitionTABLES :ztmigo_item.

ZMIGO_ITEM_GET_DATA  :行项目数据从screen->BADI

FUNCTION zmigo_item_get_data.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  EXPORTING
*"     REFERENCE(E_OUTPUT) TYPE  ZSMIGO_ITEM
*"----------------------------------------------------------------------MOVE-CORRESPONDING ztmigo_item  TO e_output.ENDFUNCTION.

ZMIGO_ITEM_SET_DATA:行项目数据从BADI->SCREEN

FUNCTION zmigo_item_set_data.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(I_INPUT) TYPE  ZSMIGO_ITEM
*"----------------------------------------------------------------------MOVE-CORRESPONDING  I_INPUT TO ztmigo_item.ENDFUNCTION.

ZMIGO_SAVE_DATA:将增强字段存到自定义表

FUNCTION zmigo_save_data.
*"----------------------------------------------------------------------
*"*"更新函数模块:
*"
*"*"本地接口:
*"  TABLES
*"      IT_ITEM STRUCTURE  ZTMIGO_ITEM
*"----------------------------------------------------------------------MODIFY ztmigo_item  FROM TABLE it_item[].IF sy-subrc <> 0.MESSAGE 'Error update  ZTMIGO_ITEM'  TYPE 'A'.ENDIF.ENDFUNCTION.

创建屏幕:用来显示增强的字段

3.实施BADI:MB_MIGO_BADI

1.属性

GT_EXTDATA   Instance Attribute  Private Type    ZSMIGO_ITEM_T   MIGO行项目增强
GT_EXTDATA_MAA  Instance Attribute  Private Type    ZSMIGO_ITEM_T   MIGO行项目增强
GF_CLASS_ID Instance Attribute  Private Type    MIGO_CLASS_ID   MIGO 组件的类标识 (外部细节屏幕)    'MIGO_BADI_IMPLEMENTATION1'
G_NO_INPUT  Instance Attribute  Private Type    XFELD   复选框
G_CANCEL    Instance Attribute  Private Type    XFELD   复选框
G_LINE_ID   Instance Attribute  Private Type    MB_LINE_ID  凭证行的唯一标识                                                                                                                                        

IF_EX_MB_MIGO_BADI~INIT

  METHOD if_ex_mb_migo_badi~init.APPEND gf_class_id TO ct_init.ENDMETHOD.

IF_EX_MB_MIGO_BADI~PBO_DETAIL

  METHOD if_ex_mb_migo_badi~pbo_detail.DATA ls_extdata TYPE zsmigo_item.CHECK i_class_id = gf_class_id.CHECK i_line_id <> 0.IF g_no_input IS INITIAL.e_cprog = 'SAPLZFG_MIGO'.   "'SAPL + 'FG Name'e_dynnr = '9001'.e_heading = '客户数据'.g_line_id = i_line_id.READ TABLE gt_extdata INTO ls_extdataWITH TABLE KEY line_id = i_line_id.
*CALL FUNCTION 'ZMIGO_ITEM_SET_DATA'EXPORTINGi_input = ls_extdata.ENDIF.ENDMETHOD.

IF_EX_MB_MIGO_BADI~PAI_DETAIL

  METHOD if_ex_mb_migo_badi~pai_detail.DATA: ls_extdata_new TYPE zsmigo_item,ls_extdata_old TYPE zsmigo_item.
*CHECK i_line_id <> 0.
*CALL FUNCTION 'ZMIGO_ITEM_GET_DATA'IMPORTINGe_output = ls_extdata_new.READ TABLE gt_extdata INTO ls_extdata_oldWITH TABLE KEY line_id = i_line_id.ls_extdata_new-line_id = i_line_id.IF ls_extdata_old <> ls_extdata_new.e_force_change = 'X'.ENDIF.ENDMETHOD.

IF_EX_MB_MIGO_BADI~LINE_MODIFY

  METHOD if_ex_mb_migo_badi~line_modify.DATA: ls_extdata_old      TYPE zsmigo_item,ls_extdata_new      TYPE zsmigo_item,ls_migo_badi_exampl TYPE ztmigo_item,l_subrc             TYPE sy-subrc.*
* Get external data from internal table:READ TABLE gt_extdata INTO ls_extdata_oldWITH TABLE KEY line_id = i_line_id.l_subrc = sy-subrc.IF l_subrc <> 0.IF NOT cs_goitem-mblnr IS INITIAL AND NOT cs_goitem-mjahr IS INITIALAND NOT cs_goitem-zeile IS INITIAL.SELECT SINGLE * FROM ztmigo_item INTO ls_migo_badi_examplWHERE mblnr = cs_goitem-mblnrAND mjahr = cs_goitem-mjahrAND zeile = cs_goitem-zeile.IF sy-subrc = 0.MOVE-CORRESPONDING ls_migo_badi_exampl TO ls_extdata_new.ENDIF.ENDIF.ls_extdata_new-line_id = i_line_id.INSERT ls_extdata_new INTO TABLE gt_extdata.ELSE.CHECK g_line_id = i_line_id.CALL FUNCTION 'ZMIGO_ITEM_GET_DATA'IMPORTINGe_output = ls_extdata_new.ls_extdata_new-line_id = i_line_id.MODIFY TABLE gt_extdata FROM ls_extdata_new.ENDIF.ENDMETHOD.

IF_EX_MB_MIGO_BADI~LINE_DELETE

  METHOD if_ex_mb_migo_badi~line_delete.DELETE TABLE gt_extdata WITH TABLE KEY line_id = i_line_id.ENDMETHOD.

IF_EX_MB_MIGO_BADI~RESET

  METHOD if_ex_mb_migo_badi~reset.CLEAR: gt_extdata,g_no_input,
*         gs_exdata_header,g_cancel,g_line_id.ENDMETHOD.

IF_EX_MB_MIGO_BADI~POST_DOCUMENT

过账里面的逻辑不在这里写,写在此处只有前台可以触发,为了调bapi时也能触发,需要写在

BADI:MB_DOCUMENT_BADI里面的方法:IF_EX_MB_DOCUMENT_BADI~MB_DOCUMENT_BEFORE_UPDATE

S4 MIGO屏幕增强相关推荐

  1. sap badi s4 MIGO屏幕实施测试

    1: 实施MB_MIGO_BADI 输入实施类:YCL_MIGO_TEST01 选择:复制实例类, CL_EXM_IM_MB_MIGO_BADI是一个比较快的实施方式, 2: 激活增强实施 3: 激活 ...

  2. MIGO 行项目屏幕增强创建实例

    本人诚心接ABAP远程开发任务,价格公道,有需要的联系我,欢迎个人,甲方爸爸,乙方私信联系. 1.首先创建一张自建表用于存放客制化信息 2.建立结构,在屏幕数据交换时使用 3.建立表类型 4.给之前创 ...

  3. 供应商主数据屏幕增强

    场景:给供应商主数据增加分个按钮,实现自定义的其他的客制化数据如下截图,需要的BADI增强: VENDOR_ADD_DATA_CS 和  VENDOR_ADD_DATA 步骤如下: 1.在LFA1增加 ...

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

    先了解一下内向交货与外向交货: 1.外向交货:VL03N:内向交货:VL33N 2.外向与内向相对于库存来说的,一个出库,一个入库 场景:我们做一个外向交货单Header Level的一个屏幕增强. ...

  5. SAP采购订单抬头、行项目屏幕增强的两种方法

    对SAP系统中采购订单抬头进行屏幕增强,在抬头上增加了几个customer fields,但是实现方法有点怪,是一个Z report程序,其下创建了一个屏幕,屏幕中放的就是这几个customer fi ...

  6. 销售订单屏幕增强及功能增强

    增强点在程序SAPMV45A中有明显标志,见下图 或查看该程序子例程以USEREXIT_开头的即为增强出口,这些出口就包含在上图的INCLUDE程序中. 1.1  .销售订单行项目屏幕增强 程序SAP ...

  7. 成本中心主数据屏幕增强

    成本中心主数据屏幕增强实施示例: 相关TCODE:KS01.KS02.KS03 增强类型:屏幕增强 增强方式:CMOD\SMOD 增强名称:COOMKS01​ 步骤: 1.创建结构体:CI_CSKS​ ...

  8. 如何实现标准TCODE的屏幕增强

    如何实现标准TCODE的屏幕增强(HOWTO:Implement a screen exit to a standard SAP transaction) Introduction SAP provi ...

  9. 供应商主数据屏幕增强XK02,XK03

    当年第一次写增强,因参考的文章对没写过增强的人来有点不明.因此才有这篇用于记录 SE16N LFA1 APPEND STRUCTURE 增加自定义结构 SPRO 后勤-常规->业务伙伴-> ...

最新文章

  1. linux 用户java_linux之用户管理
  2. 前端开发应届生面试指南(含各大公司具体指南及面试真题)
  3. Go 语言编程 — defer 关键字
  4. DL之VGGNet:VGGNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  5. java jsp filename filepath 图片上传_SpringMVC实现文件上传与下载
  6. WSDM 2022 | 一种用于在线广告自动竞价的协作竞争多智能体框架
  7. 傅立叶变换是如何改变我们生活的? ——四个角度告诉你答案
  8. transformer bert GPT(未完)
  9. Material Design之AppBarLayout总结
  10. 第48次《中国互联网络发展状况统计报告》
  11. js与html页面分开,javascript – 当画布分割在多个页面上时,如何在使用html2canvas和jspdf时添加上边距?...
  12. win10无法装载iso文件_教你用win10自带虚拟光驱打开iso镜像文件的方法
  13. 数据结构视频教程 -《[北大张铭 精品课程版]数据结构与算法(C++)》
  14. 五、完成Teigha.net对CAD文件中的Entity实体进行编辑修改功能,包括字体,样式,颜色,备注XData等属性
  15. 某宁detect、feature参数分析
  16. 会议选座位php,会议室座次(会议座位怎么排位)
  17. json.dumps()、json.laods()、demjson相关
  18. 友盟集成微信授权登录,切换微信账号,登录无法切换微信信息问题
  19. php基础知识总结(新手入门必备)
  20. 唯品会导航栏简单制作

热门文章

  1. jmeter接口测试及详细步骤
  2. 【翻译】Real Shading in Unreal Engine 4
  3. 使用pgloader迁移MySQL至openGauss
  4. mybatis自动识别数据库关键字
  5. 怎么把html图片改成jpg格式吗,怎样把照片变成JPG格式?
  6. 数据库编程加入transaction
  7. 人工神经网络和神经网络,什么是人工神经网络?
  8. 大数据下的小媒体——访新蓝网副总监洪永和
  9. qt5的qk2dview
  10. PyTorch深度学习(23)Transformer及网络结构ViT