ABAP基础知识(完整版)---自学
ABAP学习手册
ABAP学习⼿册ABAP⾃学经历次⽂件来源于⽹络1, ⼏个重要的表1.1 BasisTSTCT 事务代码⽂本1.2 Sales document additionalVBPA 销售凭证:合作伙伴VBUK 销售凭证:抬头状态和管理数据VBUP 销售凭证:项⽬状态VEDA 合同数据1.3 Vendor masterM_KREDA匹配码标识KRED 的已⽣成视图1.4 Customer masterKNA1客户主⽂件的⼀般数据KNVV客户主记录销售数据2, ABAP 常⽤的⼏个事务代码2.1 SE38 程序设计SE80 程序开发SE24 类开发SE37 模组开发SE11 表结构SE16 表数据SE91 消息管理的SE10 管理请求号SU01 创建帐号PFCG 创建⾓⾊STMS传输管理系统SE81 跨客户端的应⽤层次SE84 寻找跨客户端组件SE93 创建事务代码Cmod 创建增强⼯程3, ABAP有三种类型的处理块3.1 Event blocks, Dialog Modules,Procedures只有后⼀种可拥有⾃⼰的局部变量,⽽且程序语句是内部调⽤,前两者处理块之间实⾏外部调⽤4, 应⽤程序类型4.1 可执⾏的:以Report关键字引导,不能定义功能模块但可以调⽤.4.2 模块池的:以Program关键字引导,必须通过事务代码运⾏.5, Abap的数据类型分为三种类型5.1 类型 5.2 结构 5.3 内表6, 数据定义6.1 直接定义: Data int_a type I.6.2 参照⾃⼰定义的数据类型定义Type char_six(6) type c.Data chs type char_six.6.3 参照T-CODE:SE11中建⽴的数据类型定义6.4 直接使⽤likeData ch4 like ch3. (其中ch3已经在se11中定义过)6.5 定义常数:使⽤constants基本语法:Constants: type value .Eg: CONSTANTS INT TYPE I V ALUE 99.7, Form……Endform在⼀个Program中,处于Form和Endform之间的是Subroutines. 该程序由Program引导,不能直接运⾏,需被调⽤,不能包含⾃定义的⽤户屏幕.8, 设置⽇期的显⽰分隔符,⼩数点字符和千位分隔符在⽤户主记录⾥可以设置⽇期的显⽰分隔符,⼩数点字符和千位分隔符,在system->userprofile->owndata 或T-code: su01.9, Copy程序Se38->输⼊被Copy的程序名称->Ctrl+F5(快捷键)或者选择注意:客户的程序名称必须要以Z开头10, 两个结构体进⾏赋值两个结构体进⾏赋值操作,如果Source与Destination的组件结构不完全相同,则⽤Move-corresponding.Eg: move-corresponding source-data to destination-data.11, 关键字表达式在ABAP数据表达式中,关键字前后必须有空格。
ABAP基础
ABAP基础程序结构ABAP语言是整个SAP系统的基础开发工具和技术平台,其包含:事件驱动(Evet-Driven)、机制和模块化技术(Modularization)、完整的面向对象概念及实现方法(Object Oriented)。
ABAP程序的源代码结构包括数据定义和处理块两部分:数据定义:整个程序中可见的全局数据类型和数据对象、选择屏幕元素以及ABAP Object 中自定义的类和接口。
处理块(Processing Blocks):是ABAP的主要结构单元,定义程序在不同状态下执行的具体功能,在编译运行中,每一块都是一个独立的实体。
注:数据(包括选择屏幕元素)定义和声明语句是独立于任何处理块的,其他所有语句则都必须隶属于某个处理块。
1. ABAP程序含有三种类型的处理块:·事件块(Event Blocks):每一个事件都需要有一个时间关键字引导,并单独构成一个语句,其后续语句隶属于该关键字代表的时间块,直到下一关键字出现为止。
包括:报表事件、列表事件、屏幕事件初始化:INITIALIATION数据选择开始:START-OF-SELECTION列表行选择:ATLINE-SELECTION屏幕输出前处理:PROCESS BEFORE OUTPUT平和输入后处理:PORCESS AFTER INPUT·对话模块(Dialog Modules):开始和结束都有相关的关键字作为标志,是相对独立的程序单元。
·过程(Procedures):代码部分的开始和结束都有相关的关键字,也是相对独立的程序单元。
过程包括功能模块和子程序,以及对象中的类方法可以被其他的模块调用,实现程序模块化和代码复用。
2. 处理块调用处理块使程序代码模块,也是运行期间的单元;其具体出现的顺序与其在程序代码中的先后顺序无关。
3. 事件驱动在各种处理块中,系统对事件快的调用过程有其特殊性:其调用总是与某时间地发生相关,也成为事件的触发。
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学习笔记
ABAP学习笔记一、ABAP语法简介:ABAP(Advanced business application program),是一种高级企业应用编程语言,它支持封装性和继承性,封装性是面向对象的基础,而继承性是建立在封装性基础上的重要特性。
它适合生成报表,支持对数据库的操作,如:Sqlserver,Oracle,DB2等主流数据库系统。
主要的语法有:数据类型、控制流程、文本摘要、输出格式、程序调试1、数据类型:(八种基本数据类型)D :日期类型,格式为YYYYMMDD,长度为8T :时间类型,格式为HHMMSS,长度为6I :整数类型,默认长度为4,初始值为0F :浮点类型,默认长度为8,初始值为0,常用于计算C :字符串类型,定义变量时指定字符个数N :数字字符串类型,定义变量时指定数值字符个数X :字节序列类型,定义变量时指定字节数P(压缩号) :允许的长度为1 到16 个字节,系统会指定默认值8 个字节(也就是15 位数字)和0 个小数位常用:大小,长度,重量,货币等单位的场合.2、输出格式:WRITE 'First line.'.WRITE 'Still first line.'WRITE / 'Second line.'WRITE /13 'Third line’.3、控制流程:使用IF的条件分支IF <条件表达式1>.< statement block >ELSEIF <条件表达式2>.< statement block >ELSEIF <条件表达式3>.< statement block >.....ELSE.< statement block >ENDIF.使用CASE的条件分支CASE <f>.WHEN <F1>.<statement block>WHEN <F2>.<statement block>WHEN <F3>.<statement block>WHEN .........WHEN OTHERS.<statement block>ENDCASE.二、ABAP的语法特点:1、由各自独立的语句构成。
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/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键。
sap abap 学习笔记总结
目录基本语法 (4)定义数据和类型 (4)运算符控制流语句 (5)字符串操作 (7)字符串连接 (7)字符串拆分 (7)字符串查找 (7)字符串替换 (8)字符串长度 (8)定位操作字符串 (9)子程序 (9)无参数 (9)带参数 (9)参数传值和传地址对比 (10)创建功能模块FUNCTION (10)包含程序 (11)静态变量 (11)内表操作 (11)1.定义基本内表 (11)2复杂内表. (12)示例一 (12)示例二 (15)示例三 (16)示例四 (17)数据库建表 (21)数据库查询 (21)(一)单表查询 (21)(二)多表联合查询 (25)1.嵌套查询 (25)2.FOR ALL ENTRIES (26)3多表结合查询 (27)结果放入变量 (27)查询单行,结果放入结构体对象(工作区)中 (27)查询多行,结果放入内表中 (27)数据库操作查询学生班级表。
(29)单表查询 (29)单行部分字段 (30)多表联合查询 (30)单行所有字段 (31)单行部分字段 (32)添加数据 (33)添加一条 (33)插入多行数据 (33)修改记录 (34)使用变量修改 (34)使用工作区修改 (34)使用内表修改多条数据 (34)修改或保存 (35)使用工作区修改或保存 (35)使用内表修改或保存 (35)删除 (36)使用工作区删除 (36)使用内表删除 (36)案例:查询数据库数据至内表修改内容并且更新到数据库 (36)报表设计 (37)选择屏幕 (37)选择屏幕参数 (37)格式化屏幕参数 (38)复杂选择标准 (38)ALV报表 (40)示例一 (40)参数说明 (43)w_fcat TYPE slis_fieldcat_alv, (43)用到属性: (44)其他属性: (44)w_layo TYPE slis_layout_alv, (46)使用属性: (46)其他属性 (46)i_fcat TYPE slis_t_fieldcat_alv. (49)示例二: (52)屏幕编程 (55)重要概念: (55)创建: (55)举例:用户输入学号返回姓名等信息 (57)由数据字典生成屏幕 (58)根据定义的结构生成屏幕 (58)单选、复选钮用法 (58)P OV(F4帮助)添加 (59)屏幕间跳转 (59)添加table control 字段 (63)设置某列为不可编辑 (64)设置下拉列表框 (64)从数据库取值加入列表 (65)下拉列表取值 (66)Screen上后添加数据库字段 (67)T ABLE CONTROL (67)Screen layout (67)Screen 100中代码 (68)Programe中代码 (69)SARTFORM (71)简单示例 (71)程序部分 (71)Smartform配置 (72)Template (72)Table做法: (75)样式设置 (77)基本语法定义数据和类型REPORT ZWANGZHENG2.*定义数据txt1 类型 C 长度15 初始值HELLO WORLD DATA txt1(15) TYPE c VALUE 'HELLO WORLD'. *定义类型t_txtTYPES t_txt(15) TYPE c .*定义数据txt2 类型为:t_txtDATA txt2 TYPE t_txt VALUE 'first'.*定义类型为N的数据及类型。
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语句来处理异常。
(2024年)ABAP培训教程
修改表
使用ALTER TABLE语句修 改已存在的数据库表结构, 如添加、删除或修改字段。
删除表
使用DROP TABLE语句删 除指定的数据库表。
15
数据库查询优化
索引优化
根据查询条件和数据量大小,合 理创建和使用索引,提高查询效
率。
2024/3/26
SQL语句优化
编写高效的SQL查询语句,避免全 表扫描和不必要的JOIN操作。
在ABAP中,使用 `INHERITING FROM`关键字 实现继承,通过方法重写实现 多态。
21
封装与接口
封装(Encapsulation)将数据 和行为捆绑在一起,隐藏内部实 现细节,只暴露必要的接口。
2024/3/26
接口(Interface)定义了一组方 法的规范,但不提供具体实现。 实现接口的类必须提供这些方法
01
设计报表的布局,包括表格、图表、文本等元素的排列和组合。
格式化
02
对报表中的数据进行格式化处理,如日期、数字、货币等格式
的显示。
样式设置
03
设置报表的样式,包括字体、颜色、背景等,以提高报表的可
读性和美观度。
26
报表输出与打印
2024/3/26
输出格式
支持多种输出格式,如PDF、Excel、Word等,以满足不同用户 的需求。
用于ABAP程序的开发、调试和执行,提 供了丰富的开发工具和界面设计功能。
SAP Web IDE
基于Web的集成开发环境,支持ABAP和 其他SAP开发语言,提供了代码编辑、版 本控制、团队协作等功能。
Eclipse ADT
基于Eclipse平台的ABAP开发工具,提供 了代码自动补全、语法检查、调试等功能。
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关键字指定输入参数。
(完整版)ABAP总结
注意: 1.其中 C,N,T,D,I,F,P,X 为定长类型,即在运行期间长度不能改变. 2.类型 T,D,I,F 的数据存储长度是固定的,不能指定参照其生成的数据对象占用的 内存字节数. 3.基于类型 C,N,P,X 生成的数据对象需要在声明时指定其长度.否则取默认值. 4.如果在声明一个数据对象时未指明其数据类型,则该数据默认为 C 类型. 5.类型 I 的数值范围:-231 到 231-1 的整数.如果运算时出现非整型结果则进行四舍 五入取值.而不是截断小数. 6.类型 P 用于声明小数字固定的压缩数,其占据内存字节数和数值范围取决于定 义时指定的整个数据的大小和小数点后位数,如果不指定小数字,则将其视为 I 类 型数据.有效大小可以是从 1~16 字节的任意值,小数点后最多允许 14 个数字. 7,类型 F 为浮点数,浮点意思是数字在内存中以字节形式表示,数值范围:1*10-307 到 1*10308,因系统将 F 类型转换为二进制数,所以可能出现舍入误差,若用户要求 较高精度且数值较大时,应使用 P 类型数据. 8.长度可峦的内置类型 String, XString 是通过引用实际动态的数据对象的固定内 存地址来操作.
2
hing at a time and All things in their being are good for somethin
>Default Values->name of screen field:viewname\update,value:table name\X. 47. field-sign:,field—option:,field-low:表示选择条件中起始值 48. 在 where 子句中如果只有一个表的话,可以不用指定表名. 49. 获取用户 IP 地址及用户名:
ABAP基础知识(完整版)---自学
ABAP基础知识(完整版)-上SAP ABAP / 4 基础知识学习数据类型C :字符串D :日期型格式为YYYYMMDD 例:'1999/12/03'F : 浮点数长度为8I :整数N :数值组成的字符串如:011,'302'P : PACKED数用于小数点数值如:T : 时间格式为: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 ''.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 ''.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简介ABAP语言也称作ABAP/4,它的全称是Advanced Business Application Programming - 4 th generation LanguageABAP是SAP的支柱所有的R/3应用程序和部分的Basis 系统都是用ABAP语言开发的数据字典编辑器函数库SAP事务码ABAP字典在商业应用软件开发时,部分实际世界必须被描述成数据形式。
商业应用软件的作用在于接收业务数据,并将其用一定的形式储存起来。
这些业务数据在储存后,还可以随时读取出来,再次利用。
例如:财务人员向SAP系统中输入会计凭证,保存之后还可以随时把凭证调出来查看。
无论是接收数据、储存数据、读取数据、使用数据,其核心都是数据。
在SAP R/3系统中,基本上所有的数据都是存在数据库表里面的。
数据库表,以及与其相关的视图、结构等构成了ABAP字典ABAP字典SE11ABAP字典所包含的要素表(Table)视图(View)结构(Structure)数据元素(Data Element)域(Domain)表类型(Table Type)搜索帮助(Search Help)锁对象(Lock Object)ABAP字典-表:SAP R/3 中看到的表并不是真正在数据库中物理上储存数据的表。
SAP中的表和数据库中的物理表是对应起来的。
ABAP 字典中的表分为3种透明表(Transparent Table)和数据库中的物理表一一对应,在SAP中激活透明表时,会在数据库中创建一个同名的物理表。
我们用到的绝大多数表都是透明表。
簇表(Cluster Table)大,多个簇表存在一个物理表中。
无索引共享表(Pooled Table)小,多个共享表存在一个物理表中。
无索引ABAP字典-视图ABAP 字典中的视图分为4种数据库视图投影视图维护视图直接向数据库表中维护数据帮助视图对表中内容进行筛选,用来提供搜索帮助ABAP字典–数据元素和域数据元素(Data Element)域(Domain)在SAP字典中,数据库表是有一个一个的字段组成的,每一个字段代表着一个需要储存的现实中的数据。
abap 开发知识点
abap 开发知识点ABAP 开发知识点ABAP (Advanced Business Application Programming) 是SAP 公司开发的一种高级业务应用编程语言,主要用于 SAP 系统的开发和定制。
在ABAP 开发中,有一些重要的知识点需要掌握,下面将会分别介绍。
1. 数据类型在ABAP 中,有许多不同的数据类型,包括整型、浮点型、字符型、日期型等。
在声明变量时,需要指定变量的数据类型,以确保变量能够存储正确的数据。
例如,声明一个整型变量可以使用以下代码:DATA: lv_num TYPE i.其中,lv_num 是变量名称,TYPE i 表示变量的数据类型为整型。
2. 数据对象在ABAP 中,数据对象是指在程序中使用的数据元素,包括变量、常量、字段符号等。
可以通过DATA 关键字声明变量,在程序中使用。
在ABAP 中,还有一种特殊的数据对象叫做内部表。
内部表类似于数据库中的表格,可以存储多行数据。
在ABAP 中,可以通过以下方式定义一个内部表:DATA: lt_data TYPE TABLE OF ty_data.其中,lt_data 是内部表名称,ty_data 是内部表的行结构。
3. 函数和方法在ABAP 中,函数和方法都是用于执行特定任务的代码块。
函数是独立的代码块,可以在程序中任何地方调用;而方法是与对象相关联的代码块,必须通过对象调用。
在 ABAP 中,可以通过 FUNCTION 和 METHOD 关键字定义函数和方法,例如:FUNCTION z_test_function.* 函数代码ENDFUNCTION.METHOD z_test_method.* 方法代码ENDMETHOD.4. ABAP 程序结构在ABAP 中,程序结构包括了程序头、变量定义、主体代码和结束语句。
程序头包括了程序名称、类型和描述等信息;变量定义用于声明程序中使用的变量;主体代码包含了程序的主要逻辑;结束语句用于结束程序的执行。
abap基本语法汇总(2021年整理精品文档)
(完整版)abap基本语法汇总编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)abap基本语法汇总)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)abap基本语法汇总的全部内容。
一数据类型和对象在ABAP中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。
在程序中必须声明要使用的全部数据对象。
声明过程中,必须给数据对象分配属性,其中最重要的属性就是数据类型。
1。
1对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。
类型 P 数据允许在小数点后有数字。
有效大小可以是从 1 到 16 字节的任何值。
将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。
在小数点后最多允许 14 个数字。
1。
2 系统定义的数据对象1。
3 确定数据对象的属性如果要查明数据对象的数据类型,或者要在程序的运行期间使用其属性,可使用 DESCRIBE 语句.语法如下:DESCRIBE FIELD 〈f〉 [LENGTH <l〉] [TYPE <t> [COMPONENTS 〈n>]][OUTPUT-LENGTH 〈o>][DECIMALS 〈d〉][EDIT MASK 〈m>].将由语句的参数指定的数据对象〈f〉的属性写入参数后的变量。
DESCRIBE FIELDS 语句具有下列参数:1.3.1 确定字段长度要确定数据对象的长度,利用DESCRIBE FIELD 语句使用 LENGTH 参数,如下所示:DESCRIBE FIELD <f> LENGTH <l>。
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关键字则是用在指定资料型态。
sap ABAP开发入门到进阶
SAP-A BAP 开发入门到进阶基础篇 - 以简短的篇幅介绍最基本的语法增强篇 - 介绍了常用的ABAP技术希望此书对想从事ABAP开发的读者有相当帮助。
一.基础篇1.什么是ABAP ?了解一下ABAP的发展历史是必要的,ABAP产生的最初的目的是用以生成简单打印报表程序,我们知道SAP最初是为解决财务实时数据处理问题的,ABAP(Advanced Business Application Programming->高级业务应用编程语言)现在用于编写SAP AG的几乎全部产品源代码.严格地讲,ABAP/4不仅仅是一个开发工具,而且是一套完整的client/server开发环境,这很好理解,微软的Visiual Studio是一开发环境,VB,VC++等是开发工具.ABAP开发环境包含支持程序开发的一些函数和包等.如图1-1,是SAP开发环境的一个三层架构的例图,三层(多层)的概念也不新鲜,比如在安装SAP时也可将DB instance安在一台server, Central instance在另一台所谓的Application server(我想这应是相关SAP基础系统包括各种应用程序所在),而通常客户端安装的SAP Logon Front End,SAP会话管理器等是所谓的表示层,它通过TCP/IP,SAP演示协议或RFC和应用服务器进行数据传输,用户看到的只是处理后的数据返回.和Delphi的三层逻辑相近,在应用层包含多个组件象ABAP开发平台,身份验证,系统管理维护等用以处理会话,更新,排队,网关,数据层处理native 和Open SQL等(这是从内部机制方面看),SAP各模块应用的业务逻辑都在应用层被处理(从用户角度)然后结果被返回.图1-2是SAP Logon的一个截图,[1]表示应用服务器(通常企业为了节省成本和方便管理可能会将应用服务器和数据库安装在同一起),[2]System number,举个实例,开发和测试服务共用一台服务器,开发使用system number00,而测试使用system number 01,通过system number逻辑地将一台physical server逻辑地分成了两台application server.学习ABAP并不难,有人说SAP系统重在管理思想,不在技术,通常对有编程经验的读者不用任何培训参考一些相关资料就可立即上手.简单介绍下ABAP/4的一些特征:1.和SAP紧密结合,尤其在开发报表方面,坦率地讲,除了和SAP集成的好处,.我定认为ABAP在报表开发上比Crystal report Tool要高效简单.2.和VB一样 ,ABAP是解释形的,如读者精通VB,学习ABAP应该豪不费力,倒是既然SAP是企业管理解决方案,ABAPer必须对企业管理流程熟悉.解释性的另一好处是可以很好跟踪程序逻辑(使用/H),这对了解业务逻辑的实和追踪错误很有效. 和VB不同的是,VB跟踪时允许程序运行指针随意往回或往全拉而ABAP程序去不行, 但是ABAP程序允许在运行时修改变量的值,这是编译程序不能做到的. 当然通常编译比解释执行的速度会更快.ABAP程序执行并不直接读取源代码,而是执行内部经过“生成”的描述,对于ABAP/4字典的修改激活后将触发内部描述的重新生成,如程序并没激活就执行原版本,或者出现错误(程序没激活可能造成ABAP Dumping ABAP).3.在对数据库处理方面,除了可直接执行SQL(使用native sql,缺点是错误处理很难控制,相当于有开发环境将SQL 语句直接传给DB去执行),SAP在ABAP开发环境层还提供了一套Open SQL访问底层数据库.4. 程序员都知道Windows平台下开发都支持事件驱动,Windows系统本身也支持事件驱动,ABAP也提供了事件驱动,这表现在Dialog编程方面,但是ABAP在此方面并不强,而且相对讲也比较难于掌握(在后面会讨论).5.基于面向对象的风靡,ABAP在此方面也有相当反应,在SAP强大的软件包中提供了大量可重复使用的程序,读者也可定义类并使用它快速建立新的对象.6.类似Java,ABAP开发的程序能运行于任何操作系统(Java有Java虚拟机,ABAP也有ABAP processor),多种数据库(比如在ABAP字典中实现了透明表对各种底层数据库表的映射,这样在ABAP层看到的透明表就和具体数据库无关),各种网络系统.图1-3是一个ABAP开发和运行环境的图例.1 使用C|C++建立ABAP 开发工具,数亿行ABAP source code组成SAP AG多个产品.姑且不论国内ERP产品设计在解决企业流程上的局限性,在大多数国外的ERP产品中我们都可看到结合自身ERP自带的开发工具,在技术上这也是落后人家.所以建2.ABAP开发环境的建立掌握基本的ABAP开发环境对ABAPer是有益的,似乎多数ABAPer对底层并不感兴趣,3.获得Access Key .4.ABAP workbench和ABAP dictionary5.第一个程序-Hello World.如何进行ABAP开发呢?本节使用老套的做法,介绍如何建立一个”Hello World”的ABAP程序, 为了让读者尽快掌握ABAP开发熟悉ABAP开发环境是必须的,请看图1.5-1.6.ABAP语法简介数据类型控制流程文本摘要输出格式程序调试7.Open SQL和Native SQL8.内表和工作区9.使用字段符号10.模块化程序11.文件处理12.簇数据库和逻辑数据库13.消息和错误处理尽管消息这词还用在其他地方比如PO,SO打印传真等所谓的output message(请看ABAP百夜谈),系统出现异常,在这里消息只谈在程序运行逻辑异常处理时的消息.1定义消息(参考图7-7).使用Tcode SE91可自定义包含多消息号的消息类,在图7-7中就定义了一个消息类ZFIMSG,同时消息号017 中使用了俩&消息变量2.在程序Title中定义直接在语句中使用.REPORT ZMSGTEST .MESSAGE I017(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和OBA5一样可配置消息类型,在程序中你就可根据返回值SY-MSGTY判断下步工作,E停止处理,A退出程序等.在标准程序中,接下来会PERFORM MESSAGE_SEND来决定发送消息类型.3常用消息表格和各模块常用消息配置Tcode.在消息配置中,Application Area和SE91的Message Class实际上是同一概念.1消息相关最常用的table:T100: SAP能用到的消息都应该在此表中找到.T160M :MM模块相关消息表,此表可完全直接维护.就是说只要记住它,MM的消息配置直接使用SE16就可以.T100C: FI模块中用户自定义的消息,比如使用OBA5, OFMG等自定义的消息会写入此表,CO配置消息不在此表.T100S: 此表保存着允许用户更改的应用区域和消息号,举例假设你删除了KI 005则在OBA5中再不能配置此消息.(对MM模块有些例外,M7不在此表,使用OMCQ依旧可设置,M3不在此表,OMT4依旧可设置)此表也可直接维护.和T160M不同的是,你必须在SE16输入T100S按新建按钮才可维护.查询时只可Display.T100U: 哪个用户最后更改了消息,从此表能找到.T100W: For Workflow2常用Tcode(部分):FI:OBA5|OFMG|OFPMMM: OMRM|OKZZ|OMT4|OMCQ |O04C|SD:OVAHCO:OPR4_ACT|OPR4_CK|OPR4_CKML|OPR4_CKPF|OPR4_KKA|OPR4_KKP|OPR4_KKS| OPR4_KKS1|OPR4_PPCOPPOthers:OPR5|OPR1|OPR3|OPR6|OPR7|OPR8|OPR9|OPRCMFE|MSW1|MSW23应用举例.物料价格维护问题[Case 1]如何在物料价格未维护时依旧可估算成本.比如在CK11N(CK40N)计算成品标准成本时,其中有一些Component没维护价格.就可使用OPR4_CK将默认的错误消息Switch Off掉(从Tcode OKKN->Misc.->Error Management按钮也可).***另外临时处理方法一是将相关component的物料Cost 1 View选上Do not Costing.对需要计算标准成本的材料选上它就不再允许计算标准成本,不妥,但是对原材料无所谓,因为系统会这样处理,如此材料没维护价格,BOM用到它的成品不计算其成本,但是如此物料维护了价格后,还是以物料价格为先的.(当然CK11N去估算此原材料是不行的,用户也不需如此做).二是按SAP推荐的如果将price设成0.01,price unit设置成100.[Case 2]如何限定物料价格必须维护.(1)对采用S price control的.SAP默认是Warning(Tcode :OMT4 M3-132,如需要限定必须维护价格,将其改成W就可.(2)对采用V price control的,OMT4找不到其消息号M3-131,但系统默认是Warning,如果用户认为也有相关配置就有犯了认为SAP万能的错误,再次强调SAP只是一堆代码并不神秘.好让我们看看其逻辑.***实际上直接使用SE16:T160M可直接配置MM相关.如图:[1]SE38找到程序LMG11F01 [2]在此处设置断点 [3]如价格为0(空格) 写死的,当然配置无效.再看S Price control(如下图,显然从T160M表读了IMG数据).4灵活运用消息.对于消息的运用,除了可配置消息类别外,另外一个重要用处就在于,可根据消息找到程序弹出消息的确切行,然后稍微花点时间看看程序逻辑就可大概知道异常发生的根本原因. 从某种程度来讲,即使对某模块很陌生,只要掌握得好,依旧可排除一些问题.5 配置自定义的消息.俩方法可模妨SAP的消息配置1从上我们已经知道既然T160M是可直接使用SE16维护的,我们就可直接将相关设置写入T160M.然后就可根据相关设置取得消息类别(如上图我们使用函数ME_CHECK_T160M),这样比类似MESSAGE E017(ZFIMSG)—Hard code要安全得多,假设不管三七二十一就给出错误消息,除非在程序中确信已考虑了所有情况,否则还是在T160M这样设置比较好(万一在生产环境还可更改E成W什么的).2我们知道T100C是所谓的可配置消息表,我们可使用SE16:T100C和V_T100C.(1)SE16:T100S定义消息可配置信息.如图[1]在此新建.(进去browse数据似乎不可新建)设置消息.如下图.[1]Appl Area消息类ZFIMSG. [2]表示允许配置的消息类型 [3]没选则表示不能关闭消息.(2)SE16:V_T100C配置消息.如图:[1]表示直接使用程序(Tcode)的消息类型[2]当当程序以BDC方式运行时的消息类型[3]就是上图设置的允许的消息类型,可看到警告和关闭都没出现(T100C没允许)同样在程序中避免使用泪水MESSAGE E017(ZFIMSG)而采用CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE'EXPORTINGI_ARBGB = 'ZFIMSG'I_DTYPE = ''I_MSGNR = '017'IMPORTINGE_MSGTY = SY-MSGTY.根据返回的SY-MSGTY去判断消息类型将更好些.6实例介绍PO在有发票校验后禁止修改价格,假设无PO release策略,使用User-exit步骤如下:(1)找合适的用户出口发现EXIT_SAPMM06E_017比较合适,SMOD 输入enhancement name :MM06E005(2)编写代码.*&---------------------------------------------------------------------* *& Include 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 currently processed PO item .READ TABLE TEKPO INTO ZWATEKPO WITH KEY EBELP = I_EKPO-EBELP .***只对ME22N才生效.CHECK SY-TCODE = 'ME22N '.***EKBE是PO history 表,如有Q,R表示有发票校验历史,不允许更改价##SELECT SINGLE * FROM EKBEWHERE EBELN = I_EKPO-EBELnAND EBELP = I_EKPO-EBELPAND ( BEWTP = 'Q' OR BEWTP = 'R').CHECK SY-SUBRC = 0 .***如果SY-SUBRC =0表示发票已经校验,不允许更改价格,否则还是可更改价格## IF I_EKPO-NETPR <> ZWATEKPO-NETPR .*** Change e017(ZFIMSG) accordingly* MESSAGE e017(ZFIMSG)."使用下面函数代替.CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE'EXPORTINGI_ARBGB = 'ZFIMSG'I_DTYPE = ''I_MSGNR = '017'IMPORTINGE_MSGTY = SY-MSGTY.CHECK SY-MSGTY NE '-' .REFRESH ZIEINFO.ZIEINFO-MSGID = 'ZFIMSG'.ZIEINFO-MSGNO = '017' .ZIEINFO-MSGV1 = 'VAR1'.ZIEINFO-MSGV2 = 'VAR2'.APPEND ZIEINFO .CALL FUNCTION 'MESSAGE_GET_TEXT'EXPORTINGIEINFO = ZIEINFOILANGU = SY-LANGUIMPORTINGETEXT = ZERMSG .MESSAGE ZERMSG TYPE SY-MSGTY .ENDIF.***在大多数情况下追踪消息能发现问题所在,然而在一些特定情况下,SAP显示的消息似乎和实际业务并不符合.好比一个人咳嗽的厉害,以为是感冒结果其实不过是有写异物进入其喉咙而已.14.使用用户授权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的工作和ABAPer并无关系,还是那句话,了解点大概是必要的.通常企业起码会有两个系统,开发(测试)系统和生产系统(有些企业开发任务相对少,开发和测试使用同一台server甚至同一client,开发和测试也都有ABAPer完成),如果要严格开发流程,开发,测试必须是分开的(为了节省当然可使用同一server,不同的Client甚至用不同System Number逻辑分成两Server),在此不深入讨论.熟悉几个名词:1开发类(Development Class).开发类可简单理解为逻辑上相关的一组ABAP对象,在将来传输时将使用同一传输层.实际上开发类本身也可看做是一个ABAP对象,可使用SE80建立.$TMP是本地开发类,属于此开发类的任何ABAP对象(包括自定义的表,编写的程序等都只能在Client做测试用而不能被传输到其他Client.包现在被用来代退开发类.2.包(Package)相关的ABAP对象被组合在一个包内,SE16:TADIR可看到被分配到某包的所有的ABAP对象,包决定了这些对象的传输层.所有的包被存在表TDEVC中,建立包可使用SE80或直接使用SM30:V_TDEVC.包作为开发类的退代和前身有这么几个加强特征.1.包可嵌套使用(这点类似Java package)2.包类可包含最多本包中可见的对象,这些对象在包外不可见这点类似私有对象(Private object),在OOP中也很常见.3.包可为包接口定义使用访问授权.4.通常自定义包必须是Y或Z前坠,这点和其他ABAP对象相同(包其实也可看做ABAP对象).其他一些包前坠 A-S, U-X表示SAP标准包,T私有测试包,$本地临时包,/***名字空间前坠.3.传输层(Transport Layer)传输层决定包内对象是分配给本地还是可产生传输请求.通常,开发系统都被分配了一个标准的传输层,当包被建立时,.它就被分配了一个标准传输层.包内对象也立即自动获得相关传输属性.相关IMG配置使用的是标准的传输层.通常由basis使用Tcode STMS配置传输管理系统维护传输曾和路由.图2.13-1,显示的是从DVU开发的程序传输到QAS和PRD的传输路由,在图中程序在DVU server的client 210,100开发后被传输到QAS Client 310测试,成功后被分别传入PRD Client 800,810和820 .4.传输请求程序是究竟保存在server的什么地方?程序是如何在不同client和server之间进行传输的?要明白这问题,首先让我们看看什么是传输程序和传输控制程序.传输控制程序TP和R3TRANS传输程序,R3TRANS被用来实现SAP各Client间的数据传输和不同版本迁移,TP传输控制程序根据传输参数(Transport Profile)调用R3TRANS传输程序.14.和其它语言的交互VB,Delphi,Java其实开发工具使用都简单,别人都弄出开发环境都给弄出了,学用还会难吗?。
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关键字则是用在指定资料型态。
SAP ABAP开发实战从入门到精通系列
掌握用户交互逻辑的设 计和实现方法,如数据 校验、错误处理等
01
02
03
04
学习使用ABAP事件处 理程序编写事件处理逻 辑
学习使用对话编程技术 实现复杂交互逻辑
界面性能优化与用户体验提升
了解界面性能优化的重要性 和方法
掌握提升用户体验的方法和 技巧,如减少响应时间、提 供友好提示等
学习使用ABAP性能分析工具 进行性能分析和优化
设计完善的测试用例
针对项目需求中的各项功能,设计全面、细致的测试用例,确保 测试的覆盖率和准确性。
制定明确的验收标准
与业务人员充分沟通,制定明确的验收标准和流程,确保项目成 果符合业务需求和预期目标。
项目总结与经验分享
项目成果总结
对项目成果进行全面的总结,包括项目目标达成情况、实施过程中 的经验教训以及后续改进方向等。
批处理与后台任务
实战
通过实例演示如何编写批处理程 序和后台任务,以及如何处理批 量数据和执行长时间运行的任务 。
Web Dynpro开发技术
Web Dynpro概述
简要介绍Web Dynpro的基本概念、架构和开发环境。
Web Dynpro组件开发
详细讲解Web Dynpro组件的开发过程,包括创建组件、定义界面元 素、编写事件处理程序等。
格式化处理技术
了解格式化处理的概念和需求,学习使用ABAP语言进行格式 化处理。掌握数据的格式化显示、特殊字符处理等技术。
报表性能优化与调试技巧
报表性能优化
分析影响报表性能的因素,学习优化报表性能的方法。包括优化SQL查询、减 少数据传输量、使用缓存等技术。
调试技巧
掌握ABAP语言的调试技巧,包括设置断点、单步执行、查看变量值等。学习如 何定位和解决报表开发过程中的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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关键字则是用在指定资料型态。
TABLES 关键字用来声明Table Work Area 的数据, 对应至ABAP/4 资料文件(Dictionary Object), 由SQL 指令加载所需数据语法:TABLES <dbtab>Example:TABLES: SPFL.SELECT * FROM SPFL.WRITE: SPFL-MANDT, SPFL-CARRID,SPFL-CONNECTION.ENDSELECT.从ABAP/4 Dictionary 的SPFL 档载入MANDT,CARRID,CONNECTION 三个字段至SPFL 此Table Work Area*-------------------------------------------------------------------------------------*输出一. 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:20USING NO EDIT MASK: 不使用内嵌子元NO-ZER 数字前面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 VALUE '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例如3: DATA: LEN TYPE I VALUE 10,POS TYPE I VALUE 11,TEXT(10) VALUE '1234567890'WRITE 'The text ------------ appears in the text.'.WRITE AT POS(LEN) TEXT.WRITE TO 语句的基本形式要将值(文字)或源字段内容写入目标字段,可以使用WRITE TO 语句:WRITE <F1> TO <F2> [<option>].DATA: NUMBER TYPE F VALUE '4.3',TEXT(10),FLOAT TYPE F,PACK TYPE P DECIMALS 1.WRITE NUMBER.WRITE NUMBER TO TEXT EXPONENT 2.WRITE / TEXT.WRITE NUMBER TO FLOAT.WRITE / FLOAT.WRITE NUMBER TO PACK.WRITE / PACK.MOVE NUMBER TO PACK.WRITE / PACK.exp:DATA: NAME(10) VALUE 'SOURCE',SOURCE(10) VALUE 'Antony',TARGET(10)....WRITE (NAME) TO TARGET.WRITE: TARGET.exp :DATA: COUNTER TYPE I.COMPUTE COUNTER = COUNTER + 1.COUNTER = COUNTER + 1.ADD 1 TO COUNTER.在此,三条运算语句进行相同算术运算输出屏幕上的线和空行用下列语法,可以在输出屏幕上生成水平线:语法ULINE [AT [/][<pos>][(<len>)]].它等同于WRITE [AT [/][<pos>][(<len>)]] SY-ULINE.AT 后的格式规范,与在在屏幕上定位WRITE 输出(页28)中为WRITE 语句说明的格式规范完全一样。
如果没有格式规范,系统则开始新的一行,并用水平线填充该行。
否则,只按指定输出水平线。
生成水平线的另一种方法,是在WRITE 语句中键入恰当数量的连字符,如下所示:WRITE [AT [/][<pos>][(<len>)]] '-----...'.用下列语法,可以在输出屏幕上生成垂直线:语法WRITE [AT [/][<pos>]] SY-VLINE.或WRITE [AT [/][<pos>]] '|'.空行用下列语法,可以在输出屏幕上生成空行:语法SKIP [<n>].该语句从当前行开始,在输出屏幕上生成<n> 个空行。
如果没有指定<n> 的值,就输出一个空行。
要将输出定位在屏幕的指定行上,请使用:语法SKIP TO LINE <n>.该语句允许将输出位置向上或向下移动。
四. 显示图示:语法: 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 的声明ABAP/4中的Internal Table是一种Data Structure,类似于其他语言中的STRUTURE,它可以由几个不同类型的栏位(field)组成,用来表示具有不同属性的某一事物,单独一笔资料表示某个事物,多笔资料表示具有相同属性的多个事物.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>.语法:DATA <f> <type> OCCURS <n> [WITH HEADER LINE]Example:DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE.格式二. 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>.DATA: END OF <work area>.DATA: <internal table> LIKE <work area> OCCURS <n>.exp:TYPES VECTOR TYPE I OCCURS 10.TYPES: BEGIN OF LINE,COLUMN1 TYPE I,COLUMN2 TYPE I,COLUMN3 TYPE I,END OF LINE.TYPES ITAB TYPE LINE OCCURS 10.TYPES: BEGIN OF DEEPLINE,TABLE1 TYPE VECTOR,TABLE2 TYPE ITAB,END OF DEEPLINE.TYPES DEEPTABLE TYPE DEEPLINE OCCURS 10.本示例创建与上例相同的内表数据类型(VECTOR 和ITAB)。