已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ABAP开发培训 什么是ABAP AdvancedBusinessApplicationProgramming高级商业应用程序设计 是SAP专有的开发语言 SAP的应用程序就是用ABAP语言开发的 ABAP开发培训 ABAP的开发环境展示 ABAP开发培训 SAP的三层架构 表示层 应用层 数据库 ABAP开发培训 ABAP程序的种类 报表最常见的ABAP程序 展示数据 比如财务的三大报表 接口常见的接口如RFC BAPI iDoc Webservice 这些都是以FunctionModule为基础的 增强对标准程序的增强 改动 Dialog带交互的程序 SAP标准的事物码很多就是Dialog ABAP开发培训 ABAP的数据类型 基本数据类型 ABAP开发培训 用户定义的基本数据类型完全是以预定义的基本数据类型为基础的 使用TYPES语句定义自己的基本数据类型 TYPES NUMBERTYPEI LENGTHTYPEPDECIMALS2 CODE 3 TYPEC DATA NO FLIGHTSTYPENUMBER NO PASSENGERSTYPENUMBER DISTANCETYPELENGTH HEIGHTTYPELENGTH CITY CODETYPECODE COUNTRY CODETYPECODE 数据类型可以在程序内部定义 但只能程序内部用 也可以在程序外部定义 这样全局都可以使用 事物码SE11 ABAP的数据类型 用户定义的基本数据类型 ABAP开发培训 两种结构化数据类型 结构 Structure 和内表 InternalTable Structure 本质上讲是一个由多个字段组成的字段串 在程序中只能存储一条数据 如果不好抽象化 可以理解为Excel的一行 InternalTable 多行多列 可以理解为一个Structure纵向拉长 内表分3种 标准表 排序表 哈希表 结构和内表可以在程序内部定义 但只能程序内部用 也可以在程序外部定义 这样全局都可以使用 事物码SE11 ABAP的数据类型 结构化数据类型 ABAP开发培训 TYPES语句定义类型 DATA语句声明变量 如刚才用到的例子 TYPES NUMBERTYPEI LENGTHTYPEPDECIMALS2 CODE 3 TYPEC DATA NO FLIGHTSTYPENUMBER DISTANCETYPELENGTH CITY CODETYPECODE CONSTANTS语句定义常量 CONSTANTSPITYPEPDECIMALS5VALUE 3 14159 Hint 变量的命名参照开发规范 ABAP程序的数据定义 ABAP开发培训 实际应用中 更多是直接用LIKE语句定义变量 DATA ZMATNRLIKEMARA MATNR 物料号ZMTARTLIKEMARA MTART 物料类型或者DATAZMATNRLIKEMARA MATNR DATAZMTARTLIKEMARA MTART 两者的意义完全相同 DATA 变量名 LIKE 表 字段名 结构 字段名 DATA 变量名 LIKE 系统标准变量 ABAP程序的数据定义 ABAP开发培训 结构变量的定义 结构DATA BEGINOFGS MARC MATNRLIKEMARC MATNR WERKSLIKEMARC WERKS PSTATLIKEMARC PSTAT BWTTYLIKEMARC BWTTY EKGRPLIKEMARC EKGRP ENDOFGS MARC 这是一个5个字段的结构 G代表global S代表Structure 结构也可以用SE11事物码在系统里定义 所有程序都可以使用 但命名必须以Z开头 Hint 结构变量的命名有规则 参见开发规范 ABAP程序的数据定义 ABAP开发培训 结构变量的定义 内表DATA BEGINOFGS MARC MATNRLIKEMARC MATNR WERKSLIKEMARC WERKS PSTATLIKEMARC PSTAT BWTTYLIKEMARC BWTTY EKGRPLIKEMARC EKGRP ENDOFGS MARC DATA GT MARCLIKESTANDARDTABLEOFGS MARC GT MARC就是一个标准内表 Hint 结构变量的命名有规则 参见开发规范 ABAP程序的数据定义 ABAP开发培训 结构变量的定义 结构和内表的多种定义方式鉴于SAP有大量标准的数据类型供参考 结构变量的命名有多种方式 例如 MARC是系统标准表 MAAPV是标准结构 自建结构和自建表同例 结构 DATAGS MARCLIKEMARC 内表 DATAGT MARCLIKETABLEOFMARC 结构 DATAGS MAAPVLIKEMAAPV 内表 DATAGT MAAPVLIKETABLEOFMAAPV 结构 DATAGS MARC2LIKELINEOFGT MARC 内表 DATAGT MAAPV2LIKETABLEOFGS MAAPV Hint 结构变量的命名有规则 参见开发规范 ABAP程序的数据定义 ABAP开发培训 结构变量的定义 内表和工作区 工作区是相对于内表而言的 在操作内表时 系统需要先把数据从内表取出来存放到对应的工作区 再进行相关的操作 通常情况下 定义一个内表的同时需要定义一个工作区 工作区通过结构定义 DATAGS MARCLIKEMARC DATAGT MARCLIKETABLEOFMARC 结构GS MARC就可以作为内表GT MARC的工作区 其他定义方式同此例 ABAP程序的数据定义 ABAP开发培训 结构变量的定义 表头 DATAGT MARCLIKEMARCOCCURS0WITHHEADERLINE 此语句会声明一个带有同名表头的内表 表头可作为工作区 这种命名方式会节省一些代码量 但不推荐使用 容易混乱 还是推荐使用一个内表 一个工作区的方式 有些比较旧的程序用的是这种带表头的内表 在这些程序里 以GT MARC为例 GT MARC表示工作区 GT MARC MATNR表示字段 GT MARC 表示整个内表 ABAP程序的数据定义 ABAP开发培训 赋值 DATAVAR1 3 TYPECVALUE abc DATAVAR2 3 TYPEC MOVEVAR1TOVAR2 VAR2 VAR1 VAR2 abc 以上3条语句意义返回结果相同 赋值时注意数据格式 要求数据格式相同 或者两边存在转换规则 否则会报错 基本ABAP语句 ABAP开发培训 运算 二元操作符包括 加法 减法 乘法 除法 乘方DIV 整除忽略余数MOD 取余数 需要注意 圆括号和操作符都是关键字 需要跟操作数之间至少用一个空格分开 1 2 3应该写成 1 2 3 基本ABAP语句 ABAP开发培训 条件 基本ABAP语句 ABAP开发培训 循环 ABAP的循环分四种 DO WHILE ENDDO ENDWHILE LOOPSELECT ENDLOOP ENDSELECT 基本ABAP语句 ABAP开发培训 循环 DO ENDDO DO和ENDDO之间的语句块会无限运行 直到遇到条件控制的跳出循环语句如EXIT等 在DO语句中还可以指定最多运行的次数 否则的话 将会出现无限循环无限循环 WHILE ENDWHILE 在WHILE和ENDWHILE之间的语句块会一直执行 直到不再满足WHILE后面所指定的条件 WHILE循环用的不多 基本ABAP语句 ABAP开发培训 循环 LOOP ENDLOOP 循环读取内表的数据到工作区 供程序处理 实际应用最多的循环语句 一般情况下ABAP推荐把数据从数据库 硬盘 读到内表 内存 几乎有程序就有内表 有内表就有LOOP循环 SELECT ENDSELECT 循环读数据库 影响效率 不建议使用 建议用FORALLENTRIESIN语句一次性把数据读入内表 基本ABAP语句 ABAP开发培训 消息 MESSAGE语句向程序的用户发送对话消息 使用MESSAGE语句必须指定三位数的消息号和消息类 MESSAGEE001 ZFI001 事物码SE91维护消息类和消息 也可以在程序里写硬消息 MESSAGE 程序运行错误 TYPE E 但不推荐使用这种不规范的方式 基本ABAP语句 ABAP开发培训 操作结构和内表 结构访问结构里的字段 GS MARC MATNR 结构里最常用的语句是MOVE CORRESPONDING语句 把一个结构的内容同时全部拷贝到另一个结构中 只有源结构和目标结构中有相同名称的组件才会拷贝 而目标结构中名称无法对应的组件保持不变 需要注意 如果两个结构中同名的组件有不同定义的话 拷贝时可能会出错 基本ABAP语句 ABAP开发培训 操作结构和内表 内表访问单条记录 一般来说 需要一个与内表行结构相同相同的工作区来处理单条记录 APPEND 往内表的最后追加一条记录 只能用于标准表 INSERT 向内表插入一条记录 在标准表里跟APPEND的效果一样 在排序表里就插入到键指定的位置 在哈希表里则根据哈希运算法则插入到指定位置 READTABLE 把表的指定行拷贝到结构中 MODIFY 使用结构的内容重写表的指定行 DELETE 删除表的指定行 COLLECT 把结构中的内容累加到内表具有相同键的行上 这时 只有非键字段才执行累加 并且只有非键字段都是数值的时候才能执行这个语句 一般内表里多个字段需要同时汇总时会用到COLLECT语句 比如财务的一些报表 基本ABAP语句 ABAP开发培训 操作结构和内表 内表访问多条记录 结果集 处理结果集合 LOOP ENDLOOP LOOP语句一条一条的读出内表的数据行 写入INTO字句指定的结构中 结构的内容可用于输出 或者修改后写回内表 DELETE 删除满足条件的所有行 INSERT 把一个内表中的多行拷贝到另一个内表中 APPEND 把一个内表中的多行追加到另一个标准表中 想修改内表的某一行只能先把那行读到工作区 修改工作区后再写回内表 而不能以数组的方法访问到内表的指定一行 这是跟其他语言很不一样的地方 基本ABAP语句 ABAP开发培训 操作结构和内表 内表使用索引读表 标准表和排序表 LOOP中用FROM TO子句可以读指定索引段的记录 READ中用INDEX子句可以读指定索引的一条记录 使用条件读表 LOOP中用WHERE子句可以读满足一定条件的记录 READ中用WithKEY子句可以读满足主键条件的记录 内表排序 标准表和排序表可以使用SORT语句对指定字段进行排序 如果没有指定升序或者降序就默认使用升序 基本ABAP语句 ABAP开发培训 操作结构和内表 内表 REFRESH 清除整个内表的内容 释放部分内存 保留一些以备后续操作 CLEAR 对于没有表头的内表 跟REFRESH一样 清除内表的内容 对于有表头的内表 则只初始化表头 FREE 清除整个内表的内容 释放所有内存 在程序里 当内表以后不再使用的时候可以使用FREE 这样能尽量多释放一些不用的内存 基本ABAP语句 ABAP开发培训 数据获取SAP后台可以连接多种数据库 ORACLE DB2 SQLSERVER SYBASE 每种数据库都有自己特点的SQL语法 不可能在开发时根据后台数据库的种类选择SQL语法 所以SAP用的是无关SQL标准的开放SQL 执行时由SAP负责转化成各种数据库能运行的SQL 数据库操作 ABAP开发培训 数据获取使用开放SQL的SELECT语句来执行查询 它包含几个基本的组成部分 基本语法 SELECTFROMINTO WHERE SELECT后面的块说明了需要读表的哪些字段 FROM后面的块说明了需要读哪个数据源 数据源可以是表或者视图 INTO后面的块说明了读出的字段要放到哪个目标数据对象中 结构或内表 WHERE后面的块说明了读数据的基本条件 可选 SELECTMATNRWERKSPSTATBWTTYEKGRPINTOTABLEGT MARCFROMMARCWHEREWERKS 1000 数据库操作 ABAP开发培训 数据获取获取单条数据用SELECTSINGLE语句 如果目标结构的数据结构与查询字段的顺序不一致 或者使用 这样的通配符来指定查询字段 就需要CORRESPONDINGFIELDSOF子句 它会自动在源字段和目标字段之间找名称相同的项自动对应填入 这是常用的方式 SELECTSINGLE INTOCORRESPODINGFIELDSOFGS MARCFROMMARCWHEREMATNR 000000001 ANDWERKS 1000 SELECTSINGLE语句是在数据库表所有的KEY键都被用到的时候使用的 执行效率很高 可以用 数据库操作 ABAP开发培训 一个常见的报表的组成选择屏幕 输入数据的筛选条件 数据定义 定义程序中用到的变量和常量 包括单个变量 结构 内表等 数据获取 一般是通过一定的条件从数据库读取出来 或者上传的TXT EXCEL文档 数据处理 按照FUNCTIONSPEC的要求 对获得的数据进行处理 增 删 改 BAPI 展示 输出处理好的数据 报表程序介绍 ABAP开发培训 选择屏幕 屏幕元素定义PARAMETERS P WERKSLIKEMARD WERKSOBLIGATORY 工厂SELECT OPTIONS S MATNRFORMARD MATNR 物料S LGORTFORMARD LGORT 库存地点S LFGJAFORMARD LFGJA 年度S LFMONFORMARD LFMON 月度 报表程序介绍 ABAP开发培训 选择屏幕 屏幕效果 报表程序介绍 ABAP开发培训 选择屏幕 数据定义TABLES MARD MAKT DATA BEGINOFGS MARD MATNRLIKEMARD MATNR WERKSLIKEMARD WERKS LGORTLIKEMARD LGORT PSTATLIKEMARD PSTAT LFGJALIKEMARD LFGJA LFMONLIKEMARD LFMON LABSTLIKEMARD LABST MAKTXLIKEMAKT MAKTX ENDOFGS MARD DATAGT MARDLIKETABLEOFGS MARD 报表程序介绍 ABAP开发培训 选择屏幕 屏幕输出相关数据定义TYPE POOLS SLIS ALV变量定义 DATA WS FIELDCATTYPESLIS T FIELDCAT ALVWITHHEADERLINE I FIELDCAT1TYPESLIS T FIELDCAT ALVWITHHEADERLINE DATA WS FIELDGROUPS TABTYPESLIS T SP GROUP ALV WS LAYOUTTYPESLIS LAYOUT ALV WS SORTFIELDS TABTYPESLIS T SORTINFO ALVWITHHEADERLINE WS EVENTSTYPESLIS T EVENT DATA V REPIDLIKESY REPID 报表程序介绍 ABAP开发培训 数据获取和处理SELECTA MATNRA WERKSA LGORTA PSTATA LFGJAA LFMONA LABSTB MAKTXINTOTABLEGT MARDFROMMARDASAINNERJOINMAKTASBONA MATNR B MATNRWHEREB SPRAS 1 ANDA WERKS P WERKSANDA MATNRINS MATNRANDA LGORTINS LGORTANDA LFGJAINS LFGJAANDA LFMONINS LFMON DELETEGT MARDWHEREMAKTXISINITIAL 报表程序介绍 ABAP开发培训 输出 构建输出元素WS FIELDCAT TABNAME GT MARD WS FIELDCAT FIELDNAME MATNR 字段名WS FIELDCAT SELTEXT L 物料 字段文本WS FIELDCAT COL POS 1 输出位置WS FIELDCAT OUTPUTLEN 18 输出长度WS FIELDCAT DATATYPE C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 棉花栽培工岗前基础晋升考核试卷含答案
- 教师招聘考试模拟试卷
- 复工复产微党课
- 11月消防安全月
- 道路交通事故处理协议书3篇
- 非线性回归模型构建的标准流程
- 啤酒花栽培工安全管理考核试卷含答案
- 种子加工工岗前理论考核试卷含答案
- 公司加工中心操作工工艺作业技术规程
- 营养师变更管理测试考核试卷含答案
- 充装站气瓶充装质量保证体系手册
- 老年人才价值开发路径-深度研究
- 2024秋新人教版英语七年级上册教学课件 Unit5 Fun Clubs Section A
- 设计阶段成本管理培训
- 2025年北京市公开选拔领导干部工作历年高频重点提升(共500题)附带答案详解
- 新人教版一年级上册数学期末测试卷及参考答案(精练)
- 【MOOC】说服学-西南政法大学 中国大学慕课MOOC答案
- 2024年“湖北工匠杯”职工技能大赛无人机驾驶员理论考试题库-下(判断题)
- 酒桌协议书范文模板电子版
- DB35T 1111-2019 电动卷门机通 用技术条件
- 专题 含有绝对值的式子的化简(原卷版)
评论
0/150
提交评论