ABAP事件的简单用法
1.1、事件: 用于捕获某类对象状态的改变来触发事件的方法,并进行处理
1.2、定义:可以在类或接口中进行声明
EVENTS|CLASS-EVENTS evt
EXPORTING … VALUE(p1) TYPE type|LIKE f [OPTIONAL|DEFAULT g] ...
实例事件中包含一个隐含参数SENDER,该参数的类型为触发时间的类或接口对象引用
1.3、触发:一个实例事件可以被类中的任意方法触发,静态时间则可以被静态方法触发 RAISE EVENT evt EXPORTING p1 = f1 … pn = fn
1。4、事件处理:事件需要通过触发其声明代码中所定义的方法才能处理相关事务。
任何类都可以调用其他类中所定义的事件,或调用自身所定义的事件
METHODS|CLASS-METHODS meth FOR EVENT evt OF cif IMPORTING …ei…
1.5、为相关事件注册方法 SET HANDLER … hi… [FOR] …
1.6、事件类型分为4种 定义在类中的:实例事件,静态事件 定义在接口中的:实例事件,静态事件 对于实例事件,
注册语句必须使用FOR指定注册对象 … FOR ref
. … FOR ALL INSTANCES(注册所有可以触发该事件的实例,包括尚未被创建的实例)
注册静态事件,不需加FOR后缀,自动应用于整个类
1.7、例子:设置一个数字从1循环到50,当它是5的倍数时,触发事件输出一段话。
*定义事件 如果一个数是5的倍数,触发事件
CLASS a DEFINITION.
PUBLIC SECTION.
CLASS-DATA num TYPE i.
METHODS add.
EVENTS mod5 EXPORTING VALUE(p_num) TYPE i.
ENDCLASS. CLASS a IMPLEMENTATION.
METHOD add.
num = num + .
IF num MOD = .
RAISE EVENT mod5 EXPORTING p_num = num.
ENDIF.
ENDMETHOD.
ENDCLASS. *定义事件处理类
CLASS mod5_handle DEFINITION.
PUBLIC SECTION.
METHODS write_num FOR EVENT mod5 OF a IMPORTING p_num.
ENDCLASS. CLASS mod5_handle IMPLEMENTATION.
METHOD write_num.
WRITE: / 'this is event menthod,p_num = ',p_num.
ENDMETHOD.
ENDCLASS. *声明类
DATA: a TYPE REF TO a,
mod5 TYPE REF TO mod5_handle,
a1 TYPE REF TO a,
a2 TYPE REF TO a. START-OF-SELECTION. CREATE OBJECT a.
CREATE OBJECT a1.
CREATE OBJECT a2.
CREATE OBJECT mod5. *注册事件
SET HANDLER mod5->write_num FOR a. DO TIMES.
CALL METHOD a->add.
ENDDO. WRITE / 'a is stop.'. DO TIMES.
CALL METHOD a1->add.
ENDDO. WRITE / 'a1 is stop.'. *注册事件为所有实例(包含没有创建的实例)
SET HANDLER mod5->write_num FOR ALL INSTANCES. DO TIMES.
CALL METHOD a1->add.
ENDDO. WRITE / 'a1 is stop.'. DO TIMES.
CALL METHOD a2->add.
ENDDO. WRITE / 'a2 is stop.'.
ABAP事件的简单用法的更多相关文章
- JS的简单用法
JS的简单用法 参考:http://www.w3school.com.cn/js/js_switch.asp JavaScript 是网络的脚本语言 JavaScript 是可插入 HTML 页面的编 ...
- slf4j的简单用法以及与log4j的区别
之前在项目中用的日志记录器都是log4j的日志记录器,可是到了新公司发现都是slf4j,于是想着研究一下slf4j的用法. 注意:每次引入Logger的时候注意引入的jar包,因为有Logger的包太 ...
- Android MultiType第三方库的基本使用和案例+DiffUtil的简单用法
1.MultiType简单介绍 1.1.MultiType用于比较复杂的页面. 如下图,今日头条用到了MultiType处理各种复杂的页面. 这种还是比较简单的类型.因为一个页面也就这种类型. ...
- Opentelemetry SDK的简单用法
Opentelemetry SDK的简单用法 概述 Opentelemetry trace的简单架构图如下,客户端和服务端都需要启动一个traceProvider,主要用于将trace数据传输到reg ...
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
- Oracle的substr函数简单用法
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 subst ...
随机推荐
- Python3解leetcode Maximum Subarray
问题描述: Given an integer array nums, find the contiguous subarray (containing at least one number) whi ...
- emacs for OCaml
(require 'cl) (require 'package) (add-to-list 'package-archives '("melpa" . "https:// ...
- (转)apache2.2.x+tomcat7.0.x集群+…
apache http server下载地址 http://httpd.apache.org/download.cgi#apache22 这里下载的是httpd-2.2.21-win32-x86-op ...
- 6、scala面向对象-对象
一.对象 1.object object,相当于class的单个实例,通常在里面放一些静态的field或者method,第一次调用object的方法时,就会执行object的constructor, ...
- django根据不同app配置相应的log文件
django根据不同app配置相应的log文件 settings.py # django logging LOG_PATH = "/var/log/blog/" LOGGING = ...
- XXX.h:143: error: expected declaration specifiers or ‘...’ before ‘YYY’
出现上面头文件错误,原因是定义YYY的头和XXX.h互相包含了
- 使用军哥的lnmp配置虚拟主机,需要注意的是要配置hosts文件
#使用军哥的lnmp配置虚拟主机,需要注意的是要配置hosts文件(这一点官方没有讲到)具体方法:1.修改hosts文件sudo vim /etc/hosts 2.在hosts文件中新增一行(这里类似 ...
- Spring Boot实现学生信息增删改查
上一篇博客写了如何初始化一个简单的Spring Boot项目,这次详细记录一下如何连接数据库并实现增删改查基本操作. 我使用的是MySQL 5.5+Navicat,MySQL量级比较轻,当然微软的SQ ...
- C# 写 LeetCode easy #7 Reverse Integer
7.Reverse Integer Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 ...
- 关于c语言中的字符串问题
对字符数组,字符指针,字符串常量 在csdn上看到一篇关于这方面的帖子,有所收获. JohnTitor的专栏 1.以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写 & ...