ABAP培训资料

合集下载

SAP ABAP开发培训

SAP ABAP开发培训

THANKS
感谢观看
加密传输和存储
对敏感数据进行加密传输和存 储,保护数据安全。
经典性能优化案例分享
数据库查询优化
通过优化SQL语句和索引设计,提高查询效 率。
并发控制优化
通过合理的并发控制机制,提高系统并发处 理能力。
代码重构
对冗余、低效的代码进行重构,提高程序执 行效率。
系统资源调优
根据系统资源使用情况,调整配置参数,提 高资源利用率。
案例实现过程
需求分析、设计、编码、测试等步骤。
案例总结与拓展
对案例进行总结,提出改进意见和拓展思路。
04
CATALOGUE
界面设计与用户体验优化
界面元素及布局规划
界面元素
包括文本框、按钮、下拉菜单、表格等常用界面元素,以及它们在 SAP ABAP开发中的实现方法。
布局规划
讲解如何合理规划界面布局,包括界面元素的排列、分组、对齐等 ,以提供清晰、易用的用户界面。
视觉设计
介绍如何运用色彩、字 体、图标等视觉元素, 提升界面的美观度和易 用性。
经典界面设计案例分享
案例介绍
分享一些经典的SAP ABAP界面设计案例,包括它们的设计思路 、实现方法和用户体验优化措施。
案例分析
对案例进行深入分析,探讨其优点和不足,以及可以改进的地方。
案例实践
提供一些实践机会,让学员亲手实现一些经典的界面设计案例,加 深对所学知识的理解和应用。
03
如何在ABAP开发中使用设计模式提高代码质量和可重用性。
调试技巧与问题排查方法
1 2
调试工具介绍
SAP提供的ABAP调试工具及其使用方法。
断点与日志
设置断点、查看变量值、输出日志等调试手段。

ABAP入门知识最全总结新人小白必备学习资料

ABAP入门知识最全总结新人小白必备学习资料
ABAP是一种面向对象的编程语言, 支持结构化编程和面向对象编程两 种方式,具有强大的数据处理和报 表生成功能。
SAP系统与ABAP关系
01
SAP系统是一款广泛应用于企业 资源计划(ERP)、供应链管理 (SCM)、客户关系管理 (CRM)等领域的软件产品。
02
ABAP是SAP系统的开发语言, 用于编写SAP系统中的业务逻辑、 数据处理和报表生成等功能。
调试日志
在调试过程中,可以开启调试日 志功能,记录程序执行过程中的 详细信息和操作步骤。这对于复 杂问题的排查和分析非常有帮助。
08
实战案例分析与经验分 享
案例一:简单报表开发实例
报表需求分析与设计
明确报表目的、数据源和输出格式,设计报 表布局和字段。
ABAP报表开发流程
创建报表程序,定义数据源和选择条件,编 写报表逻辑和输出处理。
根据实际需求设置报表的输出格式, 如PDF、Excel、Word等。
格式调整
调整报表的页面设置、边距、字体、 颜色等,确保报表输出的美观和易读 性。
报表性能优化策略
数据源优化
优化数据库查询语句,减少数据冗余和提高查询 效率。
报表缓存
合理利用报表缓存机制,减少重复计算和数据库 访问次数。
分页处理
对于大量数据的报表,采用分页处理技术,提高 报表加载速度和用户体验。
Eclipse与SAP系统连接
配置Eclipse连接参数,连接到SAP系统,实现ABAP代码的上传、下载和执行等操作。
其他辅助工具推荐
SAP Notepad
一款轻量级的文本编辑器,支持ABAP语法高亮显示和代 码折叠等功能,适合编写简单的ABAP程序。
ABAP Doc

ABAP培训资料

ABAP培训资料

课前预习练习:海尔需要二次开发项目经理BOB需要做哪些事首先需要开发change request –CR习题1:当ABAP Interpreter在解释ABAP程序的时候发现一个 OPEN SQL语句它会将OPEN SQL发送给Database答案:错原因:当ABAP interpreter 遇到OPEN SQL的时候,它首先会把它交给 Database Interface 进行处理, 然后查看local buffer 中是否存在需要的数据, 如果没有所需数据 , 才会进入数据库进行查询习题2: Database Interface 总是从数据库中调取数据答案:错原因:当local buffer 中有所需数据时, 只需要从中获取就可以了,不用进入数据库进行查询ABAP语言的特征1. Open SQL 是ABAP 语言的一部分,是嵌在ABAP语言中的,它不同于JAVA,SQL 并不是JAVA的组成部分2. Abap的基本特点:早期是完全面向过程的,而后发展为支持面向对象,它不是完全面向对象的语言,它是一种混合的模式面向过程:一个方法不属于一个类或一个对象面向对象:方法一定属于一个类或一个对象3. Platform-independent 指的是可以跨数据库平台,Abap platform 指的是datebase4. ABAP语言是基于会话的.主要面向business application-商务应用,一个有意义的ABAP程序一定要操作数据库,然而ABAP不能对底层进行操作.5. Downwards compatible向下兼容: 过去的老语法现在仍然支持例如:在定义一个内表的时候可以加addtion (with head line) ,在新一代的ABAP编程中不建议定义with head line 而是使用采用其他方式,但是这种语法仍然支持ABAP的基本语法1. ABAP 程序是由若干语句构成的2. 第一个单词必须是 ABAP的keyword关键字3. 用英文的句号”.”关闭ABAP语句4. 两个单词之间用空格分隔.5. 可以缩进6. 多条语句可以写在一行(不建议),相反一条语句也可以写在多行7. ABAP 大小写不敏感注:放在单引号中的(字符串)是大小写敏感的Addition-附属语句(相当于英语中的从句)可以加强语句功能Pretty painter :功能:可以设置语句缩进和关键字大小写.Comments注释开头为asterisk (*)的语句为注释语句 ,注释行运行的时候会被忽略Chained statement链语句在使用相同关键字时,为了方便编程,可以使用链语句.重要:虽然链语句的代码量相对较小,但它的功能只是为了方便编程人员编写代码,链语句并不能提高程序本身的性能,因为编译链语句时,系统并不是当成一句执行的,而是单独的进行编译的,效果和写若干个单独语句是一样的.例: write: wa_scarr-carrid,wa_scarr-carrname,wa_scarr-url.写法:关键字后使用Colon(冒号),每一个单独语句用comma(逗号)分隔Return value返回值Sy-subrc :Sy是结构体变量,属于全局变量.Sy-subrc 中的rc return code功能:存放系统当前状态Sy-subrc = 0 : 表示刚才执行的语句执行成功了如果不为0 则表示执行不成功Inactive and Active Development Objects激活概念:1. 建立程序2. 取消 with top incl (如果一个程序中需要引用其他程序,需要这个选项)3. TYPE 选项中需要指定excutable Program (相当于带main函数的java类 ), 到处可以运行module pool包含dynpro 屏幕.不能直接启动,需要打包TCODE 或放入菜单中运行.include 是其他程序调用运行的subroutine 是子程序放局部程序function groupinterface 相当于java中的接口 .4. 逻辑数据库选项5. 程序所建立时的系统名称选项F1帮助:将鼠标放到关键字中按F1然后会出现帮助.选择instrcution 指令便能提供详细的帮助说明在帮助说明中. “[]” 扩起来的都是 optional 可选的Mantatory 强制的激活的概念:对于一个对象来说,有两种状态: active(激活)和inactive(非激活)然而对象的版本却有多个:当一个被编辑的对象为inactive 时,保存后,它便是一个临时的版本.Active的优点:避免使正在编辑中或出现BUG的程序被发布.当要激活一个出现语法错误的程序时,系统会自动提示存在语法错误.用户可以修改程序之后激活,也可以强行激活程序认证考试技巧:如果一道题的提干非常的绝对,例如出现must,have to ,any time等词,这种题的答案大部分是错误的.创建transaction code当需要把ABAP程序打包成TCODE时,按照以下步骤进行操作1. 激活需要打包的ABAP program2. 右键程序create--Transaction3. 输入相应TCODE4. 输入short text5. 选择第二个选项6. 输入需要打包的程序名7. 选择可以执行该TCODE 的GUI注意:TCODE 也属于一个仓库对象也可以传输授权机制:只有当basis管理员授权后,才能够使用TCODEPackage包的建立注意:包也属于仓库对象,也需要传输1. 输入包名,建立相应的包2. Transport layer 配置传输层3. 设置包的类型重要:包的类型Main package 主包特点:只能包含包Not a main package 普通包特点:普通包可以包含包也可以包含repository object对象重要:包一旦创建完毕,就不能再修改包的类型了当F1帮助不足以满足需求的时候 , 可以采用help 中的 SAP library 寻求帮助程序的拷贝:1. 右键程序 COPY 程序2. 修改COPY后的程序名3. 将所有选项选中(可以copy 包括screen 一系列的东西)4. 选择程序存放的包注意:仓库中的数据字典是用来存放数据结构的而数据字典中不存放程序管理信息系统1. 先分析客观世界存在的实体2. 分析出实体之间的关系3. 把客观实体的关系抽象出概念模型4. (一般系统只是直接生成物理表) 在ABAP中,先把概念模型放入字典库 ,创建透明表(Transparent table)5. 透明表和数据库表进行一一映射透明表Transparent table透明表是字典库中的对象,是物理表的描述理解:透明表就是物理表的表结构透明表描述物理表有哪些字段长度类型主键外键重点:在建立透明表并激活后,系统就会在数据库建立一个唯一同名的物理表与之相对应Flight Data Model机场数据模型一个航空公司对应多条航线一条航线对应多个航班一个航班又可以被旅行机构定出多张票一个航线包含两个机场一个机场对应多个航线不是每个城市都有机场任何一个城市都是0个或N个机场对于乘客来说逻辑上有多个机场机场也对应多个城市场景:鞍山没有机场,但是大连沈阳有机场,相当于鞍山有两个逻辑机场将模型转化成透明表Scarr---Airline (航空公司表)mandt字段(client id)所代表记录可以标识是哪特定client的记录,所以凡是表的第一个主键字段是mandt(data element是s_mandt) ,就标识该表一定是client-specify的数据重要:在两张表之间,字段多的那张表依赖于字段少的那张表(由于多字段表中有外键字段)主外键主键: 一个表的概念在某一张表某一个字段或某几个联合字段能够区别于任何一个字段外键: 两个表的概念主键表和外键表外键表中的单个字段或者多个联合字段是主键表的主键, 则称这写字段是该外键表的外键主外键关系:主键表有约束外键表的行为Scenario场景学生表(主键表) 成绩表(外键表)当学生被开除后, 在成绩表中插入该学生成绩的时候就会有插入异常Transparent Table透明表的定义透明表的定义有两种方法:1. 像传统表一样直接通过类型定义字段2. 通过三层结构进行定义(推荐)透明表的三层结构定义1. 定义透明表2. 根据Domain 建立相应 Data element3. 根据Data element 定义相应字段Data Element功能: 可以定义字段的类型Data Element分为两部分1. 语义上的特点—描述它的作用 , 语义上的特点会被定义在字典库的对象中2. 描述字段技术上的特点-----传统的数据类型, 长度以及取值范围 . 技术上的特点要通过引用字典库的对象 domain 来定义Domain表示一个域, 可以有长度,和范围重点:可以用data element来定义透明表字段,结构体字段以及内存变量的类型,但是Domain则不可以,它的只能够靠DE间接使用透明表只是一个表结构不能够包含数据物理表可以存放原数据通过se11 可以对字典库数据对象进行维护不要对 sap的系统表进行change 或是 create在结构体中每个字段叫做 componentComponent type 就是字段类型Data object一般可以理解为内存变量,但它不仅仅是内存变量,它还包含:变量常量文字例: I = 200 200也叫data object可以使用全局结构体定义 data object数据类型TYPE1. 系统原有的数据类型2. 用户自己定义的数据类型通过keyword Tables也可以定义一个结构类型, 后面跟一个透明表的名在字典库中的结构体用来负责定义内存变量,而透明表可以代替结构体直接定义内存变量透明表与结构体的共同点与不同点相同点:1. 它们都是多个字段的集合2. 字段都可以使用Data element来定义3. 它们都可以定义内存变量或内存数据对象不同点:1. 透明表除了能够定义内存结构体之外,它的主要作用是定义物理表的表结构.而对于结构体来说,结构体的作用是描述内存结构的2. 透明表主要描述的是硬盘上物理表,也可以描述内存变量,而结构体只能描述内存变量.因此.由于透明表与物理表结构相同且不可分解,所以,透明表是不可以嵌套的. 但结构体是可以嵌套的(嵌套结构体,或者internal table内表)3. 结构体没有主外键,而透明表有主外键结构体的构成可以一分为二1. flat structure 扁平结构体2. complex structure 复合结构体当透明表取代结构体定义内存变量的时候,那此时的透明表一定是Flat structure ,而且定义出的内存变量也是flat structure重要:透明表只能是扁平的:当一个透明表是client-specify 的时候, 它的第一个字段一定是 MANDT . 所以它创建的数据对象的第一个字段也是 MANDT, 因为数据对象的字段数与透明表的字段数一样多.而且定义出的数据对象也一定是Flat structureTransparent Table 透明表, field 字段, Data element 和domain 都是对象采用parameters定义变量Parameters pa_carr type spfli-carrid.1. 系统分配内存2. 变量自动会被ABAP运行环境解释成selection screen注:如果是单纯的Data定义变量,只能够分配内存,而不能够创建selection screenParameters和Data的共同点与不同点共同点:都是内存变量不同点:data 是纯内存变量,Parameters 还赠送一个屏幕F1与F4帮助F1:当采用字典库中并有Data element 的字段时, 可以使用f1帮助, 它可以显示出DE语义上的特点F4:需要单独制作(字典库对象)search help 功能:显示出可选值Data type数据类型数据类型分为两种:1. 数据库中自带的类型2. 字典库中的对象类型数据类型可以定义哪些变量1. 定义内存变量2. 可以定义ABAP subroutine 子程序的参数3. 在Abap object-oriented面向对象中定义类中的属性和方法4. 在function mudual 中定义参数ABAP中的各种对象1. ABAP dictionary objectStructure 结构体Internal table 内表Repository Program type 仓库中的程序类型2. data object内存中的对象,需要分配内存的对象3. object-oriented 面向对象中的类所创建的instance实例对象ABAP中定义变量使用的三种类型:1. ABAP predefined standard type 天生自带的类型2. 用户自定义的数据类型(局部类型)3. 数据字典中的类型(全局类型)注意:数据类型不占内存,只有定义后的变量才占内存,domain不能用来定义变量注:教材中的黄皮书代表字典库global data typesABAP predefined standard type ABAP自带类型一. Complete type完全类型(不需要指定长度)d(日期): YYYYMMDD例如”20071028”t(时间): HHMMSSi(整形):4bytesf(浮点型): 8bytesstring(字符串): 注:区别c类型,前者可拓展后者为定长xstring(16进制字符串):16进制字符串例如’0000ff’二. Incomplete不完全类型(需要指定长度,如果不指定,长度为缺省值)p(用数字表示的字符串): data p1(10) type p value ‘3.14’.c(字符串): data c1(8) type c.缺省为c1(1)用一个字符表示boolean默认x代表truen(数字字符串):本质上是字符串,代表的是数字只能使用十进制数字, “.”和”-”x(十六进制字符串):必须指定长度的16进制的字符串相当与xString特别注意: P为压缩类型,当声明长度为3时,它所占的内存为3*2 = 6 bytes 每个数字占用1个byte,然而正负号以及小数点需要占用1byte.假设P类型长度为n,则该类型所能容纳的数字个数为n*2 – 1个.Local types自定义类型定义使用types keyword关键字定义 local types只能在本程序内部使用例:Types type_name(10) type c.Data do_name type type_name.使用DATA定义内存变量:1. 可以使用type选择类型例:Data do_name type type_name.2. 可以使用like关键字根据变量声明变量.3. 赋初值可以使用 value 关键字例data m_i type I value 17.重要:用like定义变量只能拷贝目标变量类型,而不拷贝值题目:Given:Tables spfli.which of the following statements are correct? choose the correct answers:A. this statement difines a transparent tableB. this statement difines a table which type is a transparent table named 'spfli'C. spfli-carrid = 'AA'. may be a correct usageD. it defines a data object.E. spfli is a transparent table's name , and it's also a struture data object whose data type is a transparent table of spfli as well答案cdeE. spfli is a transparent table's name , and it's also a struture data object whose data type is a transparent table of spfli as well:spfli 是一个透明表, 用他定义了一个同名的结构体类型的数据对象which of the following statements concerning the usage of PARAMETERS are correct? choose the correct answers:A. PARAMETERS pa_carr TYPE spfli-connid.B. PARAMETERS mypa_carrid TYPE spfli-connid default '0017'.C. PARAMETERS myid TYPE spfli-connid value '0016'.D. data myid type spfli-connid.PARAMETERS myid1 like myid .E. PARAMETERS myid TYPE spfli-connid value '0016'.F. PARAMETERS myid1 type spfli-connid default '0018'. 答案:A D FB. PARAMETERS mypa_carrid, mypa_carrid不能超过8个字符。

ABAP培训资料

ABAP培训资料

Standard length 8 4 8 1 1 8 6 1
Permitted length 1-16 4 8 1-max. 1-max. 8 6 1-max.
R
numeric
P I F N
alphanumeric
C D T X
SAP AG
File: ABAP开发培训.ppt
30/173
ABAP 数据类型和基本语法
Data objects
occupy their own memory space are of a particular type are concrete examples of data types
R
SAP AG
File: ABAP开发培训.ppt
28/173
ABAP 数据类型和基本语法
File: ABAP开发培训.ppt
1/173
培训主题
ABAP 开发介绍 ABAP 数据类型和基本语法 选择屏幕的设计 OPEN SQL INTERNAL TABLE 操作 EVENT 介绍 报表输出(LIST) ALV输出
BDC导入
模块化程序设计 HIDE 技术
29/173
ABAP 数据类型和基本语法
基本的数据类型
Predefined Data Types
4/21
Data type
Predefined (P,I,F,C,N,D,T,X)
User-defined
Elementary
Structured
Structured type
Table type
Data type
在上面运行 数据库的访问 通信,ABAP还可以和其它的系统进行通信,同时外 部的系统也可一访问ABAP 系统的监控和管理

ABAP培训资料

ABAP培训资料

F1 F4帮助按钮CLIENT代表虚拟的组织,并分为两种1. CLIENT-SPECIFIC / CLIENT-DEPENDENT2. CROSS-CLIENT / CLIENT-INDEPENDENTCUSTOMIZING分为两部分1. CLIENT-SPECIFIC 配置2. CROSS-CLIENT 配置REPOSITORY OBJECTS仓库对象全是CROSS-CLIENT的ASAP ROADMAP(SAP配置路线图)1. BASIS模块先对上线系统进行配置2. 各模块顾问(例如MM ,SD)进行配置3. 当需要开发额外功能的时候,ABAP人员进行开发开发三种方式1.CUSTOMER DEVELOPMENT 独立的开发 (推荐使用)2.EXTENSION 加强的开发 (不推荐使用)3.MODIFICATIONS 修改的开发 (强烈不推荐使用,可能对日后升级造成困难)SCREEN功能:用户可以通过屏幕输入数据库查询条件,并将数据打印出来(列表)并显示给用户BUFFER:每个应用服务器APPLICATION SERVER 都有一个大的SHARED MEMORY而对于每一个 WORK PROCESS 都拥有一个 LOCAL BUFFER,在LOCAL BUFFER 中可以存放一些不经常改变的数据对象,或是只读的对象SAP GUI的基本方式1. SAP GUI FOR WINDOWS (优点:操作数据速度较快缺点:不跨平台,而且需要安装客户端)2. SAP GUI FOR JAVA (优点:可以跨平台缺点:操作速度较FOR WINDOWS 略慢)3. SAP GUI FOR HTML (优点:0 安装 , 查看少量数据较方便缺点:对网络传输要求较高,速度较慢)SAP BASIS DATABASE LAYER(数据库层)在LOCAL BUFFER拥有一个TABLE BUFFER可以将不经常改变的表放入到TABLE BUFFER中系统之间的通信多个DISPATCHER 由 MESSAGE SERVER 进行通信管理多个系统之间由GATEWAY进行通信管理INSTANCE实例间不能直接通信要通过DISPATHER和MS进行通信占有释放ABAP与数据库的连接ABAP不需要自己连接数据库,这不同于JAVA语言每个工作进程启动后就已经连接到数据库上了长事务运行:当有用户占用多个进程并且执行LONG-RUNNING ABAP PROGRAM(长运行时间程序例:死循环程序)时,其余用户只能使用剩余的少量进程,这会导致多数用户成为等待状态,速度会非常慢,解决方法:通过BASIS人员对占用多个进程的用户进行操作或删除,释放线程,缓解运行压力BACKGROUND PROCESSING(后台进程)特点:用户不能手动控制例如:系统晚12点自动盘点1. 分别配两个服务器 DIALOG SERVER 和 BACKGROUND PROCESSING SERVER2. DS 中的DWP在数据库中SCHEDULING TABLE(日程表)中插入JOB,设置后台线程任务3. BPS 中的 DWP定期(默认:60 S)循环查询SCHEDULING TABLE表,当发现有新的后台任务后,将任务转给 BPS 中的BWP4. BWP 根据任务对数据库进行操作打印机制PrintingSWP-打印进程可以配置也可以不配置但需要配置一个DWP1. 用户通过点击打印按钮发送打印请求 (数据为可识别的编码方式)2. DWP 将打印请求放入到Spool Request-打印队列(可以是Database / File System) (数据为可识别的编码方式)3. SWP 每隔一段时间就会到队列中寻找打印任务,当找到新的打印任务时,便执行打印任务.4. 打印任务可以发送给本地Operating System Spool(操作系统打印线程)进行打印,也可以通过网络在远程打印机上进行打印(例:老总办公室的打印机可以远程接受远程打印报表)(此时数据是不可识别的2进制代码)Lock Admistration加锁机制EWP 可以配也可以不配必须配DWP如果配置该服务器就叫做加锁服务器操作:1. 使用Su3操作用户主数据(此时系统已经把数据库的用户主数据锁住了)2. 新开一个session 再使用SU3 此时无法进入并修改用户数据,因为主数据已经被加锁ewp锁住的是表在内存中所对应的对象用户可以自己定义锁锁的类型:Shared lock共享锁(read lock)同时读读兼容同时读写或写写不兼容Exclusive lock独占锁只要用户独占不允许任何操作(增删改查)注:如果锁对象被激活,系统将会自动生成两个function module加锁方法和解锁Enqueue(加锁) dequeue(解锁)Dialog server 必须要依附于能加锁的服务器进行加锁要通过领导加锁是给内存中的表的对象加锁,通过锁内存锁数据库目的是锁数据库Multiplexing 多路复用原理:有线电视利用有线电视传输间隙进行网络传输DWP的处理流程用户在点击按钮的时候,可能执行一个或多个ABAP程序,可能有一个或多个请求程序之间可能有串联关系, 当第一个程序完成后会带动第二个程序运行,但是这个程序也需要放到队列中并等待空闲线程.只有当所有的程序或请求都执行完毕后,才能够出现效果PBO : process before outputPAI : process After inputAbap screen 在弹出的时间点之前之后分别要触发两个事件 PBO 和PAI 处理一个事件,需要添加相应的代码加以实现事件的触发机制 trigger为事件所写的代码块叫做 event block注:同一个程序屏幕编号不能重复一个屏幕前后的PBO PAI 不一定能在同一个DWP中,由于时间的关系, 系统可能会把它们分到不同的DWP中. 但给用户的感觉却是流畅的.Enterprise Structure:企业架构在逻辑上的大小顺序:Client > company code > plant > Sales Organization > Division > Storage Locationsclient(集团)代表企业企业的分支机构都拥有公司的编码下属工厂进行生产销售组织子机构仓库注:系统上线之前要把所有组织机构全都要配置到R/3中Customer master客户主数据采购冰箱general data 公共数据financial accounting data 财务信息g/l 总账数据库的转换Sap中成品半成品都算是物料Message Type分三种类型:1. immediately 创建订单的时候立即创建发票2. on request 有需求时创建发票3. next selection run or at a specified time 在指定时间里创建发票Message Type消息的类型包括:在屏幕上看到发票在打印机传真一个发票Email 传发票Edi 电子数据交换Business Workflow工作流Employee 员工 Supervisor 上级/长官场景:1. 员工需要预约在电脑上填写预约申请2. 通过工作流处理上司电脑上接到预约申请并做出决定是否批准3. 批准后工作流结束4. 如果没有批准被拒绝的预约申请消息会被传送到员工手中,并需要进一步决策,是否需要重新修改申请表,或者是不修改申请表,直接结束工作流5. 如果重新修改申请表,上级则再一次得到申请表,如果批准,则工作流结束Business Scenario 工作场景利用场景解释工作流Abap program process ----Main Business ScenarioSap abap 必须要有业务场景飞机场的业务模型Sap flight date modelDeparture city 起飞城市Departure airport 起飞机场Destination airport 目的机场Destination city 目的城市帮助旅行代理或旅行社订票的基本需求:在特定的时间到指定的地点处理特定的航班订票附加的信息Price 价格Capacity 容量非常重要:航班模型的表:SCARR 航空公司表SPFLI 航线表SFLIGHT 航班表(订票时所需要的表)以上表的关系是树形关系一个航空公司对应多个航线,而一个航线对应多个航班Client/Sever ArchitectureWork process 可以执行ABAPprogram应用服务器一分为二:1. 一部分可以执行JAVA程序2. 另一部分是ABAP程序Black box黑盒对于gui和用户来说相当于一个黑匣子View for the User用户视图screen标准屏幕:standard screen dynpro dynimic :功能用户输入 ,为了插入数据库,selection screen选择屏幕: 功能:接受用户输入的查询的条件对数据库进行查询(一般情况下)List列表功能:将数据显示给用户(重要:每个ABAP程序员必须要掌握)Interaction Between Server Layers在服务器中两层之间的交互ABAP程序启动时要到WP中执行程序同一个程序分成不同块Start of screenAbap所有的 repository全都在数据库中储存程序的背景 context定义选择屏幕时,所添加的屏幕字段,是根据数据字典中的字段定义的所以定义前要从repository中去查看需要哪一种类型的字段屏幕内存以及硬盘上的字段变量都对应相同的但是储存的位置不同在程序中,可以把内存中的变量当作数据库条件使用,使用where语句进行数据库操作然后数据库将结果集返回给ABAP 程序, 最后返回给列表屏幕程序可以将内存变量当作条件重要:在新版本中Development classes 属于变化了package包Abap运行过程需要使用repository (储存在数据库中)仓库都跨client依赖分两部分配置表应用表Repository结构Repository(仓库) 包含 application components(应用组件) 和 package (包) Package(包) 中包含 Repository Objects(仓库对象)重要:创建的仓库对象必须放到一个包中管理对象的系统就是 Information System信息系统Object navigator IDE集成开发环境Abap dictionary se11 维护Class builder Se24 面向对象开发(Abap语言刚开始是面向过程后来也支持面向对象开发)Function builder se37全局方法Abap editor Se41 在修改sap 自己的程序时Screen painterSe80中的主要构成Navigation areaRepository broswerTransport orgnization 非常重要Context menu 弹出菜单Sap 仓库对象分成两部分系统标准对象用户对象Sap namespace customer namespace(必须用Y或者Z开头) 重要:只要是自己创建的必须要(Z Y开头)组织有效开发Sap 三系统架构图3-system landscape1.DEV 开发系统2.TST/QAS 测试系统3.PRD 生产系统优点:三个系统可以降低企业风险开发测试生产DEV --- TST/QAS | (需要盖章) PRD组织步骤:1. 配置或程序开发完毕后需要发送至测试服务器进行测试2. 测试完毕后需要盖章然后发送至生产系统 ,此时生产系统停止运作3. 配置完毕后生产系统重新启动运作相邻两系统需要从左到右进行传输(开发/配置)(transportation)配置的传输包括模块的配置: MM PP SD等.优点:开发的组织有利于传输Sap传输请求Change Request变更请求 = Transportation Request传输请求请求的创建是为了传输开发请求 workbench change request请求所有开发以及配置的东西必须放到request(容器)中Change request 进行传输相当于 projectChange request 下可以装package不是每一个对象都需要设置request 比如不参与传输的对象Local project,可以不参与传输创建project的时候点击SAVE便创建了全局对象(需要设置request 以用于传输),点击local object 可以创建本地对象(因为不需要传输所以不需要设置request)Project 项目的三个重要标准1. 项目本身2. 开发项目的人员3. 项目开发的时间当项目开发人员完成所有任务后,项目负责人便可以release project (释放工程),然后才能够向下一个系统进行传输Change request (变更请求)的命名规范前三个字母是系统的标识(DEV ,TST/QAS, PRD) +K9+5位数字老师的要求的命名规范: Z开头+ project name + 3个数字(用户号)Abap中的包不可以重名创建project的时候需要选择相应项目经理的request激活:一个仓库对象有激活和非激活概念。

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 培训 教材

left join 图示
A a1 a2 a3 B b1 b2 b3 C c1 c2 c3 A a1 a3 a3 D d1 d2 d3 E e1 e2 e3
A a1 a2 a3 a3
B b1 b2 b3 b3
C c1 c2 c3 c3
D d1
E e1
d2 d3
e2 e3
多表结合查询

ABAP/4数据字典
ABAP/4数据字典
ABAP/4数据字典是和ABAP/4工作台密切结
合在一起的一个活动组件 数据字典的修改将立刻影响到相关的程序和 屏幕 R/3系统是一个解释执行的系统,程序或是屏 幕并不直接读取源代码,而是执行内部经过 “生成”的描述 对于ABAP/4字典的修改将触发内部描述的重 新生成
身或内表。可以用TYPES语句或DATA语句定义字段串。通过DATA语 句不能定义独立数据类型,而可以定义具有结构化类型的数据对象。 内表还“垂直地”扩展。可以用TYPES或DATA语句的OCCURS参数 定义内表。
内表:内表由相同类型的几行组成。与字段串仅“水平地”扩展不同,
声明数据
结构化数据类型示例:下列是ABAP/4中结构化数据类型的示例 由一系列基本数据类型组成的字段串(平铺结构,仅“水平”) 为基本字段定义的内表(基本数据类型的动态排列,仅“垂直”) 为简单字段串定义的内表(带有行和列的表)
SELECT S032~SSOUR S032~VRSIO * S031~SPWOC * S031~SPBUP S032~WERKS S032~LGORT S032~MATNR S031~SPMON S031~BASME S031~MZUBB S031~WZUBB S031~MAGBB S031~WAGBB S032~MTART S032~MBWBEST S032~WBWBEST FROM S032 LEFT OUTER JOIN S031 ON S031~MATNR = S032~MATNR AND S031~LGORT = S032~LGORT INTO CORRESPONDING FIELDS OF TABLE IT_S031 WHERE S032~MATNR IN S_MATNR AND S032~LGORT IN S_LGORT * AND S031~SPMON IN R_MONTH AND S032~MTART IN S_MTART.

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栏位。

ABAP培训(SmartForms工具)

ABAP培训(SmartForms工具)
6 为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第三章 SmartForms工具 SmartForms工具
7
为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第三章 SmartForms工具 SmartForms工具
在设置Form时就可以选择上传图片了。
设置显示小数的位数 禁止数字前导0的显示 禁止显示空值 右对齐(只有在定义了输出长度时 才有效) 用指定的字符替换左边的空格. 该设置效果和ABAP的CONDENSE语句 相同,删除字符字段中多余空格 表1-4
12 为客户创造价值 为员工创造价值 为社会创造价值
谢谢
ABAP培训(报表部分) ABAP培训(报表部分) 培训
林森
ABAP培训(报表部分)
内容简介
1 2
2
为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第三章 SmartForms工具 SmartForms工具
Smart Forms 表格设计器包含一个极易操作的图形用户界面,用户可以 不需要ABAP语言的基础就能方便地进行版面设计和逻辑设计。
4 为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第三章 SmartForms工具 SmartForms工具
4).编号和框架 (3).字符格式 1).标准设置:设置字体的上下标和条形码等属性 2).字体:设置字体类型、大小、风格和颜色等属性 .Text Module 文本制作 设计Form时选择Text属性为Text Module时就可以选择所定义的文本。 (1).参考Form:ZSF0002,更改页脚中的“说明”字段内容,使用系统标准 的文本模块 RE_CA_TEXT_EXAMPLE_1; (2).登录QAS800系统; (3).使用变式,公司代码I750,会计年度 2011,物料凭证号 5003620871。 .图片的上传 在制作公司内部的各类单据时需要公司的LOGO,这时就需要上传图片。 (1).参考Form:ZSF0002,更改标题中的LOGO 。 (2).上传图片的步骤 输入TCODE:SE78 使用“图片上传测试.bmp”

ABAP培训(BDC程序设计)

ABAP培训(BDC程序设计)
17 为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第二章 事务录制工具和BDC程序设计
□ 系统(System)和帮助(Help)菜单中的功能不能被录制。 □ 默认变式中的字段值不能被录制。 □ 错误和警告信息不能被录制。 在录制过程中,所输入的数据也将被保存至数据库。因而在重复处理已 经成功录制的记录时,最常见的错误就是系统提示用户:该数据在系统中已 经被创建,如果希望继续处理,应该对记录中的数据进行修改。 5.记录的编辑
11 为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第二章 事务录制工具和BDC程序设计
图2-8 .由于该数据记录已经创建,所以单击回车继续时,将得到提示:用户已 经存在,因此可以将系统用户名称修改为 ZNEWUSER02 。然后单击回车 或者选择OK代码对话框中的 功能,将进入下一个界面,所有屏幕输 入与录制时完全相同。 .不需要做任何修改,一直单击回车,直至保存。则又一个系统用户被创 建,新用户除用户名之外,所有设定和 ZNEWUSER01均相同。 .全部记录的在线处理结束后,系统回到日志界面,如图2-9所示。
为客户创造价值为员工创造价值为社会创造价值abap培训报表部分内容简介业务数据显示工具业务数据传输工具各模块常用表为客户创造价值为员工创造价值为社会创造价值abap培训报表部分第二章事务录制工具和bdc程序设计背景sap系统拥有强大的数据管理功能不过其操作过程较为复杂例如创建一个物料或者一个采购订单往往需要业务人员花费大量的时间对相关数据进行维护
7
为客户创造价值 为员工创造价值 为社会创造价值
ABAP培训(报表部分)
第二章 事务录制工具和BDC程序设计
.单击登录数据选项卡,输入口令,如图2-4所示。

ABAP初级技术培训教材

ABAP初级技术培训教材

1. SAP介绍1.1 SAP概况1.1.1 什么是SAP1.1.2 SAP公司1.1.3 SAP行业解决方案1.2 SAP模块1.2.1 SAP的R/3概述1.2.2 SAP常用功能模块1.3 SAP数据库1.3.1 数据字典1.3.2 ABAP字典中的基本对象1.4 SAP操作界面1.4.1 SAP登录界面return 1.4.2 初始屏幕1.4.3 事务代码1.4.4 系统标准功能按钮介绍1. SAP介绍1.1 SAP概况1.1.1 什么是SAPSAP的英文全称是System,Applications,and Products in Data Processing.它的中文意思是在数据处理中的系统、应用和产品。

严格地说,SAP是一个软件公司的名字,但现在,我们都习惯地统称SAP公司的产品为SAP,而更多的时候又是指SAP R/3系统。

实际上,SAP公司的产品除了R/3以外,还有、SAP Business One、SAP NetWeaver、ESA等等各种各样的产品。

1.1.2 SAP公司SAP成立于1972年,总部位于德国沃尔多市,是全球最大的企业管理软件供应商、第三大独立软件供应商、全球领先的协同电子商务解决方案供应商。

1988年,SAP陆续在法兰克福和纽约证券交易所上市。

自成立以来SAP在业内取得了令人瞩目的成就。

作为全球企业管理软件的业界领袖和协同电子商务解决方案的市场领导者,SAP早在八十年代就开始同中国国营企业进行项目合作,并取得了成功的经验。

1994年底,SAP在北京建立了代表机构,1995年正式成立了中国分公司。

随着业务的迅速增长,于1996年设立了SAP上海分公司,1998年又在广州成立了SAP华南分公司。

1.1.3 SAP的行业解决方案SAP为21个行业提供融合了和行业“最佳业务实践”的行业解决方案,这些行业包括航空与国防、汽车、金融服务、化工、消费品、工程与建筑、医疗卫生、高等教育、高科技、保险、媒体、石油与天然气、煤矿、医药、公用事业、零售业、电信、电力、钢铁冶金、交通运输及公共设施等。

2024年SAPABAP实用培训教程

2024年SAPABAP实用培训教程

SAPABAP实用培训教程引言SAP(系统应用与产品)是一家德国公司,提供企业资源规划(ERP)软件,以帮助企业管理和整合业务运营。

ABAP(高级业务应用程序编程)是SAP的编程语言,用于开发SAP应用程序。

本教程旨在为初学者和希望提高ABAP编程技能的开发人员提供实用的培训。

第一部分:ABAP基础1.1ABAP概览ABAP是一种高级编程语言,专门用于SAP应用程序的开发。

它具有结构化和面向对象的特点,支持模块化、可重用性和可维护性。

ABAP编程环境包括ABAP工作台,它是开发SAP应用程序的主要工具。

1.2数据定义在ABAP中,数据定义是通过数据字典实现的。

数据字典是用于定义和描述数据元素、结构和表格的地方。

数据元素是基本的数据单位,结构是由多个数据元素组成的复合数据类型,表格是用于存储大量数据的集合。

1.3ABAP程序结构ABAP程序由多个块组成,包括声明、执行和异常处理块。

声明块用于定义变量和常量,执行块用于编写程序的主要逻辑,异常处理块用于处理程序运行时可能出现的错误。

第二部分:ABAP编程实践2.1报表开发报表是ABAP编程中最常见的应用程序之一。

通过编写SELECT 语句,可以从SAP数据库中检索数据,并通过报表显示格式化输出。

报表开发涉及定义选择屏幕、处理用户输入、执行数据库查询和显示结果。

2.2输入输出处理输入输出处理是ABAP编程中的重要部分。

输入屏幕用于收集用户输入,输出屏幕用于显示程序的结果。

通过使用屏幕元素,如字段符号、表格控制和循环结构,可以创建用户友好的界面。

2.3数据处理数据处理是ABAP编程中的核心任务。

通过使用内部表、工作区和数据库表,可以对数据进行读取、写入和修改。

ABAP提供了丰富的数据处理语句,如MODIFY、APPEND和DELETE,以及用于数据转换和验证的内建函数。

第三部分:ABAP高级特性3.1面向对象编程ABAP支持面向对象编程(OOP)的概念。

2024版年度SAPABAP基础语法培训教程

2024版年度SAPABAP基础语法培训教程
调用。
表类型参数传递技巧
01
02
03
04
定义表类型参数
在函数模块接口中定义表类型 参数,指定参数名称、类型及
长度。
2024/2/2
传递表类型参数
在调用函数模块时,将要传递 的表作为实际参数传递给表类
型参数。
处理表类型参数
在函数模块内部,通过循环遍 历表类型参数,对表中的每一
行数据进行处理。
返回表类型参数
事务性能分析
分析事务执行效率,优化 事务处理逻辑。
26
问题排查流程
问题重现
尝试重现问题,了解问题发生的条件和现象。
代码审查
审查相关代码,找出可能导致问题的原因。
2024/2/2
日志分析
查看系统日志、应用日志等,找出与问题相 关的信息。
调试验证
使用调试器进行验证,确认问题原因并进行 修复。
27
06
使用EXEC SQL语句执行SQL查询语句,获取 数据库中的数据。
数据库表的增删改查操作
数据库事务处理
掌握INSERT、UPDATE、DELETE等SQL语 句,实现数据库表的增删改查操作。
了解数据库事务的概念和处理方法,确保数 据的一致性和完整性。
2024/2/2
17
04
模块化编程实践
2024/2/2
CHECK 语句
03
检查指定条件是否满足,如果不满足则跳转到指定的标签位置。
11
子程序与函数模块调用
2024/2/2
子程序(Subroutine)调用
通过CALL语句调用子程序,执行子程序中的代码,并在完成后返回 调用位置。
函数模块(Function Module…

ABAP_培训教程

ABAP_培训教程

ABAP_培训教程ABAP 培训教程1. ABAP 简介ABAP(Advanced Business Application Programming)是一种高级业务应用程序编程语言,由德国软件公司 SAP 开发。

ABAP 是SAP R/3 系统的核心编程语言,用于开发 SAP 的自定义应用程序。

ABAP 不仅可以用于开发传统的客户端/服务器应用程序,还可以用于开发基于 Web 的应用程序。

2. ABAP 编程环境ABAP Workbench:是 ABAP 编程的主要工具,包括字典、SE38 事务码编辑器、SE80 对象浏览器等。

Dictionary:用于定义和修改数据字典对象,如数据元素、结构、表、视图等。

ABAP Editor:用于编写和编辑 ABAP 程序。

ABAP Debugger:用于调试 ABAP 程序。

3. ABAP 程序结构ABAP 程序由一个或多个程序单元组成,每个程序单元包含一个或多个功能模块。

ABAP 程序的结构如下:Report:是 ABAP 程序的基本单元,用于处理输入、处理数据和输出。

Function Module:是一组相关功能的集合,用于实现特定的业务功能。

Module Pool:是一组用于处理屏幕的逻辑单元,用于创建基于屏幕的应用程序。

Class:是一组相关属性和方法的集合,用于实现面向对象编程。

4. ABAP 语法关键字:ABAP 中的关键字是预定义的,用于表示特定的编程构造,如 IF、ENDIF、LOOP、ENDLOOP 等。

数据定义:ABAP 中的数据定义用于定义程序中的数据类型和数据结构,如 TYPES、DATA、STRUCTURES 等。

控制结构:ABAP 中的控制结构用于控制程序的执行流程,如IF、CASE、LOOP 等。

函数调用:ABAP 中的函数调用用于调用 ABAP 标准函数或自定义函数,如 CALL FUNCTION、PERFORM 等。

5. ABAP 编程示例REPORT z_example.DATA: a TYPE i, b TYPE i, c TYPE i.START-OF-SELECTION.a = 5.b = 3.c = a + b.WRITE: / 'The sum of', a, 'and', b, 'is', c.6. ABAP 开发最佳实践遵循编码规范:遵循 SAP 的编码规范,确保代码的可读性和可维护性。

sapabap开发教程培训一pdf

sapabap开发教程培训一pdf
sapabap开发教程培训一pdf
目录
• SAP ABAP开发基础 • 数据处理与数据库操作 • 程序设计与开发实践 • 界面设计与用户体验优化 • 系统集成与扩展功能实现 • 性能调优与故障排查技巧
01 SAP ABAP开发基础
ABAP语言概述
ABAP(Advanced Business Application Programming)是SAP系统中用于开发 的标准编程语言。
3
配置开发环境
设置开发参数、创建开发用户、分配权限等。
基本语法与数据类型
ABAP语言的基本语法包括关 键字、标识符、注释等。
数据类型包括基本数据类型( 如整数、浮点数、字符等)和 复杂数据类型(如结构、表等 )。
ABAP还支持用户自定义数据 类型,以满足特定业务需求。
变量、常量与运算符
变量用于存储程序执行过程中的 临时数据,可以根据需要定义不
界面测试与评估
功能测试
对界面各项功能进行详细测试,确保功能的稳定 性和准确性。
用户反馈收集
积极收集用户反馈意见,及时响应并改进界面设 计中的问题和不足。
ABCD
兼容性测试
测试界面在不同设备和浏览器上的兼容性,确保 用户在不同环境下都能获得良好的体验。
数据分析与优化
通过对用户行为数据的分析,发现界面设计中存 在的问题并进行优化改进。
后进行部署和上线。
扩展功能设计与实现
根据需求分析结果,设计扩展功能的 架构和模块划分,并实现相应的功能 和业务逻辑。
扩展功能维护与升级
对已经上线的扩展功能进行维护和升 级工作,包括bug修复、功能增强等 。
06 性能调优与故障排查技巧
性能调优策略及工具使用

SAP ABAP开发实战从入门到精通系列

SAP ABAP开发实战从入门到精通系列

掌握用户交互逻辑的设 计和实现方法,如数据 校验、错误处理等
01
02
03
04
学习使用ABAP事件处 理程序编写事件处理逻 辑
学习使用对话编程技术 实现复杂交互逻辑
界面性能优化与用户体验提升
了解界面性能优化的重要性 和方法
掌握提升用户体验的方法和 技巧,如减少响应时间、提 供友好提示等
学习使用ABAP性能分析工具 进行性能分析和优化
设计完善的测试用例
针对项目需求中的各项功能,设计全面、细致的测试用例,确保 测试的覆盖率和准确性。
制定明确的验收标准
与业务人员充分沟通,制定明确的验收标准和流程,确保项目成 果符合业务需求和预期目标。
项目总结与经验分享
项目成果总结
对项目成果进行全面的总结,包括项目目标达成情况、实施过程中 的经验教训以及后续改进方向等。
批处理与后台任务
实战
通过实例演示如何编写批处理程 序和后台任务,以及如何处理批 量数据和执行长时间运行的任务 。
Web Dynpro开发技术
Web Dynpro概述
简要介绍Web Dynpro的基本概念、架构和开发环境。
Web Dynpro组件开发
详细讲解Web Dynpro组件的开发过程,包括创建组件、定义界面元 素、编写事件处理程序等。
格式化处理技术
了解格式化处理的概念和需求,学习使用ABAP语言进行格式 化处理。掌握数据的格式化显示、特殊字符处理等技术。
报表性能优化与调试技巧
报表性能优化
分析影响报表性能的因素,学习优化报表性能的方法。包括优化SQL查询、减 少数据传输量、使用缓存等技术。
调试技巧
掌握ABAP语言的调试技巧,包括设置断点、单步执行、查看变量值等。学习如 何定位和解决报表开发过程中的问题。

ABAP_培训教程

ABAP_培训教程

ABAP_培训教程ABAP 培训教程ABAP(Advanced Business Application Programming),即高级业务应用程序编程,是一种用于在 SAP 系统中进行开发的编程语言。

如果你对 ABAP 编程感兴趣,或者想要在 SAP 领域深入发展,那么参加ABAP 培训是一个不错的选择。

接下来,就让我们一起走进 ABAP 培训的世界。

一、ABAP 基础在 ABAP 培训的初始阶段,您将接触到 ABAP 的基础知识。

这包括对 ABAP 语言的语法、数据类型、变量和常量的理解。

语法是编程的规则,就像我们日常交流中的语言规则一样。

ABAP 有其特定的语法结构,例如语句的书写方式、关键字的使用等。

数据类型则决定了数据的存储方式和可以进行的操作。

比如整数型、字符型、浮点型等。

变量就像是一个容器,用来存放不同类型的数据,而常量则是固定不变的值。

掌握这些基础知识是后续学习的基石,只有在这个基础上,才能搭建起更复杂的程序结构。

二、数据处理数据处理是 ABAP 编程中的重要环节。

培训中会涵盖数据的读取、写入、修改和筛选等操作。

读取数据通常是从数据库表中获取所需信息。

这需要了解如何使用SQL 语句在 ABAP 中与数据库进行交互。

写入和修改数据则要确保数据的准确性和完整性。

数据筛选则是根据特定的条件从大量数据中提取出有用的部分。

这需要掌握条件判断语句,如 IF 语句、CASE 语句等,以便根据不同的情况对数据进行处理。

三、程序结构在 ABAP 培训中,您还将学习不同的程序结构,如顺序结构、循环结构和分支结构。

顺序结构是最简单的,按照代码的书写顺序依次执行。

循环结构则用于重复执行一段代码,比如 FOR 循环、WHILE 循环等。

分支结构可以根据不同的条件选择执行不同的代码块,让程序更加灵活和智能。

合理运用这些程序结构,可以使程序的逻辑更加清晰,提高程序的效率和可读性。

四、函数和子程序函数和子程序是 ABAP 中实现代码复用的重要手段。

ABAP入门培训

ABAP入门培训
字符类型变量数据数据类型类型描述描述缺省长度缺省长度最大长度最大长度可用字符可用字符缺省值缺省值cc字符字符116553565535任意字符任意字符空白空白nn数字文本数字文本1165535655359900dd日期日期88固定固定9900tt时间时间66固定固定9900xx十六进制数十六进制数116553565535ff数字类型变量数据类型数据类型描述描述缺省长度缺省长度最大长度最大长度最大小数位最大小数位缺省值缺省值ii整数整数44固定固定0000pp十进制数十进制数881616141400ff浮点数浮点数888815150101常用系统变量symandt当前客户端sysubrc当前操作返回值0为成功当前操作返回值0为成功sydatum当前日期当前日期syuzeit当前时间当前时间syuname当前用户当前用户sytabix当前循环的次数syucomm当前按钮更多系统变量见结构syst
ALV报表
SAP提供了增强输出报表的可读性和功能性的功能模块 ALV(ABAP List Viewer)。 ALV可以通过两种方式实现: 1. Using SAP Standard Function Modules 2. Using SAP Standard Classes and Methods 我们将介绍的是用第一种方式实现的ALV
i
整数
4(固定)
-
0
0
p
十进制数
8
16
14
0
f
浮点数
8
8
15*
0.1
常用系统变量
sy-mandt sy-subrc sy-datum sy-uzeit sy-uname sy-tabix sy-ucomm 更多系统变量见结构SYST。 当前客户端 当前操作返回值(0为成功) 当前日期 当前时间 当前用户 当前循环的次数 当前按钮
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Fixed data objects(固定数据对象)Literal:文字例:”hello world”Constant: 常量使用constants 可以定义ABAP常量, 注:常量第一次被赋值后,就不能再更改Data object(数据对象)包括变量literal文字constant常量Value assignments(赋值)早期赋值:使用关键字 move A to B 进行赋值 (类似于汇编语言)新赋值: A = B 注: “=”左右要各有一个空格注:常量在定义期间就需要赋值.Calculation (计算)早期运算:使用关键字 compute新运算:不使用关键字computeSbc400focc是数据字典中的结构体,表示占坐率.Arithmetic expression nested 可以互相嵌套重点:“/”与 div区别:1.“/”运算后结果被四舍五入2.Div运算后的结果可以取整但不四舍五入Strlen方法可以计算字符串长度 length = strlen ( cityfrom ) Conditional branching(条件分支)分支语句包括: 单分支,多分支.单分支:if多分支:case 注: case后要跟变量,跟常量没有意义.注意:分支语句中的每一条语句必须以”.”作为语句结束,并使用endif / endcase作为分支语句结束.If三种句式If c1St1EndifIf c2St2Endif……n执行结果最少为0 最多为1St1Elseif c2Str2…nEndif.执行结果最少为0 最多为1If c1St1Elseif c2St2…nElse……Endif.有且只有1个结果执行老师包名:ZBC400_200ZBC400_200_01 – 08老师的包Loops(循环)循环一共分5种Do [ n times ] […].Stat.Enddo.Stat.If <abort_condition>Endif.Enddo.While(logical_expression).S1.Endwhile.Loop at …Stat.Endloop.Select …Stat.Endselect.loop counter :sy-index (计数器)Sy-index 是全局结构体变量注:只适用do和while循环,不适用于select和loop循环注意:在abap程序中没有boolean类型, C(1)可以用来判断正误,‘X’代表正确循环退出关键字Exit:退出循环Check:后面跟条件,当满足条件时,退出循环注:在非easy access中需要使用/h + tcode来结束当前屏幕进入目标屏幕. Dialog messages(会话消息)Messaga(消息 )作用: 给用户提示消息,可以弹出窗口,也可以显示在状态栏中(由message type 控制)Message tnnn ( message_class )[ with v1 [ v2 ] ….]Tnnn: 消息类型 nnn是三位消息的编号Message class: 消息类型(理解为消息的包)中括号中作用传送变量Type类型S:status message 程序不中断显示在状态栏I:information 程序先中断在执行模态窗口显示W:warming ----context dependent状态条显示E:error ---context dependent 状态条显示A:termination 模态窗口显示X short dump 把堆栈倒出来便于调试.modal模态弹出对话框以后,该窗口会占据所有的焦点(不能点其它窗口).而在非模态中,可以随意切换窗口.几种中断的区别:interruption中断(计算机中断),但不结束程序termination, 终止结束程序abort 退出程序,异常退出exit 退出循环带参数传递的消息每次执行程序的时候可以传递参数在message 编辑界面中的 text 栏里加 &1-&n ,也可以加多个,用空格隔开ABAP Debugger作用:跟踪内存变量的变化右键点击程序execute – debugging 进入调试界面Abap调试工具分为老版本和新版本版本切换切换debugger – switch to classical debugger 转换版本Single step 执行单步Return 如果进入一个子程序 , 直接返回Run 直接到下一个断点用鼠标双击语句设定断点双击变量或结构体可以查看值半路杀入法在进入一个selection screen中后在command film 中输入 /h再运行就是debug状态Structure结构体定义结构体主要有两种类型1. 来自于全局字典库a) Tables spfli. 定义了一个与透明表同名的结构体变量.b) Data sa type spfli. 通过透明表定义了一个名为sa的结构体变量2. 来自于用户定义的局部结构体类型:Types: begin of st_XXX…...…End of st_XXX.根据局部结构体类型定义结构体.Data wa_XXX type st_XXX.Addressing structure components.(结构体的访问)结构体-字段名Wa_scarr-carrid.结构体类型的字段是类型结构体变量的字段是变量结构体字段同名拷贝Move-corresponding wa_flight to wa_focc.move:当两个结构体结构和类型完全相同时拷贝才会不出现问题.Move-corresponding : 同名字段拷贝, 拷贝两个结构体的交集 (同名同类型的字段).Move-corresponding机制:双循环, 先取第一个结构体中第一个字段,然后到另一个结构体找同名字段进行匹配Internal tables内表(重中之重)内表:Internal memory table 内存中的表信息系统的三层结构1. 计算机屏幕2. 内存3. 数据库表注意:在ABAP语言中不提供二维数组,内表相当于二维数组,它是一个表示内存的二维数据结构(m行*n列).与传统二维数组的区别,二维数组的m*n在编译期就已经确定多少个房间了,而内表的行数量是可以动态拓展的.内表可以与以下几项进行数据交换屏幕磁盘文件数据库表打印机(只能将数据传递给打印机,而不能反传)Attibutes of internal tables.一、Line type 内表行类型1. 确定行类型就是确定行中的字段和字段类型2. 用结构体或透明表可以作为内表的行类型3. 内表可以当成数组.4. 采用只有一个字段的结构体或一个不可再分的类型作为行类型,此内表就相当于一个数组二、Key definition.键定义(和主键很像)1) Table key 表键2) Table key:unique(唯一) / non-unique(不唯一,区别数据库)3) Components :构成键的字段,顺序敏感 , 顺序不同 table key也就不一样三、Data access type 数据访问类型1. Index access根据行号访问2. Key access 根据table key访问内表的类型一共有三种内表类型1. Standard table访问: index access(推荐) , key accessTable key: non-unique2. Sorted table天生就有排序的功能,插入数据后就会按照 table key排序访问: index access , key access(推荐)Table key: unique / non-unique3. Hashed table访问: only key accessTable key :unique.Sorded table , 推荐使用 table key 访问,天生排序自动按照二分法查找Full scan 全表扫描Binary search 二分法对排序后的线性结构,先折半,Hash table不能通过索引访问Table key uniqueIndex tables 线性Hashed table 相当于一个筐.内表的定义定义内表1) 通过字典库的内表类型定义内表变量2) 采用局部内表类型定义内表变量Tables <结构体>/<透明表>. 创建与<结构体>/<透明表>同名的结构体通过Se11可以查看字典库中的内表和透明表对内表的操作对内表操作,需要先建立一个结构体使用结构体对内表的数据进行操作在一个排序内表中例如行号分别是 a,b,c,d,e当插入一个 table key 为d的数据时系统会将该条记录自动插入到c数据后面change修改: modify table itab from wa [<condition>]先将数据放到一个结构体的然后将结构体覆盖回去Collect操作语句:COLLECT wa INTO itabtable key 后面的字段需要都是数字类型的字段,这样可以进行累加Collect语句流程:1. 非table key字段必须全是数字2. 当使用该语句进行插入时,如果结构体的table key字段和内表中的table key字段相同,系统将会把结构体中非table key字段中的数值累加到内表的相应字段中.3. 如果table key字段没有对应, collect 操作将相当于 append,将数据追加到内表的末尾对内表多行记录的读取Loop at itab into wa <condition>.对wa进行处理Endloop.Delete itab<condition>Insert lines of itab2 <condition 数据条件>.Into itab1 <condition 插入位置>.Append lines of itab2 <condition1> to itab1.注:对于标准表来说insert如果没指定位置就相当于appendSort排序Sort itab <condition>. 对标准表有实际意义Condition : by f1 ascending / descending1. Refresh:把内表的空间都清空2. Free:全清,释放内存3. Clear:如果一个internal table如果没有head line ,功能和refresh一样,如果有hl ,就只清空head lineHead line定义一个带有head line 的内表Data itab type table of spfil with head line.在声明一个内表的同时 ,就赠送一个结构体 head line ,名和内表的名相同.一个拥有head line 的内表itab中, itab 表示head line 而 itab[] 表示内表,插入的语句可能省略成 appent itab.(不提倡)在ABAP语言中操作一个二维internal table 往往通过一个结构体来完成. Data wa type spfli.Data itab type table of spfli.Wa-carrid = ‘AA’.Append wa to itab.如果在排序后加 stable (不确定)一个内表在排序之前,可能存在相同的table key,使用stable语句,可以保证相同key的数据顺序不会发生变化。

相关文档
最新文档