已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ABAP l了解ABAPlSAP的三层体系结构lABAP语法概述lABAP语言的基本元素lABAP的语法格式l结构类型和结构体l内表l数据库操作 ABAP ABAP Advancedbusinessapplicationprogram 是一种高级企业应用编程语言 它支持封装性和继承性 封装性是面向对象的基础 而继承性是建立在封装性基础上的重要特性 它适合生成报表 支持对数据库的操作 如 SQLserver Oracle DB2等主流数据库系统 SAP三层体系结构 表现层 PresentationLayer 这是SAP用户和R 3系统交流的接口 用户在这一层对SAP系统进行操作 这层将用户的命令或者操作传送给R 3系统 然后系统进行相应的处理后把数据返还给用户 应用层 Applicationlayer 这层包括一个或者多个应用服务器和一个消息服务器 每一个应用服务器包括一系列服务以便运行应用程序 所有的服务分置在这些应用服务器之中 其实用户需要的只是其中的一个应用服务器 多个服务器之间传递信息以决定用户到底需要的是哪个服务器的服务 数据库层 Databaselayer 这里就是SAP系统的核心 存放了所有SAP系统的数据 语法概述 ABAP基本语法特点由各自独立的语句构成 每个语句的第一个单词必须是ABAP关键字 单词之间至少要用一个空格分隔 每个语句结束必须要用句号 支持分块缩进 便于阅读 一个语句可以跨多行 只要不遇到句号 就认为是一个延续的语句 可以把多个语句放在一行 ABAP基本语法特点 持续 ABAP不区分大小写 关键字和用户操作数都一样 为了便于阅读 一般把关键字大写 而操作数小写 由于编程的时候随时切换大小写比较麻烦 可以在ABAP编辑器中用 规范化打印机 按钮来自动转换 如果连续多行的第一个关键字相同 可以使用链语句链语句的方式减少输入注释 注释行由第一列的星号 开头 并且必须写在第一列 前面不能有空格 编译器忽略注释行 不会执行 在行末的注释用双引号 作为前导 ABAP语言的基本元素 数据类型D 日期类型 格式为YYYYMMDD 长度为8T 时间类型 格式为HHMMSS 长度为6I 整数类型 长度为4F 浮点类型 长度为8STRING 变长字符串类型XSTRING 变长字节序列类型C 字符串类型 定义变量时指定字符个数N 数字字符串类型 定义变量时指定数值字符个数X 字节序列类型 定义变量时指定字节数P 组合数值类型 定义变量时指定长度和小数点后位数 ABAP运算 数值运算 在ABAP中数学表达式可以任意多层嵌套 算术运算数学函数时间日期运算逻辑表达式通用逻辑运算符EQ NE LT GE IS操作符ISINITIAL检查字段是否为初始值ISASSIGNED检查字段是否被分配BETWEEN操作符组合逻辑表达式AND与OR或NOT非 ABAP程序的关健字 关健字是语句的第一个词 它决定整个语句的意义 有四种不同类型的关健字1 说明性关健字TYPES DATA TABLES 这些关健字说明定义数据类型或者说明程序可以访问的数据对象2 事件关健字ATSELECTIONSCREEN START OF SELECTIONATUSER COMMAND这些关健字在ABAP中定义处理块 处理块是当特定事件发生时进行处理的语句组 ABAP程序的关健字 3 控制关健字IF WHILE CASE4 操作关健字WRITE MOVE ADD用于处理数据 语法格式 定义数据对象DATAnameTYPEtype name例 DATAnumberTYPEI 定义了一个对象number其类型为 DATAnumTYPEIvalue18 定义了一个对象num其类型为I初始值为18 TYPES addressTYPEC 注 TYPES语句用来创建用户定义的基本数据类型和结构化的数据类型 通过TYPE定义的类型不能直接使用 需要通过DATA进行定义其对应的变量后才可使用如 DATA address1TYPEaddress 语句链 如果连续多行的第一个关键字相同 可以使用链语句 链语句的方式减少输入WRITEtext1 WRITEtext2 WRITEtext3 可以写成 WRITE text1 text2 text3 分支结构 IF CASE 使用IF的条件分支IF ELSEIF ELSEIF ELSE ENDIF 例子 DATAflagTYPEcVALUE a IFflag a WRITE true ELSE WRITE error ENDIF 产生如下输出 true 使用CASE的条件分支 基本语法 CASE WHEN WHEN WHEN WHEN WHENOTHERS ENDCASE 例子 DATA TEXT1VALUE X TEXT2VALUE Y TEXT3VALUE Z STRINGVALUE A CASESTRING WHENTEXT1 WRITE Stringis TEXT1 WHENTEXT2 WRITE Stringis TEXT2 WHENTEXT3 WRITE Stringis TEXT3 WHENOTHERS WRITE Stringisnot TEXT1 TEXT2 TEXT3 ENDCASE 产生如下输出 StringisnotXYZ这里 执行WHENOTHERS后面的语句块 因为STRING的内容 A 不等于 X Y 或 Z 循环结构 DO WHILE 使用DO的无条件循环DO TIMES VARYINGFROMNEXT ENDDO TIMES循环次数 VARYING选项在每次循环中给变量重新赋值可以是文字或变量 如果是0或负数 系统不执行该循环使用DO语句时要避免死循环 如果不使用TIMES选项 则在语句块中至少应包含一个EXIT STOP或REJECT语句 以便系统能够退出循环 例子 DO WRITESY INDEX IFSY INDEX 3 EXIT ENDIF ENDDO 产生如下输出 123这里 处理3次循环 然后在EXIT语句后退出循环 SY INDEX代表循环次数 使用WHILE的条件循环语法 WHILE VARYFROMNEXT ENDWHILE 循环终止 CONTINUE CHECK EXIT 无条件终止循环 CONTINUEDO4TIMES IFSY INDEX 2 CONTINUE ENDIF WRITESY INDEX ENDDO 输出结果 134 有条件终止循环 CHECKDO4TIMES CHECKSY INDEXBETWEEN2and3 WRITESY INDEX ENDDO 输出结果 23 完全终止循环 EXITDO4TIMES IFSY INDEX 3 EXIT ENDIF WRITESY INDEX ENDDO 输出结果 12 结构类型和结构体 结构类型由多个数据元素作为组件构成参照结构类型生成的数据对象称为结构体定义方式TYPES DATA BEGINOFstructure k1 TYPEtype LIKEdobj k2 TYPEtype LIKEdobj kn TYPEtype LIKEdobj ENDOFstructure 或TYPES DATAstructureTYPEstr type LIKEstr dob 或TYPES DATAstructureTYPEdbtab 组件通过取组件运算符 进行访问structure comp 例子 TYPES BEGINOFaddress nameTYPEstring street 30 TYPEC cityTYPEString ENDOFaddress DATAmy addTYPEaddress my add name lili my add street zhangjiang my add city shanghai write my add name my add street my add city 内表 什么是内表内表是一个数据对象 在运行时内表可保存多个相同结构的数据行数是动态的 系统可实时增加内表的大小 内表的属性几种数据表的访问 分为索引访问 键访问三种表的类型 标准表 排序表 哈希表内表的定义TYPES DATAitab TYPE LIKE tabkindOF linetype lineobj WITHkey INITIALSIZEn tabkind内表种类linetype行类型key表关键字n初始内存大小 内表类型 一 标准表STANDARDTABLE具有逻辑索引寻址操作通过关键字或者索引排序表SORTEDTABLE具有逻辑索引寻址操作通过关键字或者索引按表关键字升序后存储哈希表HASHEDTABLE没有逻辑索引寻址操作只通过关键字 内表类型 二 行类型基本类型结构体内表表关键字行结构为结构体WITH UNIQUE NON UNIQUE KEYcomp1 compn行结构为基本类型WITH UNIQUE NON UNIQUE KEYTABLELINE不指定关键字WITH UNIQUE NON UNIQUE DEFAULTKEY初始内存大小INITIALSIZEn TYPES BEGINOFaddress street 20 TYPEC city 20 TYPEC ENDOFaddress DATA BEGINOFcompany name 20 TYPEC addressTYPEaddress ENDOFcompany DATAitab companyLIKEHASHEDTABLEOFcompanyWITHUNIQUEKEYname 创建一个内表 内表操作 一 操作内表行插入行INSERT语句插入单行INSERTlineINTOitabINDEXidx 插入多行INSERTLINESOFitab1 FROMn1 TOn2 INTO TABLE itab2 INDEXidx 内表 二 附加行APPEND语句附加单行APPENDlineTOitab 附加多行APPENDLINESOFitab1 FROMn1 TOn2 TOitab 读取行READ语句利用索引读取READitabINTOwaINDEXidx 利用关键字读取READTABLEitabFROMkeyINTOwa 内表 三 修改行MODIFY语句根据索引修改MODIFYitab FROMwa indexidx TRANSPORTINGf1f2 根据关键字修改MODIFYTABLEitabFROMwa TRANSPORTINGf1f2 修改多行MODIFYitabFROMwaTRANSPORTINGf1f2 WHEREcond 内表 四 删除行DELETE语句通过索引删除DELETEitabINDEXidx 通过关键字删除DELETETABLEitabFROMwa DELETETABLEitabWITHTABLEKEYk1 f1 ki fi 删除多行DELETEitab FROMn1 TOn2 WHERE 循环处理结果集合LOOP语句Loop语句一条条的读出的数据行 写入INTO字指定的结构中 结构内容可用于输出或写回内表 LOOPATitab INTOwa FROMn1 TOn2 WHERE ENDLOOP 内表 五 表工作区 创建表工作区 Tablest name DATA beginoft name F1typec Endt name 表工作区就是其他语言的结构 象自定义的一个类型一样 但一旦创建一个内表之后 工作区就成了外界跟内表的交流口 每条记录的进入和取出都得通过它 并且清除它们的时候分开来清除 数据库操作 一 OpenSQL完全集成到ABAP中的标准SQL子集中只包括数据操纵 DML SELECT INSERT UPDATE MODIFY DELETE不包括数据定义 DDL 和数据控制 DCL 数据库操作 二 提取数据SELECT语句选择单行数据SELECTSINGLEINTOFROM 选择多行数据 循环选择SELECT DISTINCT ENDSELECT 选择多行数据 选择至内表SELECT INTOTABLEitab 数据库操作 三 插入数据INSERT语句插入单行数据INSERTINTOdbtabVALUESwa INSERTINTOdbtabFROMwa 插入多行数据INSERTdbtabFROMTABLEitab 数据库操作 四 更新数据UPDATE语句更新单行数据UPDATEdbtabSETf1 g1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年医师定期考核考试综合练习【考试直接用】附答案详解
- 2024-2025学年度施工员练习题附答案详解(B卷)
- 2024-2025学年医院三基考试高频难、易错点题含答案详解【夺分金卷】
- 2024-2025学年医师定期考核考试综合练习完整答案详解
- 2024-2025学年度法律硕士试题预测试卷附答案详解【综合卷】
- 2024-2025学年度燃气职业技能鉴定检测卷及参考答案详解【完整版】
- 2024-2025学年度计算机四级试题预测试卷及完整答案详解(夺冠)
- 2024-2025学年度云南农业职业技术学院单招数学常考点试卷完整版附答案详解
- 2024-2025学年度反射疗法师大赛理论考前冲刺练习题带答案详解(综合卷)
- 2024-2025学年度注册核安全工程师考试历年机考真题集【能力提升】附答案详解
- 2026年小升初测试题数学及答案
- 关于组织2026年春季新员工入职培训的通知函9篇范本
- 2025年江西旅游商贸职业学院单招职业适应性测试题库及答案解析
- 播种绿色希望共建美丽校园2026植树节主题教育课件
- 2026年海南软件职业技术学院单招综合素质考试题库及答案解析
- 2025年安庆市生态环境保护综合行政执法支队内勤辅助岗招聘笔试参考题库附带答案详解
- 公司文明卫生考核制度
- 2025中国南水北调集团新能源投资有限公司所属单位公开招聘34人笔试参考题库附带答案详解
- 《生成式人工智能应用实战》 课件全套 第1-10章:AI 与 AIGC 概述-AIGC应用综合实训
- 2026年春人教版(新教材)小学体育与健康三年级全一册教学计划及进度表(第二学期)
- 心理健康教育工作主要经验、做法以及争创工作的主要成效
评论
0/150
提交评论