abap简明教程

合集下载

ABAP培训教程

ABAP培训教程

ABAP培训教程ABAP培训教程是针对SAP系统中的高级商务应用程序编程语言(ABAP)进行培训的文档。

本教程旨在为初学者提供一个全面的指南,帮助他们深入了解ABAP的基本概念和功能。

本文将详细介绍ABAP培训教程的内容和目标,以及如何利用这个教程来提升自己的ABAP编程技能。

第一部分:介绍ABAP教程的第一部分是一个简要介绍,主要包括ABAP编程语言的背景和起源,以及它在SAP系统中的作用和重要性。

读者将了解到ABAP是如何成为SAP的核心开发语言,以及它在业务流程和数据处理方面的优势。

第二部分:基础知识ABAP培训教程的第二部分是关于ABAP的基础知识。

这部分将介绍ABAP的语法和数据类型,包括变量、操作符、表达式、条件语句和循环语句等。

读者将学习如何定义和使用ABAP程序中的变量,以及如何使用不同的控制结构来控制程序的流程。

第三部分:面向对象编程ABAP培训教程的第三部分是关于面向对象编程(OOP)的内容。

这部分将介绍ABAP中的对象和类的概念,以及如何使用ABAP类来组织和管理代码。

读者将学习如何定义ABAP类和对象、如何使用继承和多态性,以及如何使用封装和抽象化来设计复杂的ABAP程序。

第四部分:数据字典和数据库操作ABAP培训教程的第四部分是关于数据字典和数据库操作的内容。

这部分将介绍ABAP数据字典的概念,以及如何使用数据字典来定义和管理数据表、视图和数据元素。

读者将学习如何使用ABAP语句来进行数据库操作,包括数据的插入、更新和删除等。

第五部分:用户界面设计和调试技巧ABAP培训教程的第五部分是关于用户界面设计和调试技巧的内容。

这部分将介绍如何使用ABAP语句和UI元素来设计和开发用户界面,包括屏幕和报表的设计。

读者将学习如何使用ABAP调试器来调试和分析ABAP程序,以及如何使用断点和变量查看器来查找和解决程序的错误和问题。

第六部分:实例项目ABAP培训教程的第六部分是一个实例项目,旨在帮助读者运用所学的知识,设计和开发一个完整的ABAP程序。

ABAP的学习资料及方法

ABAP的学习资料及方法

ABAP的学习资料及方法一、 ABAP进入方式:(500 ABAP01 123456)(200 ABAP01 initinit) 1、输入事务码“SE38”点击回车,输出屏幕如下:输入程序名称“ZMM0001”,点击创立,输出屏幕:点击保存,输出屏幕如下:点击保存,输出屏幕如下:点击保存屏幕如下:点击保存按钮,输出屏幕如下:点击“√”输出屏幕如下:SAP学习总结立谈之间,来集团参加ERP工程已近四个月,通过集团ERP工程组精心组织的培训,经过自己的努力学习,我对ERP的认识有了很大程度的转变。

从一开始的不了解,带着对很多专业名词及模块功能的疑问,到现在融入到ERP工程组后,被SAP庞大的功能所震撼;从一开始认为SAP仅仅是一种应用软件,跟其他公司的ERP差不多,到现在深刻的地体会到SAP在企业管理中的重要位置;从一开始对SAP可能带来的不便以及人力、财力、时间本钱产生抵触情绪,到现在对SAP产生依赖心理。

这些对SAP认识的转变,让我意识到作为一名关键用户和信息人员,为确保ERP的上线成功,应该如何发挥自身的作用。

5月9日,初步接触到了SAP软件。

五月份到七月份我初步学习SAP中ABAP语言,起初感觉这跟平时学校学习的语言差不多,但是接触的越久,我就越深深的震撼ABAP语言的严谨性,以及ABAP 语言在SAP中的重要的位置,对其他工作模块工作有非常重要的影响。

通过这段时间ABAP语言的学习后,我进入技术组协助技术组中的各位老师,解决些小问题。

工作一段时间之后,我才觉察,ERP前期工程的工作量大大超乎我的想像,它的重要性也让人感到紧张。

在每天的工作中,大家加班加点,热火朝天的讨论业务流程问题,以及程序代码如何实现业务需求,有时候为了一个观点不同而争论不休,有时候又为达成共识而言欢快乐。

大家良好的沟通交流,让我们这些初识者更积极主动地参与进来。

在技术组组工作了近两周之后,为了让我们全面认识SAP,从而更深入地开展工作,ERP工程组办公室组织人员进展了为期一周的SAP开发语言ABAP的培训。

ABAP基础编程简明讲义

ABAP基础编程简明讲义

ABAP基础编程简明讲义1§. ABAP/4 DATA ELEMENT一. Data Type (数据类型)C: 字符(串), 长度为1, 最大有65535 BYTES, 初始值为: space,例: ‘M’;D: 日期, 格式为YYYYMMDD, 最大是’9999/12/31’ ,例:’1999/12/03’.F: 浮点数, 长度为8, 例如: 4.285714285714286E-01I: 整数范围 :-2^31 ~ 2^31-1N: 数值组成的字符串: 011, ‘302’.P: packed 数,用于小数点数值,例如: 12.00542;T: 时间, 格式为HHMMSS,例如: ’14:03:00’, ’21:30:39’.X: 16进制数, 例如‘1A03’.二. 变量宣告变量宣告包含name, length, type, structure等,语法如下:DATA <F> [<length>] <type> [<value>] [<decimals>]其中: <f> :变量名称,最长30个字符,不可含有 + , . , : ( ) 等字符;<length><type>:变量类型及长度;<value>:初值<decimals>:小数位数Example 1:DATA: COUNTER TYPE P DECIMALS 3.NAME (10) TYPE C VALUE ‘Delta’.S_DATE TYPE D VALUE ‘19991203’.Example 2:DATA: BEGIN OF PERSON,NAME(10) TYPE C,AGE TYPE I,WEIGHT TYPE P DECIMALS 2,END OF PERSON.另外,有关DATA宣告的指令还有: CONSTANTS(宣告常数)、STATICS(临时变量宣告).三. 系统专用变量说明系统内部专门创建了SYST这个STRUCTURE,里面的字段存放系统变量,常用的系统变量有: SY-SUBRC : 系统执行某指令后,表示执行成功与否的变量,’0’ 表示成功SY-UNAME: 当前使用者登入SAP的USERNAME;SY-DATUM: 当前系统日期;SY-UZEIT: 当前系统时间;SY-TCODE: 当前执行程序的Transaction codeSY-INDEX : 当前LOOP循环过的次数SY-TABIX: 当前处理的是internal table 的第几笔SY-TMAXL: Internal table的总笔数SY-SROWS: 屏幕总行数;SY-SCOLS: 屏幕总列数;SY-MANDT: CLIENT NUMBERSY-VLINE: 画竖线SY-ULINE: 画横线附注:1.SAP的全称是: System Application Products in Data Processing;2.ABAP/4的全称是:Advanced Business Application Programming;3.ABAP/4的路径为:Tools → ABAP/4 WorkBench→ABPA/4 Editor ;4.ABAP/4每条语句以句号结束;5.ABAP/4中象= ,>, <,+,-,*,/等符号左右都需要有至少一个空格;6.整行注释用’*’号, 注释本行后面部分用’”’号;§OUTPUTTING DATA TO SCREEN一. WRITE 语句ABAP/4用来在屏幕上输出数据的指令是WRITE指令,例如:WRITE: ‘USER NAME IS:’, SY-UNAME.二. 指定屏幕输出位置指定输出位置的语句格式为:WRITE: [AT] [ / ] [<pos>] [(<len>)] 资料项 [<par>]其中: / : 在下一行输出<pos>: 指定输出的行号;(<len>):指定输出位数(长度)<par>: 指定显示格式参数,参数有:LEFT-JUSTIFIED 资料靠左对齐CENTERED 数据靠中间对齐RIGHT-JUSTIFIED 资料靠右对齐UNDER <g> 正对在数据项<g>的下面显示NO-GAP 紧接着显示,不留空格USING EDIT MASK <m>: 使用内嵌子元显示, 如 12:03:20 USING NO EDIT MASK: 不使用内嵌子元NO-ZERO: 数字前面 0 的部分不显示NO-SIGN: 不显示正负号DECIMALS <d>: 显示 <d> 位小数EXPOENT <e>: F(浮点数)指数的值ROUND <r>: 四舍五入至小数点后<r>位CURRENCY <c>: 币别显示DD/MM/YY : 日期显示格式MM/DD/YY:YY/MM/DD:YY/DD/MMMM/DD/YYYY:DD/MM/YYYYYYYY/MM/DD:YYYY/DD/MM:例如1: WRITE: /10(6) ‘ABCDEFGHIJK’.输出结果为: ABCDEF例如2: DATA: X TYPE I VA LUE ’11:20:30’,A(5) TYPE C VALUE ‘AB CDE’.WRITE: / X USING EDIT MASK ‘__:__:__’.WRITE: / X USING EDIT MASK ‘$___,___’.WRITE: / Y NO-GAP.输出结果为:11:20:30$112,030ABCDEF四. 显示图标:语法: WRITE: <symbol-name> AS SYMBOL.WRITE: <icon-name> AS ICON.例如: INCLUDE <SYMBOL>.INCLUDE <ICON>.WRITE: / ‘Phone symbol:’, SYM_PHONE AS SYMBOL.WRITE: / ‘Alarm Icon:’, ICON_VOICE_OUTPUT AS ICON.要查看系统所提供有那些符号及图标,可选择’EDIT’下的’Insert Statement’,选择’Write’,接下来选择要查看的群组,如SYMBOL 或ICON, 接下来按’Display’即可.§ INTERNAL TABLE一. Internal Table 的宣告ABAP/4中的Internal Table是一种Data Structure,类似于其它语言中的STRUTURE,它可以由几个不同类型的字段(field)组成,用来表示具有不同属性的某一事物,单独一笔资料表示某个事物,多笔数据表示具有相同属性的多个事物.例如:为了存取或记录某班的同学数据,我们创建如下的internal table:DATA: BEGIN OF STUDENT OCCURS 20,STD_ID TYPE N,NAME(10) TYPE C,AGE TYPE I,BIRTH TYPE D,SCORE TYPE P DECIMALS 2,END OF STUDENT.此时我们已经创建了名叫STUDENT的internal table,并且为它预先申请了能够存放20笔数据的Buffer(当然,如果存取数据不止20笔,程序执行时,会自动申请系统Buffer) Internal table 的定义有以下几种格式:格式一. DATA: BEGIN OF <internal table> OCCURS <n>,<field 1> TYPE <type1>,[<field 2> TYPE <type 2>,<field 3> TYPE <type 3>,… ]END OF <internal table>.格式二. TYPES: BEGIN OF <work area>,<field 1> TYPE <type1>,[<field 2> TYPE <type 2>,<field 3> TYPE <type 3>,… ]END OF <work area>.TYPES <internal table> TYPE <work area> OCCURS <n>.格式三. DATA: BEGIN OF <work area>.INCLUDE STRUCTURE <table name>.END OF <work area>.DATA: <internal table> LIKE <work area> OCCURS <n>.二. APPEND LINE格式: APPEND [<work area> TO ] <internal table>.举例一. (使用work area)DATA: BEGIN OF LINE,COL1 TYPE I,COL2 TYPE I,END OF LINE.DATA ITAB LIKE LINE OCCURS 10.DO 2 TIMES.LINE-COL1 = SY-INDEX.LINE-COL2 = SY-INDEX ** 2.APPEND LINE TO ITAB.ENDDO.LOOP AT ITAB INTO LINE.WRITE: / LINE-COL1, LINE-COL2.ENDLOOP.执行结果为:1 12 4举例二. (不使用work area)DATA: BEGIN OF ITAB OCCURS 10,COL1 TYPE I,COL2 TYPE I,END OF ITAB.DO 2 TIMES.ITAB-COL1 = SY-INDEX.ITAB-COL2 = SY-INDEX ** 2.APPEND ITAB.ENDDO.LOOP AT ITAB.WRITE: / ITAB-COL1, ITAB-COL2.ENDLOOP.执行结果与举例一相同.举例三. (加入另一个Internal table的元素)格式: APPEND LINES OF <itab1> [FROM <n1> ] [TO <n2>] TO <itab2>.将<itab1>的元素加入至<itab2>中,可选取自<n1>至<n2>的范围.APPEND LINES OF ITAB TO JTAB.三. COLLECT LINECOLLECT 指令也是将元素加入Internal table中,与APPEND 的区别是: COLLECT指令在非数值字段相同的情况下,将数值字段汇总.格式: COLLECT [<work area> INTO ] <itab>DATA: BEGIN OF ITAB OCCURS 3,COL1(3) TYPE C,COL2 TYPE I,END OF ITAB.ITAB-COL1 = ‘ABC’. ITAB-COL2 = 10.COLLECT ITAB.ITAB-COL1 = ‘XYZ’. ITAB-COL2 = 20.COLLECT ITAB.ITAB-COL1 = ‘ABC’. ITAB-COL2 = 80.COLLECT ITAB.此时, internal table中放的是2笔数据, 分别为:ITAB-COL1 ITAB-COL2‘ABC’ 90‘XYZ’ 20四. INSERT LINE将元素插入在指定的internal table位置之前.格式: INSERT [<wa> INTO] [INITIAL LINE INTO ] <itab> [INDEX <idx>]或者: INSERT LINES OF <itab1> [FROM <n1> TO <n2>] TO <itab2> INDEX <idx>其中: <wa>即work area,工作区中的元素.[INITIAL LINE INTO] :插入一笔初始化的记录.<itab>: internal table[INDEX <idx>]: internal table 的记录号.(新加入的元素放在此记录前面)五. 读取internal table格式一:LOOP AT <itab> [INTO <wa>][FROM <n1> TO <n2>][WHERE <conditions>]<statement>ENDLOOP.格式二:READ TABLE <itab> [INTO <wa>] [INDEX <idx> / WITH KEY <conditions>]举例. (格式二)DATA: BEGIN OF ITAB OCCURS 10,COL1 TYPE I,COL2 TYPE I,END OF ITAB.DO 10 TIMES.ITAB-COL1 = SY-INDEX.ITAB-COL2 = SY-INDEX * 2.APPEND ITAB.ENDDO.READ TABLE ITAB INDEX 3.(或者: READ TABLE ITAB WITH KEY COL1 = 3.)WRITE: / ‘ITAB-COL1 = ‘, ITAB-COL1, ‘ITAB-COL2 = ‘, ITAB-COL2.执行结果同样是:ITAB-COL1 = 3ITAB-COL2 = 6.六. 修改internal table 中的值格式: MODIFY <itab> [FROM <wa>][INDEX <idx>][TRANSPORTING <f1><f2>…][WHERE <conditions>]举例一. READ TABLE ITAB INDEX 3.LINE-COL1 = 29.MODIFY ITAB FROM LINE TRANSPORTING COL1.将第三笔记录的COL1字段的值修改为29.举例二. T_SALARY – salary = 50.MODIFY T_SALARY TRANSPORTING salary WHERE birthday = ‘1999/12/06’.七. DELETE internal table中的字段格式: DELETE <itab> INDEX <idx>.或: DELETE <itab>[FROM <n1> TO <n2>] [WHERE <conditions>]八. Internal table 排序SORT <itab> [<order way>][BY <f1><f2>…]其中:<order way> 有DESCENDING 和ASCENDING, Default 为ASCENDING.<f1>: 为指定排序的字段.九. 加总SUM.总和计算存放与work area中,但只能在LOOP 中使用.例: LOOP AT ITAB INTO LINE.SUM.ENDLOOP.WRITE: / LINE-COL1, LINE-COL2.十. 初始化internal tableREFRESH <itab>. 清空<itab>中的值.CLEAR <itab>. 清空<itab>的Header Line.FREE <itab>. 释放记忆体空间.ABAP开发讲义2§屏幕输入命令在ABAP/4中要从屏幕输入变量, 使用的命令是 PARAMETERS 及SELECTION-OPTIONS:1. PARAMETER: 输入一个变量2. SELECTION-OPTIONS: 使用条件筛选画面来输入数据一. PARAMETERS 指令基本的输入命令, 类似如BASIC的INPUT命令, 但无法使用F格式(浮点数)语法:PARAMETERS <p> [DEFAULT <f>] [LOWER CASE][OBLIGATORY] [AS CHECKBOX][RADIOBUTTON GROUP <rad>]Example:PARAMETERS: NAME(8),AGE TYPE I,BIRTH TYPE D.执行结果:在日期的输入格式上为MM/DD/YY , MM/DD/YYYY, MMDDYY或MMDDYYYY , 如输入 020165表 1965年02月01日, 与02/01/65的输入是一样的, 日期输入范围为公元1950年至2049年1.DEFAULT设定输入的默认值Example:PARAMETERS: COMPANY(20) DEFAULT ‘DELTA’,BIRTH TYPE D DEFAULT ‘19650201’.2. LOWER CASEABAP/4预设是将字符串输入值自动转换为大写, 加上此参数会将输入的数据转成小写,3. OBLIGATORY强制要求输入, 屏幕上会出现一个 ? , 使用者必须要输入才可.4. AS CHECKBOX输入 CHECKBOX的格式Example:PARAMETERS: TAX AS CHECKBOX DEFAULT ‘X’,NTD AS CHECKBOX.执行结果:5. RADIOBUTTON GROUP <rad>输入 RADIO BUTTON GROUP 的方式Example:PARAMETERS: BOY RADIOBUTTON GROUP SEX DEFAULT ‘X’,GIRL RADIOBUTTON GROUP SEX.执行结果:二. SELECTION-OPTIONSSELECTION-OPTIONS所输入的值实际上是放在internal table中的,该Internal table 有四个字段,分别是:SIGN,OPTION,LOW,HIGH.. 条件筛选检查条件输入画面指令, 输入条件后可配合SELECT指令自TABLE读取符合条件的数据, 直接执行或放入 Internal Table中, 条件有四个参数:1. SIGN:I: 表筛选条件符合的资料E: 表筛选条件不符合的资料2. OPTION: 比较的条件符号EQ(等于),NE(不等于),GT(大于),LE(小于),CP(包含),NP(不包含)3. LOW: 最小值4. HIGH: 最大值语法:SELECTION-OPTIONS <check-option> FOR <table-field>Example:TABLES SPFLI.SELECTION-OPTIONS AIRLINE FOR SPFLI-CONNID.将条件的输入值存放入 AIRLINE, 筛选选择为SPFLI中的CONNID字段执行结果:可直接输入起始范围或按下选择画面, 输入完后按下左上角的执行键三. 条件输入选择画面1.自Table中选取按下输入项的右边往下箭头, 叫出Table中数据项, 选取开始和结束的范围2.Selection Options按下”Selection options”按键, , 输入Option及 Sign参数内容, 屏幕如下:3.Multi-Options输入按下最右边的Multi-Options输入键, 输入条件选取的范围, 画面如下:条件输入完后按下”Copy”按键四. 改变条件输入格式1.DEFAULT <begin> TO <end>设定开始结束范围输入默认值Example:SELECTION-OPTION AIRLINE FOR SPFLI-CONNIDDEFAULT ‘2042’ TO ‘4555’.2.NO-EXTENSION设定不要Multi-Option输入画面3.NO INTERVALS设定不要区间范围输入画面4.LOWER CASE输入转换成大写5.OBLIGATORY强制要求输入五. 配合 SELECT 命令条件输入完后要将符合条件的数据筛选出来, 可配合使用 SELECT 指令 1.使用WHERE <条件式>Example:SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID.SELECT * FROM SPFLI WHERE CONNID IN AIRLINE.WRITE: / CONNID,FROMCITY,TOCITY.ENDSELECT.2.使用CHECK参数Example:SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID.SELECT * FROM SPFLI.CHECK AIRLINE.WRITE: / CONNID,FROMCITY,TOCITY.ENDSELECT.3.使用IF … IN 叙述Example:SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID.SELECT * FROM SPFLI.IF SPFLI-CONNID IN AIRLINE.WRITE: / CONNID,FROMCITY,TOCITY.ENDIFENDSELECT.六. SELECTION-SCREEN1.产生空白列语法:SELECTION-SCREEN SKIP [<n>]Example:SELECTION-SCREEN SKIP 2.产生两列空白列2.产生底线语法:SELECTION-SCREEN ULINE / <pos>(length)Example:SELECTION-SCREEN ULINE /10(30).自第10格开始产生长度30的底线3.印出备注说明语法:SELECTION-SCREEN COMMENT / <pos>(length) <name>Example:REMARK = ‘Pls enter your name’.SELECTION-SCREEN COMMENT /10(30) REMARK.4. 同一列中输入数个数据项语法:SELECTION-SCREEN BEGIN OF LINE.……SELECTION-SCREEN END OF LINE.Example:SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN POSITION 20.PARAMETERS NAME(10).SELECTION-SCREEN POSITION 40.PARAMETERS BIRTH TYPE D.SELECTION-SCREEN END OF LINE.在20格输入NAME内容, 40格输入 BIRTH的内容5. 绘出BLOCK PANEL语法:SELECTION-SCREEN BEGIN OF BLOCK <block>[WITH FRAME [TITLE <title>].…….SELECTION-SCREEN END OF BLOCK <block>.Example:SELECTION-SCREEN BEGIN OF BLOCK RADIO WITH FRAME .PARAMETER R1 RADIOBUTTON GROUP GR1.PARAMETER R2 RADIOBUTTON GROUP GR1.PARAMETER R3 RADIOBUTTON GROUP GR1.SELECTION-SCREEN END OF BLOCK RADIO.ABAP开发讲义3§SQL语法我们在编写ABAP4程序的时候,经常需要从TABLE中根据某些条件读取数据,.读取数据最常用的方法就是通过SQL语法实现的.ABAP/4中可以利用SQL语法创建或读取TABLE,SQL语法分为DDL(DATA DEFINE LANGUAGE)语言和DML(DATA MULTIPULATION LANGUAGE)语言,DDL语言是指数据定义语言,例如CREATE等, DML语言是数据操作语言,例如SELECT, INSERT等语句. SQL语句有OPEN SQL语句和NATIVE SQL语句. OPEN SQL语句不是标准SQL语句,是ABAP/4语言,利用OPEN SQL语句能在Databases 和 Command 之间产生一个BUFFER,所以它有一个语言转换的过程.而NATIVE SQL语句则是标准的SQL语句, 它直接针对Databases操作.一. OPEN SQLOPEN SQL 语句包含有: SELECT,INSERT,UPDATE,MODIFY,DELETE,OPEN CURSOR, FETCH,CLOSE CURSOR,COMMIT WORK,ROLLBACK WORK等.1. SELECT语句语法格式:SELECT <result> [INTO <target>] [FROM <source>] [WHERE <condition>][GROUP BY <fields>] [ORDER BY <sort order>]其中: <result>指定要抓取的字段<target>将读取的记录存放在work area中<source>指定从那个TABLE中读取数据<condition>抓取资料的条件<fields>指定按那些字段分组<sort order>排序的字段及方式相关的系统变量:SY-SUBRC = 0 表示读取数据成功<> 0 表示未找到符合条件的记录SY-DBLNT: 被处理过的记录的笔数.相关的命令:EXIT. 退出循环.CHECK <logistic statement>.如果逻辑表达式成立,则继续执行,否则,开始下一次循环.◆.利用循环方式读取所有记录SELECT ….ENDSELECT.是循环方式读取记录的.例如:TABLES MARD.SELECT [DISTINCT] * FROM MARD WHERE MATNR = ‘3520421700’.<Statements>.ENDSELECT.(从MARD中抓取所有料号=3520421700的数据)◆读取一笔数据TABLES MARD.SELECT SINGLE * FROM MARD WHE RE MATNR = ‘3520421700’.(从MARA中抓取一笔料号=3520421700的资料)◆将读取的记录放在work area中,并且加入Internal table 中.格式有:... INTO <work area>... INTO CORRESPONDING FIELDS OF <work area>... INTO (f1, ..., fn) 变量组.... INTO TABLE <internal table>... INTO CORRESPONDING FIELDS OF TABLE <internal table>... APPENDING TABLE <internal table>... APPENDING CORRESPONDING FIELDS OF TABLE <internal table>举例一:TABLES MARD.DATA: BEGIN OF ITAB OCCURS 10,MATNR LIKE MARD-MATNR,WERKS LIKE MARD-WERKS,LGORT LIKE MARD-LGORT,LABST LIKE MARD-LABST,END OF ITAB.SELECT MATNR WERKS LGORT LABSTINTO CORRESPONDING FIELDS OF ITABFROM MARDWHERE MATNR = ‘3520421700’.APPEND ITAB.CLEAR ITAB.ENDSELECT.(将读取的结果放在Internal table ITAB中)举例二.TABLES MARD.SELECT MATNR MTART MAKTX INTO (t_matnr, t_mtart, maktx)FROM MARDWHERE MATNR = ‘3520421700’.<Statements>.ENDSELECT.(从MARD中抓取料号=3520421700的料号、类型和描述,放在变量t_matnr, t_mtart, maktx中)。

ABAP培训教程

ABAP培训教程
如使用SAP PI(Process Integration)或SAP PO(Process Orchestration)等中间 件产品,可以实现不同系统之间的数据交换和流程集成。
感谢您的观看
THANKS
打印功能
阐述在ABAP报表开发中如何实现打印功能,包括打印预览、打 印设置等。
06 ABAP高级特性
性能优化技巧
使用内表(Internal Tables)进行数据处理
内表是ABAP中一种高效的数据结构,可以极大地提高数据处理速度。
优化数据库访问
通过使用SELECT SINGLE、SELECT UP TO等语句,以及合理地使用索引和数据库缓存 ,可以减少数据库访问次数和提高查询效率。
句来实现。
循环结构用于重复执行一段 代码,直到满足特定的终止
条件。
01
02
03
LOOP语句通过指定循环条 件和循环体来实现循环逻辑

WHILE语句在每次循环开始 时判断条件,如果条件为真
则执行循环体。
04
05
FOR语句用于指定循环次数 和循环变量,以及循环体的
执行逻辑。
异常处理
01
异常处理用于捕获和处 理程序运行过程中的错 误或异常情况。
详细讲解如何进行报表布局设计,包括元素的添加、属性设置、样 式调整等。
交互设计
阐述在ABAP报表开发中如何实现交互设计,如动态显示、条件格 式等。
报表输出与打印
输出格式
介绍ABAP报表支持的输出格式,如PDF、Excel、Word等。
输出设件名、编码格 式等。
多线程编程支持
使用并行处理框架
01
ABAP提供了并行处理框架,可以支持多线程编程,从而提高程

ABAP快速入门培训教材

ABAP快速入门培训教材

ABAP快速入门培训教材3.ABAP基础3.3 屏幕输入指令在ABAP/4中要自屏幕输入变量的内容, 使用的命令是PARAMETERS 及 SELECTION-OPTIONS:1. PARAMETER:输入一个变量或字段内容2. SELECTION-OPTIONS:使用条件筛选画面来输入数据3.3.1 PARAMETERS 指令语法:PARAMETERS[DEFAULT ] [LOWER CASE] [OBLIGATORY] [AS CHECKBOX] [RADIOBUTTON GROUP ] 实例:PARAMETERS: NAME(8) TYPE C,AGE TYPE I,BIRTH TYPE D.执行行結果:图29LOWER CASE:ABAP/4预设是将字串输入值自动转换为大写, 加上此参数会将输入的资料转成小写。

OBLIGATORY:强制要求输入, 屏幕上会出現一个“ ?” , 使用者必须要输入才可。

AS CHECKBOX:输入 CHECKBOX的格式。

实例:PARAMETERS: TAX AS CHECKBOX DEFAULT ‘X’,NTD AS CHECKBOX.执行結果:图30RADIOBUTTON GROUP :输入 RADIO BUTTON GROUP 的方式。

实例:PARAMETERS: BOY RADIOBUTTON GROUP SEX DEFAULT ‘X’,GIRL RADIOBUTTON GROUP SEX.执行結果:图313.3.2 SELECTION-OPTIONS语法:SELECT-OPTIONS FOR[DEFAULT TO ][NO-EXTENSION][NO INTERVALS][LOWER CASE][OBLIGATORY]实例:TABLES SPFLI.SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID. *将条件的输入值存放入AIRLINE, 筛选对象为SPFLI中的CONNID栏位。

SAPABAP基础语法培训教程

SAPABAP基础语法培训教程

SAPABAP基础语法培训教程SAP ABAP(Advanced Business Application Programming)是一种基于ERP平台的开发语言,ABAP基础语法是程序员学习和掌握ABAP语言的基础。

本教程将为大家介绍ABAP语言的基本概念和语法规则。

1.ABAP程序结构ABAP程序由模块(MODULE)、函数(FUNCTION)和方法(METHOD)组成。

每个程序都由声明、定义和执行部分构成。

声明部分包括程序名称、输入输出参数和局部变量的声明。

定义部分包括逻辑处理和函数实现。

执行部分包括调用其他程序或函数的操作。

2.数据类型ABAP支持多种数据类型,包括整数、小数、字符串、日期和时间等。

声明和定义变量时需要指定数据类型,如:DATA num TYPE I.(整数类型的变量)ABAP还支持结构体和表格类型的数据。

在声明变量时,可以使用LIKE关键字指定一个已有变量的数据类型。

3.控制语句ABAP的控制语句包括条件语句和循环语句。

条件语句包括IF、CASE和WHEN等关键字。

例如:IF condition.statement.ELSEIF condition.statement.ELSE.statement.ENDIF.循环语句包括DO、WHILE和LOOP等关键字。

例如:DOnTIMES.statement.ENDDO.WHILE condition.statement.ENDWHILE.LOOP AT itab.statement.ENDLOOP.4.函数和方法ABAP可以定义自己的函数和方法,以供其他程序或函数调用。

函数由FUNCTION关键字定义,例如:FUNCTION function_name.statement.ENDFUNCTION.方法由METHOD关键字定义,例如:METHOD method_name.statement.ENDMETHOD.在函数和方法中可以通过EXPORTING关键字指定输出参数,通过IMPORTING关键字指定输入参数。

2024版SAPABAP基础语法培训教程

2024版SAPABAP基础语法培训教程

培训教程•基础概念与入门•控制结构与流程控制•数据处理与操作•模块化编程实践•调试技巧与问题解决•实战案例分析与练习基础概念与入门SAPABAP是SAP系统中用于开发应用程序的高级编程语言。

它支持结构化编程,具有强大的数据处理和逻辑判断能力。

SAPABAP广泛应用于SAP系统的定制开发、报表生成、接口编程等方面。

SAPABAP简介编程环境与工具SAPABAP开发环境提供代码编辑器、调试器、性能分析工具等。

SAPGUI用于与SAP系统交互的图形用户界面。

ABAP Workbench集成开发环境,包括多种开发工具,如数据字典、函数库、屏幕画板等。

包括字符型、数值型、日期型、时间型等。

数据类型变量数据类型转换用于存储数据的容器,包括局部变量、全局变量、静态变量等。

不同数据类型之间的转换规则和方法。

030201数据类型与变量包括算术运算符、比较运算符、逻辑运算符等。

运算符由变量、常量、运算符等组成的计算式。

表达式运算符的优先级和结合性规则,用于确定表达式的计算顺序。

优先级与结合性运算符与表达式控制结构与流程控制用于根据条件执行不同的操作,包括简单IF 、IF-ELSE 和嵌套IF 结构。

IF 语句根据表达式的值选择执行不同的代码块,类似于其他编程语言中的switch-case 结构。

CASE 语句AND 、OR 和NOT 等,用于组合或修改条件表达式的结果。

逻辑运算符条件语句FOR 循环根据指定的次数重复执行一段代码,通常用于遍历数组或处理具有固定次数的任务。

DO 循环重复执行一段代码,直到满足指定的结束条件,包括DO WHILE和DO UNTIL 两种形式。

LOOP 语句无限循环执行一段代码,直到遇到特定的退出语句(如EXIT 或CHECK )才结束。

循环语句03CHECK 语句检查指定条件是否满足,如果不满足则跳转到指定的标签位置。

01JUMP 语句无条件跳转到程序中的指定位置,通常与标签(LABEL )一起使用。

ABAP开发培训经典入门课件pptx(2024)

ABAP开发培训经典入门课件pptx(2024)

01
02
03
建立数据库连接
介绍如何在ABAP中建立 与数据库的连接,包括配 置数据源、设置连接参数 等。
2024/1/29
数据库配置管理
详细讲解数据库的配置管 理,包括数据库服务器的 配置、数据库用户的权限 管理等。
连接池技术
阐述连接池技术的原理及 其在ABAP中的应用,以 提高数据库连接的效率和 性能。
利用消息队列、企业服务总线(ESB)等中间件技术,实现ABAP 系统与其他系统的异步通信和数据交换。
API集成
通过调用其他系统提供的API接口,实现系统间的数据交互和业务 协同。
数据库集成
在数据库层面进行数据交换,如使用数据库链接(DBLink)或共 享数据库等方式。
31
系统扩展点与插件开发
01
扩展点概述
面向对象、事件驱动、数据库无关性、强大的数据处理能力 等。
ABAP语言应用领域
SAP系统定制开发、报表开发、接口开发、数据转换等。
4
开发环境搭建
安装SAP GUI客户端 ,并配置连接参数。
使用SAP GUI客户端 连接到SAP系统,并 打开ABAP开发环境 。
2024/1/29
在SAP系统中创建开 发用户,并分配相应 的开发权限。
具有更灵活的操作方式。
12
变量定义与赋值
变量定义
在ABAP中,变量必须先定义后使用。定义变量时需要指定变BAP中,可以使用赋值语句将值赋给变量。赋值语句的格式为“变量名 = 值”。此外,还可以使用输入输出语句从用户或文件中读取数据并赋给变量。
2024/1/29
2024/1/29
24
报表输出与打印
报表输出格式
介绍常见的报表输出格式,如PDF、Excel、Word等,让学员了解 不同输出格式的特点及适用场景。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

abap介绍ABAP是一种高级企业应用编程语言(Advanced Business Application Progra mming),起源于20世纪80年代。

经过不断的发展,现在的版本为ABAP/4,SAP R/3的应用程序就是用ABAP/4编写的。

ABAP/4是面向对象语言。

它支持封装性和继承性。

封装性是面向对象的基础,而继承性则是建立在封装性基础上的重要特性。

ABAP/4具有事件驱动的特性。

ABAP/4和COBOL具有类似之处。

ABAP/4适合生成报表。

ABAP/4支持对数据库的操作。

SAP最初开发ABAP/4(高级商业应用程序设计)语言仅为内部使用,为应用程序员提供优化的工作环境。

经过不断的改进和修改以满足商业领域的需要。

现在,A BAP/4已成为SAP开发所有自己的应用程序的仅有工具。

SAP客户用ABAP/4进行其自身开发。

这样的开发对R/3标准解决方案适应特殊问题非常重要。

ABAP/4开发工作平台包含所有用于创建和维护ABAP/4程序的工具。

ABAP/4的可解释特性使其易于生成、测试并运行程序的中级版本,以便将来生成最终版本。

此过程也叫做早期原形处理,意味着您不必丢弃中级版本。

ABAP/4是第四代支持结构化程序设计的语言。

它合并了所有通常的控制结构和模块化概念。

在ABAP/4开发宝典中文版的第一部分,对ABAP/4的基本特性进行了详细描述。

这些特性包括:ABAP/4- 带有各种类型和结构的声明数据的声明元素- 数据制作的操作元素- 控制程序流的控制元素- 反应外部事件的事件元素·ABAP/4支持多种语言。

文本摘要(例如,标题、页眉和其他文本)将根据程序代码分别存储。

您可以随时在不改变程序代码的情况下更改、转换和维护这些文本摘要。

·ABAP/4支持商业数据类型和操作。

您可以用特殊日期和时间字段进行计算。

系统会自动执行必需的类型转换。

·ABAP/4提供一系列功能处理字符串。

·ABAP/4包含一个叫OpenSQL的SQL子集。

用OpenSQL,您可以读取和访问数据库表,与所用的数据库系统无关。

·ABAP/4允许您定义和处理内部表,该表只在运行程序时存在。

内部表使其更容易处理数据表,并帮助使用程序中的复杂数据结构。

·ABAP/4允许您定义和调用子程序。

也可以调用其他程序的子程序。

参数能够以各种方式从子程序传递或传递到子程序。

·ABAP/4包含一种特殊子程序,叫做功能模块。

您可以在中央库中创建和维护功能模块。

在调用程序和子程序之间功能模块有一个明确定义的数据接口。

它们能够以调用程序的独立模式进行分别测试。

这里有两种主要的ABAP/4程序类型:·报表程序报表程序用于分析数据库表中的数据。

这种分析的结果可以显示在屏幕上或发送到打印机上。

逻辑数据库支持报表程序。

逻辑数据库是特殊的ABAP/4程序,使开发者不必编码所有的数据库访问。

·对话程序将对话程序组织为包含对话模块的模块池。

每个动态程序(由一个屏幕及其流逻辑组成的“动态程序”)都基于一个ABAP/4对话程序。

流逻辑包含对ABAP/4对话模块的调用。

一.要创建ABAP/4程序,请进行如下操作1. 在“SAPR/3”初始屏幕上选择“工具->ABAP/4工作台”。

出现“ABAP/4开发工作台”屏幕2. 选择“ABAP/4编辑器”“ABAP/4编辑器初始屏幕”如下所示:3. 为在“程序”字段中创建的程序输入名称(关于创建程序名称的详细信息,参见命名程序规则(页455))。

4. 选择“创建”。

不论在“对象组件”下选择什么,都出现“ABAP/4:程序属性”屏幕。

当命名并创建程序后,可以定义其属性(关于定义程序属性的详细信息,参见指定程序属性(页457))。

创建ABAP/4程序还有其它过程。

例如,可以:1. 选择“ABAP/4开发工作台”屏幕上的“对象浏览”。

2. 选择“对象列表”下的“程序”。

3. 选择“单一对象”下的“程序对象”。

4. 输入程序名并单击“显示”。

二.命名规则当创建程序名称时请遵循如下规则:- 使用至少1个但不超过8个字符。

- 不要使用下列字符- 句点(.)- 逗号(,)- 空格()- 括号'('')'- 单引号(')- 双引号(")- 等号(=)- 星号(*)- 元音变音(_,_,_,_,_,_)和'_'- 百分号(%)和下划线(_):因为这些符号是SQL语句的通配符,所以也会导致问题(参见为在程序中选定行指定条件)。

SAP建议在程序名称中不要使用它们。

创建程序名称时请遵守这些命名约定:_ 报表程序(以列表格式输出数据分析):Yaxxxxxx或Zaxxxxxx。

用应用程序区的分类字母替换a。

用任何有效字符替换x。

注意SAP报表程序遵守相似的命名约定:Raxxxxxx。

_ 任何其它ABAP/4程序(培训程序或事务程序):SAPMYxxx或SAPMZxxx。

用有效字符替换x。

注意标准SAPABAP/4程序遵守相似的命名约定:SAPMaxxx,其中a代表某应用程序区。

三.制定程序属性介绍程序属性决定程序属于哪种应用程序以及程序所链接的逻辑数据库。

必须谨慎输入属性以便系统能正确处理程序(有关程序属性的详细信息,参见重要的程序属性(页459))。

已经将名称分配给程序并选择“ABAP/4编辑器初始屏幕”上的“创建”时,出现“AB AP/4:程序属性”屏幕。

要输入程序属性,请进行如下操作1. 在字段“标题”中输入程序标题。

选择描述程序功能的标题。

系统自动将标题与文本摘要合并。

如果以后要更改标题,请按如下操作进行:- 选择“ABAP/4编辑器初始屏幕”上的“文本摘要”或“属性”。

- 选择“更改”。

2. 完成两个强制字段:- 如果创建报表程序,则在“类型”字段中输入1,如果创建模块存储,则在“类型”字段中输入M。

关于可能类型的列表,请单击可能条目箭头。

- 在“应用程序”字段中为应用程序输入分类字母,如财务会计输入F。

3. 如果创建报表(类型=1),请选择“确定”。

系统将特定报表属性自动插入输入字段。

然后看见附加字段“逻辑数据库”、“从应用程序”和“选择屏幕”(版本)。

4. 指定与程序相关的所有其他属性(有关程序属性的详细信息,参见重要的程序属性(页459))。

5. 选择“保存”以保存属性。

6. 出现“维护对象目录条目”窗口。

7. 输入开发类。

如果为培训或测试目的创建程序(如某私有对象),则输入开发类$TMP或选择“逻辑对象”。

8. 选择“保存”以保存开发类。

这将关闭“维护对象目录条目”窗口并返回“ABAP/4:程序属性”屏幕。

9. 选择“后退”离开屏幕。

如果要直接转到ABAP/4编辑器,请选择“转向->源代码”。

如果通过预定义开发类在“对象浏览器”中创建程序,则跳过步骤6到8。

四.重要的程序属性最重要的程序如下所述。

关于其它属性的详细信息(或关于此处描述的属性的详细信息),请选择相关的输入字段,并单击可能的条目箭头。

注意下述某些属性只适用于报表程序并不适用于其他ABAP/4程序。

类型除了类型1(如同报表的独立程序)和M(模块存储),还应该注意类型I(包含程序)。

包含程序是个独立的程序,它有两个主要特征。

首先,它包含程序代码,不同程序都可使用该代码。

其次,它用于模块化程序源代码,该代码分成逻辑相关部分。

其中每个部分都存储在不同的包含程序中。

包含程序改善源代码的可读性并有助于维护。

(有关包含程序的详细信息,参见包含程序)。

应用程序“应用程序”字段包括应用程序的缩写,如,财务会计缩写为F。

该必需条目使系统能将程序分配给适当的业务区。

开发类开发类对系统之间进行传输非常重要。

执行传输时,可以将分配给某个开发类的工作台对象组合起来。

如果用户在某组中工作,也许要将程序分配给现有开发类或创建新的开发类。

分配给开发类$TMP的程序是私有对象并且不能传输到其他系统。

但是,也可以通过选择“ABAP/4编辑器初始屏幕”上的“程序->重新分配...”更改分配给程序的开发类。

应用程序中的逻辑数据库(仅报表程序)这些属性决定报表使用哪个逻辑数据库检索数据,以及逻辑数据库属于哪个应用程序。

应用程序中数据库名称必须是唯一的。

但是,整个系统可以包括数个同名数据库。

因此指定应用程序很重要。

关于逻辑数据库的详细信息,参见逻辑数据库的特性和维护。

如果报表程序直接读取数据,而未使用逻辑数据库(关于此主题的详细信息,参见访问带逻辑数据库的数据库表),则应该象通常一样指定应用程序,但将“逻辑数据库”字段置空。

选择屏幕版本(仅报表程序)如果没有指定选择屏幕版本,则系统在逻辑数据库选择标准、报表特定参数及选择选项的基础上自动创建选择屏幕(关于选择屏幕的详细信息,参见使用选择屏幕)。

如果想使用自己的选择屏幕,请在此字段中输入号码。

该号码必须小于1000。

可以通过按F4或在DBxxxSEL程序中找到现有选择屏幕号码(详细信息,参见逻辑数据库选择)。

大写/小写显示和存储时,如果要让ABAP/4编辑器将程序代码与输入时保持相同,则请将该字段置空。

如果选择该字段,则所有的程序代码(除了引号中的文本及注释外)都转换成大写字母。

屏幕显示依赖于所使用的编辑器模式(详细信息,参见文档ABAP /4工作台工具。

编辑器锁定如果设置此属性,则其他用户则不能修改、改名或删除程序。

只有用户可以更改程序、维护属性、文本摘要及文档;或者解除锁定。

定点算术如果设置此属性,系统则根据小数点位数将类型P字段四舍五入,或用零填补(关于类型P字段的详细信息,参见数字数据类型(页3-4))。

这种情况下,无论在用户主记录中指定了什么,小数点字符总是句点(.)。

通过变式启动(仅报表程序)如果设置该属性,则用户只可以使用变式启动报表程序。

在启动程序之前,必须创建至少一个报表变式(关于创建变式的详细信息,参见使用变式预设置选择)。

五.编写程序介绍在ABAP/4编辑器中编写ABAP/4程序。

可以直接从“ABAP/4程序属性”屏幕切换到编辑器,也可以从“ABAP/4编辑器初始屏幕”中调用编辑器。

请进行如下操作1. 在“ABAP/4程序属性”屏幕上选择“转向->源代码”或“源代码”。

选定“源代码”并选择“ABAP/4编辑器初始屏幕”上的“更改”。

出现“ABAP/4编辑器编辑程序”屏幕。

系统自动输入第一个ABAP/4语句,如REPORT <report name> or PROGRAM <program name>.对于<report/program name>,系统使用在“ABAP/4编辑器初始屏幕”上输入的名称。

相关文档
最新文档