SAP的三层体系结构.ppt

上传人:w****2 文档编号:16566504 上传时间:2020-10-13 格式:PPT 页数:40 大小:381KB
返回 下载 相关 举报
SAP的三层体系结构.ppt_第1页
第1页 / 共40页
SAP的三层体系结构.ppt_第2页
第2页 / 共40页
SAP的三层体系结构.ppt_第3页
第3页 / 共40页
点击查看更多>>
资源描述
ABAP l 了解 ABAP l 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系统进行 操作。这层将用户的命令或者操作传送给 R/3系统, 然后系统进行相应的处理后把数据返还给用户。 应用层( Application layer):这层包括一个或 者多个应用服务器和一个消息服务器。每一个应用 服务器包括一系列服务以便运行应用程序。所有的 服务分置在这些应用服务器之中,其实用户需要的 只是其中的一个应用服务器,多个服务器之间传递 信息以决定用户到底需要的是哪个服务器的服务。 数据库层( Database layer):这里就是 SAP系统 的核心,存放了所有 SAP系统的数据。 语法概述 ABAP基本语法特点 由各自独立的语句构成。 每个语句的第一个单词必须是 ABAP关键字。 单词之间至少要用一个空格分隔。 每个语句结束必须要用句号。 支持分块缩进,便于阅读。 一个语句可以跨多行,只要不遇到句号,就认 为是一个延续 的语句。 可以把多个语句放在一行。 ABAP基本语法特点 (持续 ) ABAP不区分大小写,关键字和用户操作数都一样, 为了便于 阅读,一般把关键字大写,而操作数小写。 由于编程的时候随时切换大小写比较麻烦,可以在 ABAP编 辑器中用 “ 规范化打印机 ” 按钮来自动转 换。 如果连续多行的第一个关键字相同,可以使用链语 句 链语句的方式 减少输入 注释 : 注释行由第一列的星号( *)开头,并且必须写在第 一 列,前面不能有空格。 编译器忽略注释行,不会执行。 在行末的注释用双引号( ” )作为前导。 ABAP语言的基本元素 数据类型 D :日期类型,格式为 YYYYMMDD,长度为 8 T :时间类型,格式为 HHMMSS,长度为 6 I :整数类型,长度为 4 F :浮点类型,长度为 8 STRING:变长字符串类型 XSTRING:变长字节序列类型 C :字符串类型,定义变量时指定字符个数 N :数字字符串类型,定义变量时指定数值字符个数 X :字节序列类型,定义变量时指定字节数 P :组合数值类型,定义变量时指定长度和小数点后位 数 ABAP运算 数值运算 (在 ABAP中数学表达式可以任意多层嵌套 ) 算术运算 数学函数 时间日期运算 逻辑表达式 通用逻辑运算符 EQ( = ) NE( ) LT( ) LE( ) GE( = ) IS操作符 IS INITIAL 检查字段是否为初始值 IS ASSIGNED 检查字段是否被分配 BETWEEN操作符 组合逻辑表达式 AND 与 OR 或 NOT 非 ABAP程序的关健字 关健字是语句的第一个词 ,它决定整个语句的意义 ,有 四种不同类型的关健字 1.说明性关健字 TYPES,DATA,TABLES,这些关健字说明定义数据类 型或者说明程序可以访问的数据对象 2.事件关健字 AT SELECTION SCREEN, START-OF-SELECTION AT USER-COMMAND 这些关健字在 ABAP中定义处理块 ,处理块是当特定事 件发生时进行处理的语句组 ABAP程序的关健字 3.控制关健字 IF ,WHILE,CASE 4.操作关健字 WRITE,MOVE,ADD 用于处理数据 语法格式 定义数据对象 DATA name TYPE type_name 例 : DATA number TYPE I. 定义了一个对象 number其类型为 DATA num TYPE I value 18. 定义了一个对象 num其类型为 I初始值为 18. TYPES: address TYPE C. 注: TYPES语句用来创建用户定义的基本数据类型和结构化的数 据类型 ,通过 TYPE定义的类型不能直接使用 ,需要通过 DATA进行定 义其对应的变量后才可使用 如 : DATA: address1 TYPE address 语句链 如果连续多行的第一个关键字相同,可以使用链 语句 ,链语句的方式 减少输入 WRITE text1. WRITE 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 VALUE 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的无条件循环 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 VARY FROM NEXT . ENDWHILE. 循环终止 (CONTINUE,CHECK,EXIT) 无条件终止循环 :CONTINUE DO 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 完全终止循环 :EXIT DO 4 TIMES. IF SY-INDEX = 3. EXIT. ENDIF. WRITE SY-INDEX. ENDDO. 输出结果: 1 2 结构类型和结构体 结构类型由多个数据元素作为组件构成 参照结构类型生成的数据对象称为结构体 定义方式 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 address, 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. 内表 什么是内表 内表是一个数据对象 ,在运行时内表可保存多 个相同结构的数据行数是动态的 ,系统可实时 增加内表的大小 。 内表的属性 几种数据表的访问 :分为索引访问 ,键访问 三种表的类型 : 标准表 ,排序表 ,哈希表 内表的定义 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 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_company 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语句 利用索引读取 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 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_name. 表工作区就是其他语言的结构 ,象自定义的一个类型一样 ,但 一旦创建一个内表之后 ,工作区就成了外界跟内表的交流口 , 每条记录的进入和取出都得通过它 ,并且清除它们的时候分 开来清除 . 数据库操作 (一 ) Open SQL 完全集成到 ABAP中的标准 SQL子集中 只包括数据操纵 (DML) SELECT,INSERT,UPDATE,MODIFY,DELETE 不包括数据定义 (DDL)和数据控制 (DCL) 数据库操作 (二 ) 提取数据 SELECT 语句 选择单行数据 SELECT SINGLE INTO FROM 选择多行数据 :循环选择 SELECT DISTINCT ENDSELECT. 选择多行数据 :选择至内表 SELECT 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.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!