abap 订阅
ABAP(高级商务应用编程)是一种高级语言,由德国软件公司SAP开发。和最近引入的Java一起,ABAP主要用作SAP的编程。这个服务器软件是SAP NetWeaver平台的一部分,这个平台主要用来开发商务应用。ABAP支持有面向过程和面向对象。 展开全文
ABAP(高级商务应用编程)是一种高级语言,由德国软件公司SAP开发。和最近引入的Java一起,ABAP主要用作SAP的编程。这个服务器软件是SAP NetWeaver平台的一部分,这个平台主要用来开发商务应用。ABAP支持有面向过程和面向对象。
信息
外文名
Advanced Business Application Programming
开发商
德国软件公司SAP
简    称
ABAP
起源时间
20世纪80年代
中文名
高级商务应用编程
隶    属
NetWeaver平台
功    能
面向特定应用
代表机构
迈科思维、安豆教育abap、91ABAP
abapABAP平台
ABAP开发环境包括设计和开发程序、屏幕、菜单、功能模块等所需的一切工具。它还包括了程序调试、性能和在线分析、测试所需的实用程序。ABAP/4是SAP自己的第四代编程语言。从4.0版本开始,它简称为ABAP;它是经技术改进的I刮名语言,主要添加了新特性以成为面向对象的语言。ABAP的意思是“先进经营应用编程语言(Advanced Business Application ProgrammingLanguage)”,这表明SAP编程语言用于开发R/3套件中所有的标准经营应用程序。围绕着ABAP编程语言,SAP设计了一个完整的开发环境,像一个CASE环境,称作“ABAP开发平台”。它和R/3系统完全集成在一起,客户可以根据其需求用它开发特定的解决方案,或改进、改善标准的应用程序。ABAP开发环境的中央有两个核心构件: “ABAP数据字典”和“ABAP经营对象库”, 即BOR( Business Object Repository).“数据字典”包含所有的系统元数据,也就是对程序所使用的数据结构的描述。此字典是元数据库,因此包含表格定义、字段的合法值、视图、数据元素等等;更重要的是它定义了表格的关系。精通浏览和使用数据字典非常重要,不仅对数据库管理员和开发人员,对定制咨询顾问也是如此。“经营对象库”包含ABAP平台上的所有开发对象:程序、字典数据、dynpros(动态程序的屏幕)、文档等等。此库对于控制和测试开发工作是必不可少的构件。从3.0版本开始,开发环境还包括“平台组织者”,这是传输系统的附加构件。平台组织者和定制组织者负责控制开发对象和定制设置的开发与转换,以便将它们传输到其他系统上。“平台组织者”的特性包括方案管理、程序修改控制、团队开发的协调、对象锁定和解锁定。传输系统负责开发和定制设置系统之间的物理传输。比如说,SAP应用补丁和升级是SAP自身系统和用户系统之间真正大块的对象传输。这是一个重要工具,开发人员、定制者和系统管理员对它必须非常熟悉。自从SAP R/3的3.1H版本以及4.0版本的普遍推广,产生了一种新的传输系统,称作TMS(传输管理系统),它引入了传输域和组的概念。它允许在传输组中对系统进行图形化定义,从系统内部引入修改请求,而无须访问操作系统。 [1] 
收起全文
精华内容
下载资源
问答
  • ABAP

    千次阅读 2008-03-03 12:18:00
    ABAP (高级商务应用编程)是一种高级编程语言,由德国软件公司SAP开发。目前,和最近引入的Java一起,ABAP主要用作SAP的web应用服务器编程。这个服务器软件是SAP NetWeaver平台的一部分,这个平台主要用来开发商务...

    ABAP (高级商务应用编程)是一种高级编程语言,由德国软件公司SAP开发。目前,和最近引入的Java一起,ABAP主要用作SAP的web应用服务器编程。这个服务器软件是SAP NetWeaver平台的一部分,这个平台主要用来开发商务应用。ABAP的语法和COBOL有些像。

    目录

    [隐藏]
    <script type="text/javascript"> // </script>

    [编辑] 历史

    ABAP作为一种面向特定应用的第四代编程语言最早在20世纪80年代开发。它原本是作为一种报表语言应用在SAP R/2上,这是一个帮助大型公司在大型机上建立原材料管理和财务会计管理商务应用的平台。ABAP本来也是德语Allgemeiner Berichtsaufbereitungsprozessor的缩写,意思是“通用报表预处理器”。ABAP第一次引入了“逻辑数据库”的概念,它在基本的数据库层提供了更高级的抽象。

    ABAP编程语言最初被SAP的开发者用于开发SAP R/3平 台。但它也被设计让SAP的客户用于增强SAP的软件应用&ndash;客户可以用ABAP编程开发自定义的报表和界面。这个编程语言对于程序员 来说很容易学习但并不是一个非程序设计人员可以直接使用的工具。编写ABAP程序需要良好的编程技巧和关系数据库方面的知识,如果知道面向对象设计的概念 更好。

    虽然SAP最早于1992年就发布了R/3,但ABAP现在仍可以用于为R/3系 统编写程序。在20世纪90年代,随着计算机硬件的发展,越来越多的SAP的应用软件和系统都用ABAP来实现。一直到2001年,几乎所有的基本功能都 是由ABAP编程实现的。在1999年,SAP在发布R/3 4.6版的同时也发布了一个对ABAP的面向对象扩展,叫做ABAP Objects。

    SAP最新的开发平台NetWeaver同时支持ABAP和Java

    [编辑] 实现

    [编辑] ABAP程序运行在哪里?

    所有的ABAP程序都驻留在SAP数据库里。他们不像Java或者C++程序那样存储在一个单独的外部文件里,在数据库里所有的ABAP代码都以两 种形式存在:可以用ABAP workbench查看和编辑的源代码和由ABAP运行环境载入和解释的“编译”代码(技术上更精确的说是“产生”代码)。当一段ABAP源代码第一次被 调用时会隐含的进行代码产生。如果稍后源代码改变了或者程序访问的对象改变了(比如数据库的表添加了新的字段),产生代码就会自动重新产生。

    ABAP程序在运行时系统(SAP核心的一部分)的控制下运行在SAP应用服务器里.运行时系统负责处理ABAP语句,控制显示的逻辑序列和响应事 件(比如,用户按一下屏幕上的一个按钮)。ABAP运行时系统的一个关键组件是数据库接口,它把ABAP的数据库无关语句(“开放SQL”)变成底层数据 库管理系统可以理解的语句(“本地SQL”)。数据库接口处理ABAP程序和关系数据库之间所有的通信;它也有一些其他的作用,比如把经常访问的数据缓存 到应用服务器本地的存储器里。

    [编辑] SAP 系统和风景带

    所有的SAP数据和软件都存在/运行于SAP系统的环境中。这个系统包括一个中心关系数据库和一个或多个访问该数据库里的数据和程序的应用服务器(“实例”)。一个SAP系统至少包括一个实例,但可以更多,主要看大小和性能上的需求。在一个多实例系统中,负载平衡机制来保证负载比较平均的分摊到各个可用的应用服务器上。
    典型安装的Web应用服务器 (风景带) 包括三个系统:一个用于开发,一个用于测试和质量保证,一个用于生产。这个风景带可以包含更多的系统,比如一个单独用于单元测试和产前测试的系统,或者也 可以不完全包含这三个系统,比如只有开发和生产,没有单独的质量保证系统; 但三个是最常见的。 ABAP程序的创建和首次运行都在开发系统里。然后被分发到风景带的其他系统里。这些都是在变化和传输系统(CTS)的控制下进行的。CTS是一个负责并 发控制(比如防止两个开发人员同时修改同一段代码),版本管理和在质量保证和产品系统上部署程序的系统。

    Web应用服务器有 三层组成:数据库层,应用层和表现层。这些层可以在同一台或不同的物理机器上运行。数据库层包括关系数据库及相关软件。应用层包括系统的实例。所有应用相 关的过程,包括业务事务和ABAP开发,都运行在应用层。表现层处理和系统的用户之间的交互。对ABAP应用服务器的在线访问可以通过专用图形接口 SAPGUI或者浏览器进行。

    [编辑] ABAP程序的类型

    ABAP有两种不同类型的程序:

    [编辑] 报表程序

    报表程序遵循一个相对简单的编程模型,用户可选的输入一系列参数(比如,在一个数据子集上的选择),然后程序根据输入的参数以一个交 互式列表的形式产生一张报表。报表程序的输出之所以是交互式的是因为它不是一个被动的显示;它允许用户使用ABAP语言通过深入挖掘功能以获得某个数据更 细节的视图,或者通过菜单命令触发更深入的处理,比如按不同的方式排序数据或者按某种选择条件过滤数据。这种表现报表的方法有很大的优势,特别是对于那些 需要处理大量信息但又要以很灵活的方式来检查这些信息的用户,这样他们就不会再被限制到一种固定的显示形式或者大小上无法管理的列表形式的报表中了。这种 方便的开发交互式报表的方式是ABAP语言的一大重要闪光点。
    “报表”这个词有时会给人一种误解,其实创建数据可以在底层数据库修改而不仅仅是只读的报表程序是完全可以的。

    [编辑] 在线程序

    在线程序 (也叫模块池)不产生列表。这些程序使用一系列的屏幕来定义更复杂的用户交互模式。术语“屏幕”是指用户看到的实际的物理图像。每个屏幕还有一个“流逻 辑”;这是指由屏幕触发的ABAP代码,比如初始化屏幕,响应用户请求的应答和控制模块池的屏幕之间的序列的逻辑。每个屏幕都有自己的流逻辑,每个流逻辑 都分为“PBO” (输出前处理)和“PAI” (输入后处理)部分。在SAP的文档中,术语“dynpro” (动态程序)用来表示这种屏幕和流逻辑的结合。
    在线程序并不是通过名字调用的,而是和一段事务代码联系在一起。用户可以通过自定义,角色依赖,事务菜单来触发它们。

    除了报表和在线程序外,以类库,功能库和子程序池的形式开发共享代码段也是可以的。

    [编辑] ABAP Workbench

    ABAP Workbench有几个不同的工具用于编辑容器对象。这些工具可以为你提供涵盖整个软件开发周期各阶段的辅助。 创建和编辑容器对象的最重要的工具有:
    ABAP Editer:编写程序代码
    ABAP Dictionary:处理数据库表定义,检索全局类型
    Menu Painter:设计用户界面(包括菜单栏,标准工具栏,应用栏,配置功能键)
    Screen Painter:为用户对话框设计屏幕(动态程序)
    Function Builder:显示和处理功能模块
    Class Builder:显示和处理ABAP对象类

    [编辑] The ABAP Dictionary

    • Enforces data integrity
    • Manages data definitions without redundancy
    • Is tightly integrated with the rest of the ABAP/4 Development Workbench.

    Enforcing data integrity is the process of ensuring that data entered into the system is logical, complete, and consistent. When data integrity rules are defined in the ABAP/4 Dictionary, the system automatically prevents the entry of invalid data. Defining the data integrity rules at the dictionary level means they only have to be defined once, rather than in each program that accesses that data.
    The following are examples of data lacking integrity:
    A date field with a month value of 13
    An order assigned to a customer number that doesn’t exist
    An order not assigned to a customer
    Managing data definitions without redundancy is the process of linking similar information to the same data definition. For example, a customer database is likely to contain a customer’s ID number in several places. The ABAP Dictionary provides the capability of defining the characteristics of a customer ID number in only one place. That central definition then can be used for each instance of a customer ID number.
    The ABAP Dictionary’s integration with the rest of the development environment enables ABAP programs to automatically recognize the names and characteristics of dictionary objects.
    Additionally, the system provides easy navigation between development objects and dictionary definitions. For example, as a programmer, you can double-click on the name of a dictionary object in your program code, and the system will take you directly to the definition of that object in the ABAP/4 Dictionary.
    When a dictionary object is changed, a program that references the changed object will automatically reference the new version the next time the program runs. Because ABAP is interpreted, it is not necessary to recompile programs that reference changed dictionary objects.

    [编辑] Defining data objects

    There are various statements that you can use to define data objects.

    The TABLES statement always refers to the global type of a flat structure that is defined in the ABAP Dictionary. The structure type for the data object in the program is taken from the Dictionary. The data object name is identical to the name of the structure type. They are normally used as an interface to the screen.
    The DATA statement is usually used to define local data objects. The data object type is specified using the TYPE addition.
    The PARAMETERS statement defines not only an elementary data object, but also an input field on the standard selection screen that is processed at the start of the program. When you activate a program, an internal load version is generated. A selection screen is generated from the PARAMETERS statement. When the program starts, memory areas are made available for the data objects. You can find further information on data objects in the unit entitled ABAP Statements and Data Declarations, or in the keyword documentation.
    The SELECT statement ensures that data is read from the database. In order to read a record from a database table, the following information must be passed to the database: From which database table is the data read? (FROM clause) How many lines are read? The SINGLE addition shows that only one line is read. Which line is read? The WHERE clause shows which columns of the database table have which values.
    For a SELECT SINGLE, the condition must be formulated so that one line is specified unambiguously.
    Dialog programs are used for both reading from and writing to the database.

    [编辑] Example(ABAP report)

    REPORT  Zexmaple_report.
    tables :vbrk,vbrp,kna1.
    TYPE-POOLS : slis.
    data:begin of itab_final occurs 0,
    VKBUR like vbrp-VKBUR,
    vbeln like vbrk-vbeln,
    kunag like vbrk-kunag,
    fkdat like vbrk-fkdat,
    netwr like vbrk-netwr,
    mwsbk like vbrk-mwsbk,
    fkimg like vbrp-fkimg,
    total like vbrk-netwr,
    name1 like kna1-name1,
    end of itab_final.


    data:begin of itab occurs 0,
    VKBUR like vbrp-VKBUR,
    vbeln like vbrk-vbeln,
    kunag like vbrk-kunag,
    fkdat like vbrk-fkdat,
    netwr like vbrk-netwr,
    mwsbk like vbrk-mwsbk,
    fkimg like vbrp-fkimg,
    end of itab.

    data: begin of itab_name occurs 0,
    name1 like kna1-name1,
    erdat like kna1-erdat,
    end of itab_name.
    DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
    GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
    GD_REPID LIKE SY-REPID.

    DATA : W_BUDAT LIKE EKBE-BUDAT.

    datA:T TYPE T.
    select-options: vbeln for vbrk-vbeln.
    select-options: fkdat for vbrk-fkdat.
    select-options: kunag for vbrk-kunag.

    select
    vbrk~vbeln
    vbrk~fkdat
    vbrk~netwr
    vbrk~mwsbk
    vbrk~kunag
    vbrp~fkimg
    vbrp~vkbur

    INTO CORRESPONDING FIELDS OF TABLE itab

    FROM VBRK INNER JOIN VBRP ON VBRK~VBELN = VBRP~VBELN

    WHERE VBRK~FKDAT IN FKDAT AND VBRK~KUNAG IN KUNAG AND VBRK~VBELN IN VBELN.


    select name1
    erdat
    from kna1 into table itab_name
    for all entries in itab
    where erdat = itab-fkdat.

    *---------------------------------------------------------------------------------------------------------*
    loop at itab.
    itab_final = itab.


    read table itab_name with key erdat = itab-fkdat.
    itab_final-name1 = itab_name-name1.
    itab_final-total = itab-netwr + itab-mwsbk.


    append itab_final.
    clear itab_final.

    [编辑] Example

    From SAP NetWeaver:

    *-----------------------------------------------------------------------
    * set an exclusive lock at level object-type & object-id
    *-----------------------------------------------------------------------
    IF NOT lf_bapi_error = true.
    IF ( NOT istourhd-doc_type IS INITIAL ) AND
    ( NOT istourhd-doc_id IS INITIAL )

    CALL FUNCTION 'ENQUEUE_/DSD/E_HH_RAREF'
    EXPORTING
    obj_typ = istourhd-doc_type
    obj_id = istourhd-doc_id
    EXCEPTIONS
    foreign_lock = 1
    system_failure = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    * terminate processing...
    lf_bapi_error = true.—
    * ...and add message to return table
    PERFORM set_msg_to_bapiret2
    USING sy-msgid gc_abort sy-msgno
    sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
    gc_istourhd gc_enqueue_refdoc space
    CHANGING lt_return.
    ENDIF.
    ENDIF.
    ENDIF. " bapi error

    [编辑] 参看

    [编辑] 外部链接


     
    展开全文
  • ABAP资料ABAP资料ABAP资料ABAP资料ABAP资料
  • ABAP杂项ABAP杂项ABAP杂项ABAP杂项ABAP杂项
  • ABAP简报ABAP简报ABAP简报ABAP简报
  • ABAP - Keyword Documentation This documentation describes the syntax and meaning of the keywords of the ABAP language and its object-oriented part ABAP Objects. Alongside this, language frameworks ...
  • ABAP 调用ABAP PROXY

    2012-04-24 11:48:00
    ABAP 调用ABAP PROXY
  • abap7.4 新特性

    2016-05-18 09:48:38
    ABAP
  • abap截图abap截图

    2009-12-23 14:44:28
    abap截图abap截图abap截图abap截图
  • abap-openapi-client ABAP中的ABAP 客户端生成器 通过命令行运行的可能性(NodeJS) 有可能针对不同的ABAP版本(例如Steampunk)生成 每个OpenAPI定义一个独立的全局类+接口 可以在ABAP堆栈上运行生成 最终支持...
  • abap-ABAP Object 发展历史.pdf
  • abap tips abap tips

    2009-02-12 10:00:21
    abap tips abap tips abap tips abap tips abap tips
  • ABAP指南 ABAP万物指南
  • abap几个语法示例

    2016-11-29 16:01:12
    abap
  • sap-abap
  • ABAP技术总结

    2018-03-29 19:43:22
    ABAP技术总结,ABAP技术总结ABAP技术总结ABAP技术总结
  • ABAP_DHBW DHBW ABAP-演示和演示
  • abap object

    2016-02-16 23:02:11
    abap的深入学习帮助很大,本书详尽的讲述了abap的相关知识,是难得的好材料。
  • ABAP
  • ABAP-Commons 提供可重用的 ABAP 组件 项目 收藏 文件流
  • ABAP可重用:ABAP可重用代码
  • SAP ABAP教程

    2018-05-09 20:11:56
    SAP ABAP
  • ABAP库 该存储库代表我的个人可重用ABAP代码库。 随意使用或贡献! 为了组织起见,文件位于干净的子文件夹中。 这里的许多类还表示示例实现。 这些文件都不包含任何公司特定的功能逻辑-因此没有“机密”被泄露。 ...
  • SAP ABAP 开发入门

    千人学习 2019-12-15 12:12:10
    从零开始学习 SAP 二次开发语言ABAP,通过课程的学习,初学者能够掌握SAP ABAP基本开发技巧,主要涵盖如下内容、ABAP基础知识、ALV报表开发、自定义屏幕开发、打印开发;通过学习学习者能够加入项目开始进行基础...
  • ABAP 开发基础

    2019-01-22 13:33:11
    SAP ABAP 开发基础 SAP ABAP开发者必看文档,中文文档
  • SAP ABAP 开发

    2018-02-28 11:09:23
    SAP ABAP 程序开发:ABAP 开发环境和总体介绍 ;ABAP 语法示例 ;
  • abap基础

    2012-10-30 16:19:49
    abap基础
  • ABAP selection screen

    2019-02-26 14:31:17
    ABAP selection screen,SAP ABAP报表开发中的选择屏幕设计方法。
  • ABAP Programming

    2011-09-13 09:42:56
    ABAP Programming ABAP Programming
  • abap学习资料abap

    2009-04-09 16:46:11
    abap学习资料 3月通学习资料abap学习资料 3月通学习资料
  • ABAP开发教程

    2019-03-15 17:24:44
    ABAP开发内容详细大全教程,学习sap的ABAP开发的可以借鉴学习。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,406
精华内容 16,162
关键字:

abap