- 浏览: 786489 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (573)
- Java基础 (76)
- C++基础 (5)
- hibernate (5)
- struts (4)
- spring (1)
- webservice (7)
- AjaX基础 (0)
- JS脚本 (53)
- 正则表达式 (5)
- html脚本 (30)
- 数据库基础 (54)
- 工作相关 (49)
- 其他 (30)
- Linux (9)
- web服务器 (17)
- JSP (13)
- eclipse (6)
- 面试题相关 (20)
- XML (3)
- Apache common (2)
- 生活 (35)
- VMware (1)
- log4j (9)
- BeanUtils (2)
- 设计模式 (3)
- UML (1)
- UNIX (1)
- ibats (5)
- GT-Grid (17)
- ABAP学习 (17)
- ABAP (35)
- ABAP--ALV (11)
- ABAP--WEBDIMPRO (0)
- abap-sample (1)
- BEMS (2)
- flex (33)
- GIS技术 (3)
最新评论
2.第二部分 ABAP开发语言
2.1.ABAP基础
2.1.1.语言概述
2.1.1.1.程序结构
ABAP程序源码结构包括数据定义和处理块两部分;处理块又分为事件块,对话模块,过程。
过程中可以定义自己的局部变量。
事件块,对话模块,只能使用全局数据定义。
2.1.1.2.程序类型
可直接运行的应用程序(可分配事务代码)
可执行程序Executable program,类型代码1,report关键字引导
可自定义屏幕,ABAP Editor编辑和运行,submit提交,可分配事务码运行,
可调用所有类型的ABAP处理块,不能定义功能模块,可出现所有运行时事件
常做报表程序,处理报表事件
模块池 Module Pool,类型代码M,Program关键字引导
可自定义屏幕和对话模块,ABAP Editor编辑,必须通过分配事务码运行,
可以调用ABAP处理块(除报表事件和功能模块),非后台工作模式。
常做复杂的事务程序,操作数据库等
功能模块,不可直接运行的函数(特定的功能,模块化功能)
功能组 Function groups,类型代码F,由Function-pool引导
唯一可以包含功能模块的程序,可定义屏幕,但不能直接运行
ABAP类库 Class pools,类型代码K,由class-pool引导
唯一可以包含类方法的处理块,不可定义屏幕,也不能直接运行,
可包含一个全局类和多个局部类,Class Builder创建
ABAP接口库 Interface pools,类型代码J,由interface-pool引导
与代码K类似,表示ABAP对象的接口
子程序池 Subroutine pools,类型代码S,由program引导
不可定义屏幕,不可直接运行,只能被普通程序调用,
可包含一个或者多个子程序代码模块或类方法,ABAP Editor编辑
类型组Type groups,无类型代码,由type-pool引导
不可定义屏幕,不可直接运行,仅用于定义全局数据类型,
ABAP Dictionary定义
包含程序 Include programs,类型代码I,不需要任何语句引导
无需完整的处理模块,无需独立编译,仅是代码复用,
ABAP Editor编辑,可直接插入其他程序中,可被多个程序引用,
与引用程序直接不存在参数接口。
2.1.1.3.程序元素
ABAP元素
源代码Source code
数据定义和处理块
变式Variants
与选择屏幕有关,用于存储用户屏幕选择的条件
属性Attributes
程序类型,逻辑数据库,应用模块
文本元素Text elements
存储在文本池Text Pools的文字,包括
文本字符Text symbols、选择字符Selection texts、列表标题List Headings
文档 Documents
解释程序功能,注释部分,可语言相关性
屏幕
普通屏幕Screens,标准屏幕
包含屏幕布局Layout和流逻辑Flow logic,使用Screen Painter设计
布局,用户可见的元素,比如输入输出字段,按钮等
流逻辑,屏幕处理器控制,独立ABAP语法,需调用ABAP模块实现具体应用操作
选择屏幕Selection Screens
常用于报表程序中,接受用户输入报表的选择标准,使用ABAP控制屏幕输出格式
不需要使用Screen Painter设计,流逻辑,不需要特别控制,自动触发
传统列表屏幕Lists
ALV表格控件前的主要报表程序输出界面,通过ABAP的write和uline语句生成。
GUI
屏幕的一部分,独立与上述三个SAP屏幕,主要包括菜单,工具栏,功能键等。
不使用ABAP编辑,通过Object Navigator(SE80)添加至程序中。
使用Screen Painter和Menu Painter开发。
2.1.1.4.语句格式
语句结构
ABAP关键字引导,句号“.”结束。
根据关键字分类:
声明语句 TYPES, DATA, PARAMETER, TABLES
模块化语句
事件关键字AT SELECTION-SCREEN, START-OF-SELECTION, AT USER-COMMAND
过程定义关键字FORM/ENDFORM, FUNCTION/ENDFUNCTION, MODULE/ENDMODULE
控制语句 IF, WIHLE, CASE
调用语句 PERFORM, CALL, SUBMIT, LEAVE TO
操作语句 WRITE, MOVE, ADD, =
数据库语句
编辑格式
空格
语句链
“:”“,”
注释
整行注释 *
语句注释 “
2.1.1.5.程序运行
程序调用
直接运行,SE38/SA38中运行按钮,或者系统目录,命令域输入事务代码运行;
内部调用,
完全移交控制权,无返回调用,SUBMIT, LEAVE TO TRANSACTION,
嵌入式,调用并返回,SUBMIT AND RETURN, CALL TRANSACTION,
结束程序
Leave program
2.1.1.6.内存管理
SAP程序运行期间的内存管理与用户会话相关,包括SAP内存和ABAP内存两大部分。
主会话
外部会话,可以6个,使用不同的ABAP内存
内部会话
主会话中运行可执行程序或者模块池程序,ABAP内存的一部分。
调用序列
程序调用时,传递的数据需要使用同一个主会话的公共ABAP内存
ABAP内存
每个主会话都有一个ABAP内存,其中的数据以程序调用序列的顺序存储。
通过EXPORT TO MEMORY/IMORT FROM MEMORY在该内存的堆栈间传递数据
SAP内存
所有会话都可以访问的内存区域,
SET PARAMETER/ GET PARAMETER
装载程序
每次开始运行或者调用一个ABAP程序时,系统将一个程序实例转载入ABAP内存,第一个被转载的程序为主程序。每个1、M、F、S类型的程序实例被转载时都触发LOAD-OF-PROGRAM事件(类库程序除外),该事件保证每个程序在内部会话中仅转载一次。
对象创建
CREATE OBJECT语句创建ABAP Object时,一个类的实例被转载至内存会话,所有该内存会话的程序及对象都可以使用该类实例。对象引用变量不能储存与ABAP内存和SAP内存中,故跨事务的处理,需要将数据对象使用数据库的持续服务persistence service来长期保存,以供另一个事务使用。 而内部会话的子程序,功能模块和类方法可以直接引用对象指针。
2.1.ABAP基础
2.1.1.语言概述
2.1.1.1.程序结构
ABAP程序源码结构包括数据定义和处理块两部分;处理块又分为事件块,对话模块,过程。
过程中可以定义自己的局部变量。
事件块,对话模块,只能使用全局数据定义。
2.1.1.2.程序类型
可直接运行的应用程序(可分配事务代码)
可执行程序Executable program,类型代码1,report关键字引导
可自定义屏幕,ABAP Editor编辑和运行,submit提交,可分配事务码运行,
可调用所有类型的ABAP处理块,不能定义功能模块,可出现所有运行时事件
常做报表程序,处理报表事件
模块池 Module Pool,类型代码M,Program关键字引导
可自定义屏幕和对话模块,ABAP Editor编辑,必须通过分配事务码运行,
可以调用ABAP处理块(除报表事件和功能模块),非后台工作模式。
常做复杂的事务程序,操作数据库等
功能模块,不可直接运行的函数(特定的功能,模块化功能)
功能组 Function groups,类型代码F,由Function-pool引导
唯一可以包含功能模块的程序,可定义屏幕,但不能直接运行
ABAP类库 Class pools,类型代码K,由class-pool引导
唯一可以包含类方法的处理块,不可定义屏幕,也不能直接运行,
可包含一个全局类和多个局部类,Class Builder创建
ABAP接口库 Interface pools,类型代码J,由interface-pool引导
与代码K类似,表示ABAP对象的接口
子程序池 Subroutine pools,类型代码S,由program引导
不可定义屏幕,不可直接运行,只能被普通程序调用,
可包含一个或者多个子程序代码模块或类方法,ABAP Editor编辑
类型组Type groups,无类型代码,由type-pool引导
不可定义屏幕,不可直接运行,仅用于定义全局数据类型,
ABAP Dictionary定义
包含程序 Include programs,类型代码I,不需要任何语句引导
无需完整的处理模块,无需独立编译,仅是代码复用,
ABAP Editor编辑,可直接插入其他程序中,可被多个程序引用,
与引用程序直接不存在参数接口。
2.1.1.3.程序元素
ABAP元素
源代码Source code
数据定义和处理块
变式Variants
与选择屏幕有关,用于存储用户屏幕选择的条件
属性Attributes
程序类型,逻辑数据库,应用模块
文本元素Text elements
存储在文本池Text Pools的文字,包括
文本字符Text symbols、选择字符Selection texts、列表标题List Headings
文档 Documents
解释程序功能,注释部分,可语言相关性
屏幕
普通屏幕Screens,标准屏幕
包含屏幕布局Layout和流逻辑Flow logic,使用Screen Painter设计
布局,用户可见的元素,比如输入输出字段,按钮等
流逻辑,屏幕处理器控制,独立ABAP语法,需调用ABAP模块实现具体应用操作
选择屏幕Selection Screens
常用于报表程序中,接受用户输入报表的选择标准,使用ABAP控制屏幕输出格式
不需要使用Screen Painter设计,流逻辑,不需要特别控制,自动触发
传统列表屏幕Lists
ALV表格控件前的主要报表程序输出界面,通过ABAP的write和uline语句生成。
GUI
屏幕的一部分,独立与上述三个SAP屏幕,主要包括菜单,工具栏,功能键等。
不使用ABAP编辑,通过Object Navigator(SE80)添加至程序中。
使用Screen Painter和Menu Painter开发。
2.1.1.4.语句格式
语句结构
ABAP关键字引导,句号“.”结束。
根据关键字分类:
声明语句 TYPES, DATA, PARAMETER, TABLES
模块化语句
事件关键字AT SELECTION-SCREEN, START-OF-SELECTION, AT USER-COMMAND
过程定义关键字FORM/ENDFORM, FUNCTION/ENDFUNCTION, MODULE/ENDMODULE
控制语句 IF, WIHLE, CASE
调用语句 PERFORM, CALL, SUBMIT, LEAVE TO
操作语句 WRITE, MOVE, ADD, =
数据库语句
编辑格式
空格
语句链
“:”“,”
注释
整行注释 *
语句注释 “
2.1.1.5.程序运行
程序调用
直接运行,SE38/SA38中运行按钮,或者系统目录,命令域输入事务代码运行;
内部调用,
完全移交控制权,无返回调用,SUBMIT, LEAVE TO TRANSACTION,
嵌入式,调用并返回,SUBMIT AND RETURN, CALL TRANSACTION,
结束程序
Leave program
2.1.1.6.内存管理
SAP程序运行期间的内存管理与用户会话相关,包括SAP内存和ABAP内存两大部分。
主会话
外部会话,可以6个,使用不同的ABAP内存
内部会话
主会话中运行可执行程序或者模块池程序,ABAP内存的一部分。
调用序列
程序调用时,传递的数据需要使用同一个主会话的公共ABAP内存
ABAP内存
每个主会话都有一个ABAP内存,其中的数据以程序调用序列的顺序存储。
通过EXPORT TO MEMORY/IMORT FROM MEMORY在该内存的堆栈间传递数据
SAP内存
所有会话都可以访问的内存区域,
SET PARAMETER/ GET PARAMETER
装载程序
每次开始运行或者调用一个ABAP程序时,系统将一个程序实例转载入ABAP内存,第一个被转载的程序为主程序。每个1、M、F、S类型的程序实例被转载时都触发LOAD-OF-PROGRAM事件(类库程序除外),该事件保证每个程序在内部会话中仅转载一次。
对象创建
CREATE OBJECT语句创建ABAP Object时,一个类的实例被转载至内存会话,所有该内存会话的程序及对象都可以使用该类实例。对象引用变量不能储存与ABAP内存和SAP内存中,故跨事务的处理,需要将数据对象使用数据库的持续服务persistence service来长期保存,以供另一个事务使用。 而内部会话的子程序,功能模块和类方法可以直接引用对象指针。
发表评论
-
SAP ABAP 点滴记录
2010-04-30 14:56 2326SAP ABAP 点滴记录 Post By:2009-6- ... -
SAP数据库表
2010-04-30 14:51 1599SAP数据库表 SAP词典包含了4种类型的表(或结构): ... -
ABAP常用fuction
2010-04-30 14:49 1211ABAP常用fuction Post By:2009-7- ... -
sap 增强
2010-04-30 14:37 1660sap的用户出口总共有三代: 1、第一代 sap提供 ... -
ABAP简介
2010-04-30 10:31 1272一:什么是ABAP。 定义 ... -
ABAP中去掉前导零问题
2010-04-30 10:03 1848ABAP中去掉前导零问题 1.可以调用CONVERSION_ ... -
常用的字符串处理函数
2010-04-30 09:36 15231. 在字符串前補0. (如果p_input的位數未滿,則會於 ... -
ABAP日期格式轉換
2010-04-30 09:32 2413ABAP日期格式轉換 =================== ... -
常用的字符串操作
2010-04-30 09:23 1054CONCATENATE 连接字符串 [SEPARATED BY ... -
设置SAP GUI Status的按钮为灰色
2010-04-29 14:16 2214设置SAP GUI Status的按钮为灰色 一,首先设置 ... -
ABAP常用字符串操作
2010-04-29 13:19 1641ABAP常用字符串操作 字符串首字符索引为 0; Ch ... -
ABAP 筑基宝典
2010-04-29 12:50 1567ABAP 筑基宝典(5) -- 关于使用READ TABLE语 ... -
内部表行数de三种统计方法
2010-04-29 09:48 956内部表行数统计方法: 1.LOOP AT itab. ... -
ABAP学习笔记--处理字符串
2010-04-27 17:01 1995一、移动字段内容 1、按给定位置数移动字符串 语法:SH ... -
ABAP总结之二,BDC完整版
2010-04-22 15:29 2123BDC(batch data communication)是S ... -
3.1 FIELD-SYMBOLS
2010-04-13 19:32 1386FIELD-SYMBOLS是字段符号,类似于FOXPRO的宏, ...
相关推荐
SAP作为全球领先的企业资源规划(ERP)软件,其核心开发语言就是ABAP,使得ABAP开发者在IT行业内有着较高的需求和薪资水平。 在成为ABAP顾问之前,通常需要具备一定的编程基础和数据库知识,以及对企业业务流程的...
SAP系统在全球企业资源规划(ERP)领域有着广泛的应用,而ABAP则是其核心开发语言,使得企业能够根据自身需求定制化SAP系统。 首先,"ABAP开发从入门到精通"这一主题涵盖了学习ABAP的基础到高级概念。对于初学者,...
ABAP 是 SAP 系统中的主要编程语言,用于开发业务应用程序。 在 SAP 系统中,开发环境和开发工具是必不可少的组件,开发者可以使用这些工具来创建、测试和部署 ABAP 程序。ABAP WORKBENCH 是 SAP 系统中最常用的...
ABAP考试试题是为了验证开发人员对ABAP开发语言基本知识、语法等掌握情况,并对ABAP开发能力做验证。 以下是ABAP考试试题中的知识点: 1. 在ABAP/4的开发工作中,哪一个TCODE是直接进入就可以创建程序、函数组以及...
SAP ABAP开发是一种功能强大且灵活的编程语言,用于开发SAP系统中的业务逻辑。然而,在ABAP开发过程中,效率是一个非常重要的因素。为了提高开发效率,熟悉ABAP开发快捷键是非常必要的。在本文中,我们将详细介绍SAP...
《SAP ABAP开发详解与高端应用》这本书深入探讨了SAP ABAP(Advanced Business Application Programming)编程语言,这是SAP系统中用于开发业务应用程序的关键技术。ABAP是SAP平台上的核心编程语言,用于创建自定义...
### SAP 语言 ABAP 开发详解 #### ABAP/4 概述 ABAP/4(高级商业应用程序设计第四代语言)是由SAP公司开发的一种专用于SAP系统的编程语言。这种语言的设计初衷是为了给应用开发者提供一个高效且易于使用的编程环境...
ABAP 报表开发实例是指使用 ABAP 语言开发报表的实践过程。在这个实例中,我们将一步步地讲解如何开发一个报表,从确定所需表开始,到定义内表和数据,接着是选择屏幕、查询数据、输出结果等步骤。 首先,在任何...
### 实战SAP开发 ABAP开发 #### 一、ABAP开发环境与总体介绍 **1.1 ABAP开发环境** ABAP(Advanced Business Application Programming)是SAP系统的主要编程语言,用于构建和定制SAP应用程序。根据实战SAP开发的...
ABAP开发入门总结 ABAP(Advanced Business Application Programming)是一种功能强大且灵活的编程语言,广泛应用于SAP R/3系统中。以下是ABAP开发入门的总结,涵盖模块化程序、数据字典、逻辑数据库等方面的知识点...
ABAP(高级业务应用编程)是SAP AG(SAP股份公司)内部几乎所有产品的主要开发语言,其起源可追溯至解决财务数据实时处理的需求。起初,ABAP被设计用于生成简单的打印报表程序,但随着SAP系统的不断发展,ABAP的功能...
### ABAP开发中文教材知识点概览 #### 一、ABAP概述 ABAP(Advanced Business Application Programming)是一种专为SAP系统设计的编程语言。它主要用于构建和维护SAP应用程序,支持面向对象的编程特性,并且能够...
标题“abap-ALV.rar_ABAP系统ALV_abap_abap开发alv”暗示我们将深入探讨ABAP ALV的使用,特别是在ABAP系统中的应用以及如何进行开发。 描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,...
以下是对ABAP开发技术考试试题中涉及的知识点的详细解释: 1. 语句错误检查: - A) `write at 12 XXX.` 会报错,因为`write`语句通常用于屏幕输出,不能直接与变量`XXX`结合。 - B) `data type type sflight.` ...
根据提供的标题、描述以及部分无法解析的内容,我们可以推断出这份文档主要涉及的是SAP ABAP开发相关的用户指南。下面将基于这些信息生成与ABAP开发相关的重要知识点。 ### ABAP用户指南(SAP ABAP开发) #### 一...
ABAP(Advanced Business Application Programming)是SAP公司的主要编程语言,用于开发企业级的应用软件,尤其是在SAP R/3和SAP S/4HANA系统中。本教程以"5天轻松学会ABAP编程语言"为主题,将带你深入理解ABAP的...
在此基础上对ABAP程序开发的基础进行了介绍,包括基本数据类型、ABAP字典、ABAP 开发语言的语法元素、常量和变量定义、系统定义数据、字符串数据类型申明、内表申明以及工作区定义方法,还介绍了在ABAP开发中经常使用...
1. **第一章 ABAP开发环境和总体介绍**:这部分内容会引导初学者了解ABAP的开发环境,包括SE80事务码的使用,如何创建和管理源代码,以及如何在SAP系统中调试和测试程序。理解开发环境是学习任何编程语言的第一步,...
标题和描述均提到了"SAP ABAP开发BOM",这指向了SAP系统中一个核心功能——物料清单(Bill of Materials,简称BOM)的开发与管理,尤其是在使用ABAP(Advanced Business Application Programming,高级商业应用编程...