SAP 配置表记录创建人/创建日期/创建时间/更改人/更改日期/更改时间
在实际开发需求中,为了使客制功能具有灵活的可配置性,通常采用开发功能+配置表的形式处理。有些客制的配置功能需要追溯到谁在什么时候增加了什么配置,或者谁在什么时候更改了什么位置,配置表的Log功能就显得很有必要了。以下过程说明SAP在配置表中如何实现配置表的Log功能。
说明:本文中的截图皆为作者本人编写和制作,如果转载或引用请务必通知作者本人!!!
(1)建立配置表
建立配置表,在配置表中增加建立者、建立日期、建立时间、更改者、更改日期、更改时间:

(2)维护表维护生成器:
在菜单栏:实用程序->表维护生成器:

进入表维护生成器:

(3)维护表生成器维护界面
双击画面编号,进入画面的程序代码页面:

在PBO中用代码实现将Log的字段隐藏(这里的隐藏是指,在对配置表做配置时会看不到这些字段):
PBO模块:MODULE MODIFY_ELEMENT_14 .
实现代码:
MODULE MODIFY_ELEMENT_14 OUTPUT.
LOOP AT <VIM_TCTRL>-COLS INTO VIM_TC_COLS.
IF VIM_TC_COLS-SCREEN-NAME = 'YFG_C_PM_AUTOSMS-ERNAM' OR
VIM_TC_COLS-SCREEN-NAME = 'YFG_C_PM_AUTOSMS-ERDAT' OR
VIM_TC_COLS-SCREEN-NAME = 'YFG_C_PM_AUTOSMS-ERZET' OR
VIM_TC_COLS-SCREEN-NAME = 'YFG_C_PM_AUTOSMS-AENAM' OR
VIM_TC_COLS-SCREEN-NAME = 'YFG_C_PM_AUTOSMS-AEDAT' OR
VIM_TC_COLS-SCREEN-NAME = 'YFG_C_PM_AUTOSMS-AEZET' .
VIM_TC_COLS-INVISIBLE = .
MODIFY <VIM_TCTRL>-COLS FROM VIM_TC_COLS .
ENDIF.
ENDLOOP.
ENDMODULE.
(4)实现在配置时新增或更改时自动更新记录
回到表维护生成器界面,增加表维护事件,在菜单:环境->修改->事件:

点击“新输入项”,建立维护事项。注意,维护事项的类型选择,这里选择01-在存储资料前和05-建立新输入项,如:

示例05-在新建输入项时保存记录:YFG_PM_AUTOSMS_NEW_ENTRY
*&--------------------------------------------------------------- *& FORM YFG_PM_AUTOSMS_NEW_ENTRY *& 自動更新YFG_C_PM_AUTOSMS 的建立日期 *&--------------------------------------------------------------- FORM YFG_PM_AUTOSMS_NEW_ENTRY. YFG_C_PM_AUTOSMS-ERNAM = SY-UNAME . YFG_C_PM_AUTOSMS-ERDAT = SY-DATUM . YFG_C_PM_AUTOSMS-ERZET = SY-UZEIT . ENDFORM.
示例01-在更改时保存记录:YFG_PM_AUTOSMS_MODIFY_SAVE
*&---------------------------------------------------------------
*& FORM YFG_PM_AUTOSMS_MODIFY_SAVE
*& 自動更新YFG_C_PM_AUTOSMS的更新日期
*&---------------------------------------------------------------
FORM YFG_PM_AUTOSMS_MODIFY_SAVE.
FIELD-SYMBOLS : <FS_FIELD> TYPE ANY .
LOOP AT TOTAL .
CHECK <ACTION> EQ AENDERN.
ASSIGN COMPONENT 'AENAM' OF STRUCTURE <VIM_TOTAL_STRUC> TO <FS_FIELD> .
.
<FS_FIELD> = SY-UNAME .
ENDIF.
ASSIGN COMPONENT 'AEDAT' OF STRUCTURE <VIM_TOTAL_STRUC> TO <FS_FIELD> .
.
<FS_FIELD> = SY-DATUM .
ENDIF.
ASSIGN COMPONENT 'AEZET' OF STRUCTURE <VIM_TOTAL_STRUC> TO <FS_FIELD> .
.
<FS_FIELD> = SY-UZEIT .
ENDIF.
READ TABLE EXTRACT WITH KEY <VIM_XTOTAL_KEY>.
.
EXTRACT = TOTAL .
MODIFY EXTRACT INDEX SY-TABIX.
ENDIF.
MODIFY TOTAL.
ENDLOOP.
ENDFORM.
实现效果:
配置界面:

表内容显示:

SAP 配置表记录创建人/创建日期/创建时间/更改人/更改日期/更改时间的更多相关文章
- toLocaleTimeString()方法在IE和谷歌浏览器上 根据本地时间格式,把 Date 对象的时间部分(不含日期)转换为“时间字符串”存在区别
这两天修改一个bug,发现一个问题: toLocaleTimeString()方法在IE和谷歌浏览器上 根据本地时间格式,把 Date 对象的时间部分(不含日期)转换为“时间字符串”存在区别.方法原 ...
- SAP 配置表根据输入的值带出描述
在SAP客制功能需求中,为了程式的灵活配置采用配置表的形成,使后期使用中不需要更改源代码实现功能的增加.在配置表的使用过程中,有时候会有这样的需求:在配置中输入或选择了编码,根据编码带出描述.以下详细 ...
- 廖雪峰Java7处理日期和时间-1概念-1日期和时间
1.日期 日期是指某一天,如2016-11-20,2018-1-1 2.时间有2种: 不带日期的时间:14:23:54 带日期的时间:2017-1-1 20:21:23,唯一确定某个时刻 3.时区 时 ...
- JS 获取当天所在月的第一天的日期,最后一天日期,所在周的每天的日期,时间,所在每月日期,时间的计算
/** * 获取当天所在月的最后一天日期,和下一个月的第一天日期 * 调用getMonthDay(d), d默认值为01,d为要设置成的day: */ const getMonthMaxDay = ( ...
- 自带日期时间 showDatePicker显示中文日期_Flutter时间控件显示中文
flutter showDatePicker showTimePicker显示中文日期 1.配置flutter_localizations依赖 找到pubspec.yaml配置flutter_loca ...
- CentOS 7 设置日期和时间
现代操作系统分为以下两种类型的时钟: 实时时钟(Real-Time Clock,RTC),通常称为硬件时钟(一般是系统主板上的集成电路),它完全独立于操作系统的当前状态,即使在计算机关闭时也能运行. ...
- MySQL数据类型--日期和时间类型
MySQL中的多种时间和格式数据类型 日期和时间类型是为了方便在数据库中存储日期和时间而设计的.MySQL中有多种表示日期和时间的数据类型. 其中,year类型表示时间,date类型表示日期,time ...
- JAVA面试题解惑系列(七)——使用日期和时间
日期和时间,不仅在考试面试题.处理的问题.似乎没有哪个项目能够避开它们.我们经常在处理用户的出生年月日.注冊日期,订单的创建时间等属性时用到,由此可见其重要性. java.util.Date类 提 ...
- Java8新特性--日期和时间API
如何正确处理时间 现实生活的世界里,时间是不断向前的,如果向前追溯时间的起点,可能是宇宙出生时,又或是是宇宙出现之前, 但肯定是我们目前无法找到的,我们不知道现在距离时间原点的精确距离.所以我们要表示 ...
随机推荐
- Android进阶——多线程系列之Semaphore、CyclicBarrier、CountDownLatch
今天向大家介绍的是多线程开发中的一些辅助类,他们的作用无非就是帮助我们让多个线程按照我们想要的执行顺序来执行.如果我们按照文字来理解Semaphore.CyclicBarrier.CountDownL ...
- shell字典使用
1.shell界面或脚本中 pcode=(["10"]="BeiJing" ["22"]="TianJin") echo ...
- 合并两个word文档,保持样式不变
一.需求说明 例如将封面插入到word正文上方 二.导入依赖 <dependency> <groupId>org.apache.poi</groupId> < ...
- Arduino学习——Arduino main 函数
在Arduino IDE的安装目录下可以找到main.cpp这个代码模板文件,main函数就位于此. 文件位置:{Arduino安装目录}\hardware\arduino\avr\cores\ard ...
- Python 时间 time
import time print time.strftime("%Y-%m-%d") import datetime print datetime.datetime.now() ...
- C语言中getopt()和getopt_long()函数的用法
一.参考文章 1.C语言中getopt()和getopt_long()函数的用法 2.linux 中解析命令行参数 (getopt_long用法) 二.调试经验
- Django2.0——请求与响应(下)
上篇讲完了请求,这篇接着讲下响应,django响应类型大致有以下几种 HttpResponse:返回简单的字符串 render:渲染模板 redirect:重定向 JsonResponse:返回jso ...
- 手机H5,用Jquery使图片自动填满两栏式排版
遇上这样的排版,手机的解象度都不同,假如只用CSS3根本就做不出这样的排版:因此要用Jquery. 1. HTML <div class="postImgCenterCrop" ...
- 计蒜客 密码锁(BFS)
https://www.jisuanke.com/course/1797/121114 Description 现在一个紧急的任务是打开一个密码锁.密码由四位数字组成,每个数字从 1 到 9 进行编号 ...
- 京东云数据库 RDS助力企业便捷运维
iPhone6发布那年,京东在国贸等商圈送货最快速度数分钟,包括从下单到送达.这是一个极端的富含营销因素例子.即便如此,常态来看,隔天到货的这种业务模式,也是基于同样的支撑:营销业务.物流业务,大数据 ...