ABAP和SAP是什么?

78
SAP和ABAP是什么?我搜索了一堆不太理解的缩写。
- SAP是数据库引擎吗? - ABAP是编程语言吗? - 它们是否与此类内容无关?
它们主要用于什么?
9个回答

105

我自1998年开始就一直在使用SAP。 SAP 是一种名为ERP(企业资源规划)的软件,大公司用于管理日常事务。从宏观上来看,该软件可以分为两类:技术和功能。

首先让我们从技术方面入手,因为这回答了你问题中“ABAP是什么”的部分。

技术

SAP软件中有两个技术“堆栈”,第一个是ABAP堆栈,其中包括了SAP最初的所有技术。ABAP是SAP开发RICEFW对象(报表、接口、转换、扩展、表单和工作流程)的专有编码语言。

传统上通过事务代码(T-Codes)导航ABAP堆栈以进入SAP环境的不同屏幕。从技术角度来看,您将在此处执行SAP系统的所有工作过程性能和调整工作,以及配置所有系统RFC、构建用户配置文件并完成OS(通常为Windows或HPUX)与Oracle数据库(当前为Enterprise 11g)之间的必要接口。

JAVA堆栈控制SAP的“Netweaver”方面,这包括SAP通过SAP门户访问互联网的能力,以及通过过程集成(PI)与其他SAP和非SAP遗留系统进行接口的能力。

SAP在商业智能领域(BI)也具有广泛的能力,通过访问存储在商业数据仓库(BW)中的信息实现。目前,有一种名为HANA 1.0的新技术可压缩对这些存储库运行报表所需的时间。

有两个主要的技术人员负责运行所有这些功能,他们被称为SAP Basis(Netweaver)管理员和ABAP开发人员。

功能

SAP为不同业务领域提供了特定的预填充功能包。例如,埃克森公司使用“IS Oil & Gas”包,而美国银行则使用“银行”包,洛克希德•马丁公司则使用“航空与国防”包。这些包是通过聚合可以智能地通过点发布包含到系统中的智能功能自定义而随着时间的推移发展出来的。

然而,几乎所有实体都运行一些基本的功能模块,而不管它们所处的具体行业:

  • HR:人力资源
  • PM:项目管理
  • FI:财务
  • CO:控制器
  • MM:物料管理
  • SD:销售和分销
  • PP:生产计划

最后一个重要的功能模块是:

  • MDM:主数据管理,它封装了客户/供应商/物料等数据。

103
SAP是一家公司,提供完整的企业资源规划(ERP)系统、商业平台和相关模块(财务、总账等)。ABAP是编写SAP软件和自定义功能所使用的主要编程语言。虽然将其视为COBOL和SQL的超级版会有所偏差,但这可以给您一个大致概念。ABAP在SAP系统内运行。SAP和ABAP抽象出数据库并在各种底层DBMS上运行。SAP还生产其他东西,甚至公开表示他们涉足Java并生产J2EE容器,但经过验证的SAP始终是ABAP。

2
那么,它与其他平台有何不同,例如带有编程语言(.NET、Python、Perl)的SQL数据库? - Omar
5
将SAP视为操作系统,所有SAP内容/模块/应用程序都在其中运行。所有设施和API都包含在SAP“Basis”系统中。此外,大多数“内容”,如常见的数据库模式可用:一个共同的模式(如人员记录)存在并跨应用程序使用。 - Jé Queue
1
该平台也被称为SAP R/3(或其他版本,如R/2),以区分它与供应商本身。 - falstro
@Xepoch,当你说“ERP系统”时,你是指ERP-CRM-PLM-SCM-SRM系统中的特定ERP吗? - Pacerier
3
ABAP是一种面向对象的编程语言,与更类似COBOL的早期版本完全兼容。虽然该语言已经现代化且面向对象,但许多开发人员仍坚持使用类似COBOL的语法。 - Brian

16

试图提供简化的解释:

SAP

  • 首先,它是一个产品。
  • 所有者公司以产品名称“SAP”命名。
  • 这是一个管理系统(即所谓的ERP)。这意味着这是用于“管理系统”(特定领域-财务等)的工具。

现在,SAP已经在SAP周围创建了一个环境。为了在SAP环境中运行(即进行自定义等),需要语言抽象。这就是ABAP。

ABAP

  • 它是一种语言(高级),用于SAP环境中进行自定义或新功能实现。
  • 它是高级的,因为它只在SAP环境中使用。

因此,对某个SAP客户的基本版本进行任何自定义都需要使用ABAP,否则,仅交付的SAP就足够使用(即不需要ABAP)。

现在又出现了另一个术语HANA。

HANA

  • 这是一个内存中的关系数据库管理系统。
  • 你可以说,这是SAP的另一个工具/产品,它的主要重点是促进“分析”。
  • 它的设计方式采用高压缩(按列存储),因此主要用于“读”操作,这就是为什么它与“分析”相关联的原因。

SAPHANA一起抽象了数据库访问查询和UI的基本复杂性(使用Java开发),以使用户体验在管理系统中得到改善(主要用于分析,因此主要关注点在分析上)。这个非常特定的工具/产品被称为“技术”,因为它有自己的环境(术语等)。ABAP有助于进一步开发SAP-ERP。

底层开发是使用C、C++(以及ABAP)进行的。


SAP不是一个产品,而是一家提供各种业务解决方案的公司(现在甚至还提供Fiori 3设计解决方案)。必须明确传达这一点,以减少过时的思维认为SAP == ERP。 - Boghyon Hoffmann

11
  • SAP SE 是一家德国跨国企业,专注于制造企业软件。它以SAP ERP及其前身(SAP R/2SAP R/3)而闻名。正如其名称所示,SAP ERP是一种ERP系统,这基本上意味着它支持从仓库管理和销售到人力资源、商业智能等广泛的业务流程。

    尽管SAP ERP不是SAP唯一销售的软件,但通常当人们说“他们在工作中使用SAP”时,指的就是SAP ERP。然而,需要注意的是,SAP是公司名称,没有任何软件被单独销售或授权为“SAP”。

  • ABAP 是 SAP 创建的一种第四代编程语言,通常与OpenEdge ABLCOBOL进行比较。SAP 的大部分软件都是使用 ABAP 编写的。SAP 提供了一个ABAP Workbench,这是一个集成工具,允许第三方开发人员在 SAP ERP 系统内开发、测试和运行自定义 ABAP 程序。通常只有当业务逻辑无法通过 SAP ERP 的配置实现时才会使用 ABAP Workbench。


  • 9

    使用SAP,可能是指一种流行的商业软件:

    http://en.wikipedia.org/wiki/SAP_AG

    根据维基百科,ABAP 是由SAP AG创建的一种编程语言(缩写为高级商务应用程序编程)。


    那么,它与其他平台(如带有编程语言的SQL DB(.NET、Python、Perl))有何不同? - Omar
    @Unknown:你是在问什么区分了一个完整的商业应用和一个平台?这是你的问题吗? - S.Lott
    2
    @ S. Lott:谢谢,你的修辞问题提供了一些关键的见解,让我知道该看什么! - Omar
    @Omar,你得到了你的问题的答案吗?你介意在这里分享一下吗? - Megh

    5
    除了所有围绕SAP问题的常规困惑之外,也可能源于SAP曾经拥有自己的数据库管理系统..它曾经被称为Adabas(最初由Nixdorf营销,然后由Software AG营销),是德国较小的SAP(企业资源计划解决方案)安装中非常流行的DBMS。 我所知道的是,在某个时候(大约在2000年左右)SAP开始共同开发/支持/接管Adabas,并将其作为商业和开源许可证下的SAP DB和后来的MaxDB进行营销。 还存在/使用与MySQL的协议。 但是当人们谈论SAP时,通常是指ERP解决方案,就像其他发帖人所指出的那样。

    4

    SAP只是一个公司名称,而Abap或Abap/4是一种编程语言。SAP公司有很多产品:ERP(物料、销售、成本、财务),CRM,SRM,SCM等,所有这些产品都可以使用ABAP和Java进行定制和编程。基本上就是这样。


    2
    请查看http://en.wikipedia.org/wiki/SAP_AG了解更多信息。
    简单来说,SAP是一种基于模块化的应用程序,位于数据库顶部(与许多应用程序相同)。许多人错误地将SAP视为数据库,但实际上它只是应用程序。
    所谓“基于模块”的应用程序,是指“SAP Netweaver”类似于“Microsoft Office”,它是一个应用程序或一组应用程序,包含许多组件/模块。使用SAP,您可以添加模块(例如财务、人力资源、银行、物流等),以满足您的业务需求。
    ABAP是在SAP中使用的定制编程语言。SAP现在还具有纯粹基于ABAP、纯粹基于JAVA或两者混合的组件。SAP也可以集成其他技术,如.net和PHP。

    1
    SAP是一家为中大型企业提供令人难以置信的解决方案的大公司。实际上,我可以说主要的IT产品有:ERP、WEB、人力资源、集成、BI、报告、机器学习、移动、云、机器人等等。在云端,甚至可以找到使用Cloud Foundry、NodeJS、HTML5、Java等解决方案。它为客户提供了非常丰富的解决方案。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接