SAP_BADI屏幕增强实例MB_MIGO_BADI
更新时间:2024-05-03 01:52:01 阅读量: 综合文库 文档下载
- sap badi增强推荐度:
- 相关推荐
以下根据系统实例做的 最终效果:
1、 SE11建立数据表,主要是用于存放附加的数据;
MANDT MANDT CLNT 3 0 客户端
MBLNR MBLNR CHAR 10 0 物料凭证编号 MJAHR MJAHR NUMC 4 0 物料凭证年度 ZEILE MBLPO NUMC 4 0 物料凭证中的项目
BADI_ERFMG ERFMG QUAN 13 3 以输入单位计的数量 BADI_ERFME ERFME UNIT 3 0 条目单位
2、 建立结构,在屏幕数据交换时使用
3、 建立表类型
设置关键字段:
4、 SE80建立函数组
创建屏幕1000,
设计格式,插入附加字段
创建function: ZJIM_BADI_EXAMPLE_GET_DATA
*\------
*\ *\
*\ *\
*\------
* Get all data from fields of external screen * First move all customer-fields
MOVE-CORRESPONDING zjim_badi_exampl TO es_migo_badi_screen_fields.
* Second move all GOITEM-fields (displayed on external screen)
function: ZJIM_BADI_EXAMPLE_PUT_DATA
*\------
*\ *\
*\ *\
*\------
* Put all data from fields to external screen * First fill all customer-fields
MOVE-CORRESPONDING is_migo_badi_screen_fields TO ZJIM_badi_exampl.
* second fill all GOITEM-fields (displayed on external screen)
function: ZJIM_BADI_EXAMPLE_UPDATE_DATA
*\------
*\ *\
*\ *\
*\
*\------
* Databse update:
INSERT zjim_BADI_EXAMPL FROM TABLE IT_MIGO_BADI_EXAMPLE. IF sy-subrc <> 0.
MESSAGE a398(00) WITH 'Error update MIGO_BADI_EXAMPL'. ENDIF.
INCLUDE : LZJIM_BADI001TOP
TABLES : Zjim_badi_exampl.
到这里增强的准备工作就做完了,下面开始创建实现: 5、 SE19创建实现
6、 创建执行类ZCL_IM_JIM_MIGO_BADI,激活ZJIM_MIGO_BADI
双击类
维护类属性
GT_EXTDATA 用于数据交换,类型为ZJIM_TY_T_EXTDATA表类型, 7、 激活以下方法并维护:
method IF_EX_MB_MIGO_BADI~INIT.
* Regristration of BAdI-Implementation:
* Append class attribute GF_CLASS_ID (='MIGO_BADI_IMPLEMENTATION1') to
* regristration table.
APPEND gf_class_id TO ct_init. endmethod.
METHOD IF_EX_MB_MIGO_BADI~PBO_DETAIL .
DATA: ls_extdata TYPE zjim_badi_example_screen_field.
* This check is obligatory, otherwise the program flow is incorrect
* (If there would be more than one implementation of BAdI MB_MIGO_BADI,
* only one subscreen would be displayed). CHECK i_class_id = gf_class_id. * Show screen only if there is an item CHECK i_line_id <> 0. * External subscreen:
* The content of global field G_NO_INPUT (set in method MODE_SET) will
* influence the number of external subsreen: if g_no_input is initial.
e_cprog = 'SAPLZJIM_BADI001'(006). \程序名为定义的函数组的名称前加“SAPL“。
e_dynnr = '1000'. \t
e_heading = 'ZJIM'(004). \显示标签的名称
endif.
* Set G_LINE_ID (= line_id of item displayed on detail-tabstrip) g_line_id = i_line_id. * Read data
READ TABLE gt_extdata INTO ls_extdata WITH TABLE KEY line_id = i_line_id.
* Export data to function group (for display on subscreen) CALL FUNCTION 'ZJIM_BADI_EXAMPLE_PUT_DATA' EXPORTING
is_migo_badi_screen_fields = ls_extdata.
ENDMETHOD. \
METHOD IF_EX_MB_MIGO_BADI~PAI_DETAIL .
*-----------------------------------------------------------------------
* Changing parameter E_FORCE_CHANGE can be set to 'X'. In this case
* method LINE_MODIFY is called. * ATTENTION:
* DO NOT SET parameter E_FORCE_CHANGE = ' '. In this case you might
* overwrite parameter E_FORCE_CHANGE of another BAdI implementation.
*-----------------------------------------------------------------------
DATA: ls_extdata_new TYPE zjim_badi_example_screen_field, ls_extdata_old TYPE zjim_badi_example_screen_field.
* Only if a line exists CHECK i_line_id <> 0.
* Get data from external screen
CALL FUNCTION 'ZJIM_BADI_EXAMPLE_GET_DATA' IMPORTING
es_migo_badi_screen_fields = ls_extdata_new. * Compare new data with old data
READ TABLE gt_extdata INTO ls_extdata_old WITH TABLE KEY line_id = i_line_id. ls_extdata_new-line_id = i_line_id. IF ls_extdata_old <> ls_extdata_new.
* If there were any changes, it's obligatory to force MIGO to trigger
* method LINE_MODIFY.
e_force_change = 'X'. ENDIF.
ENDMETHOD. \
METHOD IF_EX_MB_MIGO_BADI~LINE_MODIFY .
DATA: ls_extdata_old TYPE zjim_badi_example_screen_field, ls_extdata_new TYPE zjim_badi_example_screen_field, ls_migo_badi_exampl TYPE zjim_badi_exampl, l_subrc TYPE sy-subrc.
* Get external data from internal table: READ TABLE gt_extdata INTO ls_extdata_old WITH TABLE KEY line_id = i_line_id. l_subrc = sy-subrc.
* Update data in internal table: IF l_subrc <> 0.
* Line is new: If GOITEM has a reference to a material document, * the already existing external data can be read. IF NOT cs_goitem-mblnr IS INITIAL AND NOT cs_goitem-mjahr IS INITIAL
AND NOT cs_goitem-zeile IS INITIAL.
SELECT SINGLE * FROM zjim_badi_exampl INTO ls_migo_badi_exampl
WHERE mblnr = cs_goitem-mblnr AND mjahr = cs_goitem-mjahr AND zeile = cs_goitem-zeile. IF sy-subrc = 0.
MOVE-CORRESPONDING ls_migo_badi_exampl TO ls_extdata_new. ENDIF. ENDIF.
* ls_extdata_new-sgtxt = cs_goitem-sgtxt. ls_extdata_new-line_id = i_line_id.
INSERT ls_extdata_new INTO TABLE gt_extdata. ELSE.
* Line exists: Get external data entered on BAdI-subscreeen, but only
* if line_modify was called for the item displayed in the
* 'detail tabstrip'. check g_line_id = i_line_id.
CALL FUNCTION 'ZJIM_BADI_EXAMPLE_GET_DATA' IMPORTING
es_migo_badi_screen_fields = ls_extdata_new. ls_extdata_new-line_id = i_line_id.
* if ls_extdata_new-sgtxt <> ls_extdata_old-sgtxt. ** Field was changed on external screen * cs_goitem-sgtxt = ls_extdata_new-sgtxt. * else.
** Take data from GOITEM
* ls_extdata_new-sgtxt = cs_goitem-sgtxt. * endif.
MODIFY TABLE gt_extdata FROM ls_extdata_new. ENDIF.
ENDMETHOD. \
METHOD IF_EX_MB_MIGO_BADI~LINE_DELETE .
DELETE TABLE gt_extdata WITH TABLE KEY line_id = i_line_id. ENDMETHOD. \
METHOD IF_EX_MB_MIGO_BADI~POST_DOCUMENT .
DATA: ls_migo_badi_example TYPE ZJIM_badi_exampl,
lt_migo_badi_example TYPE TABLE OF zjim_badi_exampl, ls_extdata TYPE zjim_badi_example_screen_field, ls_xmseg TYPE mseg.
FIELD-SYMBOLS:
* Any errors here MUST be issued as A-message (better: X-message)
* Copy data from material document into internal table LOOP AT gt_extdata INTO ls_extdata. IF g_cancel IS INITIAL.
READ TABLE it_mseg INTO ls_xmseg
WITH KEY line_id = ls_extdata-line_id. ELSE.
READ TABLE it_mseg INTO ls_xmseg WITH KEY smbln = ls_extdata-mblnr smblp = ls_extdata-zeile sjahr = ls_extdata-mjahr. ENDIF.
IF sy-subrc IS INITIAL.
MOVE-CORRESPONDING ls_extdata TO ls_migo_badi_example. MOVE-CORRESPONDING ls_xmseg TO ls_migo_badi_example. APPEND ls_migo_badi_example TO lt_migo_badi_example. ENDIF. ENDLOOP.
* The data from external detail screen can be saved now: CHECK gt_extdata IS NOT INITIAL.
CALL FUNCTION 'ZJIM_BADI_EXAMPLE_UPATE_DATA' IN UPDATE TASK TABLES
it_migo_badi_example = lt_migo_badi_example. * The data from external header screen can be saved now: * MOVE-CORRESPONDING is_mkpf TO gs_exdata_header.
* CALL FUNCTION 'MIGO_BADI_EXAMPLE_UPDATE_HEAD' IN UPDATE TASK * EXPORTING
* is_migo_badi_header_fields = gs_exdata_header.
ENDMETHOD. \
METHOD IF_EX_MB_MIGO_BADI~RESET . * Clear all internal data: CLEAR: gt_extdata, g_no_input, gs_exdata_header, g_cancel, g_line_id.
ENDMETHOD. \
激活所有,运行T_code MIGO 就可以看到第一个图的效果了。
* The data from external detail screen can be saved now: CHECK gt_extdata IS NOT INITIAL.
CALL FUNCTION 'ZJIM_BADI_EXAMPLE_UPATE_DATA' IN UPDATE TASK TABLES
it_migo_badi_example = lt_migo_badi_example. * The data from external header screen can be saved now: * MOVE-CORRESPONDING is_mkpf TO gs_exdata_header.
* CALL FUNCTION 'MIGO_BADI_EXAMPLE_UPDATE_HEAD' IN UPDATE TASK * EXPORTING
* is_migo_badi_header_fields = gs_exdata_header.
ENDMETHOD. \
METHOD IF_EX_MB_MIGO_BADI~RESET . * Clear all internal data: CLEAR: gt_extdata, g_no_input, gs_exdata_header, g_cancel, g_line_id.
ENDMETHOD. \
激活所有,运行T_code MIGO 就可以看到第一个图的效果了。
正在阅读:
SAP_BADI屏幕增强实例MB_MIGO_BADI05-03
最新珠海国际文化城项目可行性研究报告04-29
物理学教程(第二版)上册课后习题答案详解(1-5章)04-17
研究内容- 副本05-11
浅谈如何做好医院职工的思想政治工作08-20
四川省成都市树德中学2020-2021高一上学期10月阶段性检测语文试题(wd无答案)06-02
modbus的讲解03-08
- 发电电气运行规程1
- 英文简历
- 最全辅导员招聘考试题库
- 4.3崇明岛的未来的样子
- 2012年上海市普通高校招生二本批次各校投档分数线
- 江苏省如皋中学2017-2018学年第一学期高三第二次阶段测试12月数
- 农业转移人口社会参与机制浅谈
- 2017-2018学年度牛津译林版8B英语初二期中试卷及答案
- 家长委员会上的讲话
- 05继电保护设备检修规程
- 组织行为学考试重点(陈春花)
- 2016年云南省公务员考试《行测》模拟试卷(十七)
- 规避“10号文”红筹系列之案例分析
- 钱寨小学学生读书活动评价方案
- 五大联赛派系
- 国际结算课件新
- 材料科学导论 - 图文
- 领导干部任前廉政法规考试模拟试题
- 汽车综合实训
- 医疗质量管理目录
- BADI
- 实例
- 屏幕
- 增强
- MIGO
- SAP
- MB
- 诚信药房之歌
- 新能源汽车概论课程标准
- syb创业策划书-话费充值备用
- 徐泾地区最新规划文件
- 河北衡水中学2018届高三英语模拟试卷(十四)附答案
- 电动汽车交流电机电子控制系统产业化项目可行性研究报告书
- 布林操盘主图源码通达信指标公式源码
- C++面向对象程序设计实验指导书
- 高三历史新课标必修1考点分析(人教版) - 图文
- 如果我是销售小队长
- 2016-2021年餐饮用油行业深度调查及发展前景研究报告
- 关于2008年安全工作总结及2009年安全工作安排意见
- 论正当防卫
- 经典四边形习题50道(附答案)
- 防治水培训材料 - 图文
- 会计实训题
- 焊接检验试题
- 车坊镇农林服务中心农业科技推广成效及措施
- 人力资源2级-绿皮基础知识--重点整理
- 药物合成练习题14卓越、药学