ABAP入门
ABAP 中文介绍入门
1. ABAP/4 IntroductionIntroductionABAP/4(Advanced Business Application Programming)是SAP/R3目前唯一的系统发展工具, 属 4GL, 语法比较近似Visual Basic或JAVA, 和传统third-generation 语言, 如C,PASCAL 有很大不同, 在程序模块(Program Structure Module)可分以下三个部分:1.Sequential coding within processing block与一般语言语法近似, 如IF,WHILE等, 但并没有GOTO叙述2.Reports呼叫一个独立的事件(Depending Event), 读取database 产生数据列表3.Dialog屏幕参数输入的对话框, 专门处理database 读取或异动的tranaction processBasic Languange Overview1.data element 宣告方式, 如数值, 字符数据变量宣告2.操作数(operate)使用, 如+ - * /3.Control element使用, 如Boolean 值4.特殊数据格式, 如日期与时间5.字符串字料处理function, 如部分字符串的截取6.子程序或自定函数的呼叫7.SQL语法使用8.数据结构的使用, 如process internal table的宣告与使用Reports Overview1.Reports Task, 如报表屏幕预览或打印机打印的选择2.Reports 模块是一个Stand-along 程序,3.database读取方式, 如可定义logical database(与磁盘的physical storage对映)4.报表数据的计算与产生5.报表的输出Dialog Overview1.专处理database 的读取与异动, 如使用SQL 指令2.Dialog 不是一个Stand-Along Progarm, 使用transaction code来产生屏幕对话框3.由flow logic 控制, flow logic分成PBO(Process Before Output)与PAI(Process After Input)2.Begin To Programming2.1 ABAP/4 EditorCreating ABAP/4 Program使用ABAP Workbench撰写程序(Choose Tools->ABAP/4 Workbench, Transaction Code: S001), 萤幕如下:可分成:1.ABAP/4 Editor :针对简单的报表或程序, 仅使用几个组件或不使用2.Obiect Browser :针对复杂的报表或程序, 如Dialog Transaction Module 撰写使用ABAP/4 Editor 撰写程序1.ABAP/4 Editor 画面如下(Transaction Code:SE38):2.输入程序名称, 如果是新程序, 按下”Create”, 如果修改已存在程序, 则按下”Change”或F6键在命名规则上, Reports程序为 Yaxxxxxx或Zaxxxxxx, a表application module简称, 如s表SD Dialog程序为SAPMYxxx或SAPMZxxx3.输入程序Attribute(1).Title:程序描述或功能说明(2).Type:Execute mode: 1: Stand-along Program 如ReportsI: Include ProgramM: Module PoolF: Function GroupS: Subroutine Pool(3).Status:Program development status: P: SAP standard production programK: Customer production programS: System programT: Test program(4).Application: 程序所属的application module, 如F表 Financeial acounting(5).Development class: 用于同一系统中各个program, 如果不属任一class, 可使用$TMP4.撰写Source CodeProgram 之后接的是程序名称, Write 是显示的意思, 会将所接的字符串在屏幕上显示, 注意每一行最后要有一个 . (点), 表示叙述的结束, 储存后回ABAP/4 Editor画面5. 执行程序按”Execute”或F8键, 屏幕可见执行所得的结果重要的编辑键key FunctionF8F5F11 CTRL+F11 执行程序复制游标所在列的内容储存档案删除游标所在列2.2 ABAP/4 Data ElementData TypeABAP/4 的数据型态可分成:Type Length Range Initial Value DescriptionC 1 1-65535Byte Space 字符串数据, 如’Program’D 8 8Byte ‘00000000’ 日期数据, 格式为YYYYMMDDF 8 8Byte 0 浮点数I 4 -2^31至2^31-1 0 整数N 1 1-65535Byte ‘00…0’ 数值所组成的字符串P 8 1-16Byte 0 Packed 数, 用在小数点数T 6 6Byte ‘000000’ 时间数据, 格式为HHMMSS X 1 1-65535Byte X’00’ 16进位数变量宣告变量宣告包含 name, type, length 和 structure四个部分, 使用 DATA 指令, 如DATA: S1 TYPE I,SUM TYPE I.常数宣告常数宣告使用 CONSTANTS 指令, 如宣告 PI 是一个小数点5位的值 3.14159, CONSTANTS PI TYPE P DECIMALS 5 VALUE ‘3.14159’.系统所定义数据这是由系统所定义的专有名辞, 如SPACE 空白字符串SY-SUBRC 系统执行传回值, 0 表示成功SY-UNAME logon 账号SY-DATUM 系统日期SY-UZEIT 系统时间SY-TCODE 目前的transaction codeTYPE 叙述用来指定数据型态或宣告自定数据型态Example:TYPES: BEGIN OF MYLIST,NAME(10) TYPE C,NUMBER TYPE I,END OF MYLIST.DATA LIST TYPE MYLIST.LIKE 叙述跟TYPE叙述使用格式相同, 如DATA TRANSCODE LIKE SY-TCODE.不同的是 LIKE 用在已有值的数据项, 如系统变量, 而TYPE叙述则是用在指定数据型态。
ABAP基础重要知识学习点
ABAP基础重要知识学习点ABAP(Advanced Business Application Programming)是一种高级商务应用程序编程语言,主要用于SAP软件的开发和定制。
在学习ABAP的过程中,有一些基础的重要知识点需要掌握。
1. ABAP语法:了解ABAP语言的基本语法规则是学习ABAP的第一步。
学习如何声明变量、定义函数和方法、控制语句以及数据类型等基础知识,能够帮助开发人员编写有效的ABAP代码。
2. ABAP数据字典:ABAP数据字典是用于管理数据和定义数据库对象的工具。
掌握如何创建表格、视图、数据元素和数据类型等数据字典对象,能够帮助开发人员有效地存储和管理数据。
3. ABAP程序设计:学习如何设计和编写ABAP程序是成为一名合格ABAP开发人员的关键。
了解程序的模块化设计和封装原则,掌握ABAP的面向对象编程概念,能够开发出可重用和可维护的ABAP程序。
4. ABAP调试和错误处理:调试是开发中解决问题的重要工具。
学习如何使用ABAP调试器来跟踪代码的执行,并通过断点和监视表达式来诊断问题。
同时,掌握如何处理ABAP程序中的错误和异常情况,能够提高程序的可靠性和稳定性。
5. ABAP性能优化:在开发过程中,优化ABAP程序的性能是一个重要的考虑因素。
学习如何使用ABAP运行时分析工具来分析程序的性能瓶颈,并针对性地进行性能优化,能够提高程序的执行效率和响应速度。
6. ABAP Web Dynpro:ABAP Web Dynpro是一种用于开发SAP Web应用程序的框架。
学习如何使用ABAP Web Dynpro来设计和开发用户友好的Web界面,包括表格、输入字段和按钮等交互元素,能够满足用户对于功能和界面的需求。
总的来说,掌握ABAP的基础重要知识点是成为一名合格的ABAP开发人员的基础。
通过系统地学习和实践,可以逐步提升自己的编程能力,并为SAP软件的开发和定制提供有力的支持。
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技术初级培训教材
3.ABAP基础3.1数据定义3.1.1数据类型定义数据需要指定其数据类型。
数据类型有预定义数据类型和自定义数据类型之分。
预定义数据类型的名称是固定的。
用户定义的数据类型的名称由用户在程序中指定。
ABAP/4 中预定义的数据类型如下表所示。
3.1.2变量定义DATA语法:DATA <f>[<length>] TYPE<type>[<value>][<decimals>]<f>: 变量名称, 最长30个字符,不可含有 +. , :( ) 等字符。
<length><type>: 数据类型及长度, 如LINE(20)TYPE C.亦如MYNAMELIKE SY-UNAME 。
<value>:初值。
<decimals>: 小数位数。
实例:DATA:COUNTERTYPE PVALUE 1,*名称为COUNTER变量,类型为P ,初值为1FLAGTYPE CVALUE ISINITIAL,*名称为FLAG的变量,类型为C ,初值为默认值WEIGHTTYPE PDECIMALS2 VALUE‘1.25’.*名称为WEIGHT的变量,类型为P ,初值为1.25实例:DATA:BEGIN OFADDRESS,*定义数组变量ADDRESSNAME(10)TYPE C ,NUMBERTYPE P,ENDOFADDRESS.使用时用字段变量加上组件名称,如ADDRESS-NAME。
3.1.3常量定义常数定义使用CONSTANTS指令, 如定义 PI 是一个有5位小数的数值3.14159 .实例:CONSTANTSPI TYPEPDECIMALS5 VALUE‘3.14159’.3.1.4系统定义的数据SPACE空白字符串SY-SUBRC 系统执行返回值,0表示执行成功SY-UNAME 登陆帐号名称SY-DATUM系统日期SY-UZEIT系统时间SY-TCODE 目前的事务代码3.1.5指令1TYPE指令TYPE用来指定数据类型。
abap开发知识点
ABAP开发知识点ABAP(Advanced Business Application Programming)是SAP系统中的编程语言,主要用于开发和定制SAP应用程序。
在本文中,我们将介绍ABAP开发的一些重要知识点。
一、ABAP语言基础1.数据类型:ABAP支持多种数据类型,包括整数、浮点数、字符型、日期型等。
了解不同数据类型的使用方法和限制是编写高效代码的关键。
2.变量和常量:在ABAP中,我们可以使用DATA语句定义变量,并使用CONSTANTS语句定义常量。
熟悉变量和常量的使用方式可以提高代码的可读性和维护性。
3.控制结构:ABAP提供了多种控制结构,如IF语句、CASE语句和循环语句等。
掌握这些控制结构的使用方法可以实现条件判断和循环操作。
二、ABAP面向对象编程1.类和对象:ABAP支持面向对象编程,可以定义类和对象。
了解类的概念和对象的创建方式可以提高代码的可重用性和可维护性。
2.成员方法和属性:在ABAP类中,我们可以定义成员方法和属性。
掌握这些概念的使用方法可以实现类的封装和功能扩展。
3.继承和多态:ABAP支持继承和多态的特性。
熟悉这些特性的使用方式可以简化代码的编写,提高代码的可扩展性。
三、ABAP数据库访问1.数据库表的定义和操作:ABAP可以创建和操作数据库表。
了解数据库表的定义和操作方式可以实现数据的存储和检索。
2.SQL语句的使用:在ABAP中,我们可以使用SQL语句进行数据库操作。
熟悉SQL语句的使用方式可以实现复杂的数据查询和更新。
3.事务处理:ABAP支持事务处理的机制,可以保证对数据库的操作的一致性和完整性。
了解事务处理的使用方式可以避免数据错误和数据丢失。
四、ABAP调试和错误处理1.调试技巧:ABAP提供了调试工具,可以帮助我们查找和修复代码中的错误。
掌握调试技巧可以快速定位问题,并提高代码的质量。
2.异常处理:在ABAP中,我们可以使用TRY…CATCH语句来处理异常。
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入门培训
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为成功) 当前日期 当前时间 当前用户 当前循环的次数 当前按钮
很全abap入门知识
很全abap入门知识ABAP入门知识1.ST05是用于在开发ABAP程序时,对应事务码取得的字段是“数据结构”而不是“透明表”的时候,通过ST05的“SQL跟踪”来获得相关“Select”的语句;一般查看“REC”列耗时比较多的“Select”语句;2.跟踪时如果有涉及到“数量”这类有对数据表进行更新或插入操作的,则直接去查Update和Insert的SQL语句;3.在跟踪后,直接双击“对象名”列的名称,点选“表格字段”转到“SE11”的表字段表;4.ABAP程序开头的Tables:“数据表名”,只有在屏幕中有用到的表,才需要声明;在程序中用到的表则不需要进行在Tables内声名;5.抓SAP“文本”字段的数据,要先自定义变量,然后通过SE37的函数“FUNCTION ?ZREAD_TEXT?”取回文本数据;6.新建的ABAP程序,在测试运行的时候要先进行“激活”,才能测试运行;7.SE93:把ABAP写好的程序指定一个事务码执行;8.abap引号内的字符??必须要是大写;9.ABAP select 里面的语句,不能像mssql有那么丰富的函数使用,需要导到内表后再对数据进行操作;10.?EQ?是单个数据值,?BT?是between区间的意思。
11.在写select inner join 里面,要注意是否需要加上销售组织的条件;on 条件1 and 销售组织条件。
12.SELECTION-SCREEN,里面有两个子项,PARAMETERS和select-options。
PARAMETERS 一般是用于必输项的屏幕参数设置,如果这个参数不是必输项的,就要用select-options。
在select ...where条件里,用PARAMETERS的条件语法是“数据字段 = 屏幕字段”;而select-options的条件语法是“数据字段 in 屏幕字段”。
13.在where判断一个日期型数据是空,不是DEAKT = ??,也不是DEAKT isinitial,而应该写成DEAKT = ?00000000? (8个0)。
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入门
基本语句
• 数据申明
简单变量申明
• DATA:〈VAR〉LIKE 〈DICTIONARY TYPE〉 DATA: VAR〉 TYPE〉 • DATA:〈VAR〉TYPE [C,P,I,STRING等] DATA: VAR〉 [C, STRING等
• 代• 顺序 • 条件 • 循环
什么是数据库
数据库是规则的信息数据的集合 最常用的数据库——关系数据库 最常用的数据库——关系数据库
• 实体 • 关系
关系数据库中的表
• 字段 • 记录
数据库的存取(SQL) 数据库的存取(SQL)
关系数据库中的表(1 关系数据库中的表(1)
基本语句
输出语句Write 输出语句Write
• • • • Write Write Write Write 1(10) <var> 10 Sy-vline Sy10(20) Sy-uline Sy(15) <var>
创建简单的ABAP程序 创建简单的ABAP程序
一个简单的示例程序(ZVR300) 一个简单的示例程序(ZVR300)
结构(内部表)申明
• DATA:BEGIN OF 〈VAR〉{OCCURS 0} , DATA: VAR〉
〈FIELD1〉LIKE …… , FIELD1〉
〈FIELDn〉TYPE …… , FIELDn〉 END OF 〈VAR〉 VAR〉 • DATA:〈VAR〉LIKE STANDARD TABLE OF DATA: VAR〉 [MARA] {WITH HEADER LINE}
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等,让学员了解 不同输出格式的特点及适用场景。
SAPABAP入门教程参考手册
WebDynpro报表开发方法
01
02
03
04
05
WebDynpro概 述
WebDynpro使 用…
WebDynpro开 发…
WebDynpro高 级…
WebDynpro优 化…
了解WebDynpro的基本概 念、架构和组件。
掌握WebDynpro适用的业 务场景和报表类型。
学习WebDynpro报表的开 发流程,包括创建 WebDynpro组件、定义数 据源、设计界面、实现业务 逻辑等。
文件定位与指针
可以使用文件指针在文件中进行定位和操作。ABAP 提供 了 SEEK 和 TELL 等语句用于文件指针的定位和获取当前 位置。
03
SAPABAP开发环境搭建
安装与配置SAP GUI
下载与安装SAP GUI
01
从SAP官方网站下载最新。
配置连接参数
Web应用开发
SAPABAP支持Web应用开发,可以 通过Web Dynpro等技术实现Web 应用的开发和部署。
02
SAPABAP基础知识
数据类型与变量
03
数据类型
变量声明
变量赋值
SAP ABAP 中有多种数据类型,包括基本 数据类型(如 C、N、D、T 等)、结构数 据类型和引用数据类型等。
后台任务调度
使用SAP系统的任务调度功能,可以定时启动或周期性执行后台任务。可以根据业务需求设置任务的执行频率和时间窗口。
错误处理和日志记录 在批处理程序中添加错误处理和日志记录逻辑,以便在任务执行过程中出现问题时能够及时发现并进行 排查。可以将错误信息记录到日志文件中,方便后续分析和处理。
07
调试与性能优化技巧
ABAP基础知识(完整版)
ABAP基础知识(完整版)数据类型C :字符串D :日期型格式为YYYYMMDD 例:'1999/12/03'F : 浮点数长度为8I :整数N :数值组成的字符串如:011,'302'P : PACKED数用于小数点数值如:12.00542T : 时间格式为:HHMMSS 如:'14:03:00'X : 16进制数如:'1A03'*-------------------------------------------------------------------------------------*变量声明DATA <F> [<Length>] <type> [<value>][decimals]<F> 变量名称<length><type> 变量类型及长度<value> 初值<decimals> 小数位数exp:DATA : COUNTER TYPE P DECIMALS 3.NAME(10) TYPE C VALUE 'DELTA'.S_DATE TYPE D VALUE '19991203'.exp:DATA : BEGIN OF PERSON,NAME(10) TYPE C,AGE TYPE I,WEIGHT TYPE DECIMALS 2,END OF PERSON.另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明).exp:CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'.STATICS 关键字声明的变量仅在目前的程序中使用, 结束后会自动释放语法:STATICS <c> [<length>] <type> [<value>] [<decimals>]系统专用变量说明系统内部专门创建了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: 画横线TYPE 关键字用来指定资料型态或声明自定资料型态Example:TYPES: BEGIN OF MYLIST,NAME(10) TYPE C,NUMBER TYPE I,END OF MYLIST.DATA LIST TYPE MYLIST.LIKE 关键字跟TYPE关键字使用格式相同, 如DATA TRANSCODE LIKE SY-TCODE.不同的是LIKE 用在已有值的资料项, 如系统变量, 而TYPE关键字则是用在指定资料型态。
ABAP入门到精通
继承与多态实现
实现类之间的继承关系,利用多态提高代码 的灵活性和可维护性。
异常处理机制
定义异常类和处理程序,确保程序的稳定性 和健壮性。
面向对象设计原则应用
应用单一职责、开闭原则等面向对象设计原 则,提高代码质量和可维护性。
案例四:ABAP高级特性应用
内表操作与优化
使用内表进行数据处理和存储,优化内表操 作性能。
批处理与后台任务
实现批处理程序和后台任务,提高数据处理 效率和系统性能。
屏幕事件处理
编写屏幕事件处理程序,响应用户操作和界 面交互。
性能调优与监控
对ABAP程序进行性能分析和调优,监控程 序运行状态和资源消耗情况。
THANKS.
文件读写操作
详细介绍ABAP中文件的读写操作,包括文本文件和二进制文件的 处理方法。
文件流处理
阐述如何使用文件流来处理大文件,以及文件流的创建、读取和关 闭等操作。
文件锁定与解锁
介绍文件锁定的概念,如何在ABAP中实现文件的锁定和解锁,以避 免并发访问时的数据冲突。
多线程编程
01
多线程概念
解释多线程编程的基本概念,以 及多线程在ABAP中的应用场景 。
03
顺序结构的执行流程是线性的,即按照语句的编写 顺序依次执行。
选择结构
选择结构用于根据条件判 断执行不同的代码块。
IF语句根据条件表达式的 真假执行不同的代码块, 可以实现简单的条件判断 。
ABCD
在ABAP中,选择结构主 要通过IF语句和CASE语 句实现。
CASE语句根据变量的值 匹配不同的分支,执行相 应的代码块,适用于多个 条件判断的情况。
04
TRY...CATCH语句包含两部分:TRY块和CATCH块。 TRY块包含可能引发异常的代码,而CATCH块用于捕 获并处理异常。
ABAP基础教程
ABAP基础教程ABAP(Advanced Business Application Programming,高级业务应用程序编程)是一种程序语言,用于开发SAP系统的应用程序和报表。
在SAP系统中,ABAP被广泛用于开发和定制各种业务流程、数据处理和报表。
本教程将介绍ABAP编程的基础知识和常见技巧。
1.ABAP简介(150字)ABAP是一种面向对象的程序语言,最早由SAP公司开发,用于开发SAP系统的应用程序和报表。
ABAP支持事务处理、数据库操作、用户界面设计等功能,被广泛应用于企业资源规划(ERP)系统和商业智能(BI)系统。
2.ABAP开发环境(150字)3.ABAP语法和数据类型(300字)ABAP语法类似于其他编程语言,包括变量声明、条件语句、循环语句等。
ABAP中的变量可以是字符型、整型、日期型等多种数据类型。
ABAP还支持内表(Table)、结构体(Structure)和类(Class)等复杂数据结构。
4.ABAP程序结构(300字)一个ABAP程序通常包括模块池(Module Pool)、模块(Module)和程序(Program)三个层次。
模块池是一个容器,包含了多个模块和程序。
每个模块用于处理特定的逻辑功能,而程序用于将模块组织起来,并提供用户界面等功能。
5.ABAP数据处理(300字)ABAP可以通过数据库操作、文件处理和Web服务等方式进行数据处理。
数据库操作包括查询、插入、更新和删除数据等功能。
文件处理可以读取和写入本地文件或网络文件。
Web服务可以通过HTTP协议与其他系统进行数据交互。
6.ABAP调试和错误排查(200字)ABAP调试器是一个用于调试ABAP程序的工具。
开发人员可以在调试器中设置断点,逐步执行程序,并查看变量的值和程序的执行路径。
调试器还提供了错误分析功能,帮助开发人员快速定位和修复程序中的错误。
7.ABAP报表开发(200字)ABAP可以用于开发各种类型的报表,包括普通列表报表、交互式报表和图表报表。
ABAP基础知识(完整版)-自学
ABAP基础知识(完整版)-上SAP ABAP / 4 基础知识学习数据类型C :字符串D :日期型格式为YYYYMMDD 例:'1999/12/03'F : 浮点数长度为8I :整数N :数值组成的字符串如:011,'302'P : PACKED数用于小数点数值如:12.00542T : 时间格式为:HHMMSS 如:'14:03:00'X : 16进制数如:'1A03'*-------------------------------------------------------------------------------------*变量声明DATA <F> [<Length>] <type> [<value>][decimals]<F> 变量名称<length><type> 变量类型及长度<value> 初值<decimals> 小数位数exp:DATA : COUNTER TYPE P DECIMALS 3.NAME(10) TYPE C VALUE 'DELTA'.S_DATE TYPE D VALUE '19991203'.exp:DATA : BEGIN OF PERSON,NAME(10) TYPE C,AGE TYPE I,WEIGHT TYPE DECIMALS 2,END OF PERSON.另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明).exp:CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'.STATICS 关键字声明的变量仅在目前的程序中使用, 结束后会自动释放语法:STATICS <c> [<length>] <type> [<value>] [<decimals>]系统专用变量说明系统内部专门创建了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: 画横线TYPE 关键字用来指定资料型态或声明自定资料型态Example:TYPES: BEGIN OF MYLIST,NAME(10) TYPE C,NUMBER TYPE I,END OF MYLIST.DATA LIST TYPE MYLIST.LIKE 关键字跟TYPE关键字使用格式相同, 如DATA TRANSCODE LIKE SY-TCODE.不同的是LIKE 用在已有值的资料项, 如系统变量, 而TYPE关键字则是用在指定资料型态。
sapABAP开发入门到进阶
SAP-A BAP开发入门到进阶基础篇-以简短的篇幅介绍最基本的语法增强篇-介绍了常用的ABAP技术希望此书对想从事ABAF开发的读者有相当帮助一.基础篇1. 什么是ABAP了解一下ABAP的发展历史是必要的,ABAP产生的最初的目的是用以生成简单打印报表程序,我们知道SAP最初是为解决财务实时数据处理问题的,ABAP(Adva need Bus in ess Application Programmi ng-> 高级业务应用编程语言)现在用于编写SAP AG的几乎全部产品源代码.严格地讲,ABAP/4不仅仅是一个开发工具,而且是一套完整的client/server 开发环境,这很好理解,微软的Visiual Studio 是一开发环境,VB,VC++等是开发工具.ABAP开发环境包含支持程序开发的一些函数和包等.如图1-1,是SAP开发环境的一个三层架构的例图,三层(多层)的概念也不新鲜比如在安装SAP时也可将DB instanee 安在一台server, Central instanee 在另一台所谓的Applieation server(我想这应是相关SAP基础系统包括各种应用程序所在),而通常客户端安装的SAP Logon Front End,SAP会话管理器等是所谓的表示层,它通过TCP/IP,SAP演示协议或RFC和应用服务器进行数据传输,用户看到的只是处理后的数据返回.和Delphi的三层逻辑相近,在应用层包含多个组件象ABAF开发平台,身份验证,系统管理维护等用以处理会话,更新,排队,网关,数据层处理native和Open SQL等(这是从内部机制方面看),SAP各模块应用的业务逻辑都在应用层被处理(从用户角度)然后结果被返回.Sl-l图1-2是SAP Logon的一个截图:1]表示应用服务器(通常企业为了节省成本和方便管理可能会将应用服务器和数据库安装在同一起),[2]System number,举个实例,开发和测试服务共用一台服务器,开发使用system numberOO,而测试使用system number 01,通过system number 逻辑地将一台physical server 逻辑地分成了两台applicati on server.学习ABAP并不难,有人说SAP系统重在管理思想,不在技术,通常对有编程经验的读者不用任何培训参考一些相关资料就可立即上手•简单介绍下ABAP/4的一些特征:1. 和SAP紧密结合,尤其在开发报表方面,坦率地讲,除了和SAP集成的好处,.我定认为ABAP在报表开发上比Crystal report Tool 要高效简单.2. 和VB一样,ABAP是解释形的,如读者精通VB,学习ABAF应该豪不费力,倒是既然SAP是企业管理解决方案,ABAPer必须对企业管理流程熟悉.解释性的另一好处是可以很好跟踪程序逻辑(使用/H),这对了解业务逻辑的实和追踪错误很有效.和VB不同的是,VB跟踪时允许程序运行指针随意往回或往全拉而ABAF程序去不行,但是ABAF程序允许在运行时修改变量的值,这是编译程序不能做到的•当然通常编译比解释执行的速度会更快•ABAR1序执行并不直接读取源代码,而是执行内部经过“生成”的描述,对于ABAP/4字典的修改激活后将触发内部描述的重新生成,如程序并没激活就执行原版本,或者出现错误(程序没激活可能造成ABAP Dumping ABAP).3. 在对数据库处理方面,除了可直接执行SQL使用native sql,缺点是错误处理很难控制,相当于有开发环境将SQL语句直接传给DB去执行),SAP在ABAF开发环境层还提供了一套Open SQL访问底层数据库.4. 程序员都知道Windows平台下开发都支持事件驱动,Windows系统本身也支持事件驱动,ABAP也提供了事件驱动,这表现在Dialog编程方面,但是ABAP在此方面并不强,而且相对讲也比较难于掌握(在后面会讨论).5. 基于面向对象的风靡,ABAP在此方面也有相当反应,在SAP强大的软件包中提供了大量可重复使用的程序,读者也可定义类并使用它快速建立新的对象•6. 类似Java,ABAP开发的程序能运行于任何操作系统(Java有Java虚拟机,ABAP 也有ABAP processor),多种数据库(比如在ABAP字典中实现了透明表对各种底层数据库表的映射,这样在ABAP层看到的透明表就和具体数据库无关),各种网络系统•图1-3是一个ABAP开发和运行环境的图例.ABBF开发坏境图丄—3甲岂----- 卄—2. ABAP开发环境的建立掌握基本的ABAF开发环境对ABAPer是有益的,似乎多数ABAPer对底层并不感兴趣3. 获得Access Key .4. ABAP workbench 和ABAP dictionary5. 第一个程序-Hello World.ABAP Editor; Initial Screen如何进行ABAP 开发呢?本节使用老套的做法,介绍如何建立一个”Hello World ”的 ABAP 程序,为了让读者尽快掌握 ABAP 开发熟悉ABAP 开发环境是必须的,请看图1.5-1 . 程序的原代码如下Report ZHELLO.Write ' Hello World!'.ZHELLO ①(kg^g ® Wtth V^nt Variants D CreateSUntijecU Tftie The first pro^^m Halo World fTl LICrWt«l STOSZT Last cha-oad by 06/29/2005 STfMtEF JJ _曲 CvpUy Atvtoute? Tm MStatus 8jApokaucnU I AuthB 血呵®M 汕lo$C4l 站 Jb^eSetectm screen 53TP FRCG ZHELLOM Local CbHCt 上 Lock Over we w 雷 XE9V5-1^rtriutes 3JJjJiX'. r 广日『询f o iSUtus cb>ect PS 呻6. ABAP语法简介数据类型控制流程文本摘要输出格式程序调试7.0pen SQL和Native SQL8. 内表和工作区9. 使用字段符号10. 模块化程序11. 文件处理12. 簇数据库和逻辑数据库13. 消息和错误处理尽管消息这词还用在其他地方比如PO,SO打印传真等所谓的output message(请看ABAP百夜谈),系统出现异常,在这里消息只谈在程序运行逻辑异常处理时的消息1定义消息(参考图7-7).使用Tcode SE91可自定义包含多消息号的消息类,在图7-7中就定义了一个消息类ZFIMSG同时消息号017中使用了俩&消息变量2运用消息.2. 在程序Title中定义直接在语句中使用.REPORT ZMSGTEST .MESSAGE IO17(ZFIMSG).1.将变量赋给消息.REPORT ZMSGTEST .MESSAGE I017(ZFIMSG) with Var1' Var2 ' Var3'.或者MESSAGE ID ' ZFIMSG ' TYPE 'I' NUMBER '0171' with Var1' Var2' Var3'尽管017只定义了两消息变量,但是可With多个值,当然只有前俩生效.4.SAP程序消息类型有下列几种.I:信息窗口W:警告E:错误S:成功A:终止程序或Tcode X:未知.5.和标准SAP-样,你可配置消息,比如你需要由用户决定消息类型,使用下面程序PROGRAM ZMSGTEST .CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE'EXPORTINGI_ARBGB = 'ZFIMSG'I_DTYPE =''I_MSGNR = '017'IMPORTINGE_MSGTY = SY-MSGTY.假设你做了Tcode和OBAL样可配置消息类型,在程序中你就可根据返回值SY- MSGTY 判断下步工作,E停止处理,A退出程序等.在标准程序中,接下来会PERFORM MESSAGE S来决定发送消息类型.3常用消息表格和各模块常用消息配置Tcode.在消息配置中‘Application Area和SE91的Message Class实际上是同一概念Message Control by User同样在程序中避免使用泪水 MESSAGE E017(ZFIMS 而采用CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE'EXPORTINGI_ARBGB = 'ZFIMSG' I_DTYPE =''I_MSGNR = '017' IMPORTINGE_MSGTY = SY-MSGTY.根据返回的SY-MSGT 去判断消息类型将更好些. 6实例介绍P (在有发票校验后禁止修改价格 ,假设无PO release 策略,使用User-exit 步骤如下: (1) 找合适的用户出口发现 EXIT_SAPMM06E_01 比较合适,SMOD 输入 enhancement name :MM06E005 (2) 编写代码.*& ________________________________________ * *& In clude ZXM06U42 * *& ________________________________________ *DATA : ZWATEKPO like BEKPO ,ZIEINFO LIKE EINFO OCCURS 0 WITH HEADER LINE, ZERMSG(73) TYPE C. TABLES EKBE .***TEKPO records all the old PO item date .*** I_EKPO records curre ntly processed PO item .READ TABLE TEKPO INTO ZWATEKPO WITH KEY EBELP = I_EKPO-EBELP . ***只对ME22才生效.CHECK SY-TCODE = 'ME22N '.***EKBE 是PO history 表,如有Q,R 表示有发票校验历史,不允许更改价## SELECT SINGLE * FROM EKBE WHERE EBELN = I_EKPO-EBEL ni.Ms^fo 017Message text User Name Online Batchi Standard ESSD• E3闔囲阳A S3^— MsgT Description呂1TEKT2ErrorsNote In windowTerminationNote in fooler回 2ZFIMSG Message Class for FI Customized Programs AND EBELP = I EKPO-EBELP14. 使用用户授权15. 调用外部程序和程序动态生产16. 选择屏幕17. 使用程序运行变式18. 制作Tcode二. 加强篇.1. CATT2. BDC3. 制作程序的background job4.SapScript5.Smartform6.SAP Query7. ALV 编程8. ALE/iDoc9. Report painter 和Drilldown Report10. RFC/BAPI11. 编写用户增强12. 深入ABAP工作台在这章将深入介绍各种ABAP寸象的操作.13. 传输请求这节并不是侧重介绍如何配置传输请求和其运行机制的, 这通常是basis 的工作和ABAPe併无关系,还是那句话,了解点大概是必要的.通常企业起码会有两个系统, 开发(测试)系统和生产系统(有些企业开发任务相对少开发和测试使用同一台server甚至同一client,开发和测试也都有ABAPe完成), 如果要严格开发流程, 开发, 测试必须是分开的(为了节省当然可使用同一server, 不同的Client甚至用不同System Number逻辑分成两Server),在此不深入讨论.熟悉几个名词:1 开发类(Development Class).开发类可简单理解为逻辑上相关的一组ABAP对象,在将来传输时将使用同一传输层.实际上开发类本身也可看做是一个ABAP对象,可使用SE80建立.$TMP是本地开发类,属于此开发类的任何ABAFP寸象(包括自定义的表,编写的程序等都只能在Client 做测试用而不能被传输到其他Client.包现在被用来代退开发类.2. 包(Package)相关的ABAP对象被组合在一个包内,SE16:TADIR可看到被分配到某包的所有的ABAP对象,包决定了这些对象的传输层.所有的包被存在表TDEVC中,建立包可使用SE80或直接使用SM30:V_TDEVC.包作为开发类的退代和前身有这么几个加强特征.1. 包可嵌套使用(这点类似Java package)2. 包类可包含最多本包中可见的对象, 这些对象在包外不可见这点类似私有对象(Private object), 在00F中也很常见.3. 包可为包接口定义使用访问授权.4. 通常自定义包必须是丫或Z前坠,这点和其他ABAP对象相同(包其实也可看做ABAP对象).其他一些包前坠A-S, U-X表示SAP标准包,T私有测试包,$本地临时包,/*** 名字空间前坠.3. 传输层(Transport Layer)传输层决定包内对象是分配给本地还是可产生传输请求. 通常,开发系统都被分配了一个标准的传输层,当包被建立时,. 它就被分配了一个标准传输层. 包内对象也立即自动获得相关传输属性.相关IMG配置使用的是标准的传输层.通常由basis使用Tcode STMS配置传输管理系统维护传输曾和路由. 图2.13-1,显示的是从DVU开发的程序传输到QAS ffi PRD的传输路由,在图中程序在DVU server的client 210,100 开发后被传输到QAS Client 310测试,成功后被分别传入PRD Client 800,810 和820 .[Three System Landscape (Test) 06/13/2005 14:41:3218-> 1004. 传输请求程序是究竟保存在server 的什么地方?程序是如何在不同client 和server 之间进 行传输的?要明白这问题,首先让我们看看什么是传输程序和传输控制程序.传输控制程序TP 和R3TRAN 传输程序,R3TRANS 被用来实现SAP 各Client 间的数 据传输和不同版本迁移,TP 传输控制程序根据传输参数(Transport Profile) 调用 R3TRAN 传输程序.14. 和其它语言的交互VB,Delphi,Java 其实开发工具使用都简单,别人都弄出开发环境都给弄出了 ,学用 还会难吗?92.13-1Transport-> 210First T 日匚g 、 ->/ZQAS/欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。
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(Advanced Business Application Programming),即高级业务应用程序编程,是一种用于在 SAP 系统中进行开发的编程语言。
如果你对 ABAP 编程感兴趣,或者想要在 SAP 领域深入发展,那么参加ABAP 培训是一个不错的选择。
接下来,就让我们一起走进 ABAP 培训的世界。
一、ABAP 基础在 ABAP 培训的初始阶段,您将接触到 ABAP 的基础知识。
这包括对 ABAP 语言的语法、数据类型、变量和常量的理解。
语法是编程的规则,就像我们日常交流中的语言规则一样。
ABAP 有其特定的语法结构,例如语句的书写方式、关键字的使用等。
数据类型则决定了数据的存储方式和可以进行的操作。
比如整数型、字符型、浮点型等。
变量就像是一个容器,用来存放不同类型的数据,而常量则是固定不变的值。
掌握这些基础知识是后续学习的基石,只有在这个基础上,才能搭建起更复杂的程序结构。
二、数据处理数据处理是 ABAP 编程中的重要环节。
培训中会涵盖数据的读取、写入、修改和筛选等操作。
读取数据通常是从数据库表中获取所需信息。
这需要了解如何使用SQL 语句在 ABAP 中与数据库进行交互。
写入和修改数据则要确保数据的准确性和完整性。
数据筛选则是根据特定的条件从大量数据中提取出有用的部分。
这需要掌握条件判断语句,如 IF 语句、CASE 语句等,以便根据不同的情况对数据进行处理。
三、程序结构在 ABAP 培训中,您还将学习不同的程序结构,如顺序结构、循环结构和分支结构。
顺序结构是最简单的,按照代码的书写顺序依次执行。
循环结构则用于重复执行一段代码,比如 FOR 循环、WHILE 循环等。
分支结构可以根据不同的条件选择执行不同的代码块,让程序更加灵活和智能。
合理运用这些程序结构,可以使程序的逻辑更加清晰,提高程序的效率和可读性。
四、函数和子程序函数和子程序是 ABAP 中实现代码复用的重要手段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ABAP/4语言入门郑州三全食品股份有限公司信息部内部培训教材作者:强晟日期:2006年8月2日1.ABAP/4入门简介ABAP/4(AdvancedBusinessApplicationProgramming)是SAP/R3目前唯一的系统开发工具,属4GL(第四代语言),语法比较近似VisualBasic或JAVA,和传统的第三代语言,如C、PASCAL有很大不同,在程序模块(ProgramStructureModule)可分以下三个部分:1.过程块内的顺序编码与一般语言语法近似,如IF,WHILE等,但并没有GOTO语法2.报表调用一个独立的事件(Depending Event),读取数据库产生数据列表3.对话框屏幕参数输入的对话框,专门处理数据库读取或更改的事务过程基本语言概览1.数据元素声明方式,如数值,字符数据变量声明2.操作符使用,如+-*/3.控制元素使用,如Boolean值4.特殊数据格式,如日期与时间5.字符处理函数,如部分字符串的截取6.子程序或自定函数的调用7.SQL语法使用8.数据结构的使用,如过程内表的声明与使用报表概览1.ReportsTask,如报表屏幕预览或打印机打印的选择2.Reports模块是一个独立的程序3.数据库读取方式,如可定义逻辑数据库(与磁盘的物理存储对应)4.报表数据的计算与产生5.报表的输出对话框概览1.专处理数据库的读取与更改,如使用SQL命令2.对话框不是一个独立程序,使用事务码来产生屏幕对话框3.由流程逻辑控制,流程逻辑分成PBO(ProcessBeforeOutput,输出前过程)与PAI(ProcessAfterInput,输入后过程)2.开始编程2.1ABAP/4编辑器创建ABAP/4程序使用ABAP工作台撰写程序(选择工具->ABAP/4工作台,事务码S001),屏幕如下:可分成:1.ABAP/4编辑器:针对简单的报表或程序,仅使用几个组件或不使用2.对象浏览器:针对复杂的报表或程序,如对话事务模块(Dialog TransactionModule)的编写使用ABAP/4编辑器撰写程序1.ABAP/4编辑器界面如下(事务码SE38):2.输入程序名称,如果是新程序,按下“创建”,如果修改已存在程序,则按下“修改”或F6键。
在命名规则上,报表程序为Yaxxxxxx或Zaxxxxxx,a表示applicationmodule(应用程序模块)简称,如s表示SD。
对话框程序为SAPMYxxx或SAPMZxxx3.输入程序属性(1).Title:程序描述或功能说明(2).Type:执行模式,包括:可执行程序,如报表;INCLUDE程序;模块池;函数组;子程序池(3).Status:程序开发状态,包括:SAP标准生产程序;客户生产程序;系统程序;测试程序(4).Application:程序所属的应用模块,如:财务会计;物料管理;销售分销注意:由于SAP翻译问题,上图界面语言混乱,操作时请以实际显示为准。
4.选择开发类开发类:用于同一系统中各个程序,如果不属任一类,可使用$TMP5.撰写源代码REPORT之后接的是程序名称,WRITE是显示的意思,会将所接的字符串在屏幕上显示,注意每一行最后要有一个'.'(点),表示语句的结束,储存后返回ABAP/4编辑器界面。
6.执行程序按“执行”或F8键,屏幕可见执行所得的结果重要的编辑功能键键F8F5F11 CTRL+F11功能执行程序复制光标所在列的内容储存文件删除光标所在列2.2ABAP/4数据元素数据类型ABAP/4的数据类型可分成:类型CDFINPTX长度18841861范围1-65535字节8字节8字节-2^31至2^31-11-65535字节1-16字节6字节1-65535字节初始值空格'00000000''00…0''000000'X'00'说明字符串数据,如'Program'日期数据,格式为YYYYMMDD浮点数整数数值所组成的字符串Packed数,用在小数点数时间数据,格式为HHMMSS16进制数变量声明变量声明包含name,type,length和structure四个部分,使用DATA命令,如DATA:S1TYPEI,SUMTYPEI.常数声明常数声明使用CONSTANTS命令,如声明PI是一个小数点5位的值3.14159CONSTANTSPITYPEPDECIMALS5VALUE'3.14159'.系统所定义数据这是由系统所定义的专有名词,如:SPACE"空格字符串SY-SUBRC"系统执行返回值,0表示成功SY-UNAME"登录帐号SY-DATUM"系统日期SY-UZEIT"系统时间SY-TCODE"目前的事务码TYPE声明用来指定数据类型或声明自定数据类型示例:TYPES:BEGINOFMYLIST,NAME(10)TYPEC,NUMBERTYPEI,ENDOFMYLIST.DATALISTTYPEMYLIST.LIKE声明跟TYPE声明使用格式相同,如DATATRANSCODELIKESY-TCODE.不同的是LIKE用在已有值的数据项,如系统变量,而TYPE声明则是用在指定数据类型。
DATA声明语法:DATA<f>[<length>]<type>[<value>][<decimals>]<f>:变量名称,最长30个字符,不可含有+.,:()等字符<length><type>:数据类型及长度,如LINE(20)TYPEC.MYNAMELIKESY-UNAME.<value>:初值<decimals>:小数位数示例:DATA:COUNTERTYPEPVALUE1,FLAGTYPECVALUEISINITIAL,WEIGHTTYPEPDECIMALS2VALUE'1.25'.字段变量的声明:DATA:BEGINOFADDRESS,NAME(10)TYPEC,NUMBERTYPEP,ENDOFADDRESS.使用时用字段变量加上表名称,如ADDRESS-NAMECONSTANTS声明用来声明常数语法:CONSTANTS<c>[<length>]<type>[<value>][<decimals>]示例:CONSTANTS:CNAME(10)VALUE'周庆日',BIRTH_DAYTYPEDVALUE'19650201'.STATICS声明声明的变量仅在目前的程序中使用,结束后会自动释放语法:STATICS<c>[<length>]<type>[<value>][<decimals>]TABLES声明用来声明表工作区的数据,对应至ABAP/4字典对象(Dictionary Object),由SQL命令加载所需数据语法:TABLES<dbtab>示例:TABLES:SPFL.SELECT*FROMSPFL.WRITE:SPFL-MANDT,SPFL-CARRID,SPFL-CONNECTION.ENDSELECT.从ABAP/4字典的SPFL表载入MANDT,CARRID,CONNECTION三个字段至SPFL这个表工作区2.3向屏幕输出数据WRITE命令ABAP/4用来在屏幕上输出数据的命令是WRITE语法:WRITE[:]数据项数据项可以是常数或变量,如果同时输出多项,必须加冒号,如:WRITE'Thisissample'.WRITE:'COMPANY:',STFL-CARRID.指定屏幕位置显示语法:WRITEAT[/][<pos>][(<len>)]资料项/:先往下一列pos:屏幕X轴坐标(len):显示数据的长度示例1:WRITE'FirstLine'.WRITE/6'SecondLine'.输出结果:FirstLineSecondLine示例2:DATA:NUMBERTYPEIVALUE'1234567890',TEXT(10)VALUE'ABCDEFGHIJ'.WRITE:(5)NUMBER,/(6)TEXT.输出结果:*7890ABCDEF指定显示格式语法:WRITE数据项<显示格式参数>显示格式参数:LEFT-JUSTIFIED数据靠左显示CENTERED数据靠中间显示RIGHT-JUSTIFIED数据靠右显示UNDER<g>在数据项<g>的X轴开始坐标显示NO-GAP紧接着显示,不留空格USINGEDITMASK<m>使用内嵌字符显示,如11:20:30 USINGNOEDITMASK不使用内嵌字符NO-ZERO数字前面0的部分不显示NO-SIGN不显示正负号DECIMALS<d>显示d位小数字数EXPONENT<e>F(浮点数)exponent的值ROUND<r>四舍五入至小数位数下r位CURRENCY<c>币别显示DD/MM/YY日期显示格式MM/DD/YY日期显示格式DD/MM/YYYY日期显示格式MM/DD/YYYY日期显示格式DDMMYY日期显示格式MMDDYY日期显示格式YYMMDD日期显示格式示例1:DATA:XTYPEIVALUE'112030',A(5)VALUE'ABCDE'.WRITEXUSINGEDITMASK'__:__:__'.输出结果为:11:20:30示例2:DATA:XTYPEIVALUE'112030',A(5)VALUE'ABCDE'.WRITEXUSINGEDITMASK'$___,___'.输出结果为:$112,030产生空白列产生n个空白列语法:SKIP[<n>]示例:WRITE'PASS1'.SKIP.WRITE'PASS2'.输出结果为:PASS1PASS2显示图标可以显示R/3系统所提供的符号或图标语法:WRITE<symbol-name>ASSYMBOLWRITE<icon-name>ASICON示例:INCLUDE<SYMBOL>.INCLUDE<ICON>.WRITE:/'PhoneSymbol:',SYM_PHONEASSYMBOL.WRITE:/'AlarmIcon:',ICON_ALARMASICON.执行结果:要查看系统所提供有哪些符号及图标,可选择返回ABAP编辑器的初始页,执行程序SHOWSYMB和SHOWICON程序列出所有符号和图标跳至指定列坐标将坐标跳至指定的Y轴列坐标语法:SKIPTOLINE[<n>]示例:SKIPTOLINE5.WRITE'PASS1'.执行结果:PASS1显示复选框数据以字符串数据内容的第一个字符为复选框的输出,如果是空白,复选框显示为空白,相反则显示X,可用在逻辑判断检查。