ABAP Workbench

  • A+
所属分类:SAP

1、ABAP Workbench。
2、显示层—应用层—数据库。
3、R/3 Basis系统包括三个组成部分:核心基本服务(Kerne and Basis Services)、ABAP开发平台(ABAP Workbench)、演示层组件(Presentaton Components)。
4、核心基本服务是应用的运行时环境 ,主要任务是:
运行时应用,所有的R/3应用程序都在此组件内部的软件处理器(虚拟机)上运行。
用户和处理管理。
数据库访问。
系统通信。
系统监控与管理。
5、R/3的应用层由应用服务器和消息服务器组成。应用服务器可能有多个,它们之间通过消息服务器进行通信。而应用服务器中都包含有调度机(Dispatcher)及多个工作进程(Work Process,wp)。每一个wp都link到包含正在运行的应用上下文的内存区域,这个上下文含有正在运行的应用程序数据。wp是所有SAP对话步骤(Dialog Step)实现的基础。

6、调度机(dispatcher)是wp和当前服务器的用户之间连接的桥梁,每一个应用服务中都含有一个调度机,其任务是接收SAP GUI中的对话步骤请求,并将其发送给当前空闲的wp;与此同时,还将对话步骤送回的屏幕输出结果传给适当的用户进行显示。在R/3初始化的过程中,调度机读取系统参数、启动wp并登录到一个消息服务器中。

7、网关服务器(Gateway Server)是R/3系统通信协议接口(如RFC,CPI/C等),每一个应用服务器都包含一个网关,可以与系统内部或其他的系统中的外部应用服务器进行通信(主要为外部通信,因为系统内的应用服务器间主要通过message server进行)。

8、共享内存区(Shared Memory),同一应用服务器中所有工作过程都可以使用公用的主内存区域,这里用于存储共享的资源(如程序,数据库表等内容),SAP的内存管理机制可以确保wp总是可以寻址到相关的上下文,即与运行的程序当前的状态相关的数据(减少了数据复制量)。
共享内存区可以为应用服务器提供局部数据的缓冲机制,从而减少了数据访问次数,提高了处理效率。因此为了优化缓存区的使用,应将不同应用模块中的数据分散在不同的应用服务器组中进行处理。

9、关于dispatcher与wp的工作:
(1)程序中每一个对话步骤只分配给一个WP处理。
(2)程序中不同的对话步骤可以分配给不同的工作过程,此时程序的上下文必须被每一个新的工作进程寻址。因此系统总是尽可能将一个应用程序中的对话步骤分配给同一wp。
(3)一个wp可以处理来自不同用户的不同程序的步骤。

10、数据库连接
当启动一个R/3系统时,应用服务器在DB中进行WP的注册,并为每一个wp得到一个专有的数据库通信信道。在系统运行过程中,wp接收数据库系统提供的 服务,此时不能改变已注册的wp及其通道。因此一个wp只能在一个单独的数据库逻辑单元(LUW,它是不可分割的数据库操作单位)内部对数据库进行修改, 而且不能在该单元结束后恢复所做的修改。

11、wp的任务是处理各个独立R/3应用程序的对话步骤,每一个wp都包含两个软件处理器:屏幕处理器(Screen Processor,SP)和ABAP处理器(ABAP Processor,AP),以及一个数据库接口。
屏幕处理器负责显示层的SAP GUI与应用层中的R/3 wp进行数据交换(通过dispatcher进行调度),其功能包括对用户交互通过屏幕流逻辑进行处理并将用户服务器中输入的数据传给程序。
ABAP处理器负责对ABAP语句组成的应用程序逻辑进行解释和处理,并与数据库接口进行通信。而与之对应的是,屏幕处理器在对话过程中,通过ABAP处理器哪个具体的代码模块被调用。

简单来说,
屏幕处理器负责处理用户输入,告诉ABAP处理器去哪里调用代码模块,并交ABAP处理器传来的处理结果传给用户。
ABAP处理器则用于处理程序逻辑。

12、可通过Open SQL或Native SQL访问数据库。
13、WP的类型:
Dialog Work Process(对话工作进程):处理当前系统用户执行对话步骤的请求。每个应用服务器中包含多个对话工作进程。
Update Work Process(更新工作进程):执行数据库更新的请求,更新请求是SAP LUW的一部分,绑定了多个数据库LUW对话的操作结果,并进行集中后台处理,每个应用服务器至少包含一个更新工作进程。
Backgroud Work Process(后台工作进程):执行没有用户交互也可以运行的系统程序,即后台作业(background jobs)。每一个应用服务器至少包含两个后台工作进程。
Enqueue Work Process(队列工作进程):即锁定服务工作进程,在共享内存区中管理表的锁定。锁定表包含R/3系统中数据库的逻辑锁定,是SAP LUW中数据一致性的操持机制的组成部分。一个R/3系统中只能有一个锁定表,因而只有一个应用服务器进行相关工作进程的处理。
Spool Work Process(假脱机打印工作进程):处理请求打印的数据集序列每一个应用服务器只包含一个打印工作进程。
备1:APP Server: 若干人D-wp,至少1个U-wp,至少2个B-wp,一个S-wp。
备2:D,U,B,E,S 。(DE-BUS)

14、SAP系统中,通常只能存在一个队列服务器,该服务器负责整个系统的数据表锁定。

15、一个应用程序可能包括流逻辑及处理逻辑两部分。
SAP标准屏幕除去输入界面之外,还包括流逻辑(Flow Logic)。FL是使用一套屏幕语言编辑的特殊代码语句集合。

16、SAP系统中共有三种类型的用户屏幕,均可以由系统开发人员创建。

17、一个屏幕的PAI加上下一个屏幕的PBO,即形成了一个完整的对话步骤。
18、ABAP程序具有与SAP平台无关性,它位于整个SAP系统结构中的应用层。ABAP程序在系统应用层的主要任务是设计用户对话和数据库对话。
ABAP有一套特殊的语句集Open SQL,可以通过系统中的数据库接口访问数据库,实现与底层数据库类型开关的数据库操作,因为数据库接口将该语句翻译为相关的数据库SQL语句;同时可以使用当前数据库自身的SQL语句(同不用翻译)。
ABAP还可以通过其他接口(如内存,顺序文件(sequential files)和外部接口等的数据集进行交换。

19、R/3仓库(R/3 Repository)中存储着系统开发过程中的对象(如程序等)。

20、SAP的数据库系统中包括两个主要的逻辑区域,存储不同的数据内容,一是大量与特定集团相关的客户数据表和应数据表数据;此外另一个是R/3仓库,储存所有SAP系统开发过程中的对象(ABAP Development Objects),这些对象又称为仓库对象,包括ABAP程序,数据库表结构定义,系统数据类型等。仓库对象不是企业数据,而是系统内部(如程序,数据结构等),与数据集团无关,一旦创建,就可以在整个SAP系统中使用。
21、所有的用户定制的仓库对象都是通过ABAP Workbench中的工具进行开发的,存于数据库系统中,它们又进一步据不同的应用进行组织,这些具体的应用则被称为开发类别(development classs)。每一个仓库对象都隶属于一个特定的开发类别。

22、除开发类别之外,仓库对象还包含版本控制信息和锁定机制,在工作台请求被释放之前,不能被其他开发人员更改。
23、必须在系统开发之前,进行开发类别的规划。开发类别可以方便仓库对象的目录管理,传输管理等。
比喻:建设一个MM开发类(如一个盒子),仓库对象(盒里的东西)可以是功能模块,程序,表等。

24、SAP标准中建议不要使一个开发类中的对象数量过多,可以随着项目的进展将开发对象分布在不同的开发类中。
25、Development class: Object type,Dictionary objects,Programs,Function Groups,Includes,Transactions,Logical databases,Message classes……。
26、开发类本身也是ABAP Workbench的对象之一,对其所进行的修改也需要在Transport Orgnizer中记录,可通过工作台(Workbench Request)进行。一个Development Class的开发类就是其自身。
27、ABAP Workbench工具。
28、通过传输确保系统间(D,Q,P)仓库对象的一致。
29、系统的定制需要通过定制需求(Customizing Requests)进行,而所有仓库对象的传输必须通过工作台修改请求(Workbench Requests)进行记录,并通过传输系统完成。
30、Workbench Organizer可以使用户的软件开发条理化地进行,而传输系统(Transport system)则提供了系统间对象传输的具体控制和记录。
31、开发员自己创建的程序需要以Z或Y开头,以区别于系统本身的程序。
32、Local Object属于本地开发类别$Tmp。
33、R/3 Application Hierarchy,仓库信息系统,用SE81浏览。
Object Navigator用SE84查看, ABAP编辑器SE38。

34、ABAP数据字典(Data Dictionary,DDIC):是SAP中定义和管理数据元素和数据库元素的中心工具。SAP项目中所有的数据库表结构和系统全局数据类型等,都要在数据字典中创建并维护。

35、数据字典的功能作用?(用SE11可调用)
(1)数据字典的一个主要功能是自定义系统公用数据类型(基本类型、结构和表),供所有SAP程序使用,以实现项目标准化。
(2)SAP还通过数据字典定义数据库对象结构(数据库表、视图和索引等),同时相关的数据库对象将在数据库中被创建,可以使用各种方式(如ABAP代码 或特别事务)把数据存储于物理数据库中,然后通过数据字典显示这些数据,因而数据字典也是SAP系统管理各种底层物理数据库的通用接口(即标准SQL语言 中数据操纵功能在SAP系统中的实现)。
(3)还提供一些工具进行屏幕字段的格式化。

36、可在数据字典中创建的元素主要有三种:
(1)公用数据类型——数据元素、结构体及表类型等供所有ABAP程序使用;
(2)数据库对象——表、索引和视图等,这些元素的结构在数据字典中创建后,同时其实体也将在数据库中被创建;
(3)一些其它的元素,如字段输入时的查询帮助和数据库锁定对象等。

37、可在数据字典中创建和维护的元素简介:
(1)数据库表(Database Table):是一种数据库对象。数据字典中的表独立于数据库存在,一旦创建,则同样结构的数据库表实体也将在物理数据库中创建,表的行结构由一系列DDIC字段组成。
(2)视图(View):是数据表的一种逻辑表现形式,可以将多个不同数据字段组合起来显示。
(3)数据类型(Data Type):包括数据元素、结构类型和表类型,数据元素可以用作结构类型和表类型的组件字段。
(4)域(Domain),必须为每个数据元素指定一个域,该域用于确定该数据元素的ABAP内置基本类型、长度和小数位,进而确定其取值范围。
(5)查询帮助(Search Help): 屏幕字段的可能输入值帮助列表。
(6)锁定对象(Lock Object):用于解决多个用户操作同一数据表时的数据一致性问题。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: