当前位置:文档之家› ABAP程序详细介绍

ABAP程序详细介绍


DATA语句定义内表
DATA语句实例
TYPES: BEGIN OF struct, number_1 TYPE i, number_2 TYPE p DECIMALS 2, END OF struct. 通过结构类型定 DATA: wa_struct number date time TYPE LIKE LIKE TYPE struct, wa_struct-number_2, sy-datum, t.
ABAP程序介绍
----李 国庆
Sap发展历史
• 1972年, 五名IBM的员工离开了IBM, 在德国曼海母创建了SAP公 司. • SAP的第一个产品是一个自动化财务和交易程序.命名RF, 就是后 来的R/1 • 1979年, SAP推出用于大型机的R/2. • 1992年, SAP推出了著名的R/3.它建立在SAP BASIS平台的基础上, 包括大家非常熟悉的SD, MM, FI, CO, PP..等模块 . • 1996年, 随着互联网的迅猛发展, SAP推出了支持Internet的新 版R/3 3.1 . • 1999年, SAP 推出所谓的mySAP Business Suit. 这其实又是新 版的R/3, 不过包含了CRM(Customer Relationship Management) 和SCM(Supply Chain Management)产品.ERP的版本变为4.6C,到 后来的4.7 . • 2004年,推出mySAP ERP2004,技术平台为SAP WAS 6.4. • 2005年,推出 mySAP ERP2005,技术平台为SAP WAS 7.0.
选择屏幕
内容
• • • • • • 报表 基本语法 内表操作 ABAP数据库操作 屏幕输出 Smartforms
本小节包含内容
• • • • • 数据类型 定义选择屏幕 基本数据操作 WRITE 语句 控制语句
数据类型
• 定义一个简单的数据类型 • 定义一个结构化的数据类型
• 定义一个内表形式的数据类型
义结构数据
直接定义结构数 DATA: BEGIN OF w_data, 据 number_3 TYPE i, number_4 TYPE p DECIMALS 2, END OF w_data.
预定义的数据对象
详细见SYST表
•SY-SUBRC: Return code for ABAP statements (zero if a statement is executed successfully)
• AT LINE-SELECTION 用于用户交互,当用户双击页面时,启动该 事件.
例如: at line-selection. GET CURSOR FIELD l_field LINE l_line. 效果: 获取用户点击的行号和变量名
事件块编码规则(5)
• SET PF-STATUS <STATUS> 设置用户自定义菜单 • AT-USER-COMMAND 设置功能码的响应操作
TYPES语句实例
• 通过系统标准类型定义
TYPES: number TYPE i, length TYPE p DECIMALS 2, code(3) TYPE c.
• 通过数据库表字段定义
TYPES: company LIKE spfli-carrid.
• 自定义结构类型
TYPES: BEGIN OF address, name TYPE surname, street(30) TYPE c, city TYPE spfli_type-cityfrom, END OF address.
DATA语句—定义数据对象
• 定义一个简单类型的变量
• 定义一个结构化的数据对象 • 定义一个内表
DATA语句格式
1,DATA <f> ... [TYPE <type>|LIKE <obj>]...
[VALUE <val>].
2,DATA <f>[(<length>)] TYPE <type> [DECIMALS <d>]. 3,DATA <f>. 4,DATA: BEGIN OF <structure>, <fi>..., .............. END OF <structure>.
事件块的语法
• 源代码中的事件块顺序不影响事件的执行顺序
事件块编码规则(1)
• INITIALIZATION 通常在此事件块中设定输入屏幕字段的初始值
例如: INITIALIZATION . P_DATE = ‘20030201’ . 效果: 输入屏幕的日期字段初始显示值为2003年2月1 日
事件块编码规则(2)
报表程序组成
• 全局申明
类型、变量、屏幕
• 过程块
一个事件发生时执行的模块
• 子程序
优化程序的结构
事件
• • • • 属于某一特定事件关键字的语句形成一个过程块 原则上每个过程块块由各自的关键字为起始; 事件块的结束标志为下一个事件块的关键字; 事件块由ABAP运行时调用,其调用顺序固定,与 程序编码顺序无关; • 缺省的事件块 START-OF-SELECTION
•SY-UNAME: logon name of the user •SY-REPID: Current ABAP program •SY-TCODE: current transaction •SY-INDEX: Number of the current loop pass • SY-DATUM 系统日期
事件块的简单处理过程
• 事件块的简单处理过程: • ABAP程序运行的时候,INI TIALIZATION首先被调用; • 经过初始化的输入屏幕会 显示在表示服务器; • 用户离开输入屏幕的时候, START-OF-SELCTION事件会 被自动调用; • 结果数据会以列表的形式 显示在第二个屏幕上;
事件块编码规则(4)
• END-OF-SELCTION 通常在此事件中进行结果清单的输出
例如: end-of-selection . write : 23(1) sy-vline, 24(20) tab-gas_plan right-justified , 效果: 数据以清单的形式输出
事件块编码规则(5)
ABAP数据类型
TYPES语句格式
1,TYPES <t> [TYPE <type>|LIKE <obj>] . 2,TYPES <t>[(<length>)] [TYPE <type>| LIKE <obj>] [DECIMALS <dec>]. 3,TYPES <t>. 4,TYPES: BEGIN OF <structure>, .............. <ti> ..., .............. END OF <structure>. 5,TYPES <t> TYPE|LIKE <tabkind> OF <linetyp e> [WI构
• SAP的三层架构体系
• ABAP开发和运行环境的图例.
• 可用的工具
ABAP W orkbench Tools
Forward navigation
Screen Painter Menu Painter
Repository Browser ABAP Dictionary
ABAP Editor Function Builder
事件块编码规则(3)
• START-OF-SELCTION 通常在此事件中针对业务需求进行系统数据的查询
例如: start-of-selection . perform get_data_for_oil . 效果: 在输入屏幕用户按下执行按钮后,子程序get_data_for_oil被执行, 在其中获得业务相关的数据存放到内表或者其它变量,这些数据在 END-OF-SELECTION事件块中被输出
SAP Release版本之间的差异和关系
• 版本4.6C以前是所谓传统的R3系统,建立在SAP Basis平台 的基础上 • 版本4.70以后,改为R3 Enterprise,最大的变化是SAP WAS 取代了传统的Basis平台,核心业务功能模块也作了划分; • R3 Enterprise之后改称为mySAP ERP2004-ECC5.0, 推出了 NetWeaver2004-集成应用平台. • 2005第4季度开始mySAP ERP2005-ECC6.0的准备,最大的变 化将是全面转向ESA体系(基于消息机制的企业应用体系), 并引入了新的功能模块,比如PLM和SRM.
R
SAP AG
• 传输
Transporting Repository Objects
Change Request
R
Development system
SAP AG
Production system
• 质量保证
• 运行过程
• ABAP Advanced Business Application Programming的 缩写,是SAP R/2,R/3版本时期唯一的系统开发工 具 . 目前的版本是ABAP/4。
• 普通报表程序输出结果格式固定,不能对其进行交互式操 作; • 交互式报表程通过特定的触发事件,比如双击,菜单,按钮 和功能键. 可以对报表结果进行操作;
报表程序结构
• ABAP是事件驱动的语言,程序的运行由事件引导 • 由过程块组成程序架构 • 事件关键字之间或事件关键字与form关键字之间 的语句形成一个过程块 • form和endform之间的语句形成一个子程序,子程 序在过程块中被调用
相关主题