资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ABAP/4,培训,3/2/2026,1,ABAP Training,SAP,及,ABAP/4 Overview,系统开发语言,创建企业报表,应用事务开发,商用文档设计,3/2/2026,2,SAP,介绍,ERP,巨人,SAP,:创立于,1972,年,,ERP,思想的倡导者,,ERP,领域中处于领导地位,全球最优秀的企业管理软件供应商,SAP,:,System,Application and Products in Data Processing,,即数据处理的系统、应用和产品,3/2/2026,3,SAP R/3,一体化,ERP,系统,客户,/,服务器,FI,财务会计,CO,财务控制,TR,司库,PS,项目管理,WF,工作流程管理,IS,行业解决方案,MM,物料管理,HR,人事管理,SD,销售与分销,PP,生产计划,QM,质量管理,PM,工厂维护,后勤系统,财务系统,人力资源,客户及工业部门的,特殊要求,3/2/2026,4,SAP,新的业务模块和组件,CRM,顾客关系管理,SCM,供应链管理,BW,商业信息仓库,APO,高级计划与优化,(Advanced Planner and Optimizer),3/2/2026,5,R/3,主要业务模块介绍,生产计划控制,物料管理,销售与分销,财务会计,管理会计,人力资源,3/2/2026,6,SAP,其他业务模块,跨应用组件,(CA,,,Cross-Application Compo-nents),基础系统组件,(BC,,,Basis Components),品质管理,(QM,,,Quality Management),资产管理,(AM,,,Assets Management),3/2/2026,7,SAP,业务流程,S&D,销售订单,PP,主,生产计划,物料,需求计划,采购订单,库存管理,生产执行,开票,运输,生产订单,发票校验,成本,财务,MM,CO/FI,3/2/2026,8,SAP,系统特性,系统体系架构,系统实施过程,ABAP,工作台,ABAP,语言,3/2/2026,9,系统导航,登录系统,(1),Client:,并非物理结构的客户端,而是企业中多个逻辑上独立的商业区域,用户登录时需要指明,Client,,且一般只能访问所指定,Client,的商业数据,3/2/2026,10,系统导航,登录系统,(2),标准初始界面,User Menu,SAP Menu,事务命令域,SAP,业务工作区,3/2/2026,11,系统导航,标准屏幕元素,菜单栏,标准工具栏,选项,标题栏,应用工具栏,输入字段,功能按钮,主屏幕区域,状态栏,3/2/2026,12,SAP,系统常用菜单项,3/2/2026,13,SAP,系统常用标准工具栏元素,3/2/2026,14,常用屏幕元素,3/2/2026,15,F1,和,F4,帮助,F1,帮助:,字段、菜单、功能和消息的联机帮助,鼠标位于某字段上,按,F1,键,可获得该字段的帮助信息;可为自定义字段提供技术属性,F4,帮助:,提供当前屏幕字段的输入值得信息,又称输入帮助,与 功能一致;,F1,和,F4,帮助,如下图所示:,3/2/2026,16,F1,和,F4,帮助,图示,F4,帮助,F1,帮助,3/2/2026,17,系统联机帮助,Application Help,:,应用帮助,当前系统应用说明,SAP Library,:,SAP,资料库,包含所有的联机帮助,Glossary,:,词汇表,,SAP,系统术语的定义与解释,Release notes,:,版本信息,不同版本的功能差异,SAP Net,:登录,Internet,形式的,SAP,帮助资源系统,Feedback,:反馈,向,SAP,服务体系发送反馈信息,Settings,:设定,允许用户对帮助的形式进行设定,3/2/2026,18,系统联机帮助,图示,3/2/2026,19,ERP,实施步骤,总体规划,分步实施,教育和培训,原形测试,数据准备,系统开发,模拟运行,切换,3/2/2026,20,SAP,实施结构设计,实施过程中需要多少个,R/3,系统,需要多少个,Client,,具体任务是什么,各个集团将如何分布在不同的系统中,通常将“开发”、“质量控制(测试),”,、“产品”分别置于三个不同系统的不同集团中,3/2/2026,21,SAP,系统蓝图示例,修改与传输控制工具,3/2/2026,22,实施过程中的修改,定制:,按照企业的业务流程和功能选择原型系统及需要的模块,个性化设定:,字段初始值、显示与否、用户菜单顺序设定等,修订:,对,SAP,仓库对象,(Repository object),进行修改,增强:,对某些,SAP,仓库对象增添一些自定义的功能,用户开发:,使用用户命名空间自行开发完全有用户自定义的仓库对象,3/2/2026,23,修订、增强与用户开发图例,3/2/2026,24,系统开发原则,3/2/2026,25,开发过程中标准制定,制定命名规则:,自定制的所有对象应当以“,Z”,或“,Y”,开头;避免命名冲突,界面风格指南:,应与,SAP,的标准保持一致,文档维护:,项目文档:项目设计、实施进度等,最终用户文档:对象说明、程序说明等,技术说明文档:程序代码说明、程序规格等,修订列表维护:,对所有对象的修改清单,对象模块化、在线文档标准等,3/2/2026,26,R/3,开发平台介绍,R/3,体系结构,R/3,仓库与开发平台,系统开发工具,第一个,ABAP,程序,ABAP,编辑器,ABAP,数据字典介绍,3/2/2026,27,R/3,逻辑体系结构,逻辑上分为显示层、应用层、数据库层,数据库层:主要业务数据及开发过程中的程序和元数据通过关系数据库管理系统进行操作;,应用层:从数据层提取数据进行处理或者存储新数据,显示层:,SAPGUI,,系统和用户间的接口,用户通过该层访问系统应用、输入新数据并接受工作过程的处理结果,3/2/2026,28,SAP,物理体系结构,3/2/2026,29,R/3,开发平台介绍,R/3,体系结构,R/3,仓库与开发平台,系统开发工具,第一个,ABAP,程序,ABAP,编辑器,ABAP,数据字典介绍,3/2/2026,30,R/3,仓库,R/3,仓库储存所有,SAP,系统开发过程中的对象,这些对象也被称之为仓库对象:,ABAP,程序,数据库表结构定义,系统数据类型,仓库对象不是企业业务数据,而是系统内部数据,与,Client,无关,仓库对象要从,R/3,系统传入另一,R/3,系统,需要开发类别辅助,3/2/2026,31,仓库对象目录列表,3/2/2026,32,开发类别,仓库对象创建时,需要指定所属的开发类别,仓库对象在,R/3,仓库中按照开发类别分类,这些对象的集合形成的组织单元即为,开发类别,开发类别的主要功能是对仓库对象进行管理(目录管理及传输控制管理等),开发类别中所包含的仓库对象可以通过对象浏览器,(SE80),查看和维护,开发类是,ABAP,工作台对象,其修改通过,Transport Organizer,记录,开发类别的开发类别是其自身,3/2/2026,33,ABAP,工作台工具,图例,3/2/2026,34,ABAP,工作台工具介绍(,1,),对象导航器:,Object Navigator,,通过开发类别组织,R/3,对象的浏览及维护,程序编辑器:,ABAP Editor,,编辑,ABAP,程序代码,数据建模器:,Data modeler,,业务数据建模工具,数据字典:,ABAP Dictionary,,定义系统数据类型及数据库对象,简单报表创建器:,ABAP Query,3/2/2026,35,ABAP,工作台工具介绍(,2,),函数创建器:,Function Builder,,创建功能模块,类创建器:,Class Builder,,创建,ABAP,类及方法等面向对象元素,菜单绘制器:,Menu Painter,,用于创建屏幕的标题、菜单、工具栏中的元素及功能设定,屏幕绘制器:,Screen Painter,,用于创建,SAP,标准屏幕,工作台管理器:,Workbench Organizer,,用于管理修改请求,3/2/2026,36,仓库对象传输,R/3,仓库对象的修改通过,Workbench Request,记录,并通过传输系统从一个,R/3,系统传输到另一个,R/3,系统,3/2/2026,37,R/3,开发平台介绍,R/3,体系结构,R/3,仓库与开发平台,系统开发工具,第一个,ABAP,程序,ABAP,编辑器,ABAP,数据字典介绍,3/2/2026,38,对象导航器,ABAP,工作台,的众多开发工具的中心入口,可对各种,R/3,仓库对象进行维护,具体见下图,事务码:,SE80,包括导航区域、对象浏览及工具区域三大块,导航区域:对象列表选择及名称输入区域,对象列表:对象列表机上下文菜单,(context menu),工具区域:,ABAP,工作台工具、工具栏、菜单、标准工具栏、应用工具栏及附属窗口等,3/2/2026,39,ABAP,对象导航器图例,导航区域,工具区域,对象列表,附属窗口,3/2/2026,40,R/3,开发平台介绍,R/3,体系结构,R/3,仓库与开发平台,系统开发工具,第一个,ABAP,程序,ABAP,编辑器,ABAP,数据字典介绍,3/2/2026,41,对象导航器路径,双击,3/2/2026,42,在对象导航器中创建程序,点击“,Yes”,按钮,3/2/2026,43,命名新建程序,单击,3/2/2026,44,程序属性设定,点击,Save,按钮继续,3/2/2026,45,分配开发类,点击“,Local object”,按钮继续,3/2/2026,46,创建成功,导航器中的对象列表,提示程序已经保存成功,双击对象列表中的对象名称,进入代码编辑界面,3/2/2026,47,编辑程序代码,选择工具栏中的 切换显示和编辑状态,3/2/2026,48,完整程序代码,点击工具栏上 对代码进行语法检查,点击工具栏上 激活程序,3/2/2026,49,运行程序,点击工具栏上 运行程序,3/2/2026,50,程序运行结果,3/2/2026,51,R/3,开发平台介绍,R/3,体系结构,R/3,仓库与开发平台,系统开发工具,第一个,ABAP,程序,ABAP,编辑器,ABAP,数据字典介绍,3/2/2026,52,仓库信息系统,存储所有开发过程中的仓库对象信息,事务码:,SE81,查询搜索仓库对象,事务码:,SE84,3/2/2026,53,ABAP,编辑器路径,事务码,SE38,3/2/2026,54,ABAP,编辑器初始界面,点击,Change,按钮进入,ABAP,编辑器,3/2/2026,55,ABAP,编辑器初始界面的工具栏图标,3/2/2026,56,ABAP,编辑器界面,3/2/2026,57,ABAP,编辑器中的新按钮,Previous object,:前一个对象,Next object,:下一个对象,DisplayChange,:显示修改转换,ActiveInactive,:激活,非激活状态转换,Display object list,:显示对象清单,Set/delete break-point,:设置删除断点,Pattern,:插入模式,用于自动生成部分代码,Pretty Printer,:规范代码书写格式的工具,3/2/2026,58,Pretty Printer,设置,菜单项:,Utilities-settings,,弹出对话框,控制程序缩进,控制大小写,全部小写,全部大写,关键字大写,3/2/2026,59,关键字大写标准格式化结果,点击次按钮,得到如图结果,3/2/2026,60,Active,并运行得到同样结果,3/2/2026,61,R/3,开发平台介绍,R/3,体系结构,R/3,仓库与开发平台,系统开发工具,第一个,ABAP,程序,ABAP,编辑器,ABAP,数据字典介绍,3/2/2026,62,ABAP(DDIC),数据字典介绍,数据字典:,定义和管理数据元素及数据库元素的中心工具,所有的数据库表结构及系统全局数据类型等都需要在其中创建并维护,功能:,自定义系统共用数据类型,(,基本类型、结构和表,),定义数据库对象结构,(,数据库表、视图和索引等,),进行屏幕字段的格式化、编辑,比如,F1,和,F4,帮助,事务码:,SE11,3/2/2026,63,可在数据字典中创建和维护的元素,数据库表:,独立于数据库存在,表的行结构由一系列的,DDIC,字段组成,存在物理数据库中,视图:,数据库表的逻辑表现形式,可以将多个表中的字段组合起来显示,数据类型:,包括数据元素、结构类型和表类型,数据元素可用作后两者的组件字段,域:,用于确定数据元素的,ABAP,内置数据类型、长度即小数位,数据元素必须指定一个域,查询帮助:,屏幕字段的可能输入值帮助列表,锁定对象:,用于解决多用户操作同一表时的数据一致性问题,3/2/2026,64,ABAP Training,SAP,及,ABAP/4 Overview,系统开发语言,创建企业报表,应用事务开发,商用文档设计,3/2/2026,65,ABAP,基础,ABAP,语言概述,数据定义,基本数据操作,结构控制,处理字符数据,使用内表,动态数据对象,模块化技术,错误处理,3/2/2026,66,ABAP,语言概述,程序结构,程序类型,程序元素,语句格式,程序运行,内存管理,3/2/2026,67,ABAP,程序结构,ABAP,是一种事件驱动语言,包括:,数据定义:,整个程序中可见的全局数据类型和数据对象,处理块,(Processing blocks),:,ABAP,程序的主要结构单元,除数据定义和声明语句外的所有,ABAP,语句都必须隶属于某一个处理块,ABAP,程序基本结构如下图所示:,程序内部全局数据定义,对话模块,事件块,子程序等,ABAP,程序,3/2/2026,68,处理块类型,事件块,(Event blocks),:,事件关键字开头,至下一事件关键字出现,(,或程序结束,),,无事件结束关键字,报表事件:,Initialization,,,Start-of-selection,列表事件:,At-line-selection,屏幕事件,(,对话事件,),:,Process before output,process after input,对话模块,(Dialog Modules),:,有开始和结束关键字,用于事务程序设计,从属于对话事件,在对话事件块中调用,过程,(Procedure),:有开始和结束关键字,独立的程序单元,包括功能模块和子程序、,ABAP,对象的类方法,3/2/2026,69,处理块的调用,处理块,按照预定义的规则调用,与在程序代码中的先后顺序无关,运行时处理块调用图例如下:,ABAP,运行时环境,处理块,处理块,处理块,处理块,处理块,处理块,处理块,处理块,处理块,处理块,3/2/2026,70,事件驱动,系统对事件块的调用基于事件的触发,只设计希望系统进行响应的特定事件块,事件驱动程序是用于企业事务的用户界面设计和处理,3/2/2026,71,ABAP,处理块调用范例,REPORT z_processing_blocks.,DATA:text1(20)TYPE c VALUE Basic List:,text2(20)TYPE c VALUE Secondary List:.,*Processing block1:Event block-Start-of-selection,START-OF-SELECTION.,DO 5 TIMES.,PERFORM frm_output_line USING sy-index.,ENDDO.,*Processing block2:Event block-at line-selection,AT LINE-SELECTION.,WRITE:/text2,sy-lsind.,*Processing block3:Procedure-subroutine,frm_output,-line,FORM,frm_output_line,USING,p_index,.,WRITE:/text1,sy-lsind,Value:,p_index.,ENDFORM.,3/2/2026,72,ABAP,处理块调用范例,运行结果,3/2/2026,73,处理块与工作进程,(Work Process),调度机,(Dispatcher),:,分解程序代码模块为对话步骤,工作进程:,在系统的应用层的虚拟机上进行处理,确保,ABAP,程序运行时的平台无关性,并通过程序处理器进行处理,程序处理器:,处理对话步骤地不同类型任务,屏幕处理器:,处理屏幕流逻辑及传输数据给程序,并告知程序将要处理的块,ABAP,处理器:,执行程序内部处理逻辑并和数据库通信,3/2/2026,74,ABAP,语言概述,程序结构,程序类型,程序元素,语句格式,程序运行,内存管理,3/2/2026,75,程序类型的设定,程序类型,包括应用程序类型和其它程序类型,在创建程序时在程序属性中设定,如下图所示:,3/2/2026,76,应用程序类型,可执行程序,(Executable Program),:,创建报表,由,Report,关键字引导,可包括屏幕,可包含除功能模块外的所有处理块,可直接在,ABAP,编辑器中运行,类型代码为,1,。对应为报表程序,模块池,(Module Pool),:,由,Program,关键字引导,包括自定义的屏幕和对话模块,必须通过事务码运行,类型代码,M,。对应为事务程序,(,也叫对话程序、动态程序,),3/2/2026,77,其它程序类型,不可直接运行,可为,ABAP,程序提供模块化单元,包括:,功能组,(Function Group),:由,Function-pool,语句引导,包含一个或多个功能模块,类型代码为,F,类库,(Class Pool),:由,Class-pool,语句引导,类型代码,K,接口库,(Interface Pool),:由,Interface-pool,语句引导,类型代码,J,子程序池,(Subroutine pools),:由,Program,语句引导,类型代码,S,,包含子程序代码或类方法,类型组,(Type groups),:由,Type-pool,语句引导,在数据字典中定义,无类型代码,包含程序,(Include Program),:不需要语句引导,类型代码,I,,只是代码复用,可直接插入其它程序中,成为该程序一部分,3/2/2026,78,ABAP,语言概述,程序结构,程序类型,程序元素,语句格式,程序运行,内存管理,3/2/2026,79,程序元素类型,ABAP,元素:在,ABAP,编辑器中维护的元素,屏幕元素:通过屏幕绘制器维护的元素,GUI,元素:通过菜单绘制器维护的元素,3/2/2026,80,程序元素,源代码,(source code),变式,(Variants),:与选择屏幕相关,用于存放输入的数据选择值,以便反复调用该程序时重复输入数据,文本元素,(Text elements),:存储于文本池中的文本,包括文本符号、选择文本、列表标题等,文档,(Documentation),:写给用户的说明,用于解释程序的功能、使用方法等,文本元素和文档,均具有语言相关性,可以由系统翻译工具进行翻译,3/2/2026,81,文本元素维护界面,3/2/2026,82,屏幕元素,SAP,标准屏幕,(,Screen),:多用于,SAP,事务程序设计,包括屏幕布局,(Layout),和流逻辑,(Flow Logic),选择屏幕,(Selection Screen),:多用于报表程序中接受用户输入报表的选择标准,可通过,ABAP,语句控制其输出格式,传统列表屏幕,(Lists),:只包含列表输出区域,伸出内容通过,write,和,uline,等,ABAP,语句生成,3/2/2026,83,GUI,元素,为屏幕的一个组成部分,但设计时独立于屏幕存在,各种屏幕都可以独立分配,GUI,包括屏幕上方的菜单、标准工具栏、应用工具栏以及功能键和功能代码等,GUI,元素在程序调用时分为状态,(GUI status),和标题,(GUI Title),两部分,3/2/2026,84,ABAP,语言概述,程序结构,程序类型,程序元素,语句格式,程序运行,内存管理,3/2/2026,85,ABAP,语句结构,以一个,ABAP,语句关键字引导,句号结束,ABAP,语句中还可以含附加项和操作元素,各关键字、选项、操作数之间应至少保留一空格,范例:,Report,z_simple_program,.,Data,Text(20),VALUE,Simple program.,Start-of-selection.,WRITE,text.,3/2/2026,86,ABAP,语句类型,(1),声明语句:,用于数据元素的定义和声明,(,如变量,),DATA,,,PARAMETER,,,TABLES,,,TYPES,模块化语句:,用于定义运行时的处理代码块,分为事件关键字语句和过程定义关键字语句,事件关键字包括:,AT-SELECTION-SCREEN,,,START-OF-SELECTION,,,AT USER-COMMAND,过程定义关键字包括:,FORM/ENDFORM,,,FUNCTION/ENDFUNCTION,,,MODULE/ENDMODULE,控制语句:,以条件控制程序处理块内部的程序流程,IF/ENDIF,,,WHILE/ENDWHILE,,,CASE/ENDCASE,3/2/2026,87,ABAP,语句类型,(2),调用语句:,用于调用已定义好的处理块,PERFORM,,,CALL,,,SUMBIT,,,LEAVE TO,操作语句:,用于程序内部数据操作或输出,WRITE,,,MOVE,,,ADD,以及运算符等,数据库语句:,用于数据库操作,含,Open SQL,和,Native SQL,两种,3/2/2026,88,语句链,关键字“,:”,和“,”,可以把连续使用的相同关键字引导的语句连接在一起,以简化代码,如:,WRITE:text1,text2.,等价于,WRITE text1.,WRITE text2.,3/2/2026,89,注释,“*”,,在行的开头使用,可注释该行,“”,”,单个双引号,可注释该行中其后的文字,如下所示,*,This whole line is comments,WRITE text.,“Contents behinds this is comments,3/2/2026,90,ABAP,语言概述,程序结构,程序类型,程序元素,语句格式,程序运行,内存管理,3/2/2026,91,程序调用,直接运行:,在事务,SE38,或,SA38,中直接运行,通过系统目录或者在命令域中输入事务代码运行,内部调用:,事务代码调用:,LEAVE TO TRANSACTION,,,CALL TRANSACTION(,调用返回,),SUBMIT,,,SUBMIT AND RETURN(,调用返回,),3/2/2026,92,程序结束,自动结束:程序完全运行,自动结束,强制结束:通过,LEAVE PROGRAM.,语句可以在任意点结束程序,3/2/2026,93,ABAP,语言概述,程序结构,程序类型,程序元素,语句格式,程序运行,内存管理,3/2/2026,94,内存管理,(1),运行时内存管理与用户对话相关,(,同一个用户和系统进行最多六个,SAP GUI,对话,),,包括,SAP,内存和,ABAP,内存两部分,主对话:,又称外部对话,用户登录,SAP,之后,即开始和应用服务器之间的主对话,各对话间无联系,内部对话:,在主对话中运行可执行程序或者模块池程序,开始内部对话,调用序列:,调用不返回,新程序内部对话代替原程序内存,并删除原程序内存;调用返回时,生成程序调用序列,生成堆栈,调用结束时,恢复上一级程序内存状态,3/2/2026,95,内存管理,(2),ABAP,内存:,主对话内部有一个,ABAP,内存区域,在该对话内部,可通过,EXPORT TO,和,IMPORT FROM MEMORY,在内存堆栈之间进行数据传递,以队列的方式存储,SAP,内存:,所有对话都可以访问的内存区域,可在,SAP,各对话间共享,通过,SET PARAMETER,和,GET PARAMETER,访问,装载程序:,调用或执行程序时,程序实例被装载到,ABAP,内存,第一个被装载的程序为主程序;程序装载,触发,LOAD-OF-PROGRAM,事件,对象创建:,创建对象,(CREATE OBJECT),,类的实例被装载到内部对话,该内部对话中的程序及对象都可以使用该类实例,3/2/2026,96,ABAP,基础,ABAP,语言概述,数据定义,基本数据操作,结构控制,处理字符数据,使用内表,动态数据对象,模块化技术,错误处理,3/2/2026,97,数据定义,数据类型和数据对象,内置的基本数据类型,程序内部数据定义,数据字典中的类型,程序中的数据对象,3/2/2026,98,数据对象,生存周期:,程序的运行期,保存:,存储于数据库或者输出到文件,范例:,DATA txt1(15)TYPE c VALUE Data Object.,初始值,类型为字符串,存储长度,15,个字节,3/2/2026,99,数据类型体系,基本类型,(Element Types),包含于定义的系统内置类型,(C,、,N,、,T,、,D,、,I,、,P,、,F,、,X),分为固定长度和可变长度两种,复杂类型,结构类型:结构体,表类型:内表,引用类型:基于基本数据定义,参考变量的数据,参考变量的对象,3/2/2026,100,
展开阅读全文