SAP的三层体系结构.ppt

上传人:牧羊曲112 文档编号:5447271 上传时间:2023-07-08 格式:PPT 页数:40 大小:284.50KB
返回 下载 相关 举报
SAP的三层体系结构.ppt_第1页
第1页 / 共40页
SAP的三层体系结构.ppt_第2页
第2页 / 共40页
SAP的三层体系结构.ppt_第3页
第3页 / 共40页
SAP的三层体系结构.ppt_第4页
第4页 / 共40页
SAP的三层体系结构.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《SAP的三层体系结构.ppt》由会员分享,可在线阅读,更多相关《SAP的三层体系结构.ppt(40页珍藏版)》请在三一办公上搜索。

1、ABAP,l 了解ABAPl SAP的三层体系结构l ABAP语法概述l ABAP语言的基本元素l ABAP的语法格式l 结构类型和结构体l 内表l 数据库操作,ABAP,ABAP(Advanced business application program),是一种高级企业应用编程语言,它支持封装性和继承性,封装性是面向对象的基础,而继承性是建立在封装性基础上的重要特性。它适合生成报表,支持对数据库的操作,如:SQLserver,Oracle,DB2等主流数据库系统。,SAP三层体系结构,表现层(Presentation Layer):这是SAP用户和R/3系统交流的接口,用户在这一层对SAP

2、系统进行操作。这层将用户的命令或者操作传送给R/3系统,然后系统进行相应的处理后把数据返还给用户。应用层(Application layer):这层包括一个或者多个应用服务器和一个消息服务器。每一个应用服务器包括一系列服务以便运行应用程序。所有的服务分置在这些应用服务器之中,其实用户需要的只是其中的一个应用服务器,多个服务器之间传递信息以决定用户到底需要的是哪个服务器的服务。数据库层(Database layer):这里就是SAP系统的核心,存放了所有SAP系统的数据。,语法概述,ABAP基本语法特点由各自独立的语句构成。每个语句的第一个单词必须是ABAP关键字。单词之间至少要用一个空格分隔。

3、每个语句结束必须要用句号。支持分块缩进,便于阅读。一个语句可以跨多行,只要不遇到句号,就认为是一个延续 的语句。可以把多个语句放在一行。,ABAP基本语法特点(持续),ABAP不区分大小写,关键字和用户操作数都一样,为了便于 阅读,一般把关键字大写,而操作数小写。由于编程的时候随时切换大小写比较麻烦,可以在ABAP编 辑器中用“规范化打印机”按钮来自动转换。如果连续多行的第一个关键字相同,可以使用链语句 链语句的方式 减少输入注释:注释行由第一列的星号(*)开头,并且必须写在第一 列,前面不能有空格。编译器忽略注释行,不会执行。在行末的注释用双引号(”)作为前导。,ABAP语言的基本元素,数据

4、类型D:日期类型,格式为YYYYMMDD,长度为8T:时间类型,格式为HHMMSS,长度为6I:整数类型,长度为4F:浮点类型,长度为8STRING:变长字符串类型XSTRING:变长字节序列类型C:字符串类型,定义变量时指定字符个数N:数字字符串类型,定义变量时指定数值字符个数X:字节序列类型,定义变量时指定字节数P:组合数值类型,定义变量时指定长度和小数点后位数,ABAP运算,数值运算(在ABAP中数学表达式可以任意多层嵌套)算术运算数学函数时间日期运算逻辑表达式通用逻辑运算符 EQ(=)NE()LT()GE(=)IS操作符IS INITIAL 检查字段是否为初始值IS ASSIGNED

5、检查字段是否被分配BETWEEN操作符组合逻辑表达式 AND 与 OR 或 NOT 非,ABAP程序的关健字,关健字是语句的第一个词,它决定整个语句的意义,有四种不同类型的关健字1.说明性关健字TYPES,DATA,TABLES,这些关健字说明定义数据类型或者说明程序可以访问的数据对象2.事件关健字AT SELECTION SCREEN,START-OF-SELECTIONAT USER-COMMAND 这些关健字在ABAP中定义处理块,处理块是当特定事件发生时进行处理的语句组,ABAP程序的关健字,3.控制关健字IF,WHILE,CASE4.操作关健字WRITE,MOVE,ADD用于处理数据

6、,语法格式,定义数据对象DATAname TYPE type_name 例:DATA number TYPE I.定义了一个对象number其类型为 DATA num TYPE I value 18.定义了一个对象num其类型为I初始值为18.TYPES:addressTYPE C.注:TYPES语句用来创建用户定义的基本数据类型和结构化的数据类型,通过TYPE定义的类型不能直接使用,需要通过DATA进行定义其对应的变量后才可使用如:DATA:address1 TYPE address,语句链,如果连续多行的第一个关键字相同,可以使用链语句,链语句的方式 减少输入 WRITE text1.WR

7、ITE text2.WRITE text3.可以写成:WRITE:text1,text2,text3.,分支结构(IF,CASE),使用IF的条件分支 IF.ELSEIF.ELSEIF.ELSE.ENDIF.,例子:,DATA flag TYPE c VALUE a.IF flag=a.WRITE/true.ELSE.WRITE/error.ENDIF.产生如下输 出:true,使用CASE的条件分支,基本语法:CASE.WHEN.WHEN.WHEN.WHEN.WHEN OTHERS.ENDCASE.,例子:,DATA:TEXT1 VALUE X,TEXT2 VALUE Y,TEXT3 VAL

8、UE Z,STRING VALUE A.CASE STRING.WHEN TEXT1.WRITE:/String is,TEXT1.WHEN TEXT2.WRITE:/String is,TEXT2.WHEN TEXT3.WRITE:/String is,TEXT3.WHEN OTHERS.WRITE:/String is not,TEXT1,TEXT2,TEXT3.ENDCASE.产生如下输出:String is not X Y Z这里,执行WHEN OTHERS后面的语句块,因为 STRING 的内容“A”不等于“X”、“Y”或“Z”,。,循环结构(DO,WHILE),使用DO的无条件循环

9、DO TIMES VARYING FROM NEXT.ENDDO.TIMES 循环次数,VARYING选项在每次循环中给变量重新赋值可以是文字或变量。如果是0或负数,系统不执行该循环使用 DO 语句时要避免死循环。如果不使用 TIMES 选项,则在语句块中至少应包含一个 EXIT、STOP 或 REJECT 语句,以便系统能够退出循环。,例子:,DO.WRITE SY-INDEX.IF SY-INDEX=3.EXIT.ENDIF.ENDDO.产生如下输出:1 2 3这里,处理 3 次循环,然后在 EXIT 语句后退出循环。SY-INDEX代表循环次数,使用WHILE的条件循环语法:WHILE

10、VARY FROM NEXT.ENDWHILE.循环终止(CONTINUE,CHECK,EXIT)无条件终止循环:CONTINUEDO 4 TIMES.IF SY-INDEX=2.CONTINUE.ENDIF.WRITE SY-INDEX.ENDDO.输出结果:1 3 4,有条件终止循环:CHECK DO 4 TIMES.CHECK SY-INDEX BETWEEN 2 and 3.WRITE SY-INDEX.ENDDO.输出结果:2 3,完全终止循环:EXITDO 4 TIMES.IF SY-INDEX=3.EXIT.ENDIF.WRITE SY-INDEX.ENDDO.输出结果:1 2,

11、结构类型和结构体,结构类型由多个数据元素作为组件构成参照结构类型生成的数据对象称为结构体定义方式 TYPES|DATA:BEGIN OF structure,k1 TYPE type|LIKE dobj,k2 TYPE type|LIKE dobj,kn TYPE type|LIKE dobj,END OF structure.或TYPES|DATA structure TYPE str_type|LIKE str_dob.或TYPES|DATA structure TYPE dbtab.组件通过取组件运算符”-”进行访问 structure-comp,例子:,TYPES:BEGIN OF a

12、ddress,name TYPE string,street(30)TYPE C,city TYPE String,END OF address.DATA my_add TYPE address.my_add-name=lili.my_add-street=zhang jiang.my_add-city=shanghai.write:my_add-name,my_add-street,my_add-city.,内表,什么是内表内表是一个数据对象,在运行时内表可保存多个相同结构的数据行数是动态的,系统可实时增加内表的大小。,内表的属性几种数据表的访问:分为索引访问,键访问三种表的类型:标准表,排

13、序表,哈希表内表的定义TYPES|DATA itab TYPE|LIKE tabkind OF linetype|lineobj WITH key INITIAL SIZE n.tabkind 内表种类linetype 行类型 key 表关键字n 初始内存大小,内表类型(一),标准表 STANDARD TABLE 具有逻辑索引 寻址操作通过关键字或者索引排序表 SORTED TABLE 具有逻辑索引 寻址操作通过关键字或者索引 按表关键字升序后存储哈希表 HASHED TABLE 没有逻辑索引 寻址操作只通过关键字,内表类型(二),行类型基本类型 结构体 内表表关键字行结构为结构体 WITH

14、UNIQUE|NON-UNIQUE KEY comp1 compn行结构为基本类型 WITH UNIQUE|NON-UNIQUE KEY TABLE LINE不指定关键字 WITH UNIQUE|NON-UNIQUE DEFAULT KEY初始内存大小INITIAL SIZE n,TYPES:BEGIN OF address,street(20)TYPE C,city(20)TYPE C,END OF address.DATA:BEGIN OF company,name(20)TYPE C,address TYPE address,END OF company.DATA itab_compan

15、y LIKE HASHED TABLE OF company WITH UNIQUE KEY name.,创建一个内表,内表操作(一),操作内表行插入行 INSERT语句 插入单行 INSERT line INTO itab INDEX idx.插入多行 INSERT LINES OF itab1 FROM n1 TO n2 INTO TABLE itab2 INDEX idx.,内表(二),附加行 APPEND语句 附加单行 APPEND line TO itab.附加多行 APPEND LINES OF itab1FROM n1 TO n2 TO itab.读取行 READ语句 利用索引读

16、取 READ itab INTO wa INDEX idx.利用关键字读取 READ TABLE itab FROM key INTO wa.,内表(三),修改行 MODIFY语句 根据索引修改 MODIFY itab FROM wa index idx TRANSPORTING f1 f2.根据关键字修改 MODIFY TABLE itab FROM wa TRANSPORTING f1 f2.修改多行 MODIFY itab FROM wa TRANSPORTING f1 f2 WHERE cond.,内表(四),删除行 DELETE语句 通过索引删除 DELETE itab INDEX

17、idx.通过关键字删除 DELETE TABLE itab FROM wa.DELETE TABLE itab WITH TABLE KEY k1=f1 ki=fi.删除多行 DELETE itab FROM n1 TO n2 WHERE,循环处理结果集合 LOOP语句Loop语句一条条的读出的数据行,写入INTO字指定的结构中,结构内容可用于输出或写回内表.LOOP AT itab INTO wa FROM n1 TO n2 WHERE.ENDLOOP,内表(五),表工作区,创建表工作区:Tables t_name.DATA:begin of t_name,F1 type c,Endt_na

18、me.表工作区就是其他语言的结构,象自定义的一个类型一样,但一旦创建一个内表之后,工作区就成了外界跟内表的交流口,每条记录的进入和取出都得通过它,并且清除它们的时候分开来清除.,数据库操作(一),Open SQL完全集成到ABAP中的标准SQL子集中只包括数据操纵(DML)SELECT,INSERT,UPDATE,MODIFY,DELETE不包括数据定义(DDL)和数据控制(DCL),数据库操作(二),提取数据 SELECT 语句选择单行数据 SELECT SINGLE INTO FROM 选择多行数据:循环选择 SELECT DISTINCT ENDSELECT.选择多行数据:选择至内表 S

19、ELECT INTO TABLE itab.,数据库操作(三),插入数据 INSERT语句插入单行数据 INSERT INTO dbtab VALUES wa.INSERT INTO dbtab FROM wa.插入多行数据 INSERT dbtab FROM TABLE itab.,数据库操作(四),更新数据 UPDATE语句更新单行数据 UPDATE dbtab SET f1=g1 fi=gi WHERE.*fix_key 全部表关键字段的值或UPDATE dbtab FROM wa.更新多行数据 UPDATE dbtab SET f1=g1 fi=gi WHERE.或UPDATE dbtab FROM TABLE itab.,数据库操作(五),添加或更新数据 MODIFY语句添加或更新单行数据 MODIFY dbtab FROM wa.添加或更新多行数据 MODIFY dbtab FROM itab.,数据库操作(六),Native SQL包含DDL,DML,DCL依赖特定数据库类型不具备好的可移植性EXEC SQL PERFORMING.;ENDEXEC.,Thank you,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号