MIGO行项目屏幕增强

MIGO行项目屏幕增强
一、增强描述
  1. 由于在事务码MIGO中存在的字段中没有能够满足客户需求的字段,所以需要在事务码MIGO的屏幕中添加一个新的页签用来保存物料凭证中行项目增加的字段。

  2. 通过查找BADI的程序ZDEMO_BADI,输入参数MIGO后,得到对应BADI为MB_MIGO_BADI。

    在这里插入图片描述

二、增强步骤
  1. 创建增强数据表和增强结构

    • 创建增强数据存储表。

      在这里插入图片描述

    • 创建增强数据结构

      在这里插入图片描述

    • 创建增强数据表类型结构。

      在这里插入图片描述

  2. 创建增强屏幕

    • 新建Function Group,定义全局变量。

      在这里插入图片描述

    • 创建函数ZMM_I_GET_DATA(行项目:从屏幕获取数据)

      在这里插入图片描述

      在这里插入图片描述

    • 创建函数ZMM_I_SET_DATA(行项目:输出数据到屏幕)

      在这里插入图片描述

      在这里插入图片描述

    • 创建函数ZMM_UPDATE_DATA(抬头/行项目:更新数据到数据库 )

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

    • 创建函数ZMM_SET_GOACTION(抬头/行项目:设置屏幕Action Code)

      在这里插入图片描述

      在这里插入图片描述

  3. 创建行项目子屏幕9000

    • 创建屏幕9000.

      在这里插入图片描述

    • 创建屏幕字段根据自建表的增强字段命名。

      在这里插入图片描述

    • 给屏幕创建PBO事件。

      在这里插入图片描述

  4. 创建BADI实施

    • 使用事务码SE19创建BADI实施,最后一步建立空类。

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

    • 新增实施类属性

      在这里插入图片描述

    • 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.IF gf_class_id = i_class_id.DATA: wa_item TYPE zsmm_migo01.CHECK i_line_id IS NOT INITIAL.e_cprog = 'SAPLZMM_MIGO01'(001).   "'SAPL + 'FG Name'e_dynnr = '9000'.e_heading = 'Item Addition1'.g_line_id = i_line_id.READ TABLE it_item INTO wa_item WITH KEY line_id = i_line_id.CALL FUNCTION 'ZMM_I_SET_DATA'EXPORTINGi_input = wa_item.ENDIF.ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~PAI_DETAIL

        METHOD if_ex_mb_migo_badi~pai_detail.DATA: wa_item_new TYPE zsmm_migo01,wa_item_old TYPE zsmm_migo01.CHECK i_line_id <> 0.CALL FUNCTION 'ZMM_I_GET_DATA'IMPORTINGe_output = wa_item_new.READ TABLE it_item INTO wa_item_old WITH  KEY line_id = i_line_id.IF wa_item_new <> wa_item_old.e_force_change = 'X'.ENDIF.ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~LINE_MODIFY

      METHOD if_ex_mb_migo_badi~line_modify.DATA: wa_item_new    TYPE zsmm_migo01,wa_item_old    TYPE zsmm_migo01,wa_ztmm_migo01 TYPE ztmm_migo01,l_subrc        TYPE sy-subrc.READ TABLE it_item INTO wa_item_old WITH KEY line_id = i_line_id.l_subrc = sy-subrc.IF sy-subrc <> 0.IF cs_goitem-mblnr IS NOT INITIALAND cs_goitem-mjahr IS NOT INITIALAND cs_goitem-zeile IS NOT INITIAL.SELECT SINGLE * FROM ztmm_migo01INTO wa_ztmm_migo01WHERE mblnr = cs_goitem-mblnrAND mjahr = cs_goitem-mjahrAND zeile = cs_goitem-zeile.IF wa_ztmm_migo01 IS NOT INITIAL.MOVE-CORRESPONDING wa_ztmm_migo01 TO wa_item_new.ENDIF.ENDIF.wa_item_new-line_id = i_line_id.INSERT wa_item_new INTO TABLE it_item.ELSE.CHECK g_line_id = i_line_id.CALL FUNCTION 'ZMM_I_GET_DATA'IMPORTINGe_output = wa_item_new.MODIFY it_item FROM wa_item_new TRANSPORTING ztest01 ztest02 WHERE line_id = i_line_id.ENDIF.ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~LINE_DELETE

      METHOD if_ex_mb_migo_badi~line_delete.DELETE it_item WHERE line_id = i_line_id.
      ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~RESET

       CLEAR: it_item,g_no_input,g_cancel,g_line_id.
      
    • IF_EX_MB_MIGO_BADI~POST_DOCUMENT

        METHOD if_ex_mb_migo_badi~post_document.DATA: wa_ztmm_migo01 TYPE ztmm_migo01,lt_ztmm_migo01 TYPE TABLE OF ztmm_migo01,wa_item        TYPE zsmm_migo01,wa_mseg        TYPE mseg.IF it_item IS NOT INITIAL.LOOP AT it_item INTO wa_item.IF g_cancel IS INITIAL.READ TABLE it_mseg INTO wa_msegWITH KEY line_id = wa_item-line_id.ELSE.READ TABLE it_mseg INTO wa_msegWITH KEY smbln = wa_item-mblnrsmblp = wa_item-zeilesjahr = wa_item-mjahr.ENDIF.IF sy-subrc IS INITIAL.MOVE-CORRESPONDING wa_item TO wa_ztmm_migo01.MOVE-CORRESPONDING wa_mseg TO wa_ztmm_migo01.APPEND wa_ztmm_migo01 TO lt_ztmm_migo01.ENDIF.ENDLOOP.CALL FUNCTION 'ZMM_UPDATE_DATA' IN UPDATE TASKTABLESit_item = lt_ztmm_migo01.ENDIF.ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~MODE_SET

        METHOD if_ex_mb_migo_badi~mode_set." i_action:" A01 = Goods receipt" A02 = Return delivery" A03 = Cancellation" A04 = Display" A05 = Release GR bl.st." A06 = Subsequent deliv." A07 = Goods issue"" i_refdoc:" R01 = Purchase order" R02 = Material document" R03 = Delivery note" R04 = Inbound delivery" R05 = Outbound delivery" R06 = Transport" R07 = Transport ID code" R08 = Order" R09 = Reservation" R10 = Other GR
      *------------------------------------------------*IF i_action = 'A03' OR i_action = 'A04' .g_no_input = abap_true.ENDIF.IF i_action = 'A03'.g_cancel = abap_true.ENDIF.CALL FUNCTION 'ZMM_SET_GOACTION'EXPORTINGi_goaction = i_action.ENDMETHOD.
      
  5. 验证效果

    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2981748.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

什么便签好用又没广告 好用无广便签分享

身处这个快节奏的时代&#xff0c;我们时常被各种琐事和计划所包围。想象一下&#xff0c;你在办公桌前&#xff0c;电脑屏幕上杂乱无章地贴着各种纸质便签&#xff0c;有的记录着待办事项&#xff0c;有的则是灵感闪现时的几句诗句。每次想要查找某个信息&#xff0c;都得费力…

【力扣 Hot100 | 第八天】4.23(和为K的子数组)

1.和为K的子数组 1.1题目 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例一&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例二&#xff1a; 输入&…

短效动态代理IP可以做什么事情?

短效动态代理IP是一种在网络中广泛应用的工具&#xff0c;它具有使用期限短、切换频率高、灵活性强的特点。这种代理IP可以应用于多种场景&#xff0c;为网络活动提供便利和安全性保障。以下将详细探讨短效动态代理IP可以做的几件事情。 第一点&#xff0c;短效动态代理IP常被…

Flutter-自定义画板

效果 功能 支持绘制线、圆、矩形&#xff0c;支持拓展支持撤回上一步支持清空画板支持自定义画笔颜色&#xff0c;宽度 实现 定义绘制类型 /// 类型 enum ShapeType {//线line,//圆circle,//矩形rectangle,//拓展 }定义绘制抽象类 import dart:ui;/// 绘制抽象类 abstract…

网络编程-libuv介绍

官网 https://libuv.org/ 概要 libuv是一个强大的跨平台异步I/O库&#xff0c;主要用于构建高性能、可扩展的网络应用程序。它最初是为Node.js开发的&#xff0c;用于处理Node.js的异步I/O操作&#xff0c;但随着时间的推移&#xff0c;它也被广泛应用于其他系统&#xff0…

Linux--忘记root密码解决办法

Linux忘记密码解决的方法有两种&#xff1a; 方法一&#xff1a; 第一步&#xff1a;打开虚拟机时&#xff0c;疯狂按方向键&#xff0c;让该虚拟机不进入系统停留在开机界面&#xff0c;按方向键使光标停留在第一行&#xff0c;按字母E编辑它&#xff0c;如 按E后&#xff0…

【AIGC】-如何看待AIGC技术?

&#x1f525;博客主页&#xff1a;西瓜WiFi &#x1f3a5;系列专栏&#xff1a;《大语言模型》 很多非常有趣的模型&#xff0c;值得收藏&#xff0c;满足大家的收集癖&#xff01; 如果觉得有用&#xff0c;请三连&#x1f44d;⭐❤️&#xff0c;谢谢&#xff01; 长期不…

Hive服务详解

Hive服务 HiveServer2、Hive Metastore 服务服务共同构成了 Hive 生态系统中的核心功能&#xff0c;分别负责管理元数据和提供数据查询服务&#xff0c;为用户提供了一个方便、高效的方式来访问和操作存储在 Hive 中的数据。 1. Hive 查询服务&#xff08;HiveServer2&#xf…

unity学习(89)——unity塞满c盘!--删除editor下的log文件

卸了一个视频后强制续命打开详细信息&#xff1a; 这个再往下找也是没用的&#xff01; 显示隐藏文件夹后&#xff01;执行如下操作&#xff01; 30个g&#xff01; 其中unity占23g editer占了21g 删除C:\Users\王栋林\AppData\Local\Unity\Editor下的log文件 恢复到之前的水…

SpanBert学习

SpanBERT: Improving Pre-training by Representing and Predicting Spans 核心点 提出了更好的 Span Mask 方案&#xff0c;也再次展示了随机遮盖连续一段字要比随机遮盖掉分散字好&#xff1b;通过加入 Span Boundary Objective (SBO) 训练目标&#xff0c;增强了 BERT 的性…

C++中`Stream-based I/O`是`RAII`机制的

C中Stream-based I/O都是RAII机制的&#xff0c;文件流可以不手动close。 Do I need to manually close an ifstream? https://en.cppreference.com/w/cpp/io Refenence https://github.com/cyrusbehr/tensorrt-cpp-api/issues/55

网络安全主题纪录片

网络安全主题纪录片 文章目录 网络安全主题纪录片第四公民黑客帝国系列龙纹身女孩碟中谍系列虎胆龙威4匿名者终结者2&#xff1a;审判日东方快车谋杀案黑客国家公敌我是谁&#xff1a;没有绝对安全的系统黑客军团速度与激情系列十亿美元大劫案勒索软件的背后黑客的恐惧为什么网…

Linux 终端中的目录切换

目录 ⛳️推荐 前言 理解 Linux 中的路径 利用 cd 命令变更目录 故障解决 文件或目录不存在 非目录错误 特殊目录符号 测试你的知识 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击…

面包屑新玩法,ReactRouter+Ant Design实现动态渲染

在Ant Design中,可以通过Breadcrumb组件结合react-router库实现动态生成面包屑导航。具体步骤如下: 定义路由配置数据结构 我们需要在路由配置中添加额外的面包屑相关信息,例如面包屑标题、icon等。例如: const routes [{path: /,breadcrumbName: 首页},{path: /users,brea…

华为数通HCIA ——企业网络架构以及产品线

一.学习目标&#xff1a;精讲网络技术&#xff0c;可以独立搭建和维护中小企业网络&#xff01; 模拟器&#xff08;华为方向请安装ENSP&#xff0c;Ensp-Lite已有安装包&#xff0c;号称功能更加完善-这意味着要耗费更多的系统资源但是仅对华为内部伙伴申请后方可使用&#x…

Java技术学习|消息队列|初级RabbitMQ

学习材料声明 黑马RabbitMQ快速入门教程&#xff0c;快速掌握rabbitmq、springAMQP消息中间件 是非常初级的学习&#xff0c;听说后续的高级课程会涉及到微服务之类的&#xff0c;所以等学完微服务再回来学。还有redis的高级部分也涉及了微服务&#xff0c;所以也都暂时停止学…

【行为型模式】中介者模式

一、中介者模式概述 中介者模式定义&#xff1a;用一个中介对象来封装一系列的对象交互&#xff0c;中介者使各对象不需要显式地相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式。(对象行为型模式) 中介者模式…

autodl私有云使用方法(成员端使用)

此时找管理员添加进团队&#xff0c;https://private.autodl.com/访问&#xff0c;登录账号。可以看到容器实例。 点击创建实例&#xff0c;根据所需创建。版本号不可以超过最高的CUDA支持&#xff0c;可以自己拉取镜像。 此处需要注意数据盘使用量&#xff0c;密切关注。存取传…

web前端学习笔记2

2. 网页穿上美丽外衣 2.1 什么是CSS CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。 CSS样式包括对字体、颜色、边距、高度、宽度、背景图片、网页定位…

MySQL数据库精讲001——概述

MySQL数据库精讲001——概述 文章目录 MySQL数据库精讲001——概述1.1 安装1.1.1 版本1.1.2 安装一、下载二、解压三、配置1. 添加环境变量2. 初始化MySQL3. 注册MySQL服务4. 启动MySQL服务5. 修改默认账户密码 四、登录MySQL五、卸载MySQL 1.1.3 连接1.1.4 企业使用方式(了解)…