分享
分销 收藏 举报 申诉 / 39

类型ABAP开发培训入门.ppt

  • 上传人:精****
  • 文档编号:12889646
  • 上传时间:2025-12-24
  • 格式:PPT
  • 页数:39
  • 大小:957KB
  • 下载积分:12 金币
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    ABAP 开发 培训 入门
    资源描述:
    ,第,*,页,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ABAP,开发培训,什么是,ABAP,?,Advanced Business Application Programming,高级商业应用程序设计。是,SAP,专有的开发语言,,SAP,的应用程序就是用,ABAP,语言开发的。,1,ABAP,开发培训,ABAP,的开发环境展示,2,ABAP,开发培训,SAP,的三层架构,表示层,应用层,数据库,3,ABAP,开发培训,ABAP,程序的种类,报表,最常见的,ABAP,程序,展示数据,比如财务的三大报表。,接口,常见的接口如,RFC/BAPI,,,iDoc,,,Webservice,。这些都是以,Function Module,为基础的。,增强,对标准程序的增强,(,改动,),。,Dialog,带交互的程序,,SAP,标准的事物码很多就是,Dialog,。,4,ABAP,开发培训,数据类型,默 认大小,有效 大小,初始值,说明,C,1,1-65535,SPACE,文 本,字符(字母数字字 符)最常用的格式,D,8,8,00000000,日 期,(格式:,YYYYMMDD,),F,8,8,0,浮 点数。用于计算,精确范围近 似,15,位十进制数,精确计算用,P,I,4,4,0,整 型(整数)。用于计算 计数 项目号,N,1,1-65535,00.0,数字文本,不用于计算。会计科目,邮编等,P,8,1-16,0,组合数,,指定长度和小数点位数。数量 金额 距离等,可用于计算,T,6,6,000000,时 间,(格式:,HHMMSS,),X,1,1-65535,X00,十 六进制,STRING,动态长度的字符串,日志文本,描述性文字等,XSTRING,ASCII,ABAP,的数据类型,-,基本数据类型,5,ABAP,开发培训,用户定义的基本数据类型完全是以预定义的基本数据类型为基础的。使用,TYPES,语句定义自己的基本数据类型。,TYPES:,NUMBER TYPE I,LENGTH TYPE P DECIMALS 2,CODE(3)TYPE C.,DATA:,NO_FLIGHTS TYPE NUMBER,NO_PASSENGERS TYPE NUMBER,DISTANCE TYPE LENGTH,HEIGHT TYPE LENGTH,CITY_CODE TYPE CODE,COUNTRY_CODE TYPE CODE.,数据类型可以在程序内部定义,但只能程序内部用;也可以在程序外部定义,这样全局都可以使用,(,事物码,SE11),。,ABAP,的数据类型,-,用户定义的基本数据类型,6,ABAP,开发培训,两种结构化数据类型:,结构,(Structure),和 内表,(Internal Table),。,Structure,:,本质上讲是一个由多个字段组成的字段串,在程序中只能存储一条数据,如果不好抽象化,可以理解为,Excel,的一行。,Internal Table,:,多行多列,可以理解为一个,Structure,纵向拉长。内表分,3,种,标准表,排序表,哈希表。,结构和内表可以在程序内部定义,但只能程序内部用;也可以在程序外部定义,这样全局都可以使用,(,事物码,SE11),。,ABAP,的数据类型,-,结构化数据类型,7,ABAP,开发培训,TYPES,语句定义类型,,DATA,语句声明变量,如刚才用到的例子:,TYPES:,NUMBER TYPE I,LENGTH TYPE P DECIMALS 2,CODE(3)TYPE C.,DATA:,NO_FLIGHTS TYPE NUMBER,DISTANCE TYPE LENGTH,CITY_CODE TYPE CODE,CONSTANTS,语句定义常量:,CONSTANTS PI TYPE P DECIMALS 5 VALUE,3.14159,.,Hint:,变量的命名参照开发规范。,ABAP,程序的数据定义,8,ABAP,开发培训,实际应用中,更多是直接用,LIKE,语句定义变量。,DATA:,ZMATNR LIKE MARA-MATNR,“,物料号,ZMTART LIKE MARA-MTART.,“,物料类型,或者,DATA ZMATNR LIKE MARA-MATNR.,DATA ZMTART LIKE MARA-MTART.,两者的意义完全相同。,DATA,变量名,LIKE,表,-,字段名,(,结构,-,字段名,),DATA,变量名,LIKE,系统标准变量,ABAP,程序的数据定义,9,ABAP,开发培训,结构变量的定义:结构,DATA:,BEGIN OF GS_MARC,MATNR LIKE MARC-MATNR,WERKS LIKE MARC-WERKS,PSTAT LIKE MARC-PSTAT,BWTTY LIKE MARC-BWTTY,EKGRP LIKE MARC-EKGRP,END OF GS_MARC.,这是一个,5,个字段的结构。,G,代表,global,S,代表,Structure.,结构也可以用,SE11,事物码在系统里定义,所有程序都可以使用,但命名必须以,Z,开头。,Hint:,结构变量的命名有规则,参见开发规范,ABAP,程序的数据定义,10,ABAP,开发培训,结构变量的定义:内表,DATA:,BEGIN OF GS_MARC,MATNR LIKE MARC-MATNR,WERKS LIKE MARC-WERKS,PSTAT LIKE MARC-PSTAT,BWTTY LIKE MARC-BWTTY,EKGRP LIKE MARC-EKGRP,END OF GS_MARC.,DATA:,GT_MARC LIKE STANDARD TABLE OF GS_MARC.,GT_MARC,就是一个标准内表。,Hint:,结构变量的命名有规则,参见开发规范,ABAP,程序的数据定义,11,ABAP,开发培训,结构变量的定义:结构和内表的多种定义方式,鉴于,SAP,有大量标准的数据类型供参考,结构变量的命名有多种方式,例如:,(MARC,是系统标准表,,MAAPV,是标准结构,自建结构和自建表同例,),结构:,DATA GS_MARC LIKE MARC.,内表:,DATA GT_MARC LIKE TABLE OF MARC.,结构:,DATA GS_MAAPV LIKE MAAPV.,内表:,DATA GT_MAAPV LIKE TABLE OF MAAPV.,结构:,DATA GS_MARC2 LIKE LINE OF GT_MARC.,内表:,DATA GT_MAAPV2 LIKE TABLE OF GS_MAAPV.,Hint:,结构变量的命名有规则,参见开发规范,ABAP,程序的数据定义,12,ABAP,开发培训,结构变量的定义:内表和工作区。,工作区是相对于内表而言的,在操作内表时,系统需要先把数据从内表取出来存放到对应的工作区,再进行相关的操作。通常情况下,定义一个内表的同时需要定义一个工作区。工作区通过结构定义。,DATA GS_MARC LIKE MARC.,DATA GT_MARC LIKE TABLE OF MARC.,结构,GS_MARC,就可以作为内表,GT_MARC,的工作区。,其他定义方式同此例。,ABAP,程序的数据定义,13,ABAP,开发培训,结构变量的定义:表头。,DATA GT_MARC LIKE MARC OCCURS 0 WITH HEADER LINE.,此语句会声明一个带有同名表头的内表,表头可作为工作区。这种命名方式会节省一些代码量,但不推荐使用,容易混乱。还是推荐使用一个内表,+,一个工作区的方式。,有些比较旧的程序用的是这种带表头的内表,在这些程序里,以,GT_MARC,为例:,GT_MARC,表示工作区,,GT_MARC-MATNR,表示字段,,GT_MARC,表示整个内表。,ABAP,程序的数据定义,14,ABAP,开发培训,赋值:,DATA VAR1(3)TYPE C VALUE,abc,.,DATA VAR2(3)TYPE C.,MOVE VAR1 TO VAR2.,VAR2=VAR1.,VAR2=,abc,.,以上,3,条语句意义返回结果相同。,赋值时注意数据格式,要求数据格式相同,或者两边存在转换规则,否则会报错。,基本,ABAP,语句,15,ABAP,开发培训,运算:,二元操作符包括:,+,:加法,-,:减法,*,:乘法,/,:除法,*,:乘方,DIV,:整除忽略余数,MOD,:取余数,需要注意,圆括号和操作符都是关键字,需要跟操作数之间至少用一个空格分开。,(1+2)*3,应该写成,(1+2)*3,基本,ABAP,语句,16,ABAP,开发培训,条件:,基本,ABAP,语句,IF A B.,ELSE.,ENDIF.,IF.,ELSEIF.,ELSEIF.,ENDIF.,CASE,var.,WHEN,a.,WHEN,b.,WHEN,OTHERS.,ENDCASE.,17,ABAP,开发培训,循环:,ABAP,的循环分四种:,DO .WHILE.,ENDDO.ENDWHILE.,LOOP SELECT.,ENDLOOP.ENDSELECT.,基本,ABAP,语句,18,ABAP,开发培训,循环:,DO,ENDDO.,DO,和,ENDDO,之间的语句块会无限运行,直到遇到条件控制的跳出循环语句如,EXIT,等。在,DO,语句中还可以指定最多运行的次数,否则的话,将会出现无限循环无限循环。,WHILE,ENDWHILE.,在,WHILE,和,ENDWHILE,之间的语句块会一直执行,直到不再满足,WHILE,后面所指定的条件。,WHILE,循环用的不多。,基本,ABAP,语句,19,ABAP,开发培训,循环:,LOOP,ENDLOOP.,循环读取内表的数据到工作区,供程序处理。实际应用最多的循环语句。一般情况下,ABAP,推荐把数据从数据库,(,硬盘,),读到内表,(,内存,),,几乎有程序就有内表,有内表就有,LOOP,循环。,SELECT,ENDSELECT.,循环读数据库。影响效率,不建议使用,建议用,FOR ALL ENTRIES IN,语句一次性把数据读入内表。,基本,ABAP,语句,20,ABAP,开发培训,消息:,MESSAGE,语句向程序的用户发送对话消息,使用,MESSAGE,语句必须指定三位数的消息号和消息类。,MESSAGE E001(ZFI001),。,事物码,SE91,维护消息类和消息。,也可以在程序里写硬消息:,MESSAGE,程序运行错误,TYPE,E,.,但不推荐使用这种不规范的方式。,基本,ABAP,语句,21,ABAP,开发培训,操作结构和内表:,结构,访问结构里的字段。,GS_MARC-MATNR.,结构里最常用的语句是,MOVE-CORRESPONDING,语句。把一个结构的内容同时全部拷贝到另一个结构中。只有源结构和目标结构中有相同名称的组件才会拷贝,而目标结构中名称无法对应的组件保持不变。,需要注意,如果两个结构中同名的组件有不同定义的话,拷贝时可能会出错。,基本,ABAP,语句,22,ABAP,开发培训,操作结构和内表:,内表,访问单条记录,一般来说,需要一个与内表行结构相同相同的工作区来处理单条记录。,APPEND,:往内表的最后追加一条记录,只能用于标准表。,INSERT,:向内表插入一条记录,在标准表里跟,APPEND,的效果一样,在排序表里就插入到键指定的位置,在哈希表里则根据哈希运算法则插入到指定位置。,READ TABLE,:把表的指定行拷贝到结构中。,MODIFY,:使用结构的内容重写表的指定行。,DELETE,:删除表的指定行。,COLLECT,:把结构中的内容累加到内表具有相同键的行上,这时,只有非键字段才执行累加,并且只有非键字段都是数值的时候才能执行这个语句。一般内表里多个字段需要同时汇总时会用到,COLLECT,语句,比如财务的一些报表。,基本,ABAP,语句,23,ABAP,开发培训,操作结构和内表:,内表,访问多条记录,(,结果集,),处理结果集合,LOOP,ENDLOOP,:,LOOP,语句一条一条的读出内表的数据行,写入,INTO,字句指定的结构中,结构的内容可用于输出,或者修改后写回内表。,DELETE,:删除满足条件的所有行。,INSERT,:把一个内表中的多行拷贝到另一个内表中。,APPEND,:把一个内表中的多行追加到另一个标准表中。,想修改内表的某一行只能先把那行读到工作区,修改工作区后再写回内表,而不能以数组的方法访问到内表的指定一行,这是跟其他语言很不一样的地方。,基本,ABAP,语句,24,ABAP,开发培训,操作结构和内表:,内表,使用索引读表(标准表和排序表),LOOP,中用,FROM-TO,子句可以读指定索引段的记录。,READ,中用,INDEX,子句可以读指定索引的一条记录。,使用条件读表,LOOP,中用,WHERE,子句可以读满足一定条件的记录。,READ,中用,With KEY,子句可以读满足主键条件的记录。,内表排序,标准表和排序表可以使用,SORT,语句对指定字段进行排序,如果没有指定升序或者降序就默认使用升序。,基本,ABAP,语句,25,ABAP,开发培训,操作结构和内表:,内表,REFRESH,:清除整个内表的内容,释放部分内存,保留一些以备后续操作。,CLEAR,:对于没有表头的内表,跟,REFRESH,一样,清除内表的内容。对于有表头的内表,则只初始化表头。,FREE,:清除整个内表的内容,释放所有内存。在程序里,当内表以后不再使用的时候可以使用,FREE,,这样能尽量多释放一些不用的内存。,基本,ABAP,语句,26,ABAP,开发培训,数据获取,SAP,后台可以连接多种数据库,,ORACLE,DB2,SQLSERVER,SYBASE,每种数据库都有自己特点的,SQL,语法,不可能在开发时根据后台数据库的种类选择,SQL,语法,所以,SAP,用的是无关,SQL,标准的开放,SQL,,执行时由,SAP,负责转化成各种数据库能运行的,SQL,。,数据库操作,27,ABAP,开发培训,数据获取,使用开放,SQL,的,SELECT,语句来执行查询,它包含几个基本的组成部分。,基本语法:,SELECT FROM INTO WHERE ,SELECT,后面的块说明了需要读表的哪些字段。,FROM,后面的块说明了需要读哪个数据源(数据源可以是表或者视图)。,INTO,后面的块说明了读出的字段要放到哪个目标数据对象中,(,结构或内表,),。,WHERE,后面的块说明了读数据的基本条件,可选。,SELECT MATNR WERKS PSTAT BWTTY EKGRP,INTO TABLE GT_MARC,FROM MARC,WHERE WERKS=,1000,.,数据库操作,28,ABAP,开发培训,数据获取,获取单条数据,用,SELECT SINGLE,语句。,如果目标结构的数据结构与查询字段的顺序不一致,或者使用*这样的通配符来指定查询字段,就需要,CORRESPONDING FIELDS OF,子句,它会自动在源字段和目标字段之间找名称相同的项自动对应填入。这是常用的方式。,SELECT SINGLE*INTO CORRESPODING FIELDS OF GS_MARC,FROM MARC,WHERE MATNR=,000000001,AND WERKS=,1000,.,SELECT SINGLE,语句是在数据库表所有的,KEY,键都被用到的时候使用的,执行效率很高,可以用*。,数据库操作,29,ABAP,开发培训,一个常见的报表的组成,选择屏幕。输入数据的筛选条件。,数据定义。定义程序中用到的变量和常量,包括单个变量、结构、内表等。,数据获取。一般是通过一定的条件从数据库读取出来,或者上传的,TXT/EXCEL,文档。,数据处理。按照,FUNCTION SPEC,的要求,对获得的数据进行处理(增,删,改,BAPI,)。,展示。输出处理好的数据。,报表程序介绍,30,ABAP,开发培训,选择屏幕,-,屏幕元素定义,PARAMETERS:,P_WERKS,LIKE,MARD-WERKS,OBLIGATORY.,“,工厂,SELECT-OPTIONS:,S_MATNR,FOR,MARD-MATNR,“,物料,S_LGORT,FOR,MARD-LGORT,“,库存地点,S_LFGJA,FOR,MARD-LFGJA,“,年度,S_LFMON,FOR,MARD-LFMON.,“,月度,报表程序介绍,31,ABAP,开发培训,选择屏幕,-,屏幕效果,报表程序介绍,32,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.,报表程序介绍,33,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.,报表程序介绍,34,ABAP,开发培训,数据获取和处理,SELECTAMATNRAWERKSALGORTAPSTATALFGJAALFMONALABST BMAKTXINTOTABLEGT_MARDFROMMARDASAINNERJOINMAKTASBONAMATNR=BMATNRWHEREBSPRAS=1ANDAWERKS=P_WERKSANDAMATNRINS_MATNRANDALGORTINS_LGORTANDALFGJAINS_LFGJAANDALFMONINS_LFMON.DELETEGT_MARDWHEREMAKTXISINITIAL.,报表程序介绍,35,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=CHAR.,“,字段类型,APPENDWS_FIELDCAT.CLEARWS_FIELDCAT.,相当于把内表的数据再附加一些展示时用的属性。,报表程序介绍,36,ABAP,开发培训,输出,-,展示效果设置,WS_LAYOUT-ZEBRA=X.WS_LAYOUT-COLWIDTH_OPTIMIZE=X.,ALV,的,LAYOUT,有几十个参数,,这里只用了最常用的,2,个:,斑马纹,自适应列宽。,报表程序介绍,37,ABAP,开发培训,输出,-FM,CALLFUNCTIONREUSE_ALV_GRID_DISPLAY EXPORTINGI_CALLBACK_PROGRAM=V_REPIDIS_LAYOUT=WS_LAYOUTIT_FIELDCAT=WS_FIELDCAT,*IT_SPECIAL_GROUPS=WS_FIELDGROUPS_TAB,*IT_SORT=WS_SORTFIELDS_TAB,*it_events=ws_events,*IT_EVENTS=GT_EVENTCAT,I_DEFAULT=XI_SAVE=A,*i_grid_title=title,*I_CALLBACK_PF_STATUS_SET=PF_STATUS_SET,*I_CALLBACK_USER_COMMAND=MYCOMMAND,*I_CALLBACK_USER_COMMAND=USER_COMMAND,TABLES T_OUTTAB=GT_MARDEXCEPTIONS PROGRAM_ERROR=1 OTHERS=2.,报表程序介绍,38,ABAP,开发培训,事件驱动,INITIALIZATION,初始化,设定屏幕元素默认值,AT SELECTION-SCREEN,检查屏幕输入,START-OF-SELECTION,从数据库取数操作,END-OF-SELECTION,此事件中进行输出清单操作,报表程序介绍,39,
    展开阅读全文

    开通VIP折扣优惠下载文档

    提示  咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。

    咨信网小贴示:
    1、浏览或下载可查看了解,请点击【咨信网告知】。
    2、下载文件中如有侵权或不适当内容,将立即纠正。
    3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
    4、开具发票登录电脑端申请,请点击【索取发票】。

    咨信网客服组:【微信客服】

    自信AI创作助手
    关于本文
    本文标题:ABAP开发培训入门.ppt
    链接地址:https://www.zixin.com.cn/doc/12889646.html

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork