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文档,感谢那位大佬手把手写的文档我才能不至于摸石头过河

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值