图片来源:
故事还要继续从王叔叔开始!
“呃,无极,你过来看看……”
王叔叔坐在电脑前,指着公司刚刚推出的企业管理软件:
“我们之前使用的进销存软件是点击桌面上的一个.exe执行文件。”
“有了这个软件,为什么要我输入交易码?”
这个名叫无极的年轻人是公司信息技术部的负责人。
听了王叔的困惑,他哈哈大笑起来:
“王先生,这就是技术的进步!并不是所有的软件看起来都一模一样……”
“那你告诉我,这个新的管理体系是什么样的?”
王大爷说完,往后靠了靠,带滚轮的老板椅就滑到了一边。
无极用屁股挪动着滚动办公椅,来到了王叔叔的电脑前。
他用鼠标在屏幕上点了几下:
“你看,这个系统里有很多交易码,不同的交易码执行不同的业务流程……”
例如,事务代码VA01专门用于创建销售订单。
输入客户信息、产品代码和销售数量后,系统将自动计算订单总金额。
然后再次单击保存按钮,销售订单将被创建。
……
无忌一直说着,忘了给自己的话加上引号。
当然,这是一个非常先进的企业管理系统……
所有模块都高度集成...
作为一名合格的技术极客,无极在谈到自己擅长的事情时,不自觉地加快了语速……
之前的销售订单一创建,系统就会自动将相关信息发送到仓库管理处,仓库管理处的操作人员会收到提示。
仓库操作员将 MIGO 交易代码输入系统。 确认产品可以出库后,点击保存按钮,触发相应的产品发货操作。
产品出库单发出后,运输部门将收到信息并派出相应车辆到仓库门口等待装货。
同时,仓库内的拣货机器人也会收到指令,自动前往相应的货架上拣取相应数量的产品,并进行运输前的最终包装。
包装完成后,机器人将货物放到卡车上。 司机拿着打印的运单,驾驶卡车前往客户指定的送货点。
“哦,原来是这样啊。”
王叔拍了拍无忌的肩膀,很是得意:“我当时的决定还是很英明的。”
“无极不愧是我们公司技术部的领导,他对任何业务都有着非常清晰的头脑。”
“有这样的人来主持,我还有什么好担心的呢?”
无极得到了王叔的鼓励,继续说道:
仓库发货后,财务部门会收到相关信息...
财务部的芝若姐,看到这条消息后……
王叔疑惑地看了无忌一眼,心道:“什么?财务部的芷若什么时候成了你妹妹了?”
“不过这并不影响公司的经营,就放过你这小子吧……”
无极根本没有注意到王叔内心的变化,继续说道:
芝若姐将使用交易码VF01为客户开具电子发票。
公司的系统会根据配置的信息管道,自动将电子发票发送到客户的财务部门...
王叔叔的脸上露出了会心的笑容:
“哦,我现在基本明白了。”
“无极,你的意思是说,客户收到货后,进行入库操作;”
“然后客户的财务部门就会自动收到相关信息,可以确认我们刚刚发给他们的电子发票;”
“月底,客户会自动给我们付款吗?”
“对对对!”
无极难掩内心的激动:
“我只是简单的说了一下,王先生其实也明白了,不愧是大企业老板……”
无忌还不忘傻傻的竖起大拇指给王叔点个赞!
王叔叔也笑了。
“可是无极,你的宝贝还没回答我原来的问题……”
“为什么这个管理软件不允许我们一一打开.exe执行文件来操作各种进程呢?”
“嗯,王老师,如果你想聊这个,就会接触到比较底层的技术问题,不知道你有兴趣吗?”
王叔气得差点伸手去打无极一巴掌。
“我没兴趣,那你要我做什么?我今天吃饱了,没事干?”
“哦,那就好,那我就从这个管理系统的开发语言ABAP开始吧,有点长!”
“你告诉我,反正我今天没什么事,所以只是想让你布下龙门大阵。”
无极道:“收到!” 又开始不加引号地说:
ABAP是SAP自己开发的语言,专门用于企业管理中业务流程的高效编程。
ABAP的全称是: 。
SAP为什么要在自己的开发语言前面加上“高级”二字?
那是因为ABAP与其他流行的编程语言有很大不同,这也是它敢于称自己为“高级”的原因……
王叔举手,打断无忌道:“那你用通俗易懂的英语给我描述一下它到底有多高级,我能听懂。”
无忌微微一笑,说道:“简单的总结就是:用ABAP编写软件时,程序员只需要关心具体的业务流程;至于底层操作系统、网络连接、数据库连接等相关的技术代码,他们就不用关心了。完全不用担心这个……”
“嗯……”王叔皱眉:“你这句话有点……有点长……”
无极说道:“好吧,我简单用ABAP来和其他流行语言做一下比较。”
“好吧,那我洗耳恭听了……”
无极再次开启不加引号的说话模式:
1.ABAP兼容主流操作系统
ABAP底层有针对不同操作系统的抽象层。
当ABAP程序员编写代码时,他们不需要考虑代码是运行在 ()、Linux还是Unix上; 也不用担心它是否在Apple(iOS)中运行。 ,仍然运行在谷歌的系统中()。
但对于其他流行的编程语言,比如Java、C#,或者是近几年才开始流行的语言,程序员往往需要关注自己代码中的底层操作系统。
有时,对于相同的功能,程序员必须为不同的操作系统编写不同的代码。
比如我们常用的微信或者支付宝等软件,他们就写了苹果系统和安卓系统的两套软件。
所以相比之下,ABAP代码只需要编写一次,就可以在所有主流操作系统上运行。
2.ABAP兼容主流数据库系统
同样,ABAP底层也有一个数据库的抽象层。
具体数据库连接根据系统安装时客户后台数据库配置。
ABAP兼容市面上大多数主流数据库,如SAP的HANA数据库、()数据库、IBM的DB2、微软的SQL、My SQL等。
在ABAP代码中,对数据库的所有操作都可以直接使用ABAP特有的Open SQL(国际标准SQL的子集)对底层数据库进行增、删、改、查(增、删、改、查数据库记录) ) ) 手术。
在运行时,ABAP的数据库接口(DB)会自动将用Open SQL编写的代码翻译成后端数据库可以理解的机器语言。
使用其他主流编程语言,比如Java、C#或者近几年流行的语言,程序员必须在自己的代码中编写与后端数据库相关的语句。
ABAP编程根本不需要考虑这些。 ABAP底层运行时,会自动打开和关闭数据库连接,自动解析数据库相关操作语句。
这样,对于程序员来说,ABAP写的代码会更加简洁,因为它只包含了实际业务所需的代码。
3.ABAP自带版本管理
ABAP代码存储在数据库中。
在其他主流编程语言中,大部分代码都保存在文本文件中。 它们的版本管理需要程序员手动完成,或者通过当今流行的模式,将文本文件上传到服务器,由服务器管理软件版本。
在ABAP标准中,存在开发、测试、生产三个系统,它们之间有相应的代码传输管道。
程序员在开发系统中编写代码并进行基本测试。 测试通过后,通过ABAP自带的传输工具将代码发布到测试系统。
专业测试人员在测试系统中测试相应业务代码无误后,即可将代码转移到生产系统中。
每次代码传输完成后,开发系统中都会有一个新版本的代码。 您可以随时在开发系统中比较不同版本之间的变化。
对于其他编程语言来说,版本之间的比较就没那么方便了。
4、ABAP源码提供给客户
大多数用其他主流语言编写的软件都向客户提供编译后的机器代码。 如果客户遇到问题,他们会直接联系软件供应商报告错误。
在这种情况下,软件供应商需要花费大量的时间询问客户的具体情况,有时甚至需要与客户召开视频会议,看看客户遇到了什么问题。 这是一个相对耗时的过程。
相反,ABAP的源代码(Code)是提供给客户的。 客户和顾问都可以随时查看ABAP代码,并在代码中设置断点进行调试。
另外ABAP底层还提供远程调试功能。 也就是说,如果客户遇到问题,SAP程序员可以使用客户提供的用户名和密码远程登录客户系统,在客户的ABAP代码中设置断点,进行远程调试。
通过直接在客户系统中重现软件问题,SAP可以快速定位问题的根源,要么是代码问题,要么是客户系统配置问题。 这样可以快速、及时地解决客户遇到的问题。
5.ABAP的数据字典是基石
对于其他主流语言编写的软件来说,业务领域的数据类型基本上都是直接用数值或者字符串来表示。
每个字段的具体含义通常需要独立的文档来解释。
相反,在ABAP开发中,第一步通常是针对不同的业务领域在数据字典(Data)中创建对应的数据元素(Data),确定其数据类型,以及长度和小数点位数。 ETC。
然后,使用这些数据元素,您可以构造所需的数据结构。
例如,火车票信息中,旅客姓名、旅客身份证号、车次、座位代码、出发到达时间、出发到达站等信息构成了火车票信息的数据结构。
在ABAP中,对于每个数据元素,程序员还定义了它在界面上显示的文本(这个文本可以独立翻译,翻译的介绍见后面),以及它的语义解释文档。
无论用户在界面的何处使用这些数据元素,系统都会自动引用数据字典定义中的文本进行显示。
这使得ABAP用户界面开发变得非常简单,不需要程序员一一维护每个字段的文本。
同时,用户可以通过按键盘上的F1键或者用鼠标操作来看到这些字段的业务语义解释。
与其他语言编写的软件相比,ABAP的语义解释使得刚接触企业管理软件的人更容易上手。
6.ABAP具有独立的接口翻译功能
在软件国际化过程中,软件供应商需要对界面上的文字和提示信息进行翻译。
对于其他主流语言编写的软件,比如Java、C#或者其他近年来流行的语言,程序员通常需要手动将界面上使用的文本或提示信息收集到文本文件中; 同时,程序开发者还需要编写相应的代码,在代码中引用文本文件中的文本。
当界面需要翻译成另一种语言时,必须为此语言创建一个新的文本文件。 每个文件对应一种语言。
当软件启动时,系统根据用户的设置自动读取相应文本文件中的文本并显示在界面上。
相反,ABAP界面上的文字来自于上面介绍的数据元素的定义。 提示信息来自ABAP的消息类(Class)。 每条消息都有一个编号,这个编号在程序中直接引用。
ABAP有专门的独立翻译功能,可以独立翻译这些文本和消息,而不影响实际业务代码的开发。
只要文本和消息被翻译成相应的语言,用户就可以用该语言登录系统。
这样,ABAP程序员在编写代码时,只需要引用定义的数据元素(或者基于多个数据元素定义的数据结构,甚至内部数据表)和消息,根本不需要担心翻译。 。
7.ABAP易于扩展
ABAP底层提供数据结构、业务逻辑、用户界面等扩展功能。
客户可以根据自己的业务需求,方便地将客户字段添加到数据库中; 还可以编写自己的具体业务逻辑,自动嵌入到原有的标准流程中; 相应地,客户还可以扩展SAP提供的标准用户界面。
对于其他流行编程语言编写的软件,部分软件可以通过Add-in进行扩展,但扩展原有的业务逻辑或标准用户界面并不是特别方便。
8.ABAP一直在进步
ABAP 是一种不断改进的语言。
根据国外著名视频网站()上的视频,ABAP现在可以针对一些简单的场景一键生成数据库表、业务代码和用户界面,并进行相应的增删改查等操作在数据库表上。
对于其他编程语言来说这可能不是特别容易。
无极兴奋地又举了一个例子。
“去年技术部的小刘就学会了,用它写一些没有界面的小软件还是蛮方便的。”
“但如果你需要编写一个用户界面,那确实需要付出很大的努力。”
“几千行代码中90%都是为了界面而写的,真正的业务代码只有不到10%……”
结尾
王叔叔听得很认真,最后抬起头说道:
“也就是说,ABAP开发平台独立封装了很多与业务无关的技术功能。”
“ABAP程序员在写代码的时候不需要担心这些事情,只需要专注于具体业务代码的开发……”
“嗯,”无忌点点头,道:“王先生,你总结得对!”
王叔叔笑道:“那我可以这么说:ABAP是宇宙中最强大的编程语言!”
说完,王叔缓缓站起身来,环顾四周,霸道道:
我说了这么多,谁同意呢? 谁反对?
你觉得ABAP怎么样? 欢迎留言!
如果您有任何关于SAP的问题需要了解,请留言告诉我。 白水会安排解答,保证您满意!
-结尾-
如果您觉得不错,请点击“在看”!