千家信息网

ABAP Netweaver里的寄生式编程语言有哪些

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要讲解了"ABAP Netweaver里的寄生式编程语言有哪些",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"ABAP Netweaver里的
千家信息网最后更新 2026年11月01日ABAP Netweaver里的寄生式编程语言有哪些

这篇文章主要讲解了"ABAP Netweaver里的寄生式编程语言有哪些",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"ABAP Netweaver里的寄生式编程语言有哪些"吧!

JavaScript

在Netweaver里隐藏了这样一个包:SJAVASCRIPT,光看名字就知道它要干啥了。

Netweaver的C/C++内核实现了一个微型的JavaScript引擎,其接口通过ABAP类CL_JAVA_SCRIPT暴露,可以让ABAP开发人员在Netweaver里编写和执行JavaScript语言。

这个类于2000年2月创建,这个时间点Jerry还在读高中,囧。

如果您想使用Netweaver里这个JavaScript引擎操练操练ECMAScript 6.0规范里定义的那些新特性,比如Class关键字,异步操作和Async函数等,那Jerry觉得您应该是想多了,因为这个类已经明确标注为obsolete,因此SAP不建议使用在生产代码里,风险自担。

当然,执行包里的报表SJSEU,把一些教科书上的JavaScript代码粘贴进去玩玩,是没有任何问题的。比如下面这段用JavaScript递归实现的整数阶乘代码,

可以正常运行在ABAP Netweaver里:

在Jerry看来,不存在必须在ABAP Netweaver里执行JavaScript的场景。如果大家有基于JavaScript的应用需要和Netweaver里的ABAP应用集成,SAP推荐的做法是把这些JavaScript应用部署在SAP Cloud Platform上。

Ruby

把品质各异的红宝石镶嵌到头盔,铠甲,武器和盾牌上,能获得下表里定义的各种属性加成。

SAP Cloud for Customer的开发人员,想必在UI designer里都编写过Ruby代码:

带着这个好奇心,我打开包含了这段Ruby代码的UI视图,发现在编写完毕Ruby代码后,保存激活时,Netweaver后台会自动把这些Ruby代码转换成对应的JavaScript代码,最后浏览器执行的当然就是后者,即转换后的JavaScript代码。

也就是说,SAP Cloud for Customer的Netweaver系统里,存在一个微型的Ruby解析器。

因为C4C后台没有对客户和Partners开发,因此我无法像CL_JAVA_SCRIPT那样,贴出这个Ruby解析器的ABAP实现类的名称和代码,不过其原理和CL_JAVA_SCRIPT一样,都是使用ABAP的关键字SYSTEM-CALL,调用ABAP内核的Ruby接口。

ABSL - ABAP Script Language

Netweaver里的ABSL和前面介绍的两种精简版语言引擎JavaScript和Ruby有所区别--ABSL是一门DSL-Domain Specific Language(领域特定语言).

Wikipedia对领域特定语言的定义是"为了解决某一类任务而专门设计的计算机语言",Martin Fowler则认为,
"DSL通过在表达能力上做的妥协换取在某一领域内的高效"。

而ABSL,则是SAP为了确保C4C partners能够高效安全地在多租户云上开发自定义逻辑而设计出的一门寄生于ABAP Netweaver的领域特定语言。

我们在Cloud Application Studio里编写完ABSL,保存激活后,ABAP Netweaver后台就会自动生成对应的ABAP代码。同之前介绍的JavaScript和Ruby一样,在C4C的ABAP Netweaver后台,存在一个针对ABSL的语言解析器和编译器来完成ABS对应的ABAP代码的生成。

C4C的运行时,执行的就是转换后生成的ABAP代码。

Jerry 2011年还在SAP BYD部门工作时,也曾经参与过基于ABSL生成对应的ABAP代码的开发工作,当时我所在的团队负责的任务是把Cloud Application Studio里编写的Application Exit ABSL代码,转换成ABAP Netweaver里的BAdI模型和对应的ABAP代码。

最后再来说说C/C++. 人类是异形的宿主,而C/C++则是ABAP的宿主。这一点在Jerry之前的文章 聊聊C语言和ABAP里已经阐述清楚了。

我们可以在F1唤出的ABAP帮助文档里根据关键字"Kernel"查找出ABAP kernel的相关信息:

在SAP内部的Netweaver服务器上,我们是能够查看这些C/C++的源代码的,只是我不能将这些代码贴出来:

感谢各位的阅读,以上就是"ABAP Netweaver里的寄生式编程语言有哪些"的内容了,经过本文的学习后,相信大家对ABAP Netweaver里的寄生式编程语言有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

代码 语言 开发 编程语言 寄生 编程 后台 领域 关键 关键字 就是 引擎 学习 应用 生成 人员 任务 内容 内核 宿主 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网络科技 科技和互联网公司 互联网通讯科技 镁科技互联网资讯平台 顺网科技2021年互联网排名 广西拼得多互联网科技有限公司 济南华为互联网科技产业总部基地 创业天下互联网科技有限公司 汽车互联网创新科技园 重庆威客帮互联网科技 互联网金融中的现代科技 彤创互联网科技有限公司 互联网与医疗科技 本届互联网博览会上的黑科技 中国科技创新与世界互联网大会 允成互联网科技有限公司融资 迪庆互联网科技招生 上海科技产业互联网平台 互联网第三次科技革命特征 知域互联网科技有限公司官网 互联网科技园 亿账通互联网科技 深圳艾佳互联网科技 互联网科技素材视频竖屏 海南科技产业互联网平台 广州慧亚互联网科技怎么样 彤创互联网科技有限公司 保险科技服务互联网营销体系 江苏苏星互联网科技有限公司 容联科技互联网电商
0