一段让人瑟瑟发抖的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名称 ...
随机推荐
- 第2课第7节_Java面向对象编程_内部类_P【学习笔记】
摘要:韦东山android视频学习笔记 1.什么是内部类:在类的内部定义一个类,内部类可以访问类的私有属性 class Outer{ ; class Inner{ public void print ...
- coredump之栈溢出
1.栈溢出引发的core往往出现出现在递归调用中. gdb时看到的特征是: 栈缺失,当前栈地址不可读. 根据栈是逆向生长的特点(栈逆向生长,所以很容易出现类似数组溢出覆盖率函数返回地址,导致函数退出地 ...
- js写评价的星星
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/ouqi_qiou/article/det ...
- [转]Vue-Devtools安装配置教程(献给伸手党)
原文地址:https://blog.csdn.net/weixin_38654336/article/details/80790698 可以先看视频教程:链接 最简便的方法是用FQ来通过google应 ...
- 命令mark
for i in `sudo /usr/local/sbin/fping -g 10.181.37.0/26 -p 10 -r 1 | grep alive | awk '{print $1 }'`; ...
- git初次登陆使用
一. 安装git 二. 在当前项目根目录点击鼠标右键,出来下图: 点击进入git命令行界面. 三.初始化项目 git init 四. 添加所有文件到项目中 git add . 五. 尝试提交所有文件 ...
- spring boot 配置虚拟目录
如上图,关键地方有两个: 1.下方的 web.upload-path (配置本地文件路径) 2.上方一串配置,具体代码如下: profiles: include: paperIdentify acti ...
- 简易商城 [ html + css ] 练习
1. 前言 通过使用 HTML + CSS 编写一个简易商城首页. 如图: 2. 布局思路 通过页面分析,大致可以决定页面的布局分为 5 大板块. 接下来,可以先定义页面的布局: <!DOCTY ...
- aspose.slides for java去除水印
前一段时间使用aspose.slides for java,处理了下才去除的水印,但是时间一久就忘记了,重新整理了下 下载aspose-slides-19.3-jdk16.jar,重命名为aspose ...
- kali 扫描之burp Suite学习笔记1
1 安装 2 burs功能图解 3 工具栏详解 4 实战 (1) 网络配置 一台kali 一台msf 网络采用nat nat网络设置方法: 查看路由 配置文件 (2) 代理设置 bur代理设置 浏览器 ...