ABAP 项目和WBS屏幕增强

前言

因业务需要,在SAP预留的项目和WBS屏幕增强出口中做增强

1 表结构增强

首先转到SE11,进入项目定义表PROJ,找到预留的增强结构CI_PROJ

有些主表中会预留一些增强结构,以CI_作为开头,如果要做表字段增强可以提前查看一下有没有这个结构,需要注意的是有些CI_开头的表字段是针对多个表的,如果不做确认使用时有可能造成系统dump,做字段增强之前需要确认该增强结构是否只针对该表,如PROJ的增强结构CI_PROJ就是为该表预留的,可以直接使用

在这里插入图片描述
找到CI_PROJ结构之后双击新建即可,在其中填入增强的字段
在这里插入图片描述
在给增强字段创建数据元素时,需要勾选上更改文档,这样在系统日志表cdhdr和cdpos中才会有修改记录
在这里插入图片描述
创建完成增强的结构之后,需要激活时避开用户使用阶段,如果需要同步到生产机尽量选择中午或者半夜的时候,因为在激活期间使用PROJ相关的程序运行会dump掉,激活完成后即可正常使用
在这里插入图片描述

2 CMOD创建

转到事务码CMOD,创建项目
在这里插入图片描述
在项目->增强分配中填入CNEX0006,这是PS预留的CMOD项目屏幕增强点
在这里插入图片描述
双击依次创建功能出口,屏幕出口
在这里插入图片描述

3 出口增强

双击出口EXIT_SAPLCJWB_002
在这里插入图片描述
点击显示对象列表,在se80的对象列表中找到top包含文件ZXCN1TOP
引入表cnci_proj和cnci_prps,再新建全局变量gv_display用于接收屏幕的显示/编辑状态
在这里插入图片描述

回到出口EXIT_SAPLCJWB_002
再双击INCLUDE程序以创建,双击include程序的时候会弹出警告,回车即可创建
在这里插入图片描述
此处是进入屏幕流PBO之前调用的function,通过cnci_proj_temp给proj表中ci_proj赋初始值
在这里插入图片描述
双击出口EXIT_SAPLCJWB_002,进入屏幕流PAI之后调用的function,通过cnci_proj_temp给proj表中ci_proj回写值
在这里插入图片描述

4 出口增强

转到增强组件,选择屏幕0600
在这里插入图片描述
选择布局
在这里插入图片描述
点击红色框框的按钮
在这里插入图片描述
输入CI_PROJ(即增强结构),回车之后将需要前台显示的字段手动勾选上,随后点击确定即可在屏幕上生成相应的字段,达到屏幕字段增强的效果
在这里插入图片描述
最后激活屏幕即可
在这里插入图片描述
回到屏幕逻辑流部分
在这里插入图片描述
根据需要激活相应的模块,可以在PBO控制屏幕字段的输入和展示,比如编辑模式时需要将字段放开,而显示模式则要禁止用户输入
正常只用下面的代码就可以按前台的显示/编辑来控制输入了,如果有特殊控制逻辑就自己把握了
在这里插入图片描述
在PAI可以加一些检查前台输入的校验逻辑
在这里插入图片描述

5 后台BADI增强

前台在PAI做校验的时候不是很稳妥,有些增强字段是通过bapi传值创建的,就不会走前台的校验逻辑,最稳妥的是在SAP调用创建项目bapi的时候加校验规则
通过查资料找到了在SE19的实施点PROJECTDEF_UPDATE,SAP在前后台创建的时候都会调用该增强实施,所以最好在此处做校验
转到SE19,典型业务加载项
在这里插入图片描述
输入增强实施名称
在这里插入图片描述
转到AT_SAVE的方法,此处就可以做校验
在这里插入图片描述
校验逻辑按项目要求封装到函数里面去了,实际情况可以自己把握
在这里插入图片描述
通过DEBUG的方式看了下这个增强实施外面的源码中断方式,发现是通过message 抛异常实现的,这里就抄了下源码的中断方式
在这里插入图片描述

7 WBS增强点

WBS的增强跟项目增强几乎一模一样
我把增强的几个点截图一下
PRPS增强点:
在这里插入图片描述

CMOD增强点:
CNEX0007
在这里插入图片描述
在这里插入图片描述
SE19增强点:
WORKBREAKDOWN_UPDATE
在这里插入图片描述
屏幕增强有个大佬写的很长很长的word文档,感谢那位大佬手把手写的文档我才能不至于摸石头过河

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM 命令行监控及诊断工具

面试题 你使用过Java虚拟机性能监控和故障处理工具吗?(美图) 怎么打出线程栈信息。(字节跳动) JVM诊断调优工具用过哪些? (京东) 怎么获取 Java 程序使用的内存?堆使用…

如何将 MySQL 数据库转换为 SQL Server

本文解释了为什么组织希望将其 MySQL 数据库转换为 Microsoft SQL 数据库。本文接着详细介绍了尝试转换之前需要记住的事项以及所涉及的方法。专业的数据库转换器工具将帮助您快速将 MySQL 数据库记录转换为 MS SQL Server。 在继续之前,我们先讨论一下 MySQL 到 M…

使用Python实现轮盘赌选择法Roulette Wheel Selection Method in Python

一、引言 最近在手写遗传算法,想尝试解决一些优化问题。然而,在编码的过程中,自己发现了很多都不懂的问题。比如,交叉的操作,有单点交叉、两点交叉和多点交叉,具体选哪一种会更好呢?未知。还有交…

面试题解析】static a,一百个线程,每个线程+1,最后a是多少?

嗨,各位小米控和技术达人们!今天小米要和大家分享一个有趣的面试题,相信大家在技术面试中都曾遇到过,那就是“static a,有一百个线程,每个线程1,最后a是多少?”这个问题看似简单&…

【Linux】进程见通信之匿名管道pipe

1.匿名管道的特点 以下管道的统称仅代表匿名管道。 管道是一个只能单向通信的通信信道。为了实现进程间通信.管道是面向字节流的。仅限于父子通信或者具有血缘关系的进程进行进程见通信。管道自带同步机制,原子性写入。管道的生命周期是随进程的。 2.匿名管道通信…

国产化软件突围!怿星科技eStation产品荣获2023铃轩奖“前瞻优秀奖”

11月11日,2023中国汽车供应链峰会暨第八届铃轩奖颁奖典礼在江苏省昆山市举行。怿星科技凭借eStation产品,荣获2023铃轩奖“前瞻智能座舱类优秀奖”,怿星CEO潘凯受邀出席铃轩奖晚会并代表领奖。 2023铃轩奖“前瞻智能座舱类优秀奖” 铃轩奖&a…

电脑知识:关于电脑使用的误区

本文是向大家介绍关于电脑使用的误区,电脑是较为贵重的一个电子产品,熟练掌握基本的电脑操作技巧应该是每一个人必备技能。在使用技巧之外,有一些误区是需要我们知道并避免的。 1、直接按开关按钮关机或直接拔电源 很多电脑小白关电脑都是直…

骨传导原理是什么?使用骨传导耳机的危害有哪些?

骨传导耳机顾名思义:就是利用骨传导技术传递声音的耳机,骨传导的传声方式是通过颅骨震动来进行传导,将声音传到颅骨,在通过颅骨直接传导到内耳,因此不需要将声音通过耳膜来进行传递,即使用双手捂住耳朵也可…

JavaScript if...else语句

if结构先判断一个表达式的布尔值&#xff0c;然后根据布尔值的真伪&#xff0c;执行不同的语句。所谓布尔值&#xff0c;指的是JavaScript的两个特殊值&#xff0c;true表示真&#xff0c;false表示伪。 <!DOCTYPE html> <html> <head><meta charset"…

【VRTK】【VR开发】【Unity】11-甩臂移动

课程配套学习资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 除了一般的移动能力,VRTK还提供更为沉浸的甩臂移动。 【设定摇杆输入中间件】 在Hierarchy中展开Button Input Actions,其下生成两个新的空子对象…

VSCode SSH登录服务器 提示XHR failed

设置->搜索“代理” 把图中的√去掉 重启 即可

直流负载箱的技术发展趋势和创新有哪些?

直流负载箱广泛应用于电子、通信、航空航天等领域&#xff0c;随着科技的不断发展&#xff0c;直流负载箱也在不断创新和改进&#xff0c;直流负载箱在负载电流和电压的测量方面要求高精度和高稳定性。未来的发展趋势是提高负载箱的测量精度和稳定性&#xff0c;以满足更高要求…