一段让人瑟瑟发抖的ABAP代码
昨天11月1日是万圣节,Jerry在继续忙着调研SAP Commerce Cloud里的产品主数据管理。晚上回家到SAP国外的社交媒体上一看,好热闹啊。国外的SAP从业者们纷纷以各种各样的方式庆祝万圣节。


西方的万圣节也是一个历史悠久的节日了:早在两千多年前,欧洲基督教会就把每年的11月1日定为“天下圣徒之日”(All Hallows' Day)。这一天被看作是夏天正式结束之日,也就是新年伊始,严酷的冬天开始的第一天。当时的人们相信,故人的亡灵会在这一天回到故居地,在活人身上找寻生灵,借此再生。而活人则惧怕死人的魂灵来夺生,于是人们在这一天熄掉炉火和烛光,让死人的魂灵无法找到活人,同时又把自己打扮成妖魔鬼怪把死人的魂灵吓走。

所以,国外的ABAP开发者们在这天也不甘寂寞,一位老哥提出了用“Scare with ABAP”的主题来搞事情,为万圣节增添一些节日气氛。

这一提议得到了大家的纷纷响应。
对于这种ABAP字符串模板和字符串内嵌函数的使用,肯定不能够让ABAP老司机们瑟瑟发抖。


这种程度的ABAP代码显然也不足以让ABAP老司机们受到惊吓:

那么看看Jerry这段ABAP代码?没有任何语法错误,能够成功激活,成功执行。

源代码如下:
REPORT 汪子熙的Report,吓死人了!!!!!.
INCLUDE NOT.
IF NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT
NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT !NOT OR NOT
NOT NOT !NOT OR NOT NOT NOT NOT NOT=>NOT( NOT ) AND
NOT NOT NOT !NOT OR NOT NOT !NOT AND NOT !NOT ... NOT.
读了这段ABAP代码之后,大家瑟瑟发抖了吗?

为了证明上图没有语法错误的截图不是Jerry PS出来的,让我们在ABAP调试器里单步执行一下:

这个古怪的ABAP程序的关键之处在于第3行自行开发的名为NOT的ABAP include. 里面要写怎样的ABAP代码,才能让整个报表通过ABAP语法检查并顺利执行完毕呢?
想知道include NOT的奥秘么?关注Jerry的公众号“汪子熙”获得答案。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":

一段让人瑟瑟发抖的ABAP代码的更多相关文章
- 同时开左右两个SAPGUI编辑器显示同一段ABAP代码
很多文本编辑器都支持同时开左右两个窗口显示同一段代码,使用场景可能是比较同一段代码的不同版本差异,或者是ABAP里,同一段代码在Netweaver不同版本里的实现差异,比如版本为SP1的系统A和版本为 ...
- 写具有良好风格的ABAP代码
编程风格是一个经久不衰的话题,大家所公认的事实是:一个良好的编程风格会带来很多的好处.而对于“良好”的标准,则众说纷纭,莫衷一是.编程风格在ABAP程序中当然也有着重要的意义,因为很少看到专门针对AB ...
- 如何使用事务码SMICM分析ABAP代码发起的HTTP请求的错误ICM_HTTP_SSL_PEER_CERT_UNTRUSTED
当我用CL_HTTP_CLIENT往一个外网的url发请求时,遇到错误:ICM_HTTP_SSL_PEER_CERT_UNTRUSTED 错误是从这段ABAP代码里抛出来的: CALL METHOD ...
- 9段高效率开发PHP程序的代码
php是世界上最好的语言 在php网站开发中,大家都希望能够快速的进行程序开发,如果有能直接使用的代码片段,提高开发效率,那将是起飞的感觉.今天由杭州php工程师送出福利来了,以下9段高效率开发PHP ...
- 收藏的一段关于java大数运算的代码
收藏的一段关于java大数运算的代码: package study_02.number; import java.math.BigDecimal; import java.math.BigIntege ...
- 使用Visual Studio Code编写和激活ABAP代码 (上)
猪年春节后的第一篇,Jerry祝各位猪年大吉! 2019年的六分之一马上就快过完了,不知道大家在新的一年是否给自己定了新的小目标呢?这里Jerry先预祝大家到2019年年底的时候,在年初制定的小目标都 ...
- 用ABAP代码读取S/4HANA生产订单工序明细
在S/4HANA事务码CO03显示的Production Order里,我希望用ABAP代码显示出该订单的operation(工序)ID,描述和状态Status,如下图所示: 很简单的几行ABAP代码 ...
- 如何用ABAP代码读取CDS view association的数据
我有如下一个CDS view, 这个view的数据来自CRMD_ORDERADM_H, 定义了一个名称为_statushelp的association, 指向了另一个CDS view Z_C_Stat ...
- 如何查找Authorization object在哪些ABAP代码里使用到
使用事务码SUIM: 双击where-Used List->Authorization Objects->In Programs: 输入要查找的Authorization Object名称 ...
随机推荐
- Python执行时间的计算方法
# CPU的执行时间start = time.clock()#end = time.clock()print(end-start) # 程序执行时间:start = datetime.datetime ...
- Oracle系列一 SQL语句基本概念和学习准备
DML: Data Manipulation Language 数据操纵语言DDL: Data Definition Language 数据定义语言DCL: Data Control Langua ...
- Python3基础 函数 函数名作为参数传给函数
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- python爬虫2
学习任务 获取去哪儿网的出发地列表 获取旅游景点列表 获取景点产品列表 存储数据 1 获取出发地站点 (1)访问touch.qunar.com (2)按F12,单击自由行,在自由行页面点击搜索框 (3 ...
- C# 与 .NET Framework 对应关系
C#各版本新增加功能(系列文章) 本系列文章主要整理并介绍 C# 各版本的新增功能. C# 8.0 C#8.0 于 2019年4月 随 .NET Framework 4.8 与 Visual St ...
- 从一个案例窥探ORACLE的PASSWORD_VERSIONS
1.环境说明 ORACLE 客户端版本 11.2.0.1 ORACLE 服务端版本 12.2.0.1 2.异常现象 客户端(下文也称为Cp)访问服务端(Sp),报了一个错误: Figure 1 以错误 ...
- Python 推导式详解
各种推导式详解 推导式的套路 之前我们已经学习了最简单的列表推导式和生成器表达式.但是除此之外,其实还有字典推导式.集合推导式等等. 下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. ...
- Centos7修改profile错误的解救方案
在改profile的时候,改出问题了,除了cd以外的命令基本都不能用了.使用root用户执行: # export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11 ...
- word 转化为PDF 目录没了
https://jingyan.baidu.com/article/ca00d56c5d5f8de99febcf54.html 点文件-->导出-->创建PDF-->选项--> ...
- Apache Kafka Connect - 2019完整指南
今天,我们将讨论Apache Kafka Connect.此Kafka Connect文章包含有关Kafka Connector类型的信息,Kafka Connect的功能和限制.此外,我们将了解Ka ...