昨天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代码相关推荐

  1. 同时开左右两个SAPGUI编辑器显示同一段ABAP代码

    很多文本编辑器都支持同时开左右两个窗口显示同一段代码,使用场景可能是比较同一段代码的不同版本差异,或者是ABAP里,同一段代码在Netweaver不同版本里的实现差异,比如版本为SP1的系统A和版本为 ...

  2. 懒惰的人有福了——VS代码段编辑器SnippetEditor 可对vs所有代码段进行编辑和创建包括C#\J#\VB.NET等...

    这个版本不仅支持VS2005.2008而且还支持VS2010的代码段编辑 启动画面虽然是写着VB 代码段 但是仍旧支持C#与其它语言的代码段包括J#\VB.NET\xml\html等的创建.编辑修改等 ...

  3. 在Visual Studio Code里编写ABAP代码

    今天在公司在线安装SAPGUI,一上午的时间都没把安装包下载完,有点怀念07年刚入坑ABAP时那会儿身材苗条的SAPGUI. 最近Visual Studio Code里和ABAP相关的扩展越来越多了, ...

  4. 如何使用事务码SMICM分析ABAP代码发起的HTTP请求的错误

    当我用CL_HTTP_CLIENT往一个外网的url发请求时,遇到错误:ICM_HTTP_SSL_PEER_CERT_UNTRUSTED 错误是从这段ABAP代码里抛出来的: CALL METHOD ...

  5. 中动态路径加载_GOT段在linux系统中实现代码动态加载的作用和其他段的说明

    上一节我们看到,当程序想调用系统函数时,在编译阶段无法确认被调用函数所在的虚拟地址.因此必须有机制让程序在运行过程中,在调用系统API的时候有办法去确定所调用的系统函数对应的入口地址,这就是代码运行时 ...

  6. 如何用ABAP代码读取CDS view association的数据

    我有如下一个CDS view, 这个view的数据来自CRMD_ORDERADM_H, 定义了一个名称为_statushelp的association, 指向了另一个CDS view Z_C_Stat ...

  7. 如何查找Authorization object在哪些ABAP代码里使用到

    2019独角兽企业重金招聘Python工程师标准>>> 使用事务码SUIM: 双击where-Used List->Authorization Objects->In P ...

  8. 用ABAP代码读取S/4HANA生产订单工序明细

    在S/4HANA事务码CO03显示的Production Order里,我希望用ABAP代码显示出该订单的operation(工序)ID,描述和状态Status,如下图所示: 很简单的几行ABAP代码 ...

  9. 百度搜索引擎提供了一段嵌入到页面中的代码

    百度搜索引擎提供了一段嵌入到页面中的代码 <form action="http://www.baidu.com/baidu" target="_blank" ...

最新文章

  1. atitit. 浏览器插件 控件 applet 的部署,签名总结 浏览器 插件 控件 的签名安全机制o9o...
  2. Bilateral Filtering(双边滤波) for SSAO
  3. 快夸我!我把SpringBoot项目从18.18M瘦身到0.18M!
  4. 如何让json_encode不转义斜杠
  5. Java Web项目,Android和微信小程序的初始页面配置
  6. 堆栈溢出从入门到提高
  7. layui tab html,layui竖版tab选项卡
  8. RIP路由协议基本配置
  9. Key为数字的Json数据标准化成标准Json格式
  10. C#编写NotifyIcon
  11. 测试用例(测试大纲法)
  12. 使用导入 Excel 的方式批量修改文件名称及文件扩展名
  13. openCV 简单实现身高测量(二)
  14. Openwrt下电脑已经获得IPv6但网络连接提示“无Internet访问权限”解决方法
  15. org.apache.ibatis.binding.BindingException: Mapper method 'com.hahah.atcrowdfunding.manager.dao.Cert
  16. python微信定时发消息_python实现给微信指定好友定时发送消息
  17. Dell 730xd 加外部硬件 风扇变快
  18. Property description must be an object
  19. System services not available to Activities before onCreate()错误解决方法
  20. 社区java视频大宝库_Java大牛手把手带你实现社区论坛项目实战课程

热门文章

  1. 【转】 嵌入式C语言编程中Inline函数的应用
  2. 队列同步器 AbstractQueuedSynchronizer
  3. iphone自定义铃声
  4. 【网络配置】双网卡访问
  5. Hibernate 拦截器实例
  6. D3D中的粒子系统(1)
  7. src-d/gogit 使用
  8. 关于ElasticSearch性能调优几件必须知道的事
  9. 第三次学JAVA再学不好就吃翔(part97)--抛出异常
  10. python从数分到数编(part1)--基础