SAP系统开发与ABAP的一些概念

来源:互联网 发布:xampp apache无法启动 编辑:程序博客网 时间:2024/04/30 06:11

一,  什么是ABAP:

  定义:ABAP=Advanced business application program

    SAP最初开发ABAP/4语言仅为内部使用,为应用程序员提供优化的工作环境。经过不断的改进和修改以满足商业领域的需要。现在, ABAP/4 已成为SAP开发所有自己的应用程序的仅有工具。

ABAP/4 是第四代支持结构化程序设计的语言。它合并了所有通常的控制结构和模块化概念。同时,它还支持面向对象的程序设计方法,这就为ABAP的应用开发开拓了更广阔的空间。而且,它还可以实现和其他编程语言的合成,如VB,JAVA,C/C++等。


二,  ABAP的一些特性:

1.      ABAP包括:

2.      ABAP/4 支持商业数据类型和操作。您可以用特殊日期和时间字段进行计算。 系统会自动执行必需的类型转换。

3.      ABAP/4 包含一个叫 Open SQL 的SQL子集。用 Open SQL,您可以读取和访问数据库表,与所用的数据库系统无关

4.      ABAP/4 允许您定义和调用子程序。也可以调用其他程序的子程序 。参数能够以各种方式从子程序传递或传递到子程序。

5.      ABAP/4 包含一种特殊子程序,叫做功能模块。您可以在中央库中创建和维护功能模块。在调用程序和子程序之间功能模块有一个明确定义的数据接口。它们能够以调用程序的独立模式进行分别测试。

6.      ABAP/4 报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻辑数据库支持报表程序。

7.      ABAP/4将对话程序组织为包含对话模块的模块池。每个动态程序 (由一个屏 幕及其流逻辑组成的“ 动态程序” )都基于一个ABAP/4 对话程序。流逻辑包含对 ABAP/4对话模块的调用。

三,  和ABAP相关联的SAP BASIS结构:

  SAP R/3系统是一个典型的三层架构系统,包括:

  表现层(Presentation Layer):这是SAP用户和R/3系统交流的接口,用户在这一层对SAP系统进行操作。这层将用户的命令或者操作传送给R/3系统,然后系统进行相应的处理后把数据返还给用户。

  应用层(Application layer):这层包括一个或者多个应用服务器和一个消息服务器。每一个应用服务器包括一系列服务以便运行应用程序。所有的服务分置在这些应用服务器之中,其实用户需要的只是其中的一个应用服务器,多个服务器之间传递信息以决定用户到底需要的是哪个服务器的服务。

  数据库层(Database layer):这里就是SAP系统的核心,存放了所有SAP系统的数据。

SAP支持很多数据库系统,包括:Microsoft SQL Server,ORACLE,INFORMIX,DB2等主流数据库系统。 

四,  第一个ABAP程序


第一个程序:
1)先自定义一个结构ST_SCARR,
2)以结构ST_SCARR定义一个工作区WA_SCARR,
3)用”LIKE TABLE OF”从工作区WA_SCARR定义一个内表IT_SCARR.
4)用SELELT语句从数据库表SCARR中读取数据.
5)用”CORRESPONDING FIELDS OF TABLE ”给内表IT_SCARR字段进行同名输值.
6)用”LOOP AT…TO…”把内表中的数据逐条传给工作区,最后对工作区的数据进行输出.
TYPES: BEGIN OF ST_SCARR,
       CARRID TYPE SCARR-CARRID,
       CARRNAME TYPE SCARR-CARRNAME,
       CURRCODE TYPE SCARR-CURRCODE,
       URL TYPE SCARR-URL,
       END OF ST_SCARR.
DATA: WA_SCARR TYPE ST_SCARR,
      IT_SCARR LIKE TABLE OF WA_SCARR.
SELECT CARRID CARRNAME CURRCODE URL
        FROM SCARR
        INTO CORRESPONDING FIELDS OF TABLE IT_SCARR.
LOOP AT IT_SCARR INTO WA_SCARR.
   WRITE: /1(3) WA_SCARR-CARRID,
           5(20) WA_SCARR-CARRNAME,
           26(5) WA_SCARR-CURRCODE,
           32(30) WA_SCARR-URL.
ENDLOOP.