SAP ABAP开发技术详解(实例篇)(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-05 20:27:03

点击下载

作者:东方先生

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

SAP ABAP开发技术详解(实例篇)(第2版)

SAP ABAP开发技术详解(实例篇)(第2版)试读:

前言

SAP ABAP编程语言最初被SAP的开发者用于开发SAP产品及平台,但它也用于定制开发SAP客户的软件应用。

客户可以用ABAP编程开发自定义的报表和界面。这个编程语言对于程序员、运维人员、网络技术人员来说很容易学习,但对于非程序设计人员并不是一个可以直接使用的工具。这是因为编写ABAP程序需要良好的编程技巧和关系数据库方面的知识,熟悉面向对象设计的概念更好。

学习SAP,就开发而言要掌握四个要领:运行环境、编辑操作、程序套路、编程规范。

运行环境

所有的ABAP程序都驻留在SAP数据库里。它们不像Java或者C++程序那样存储在一个单独的外部文件里,用一般记事本编辑器就可以编辑查看源代码,而是用 ABAP Workbench工具集查看和编辑源代码,由ABAP运行环境载入和解释“编译”代码。关于选择何种环境,如果初学者条件有限,则可以选择Mini SAP或者Netweaver For ABAP的7.0版本(可在SAP官方网站下载),本书从Netweaver For ABAP的安装讲起。

编辑操作

编辑 ABAP 程序不同于Java或C++的文本编辑方式,ABAP开发工具集中有几种不同的工具用于编辑程序的不同部分。这些工具可以为你提供涵盖整个软件开发周期中各阶段的辅助,如ABAP Editer用于编写程序代码,Menu Painter用于设计用户界面(包括菜单栏、标准工具栏、应用栏、配置功能键),Screen Painter为用户对话框设计屏幕(动态程序)等,如何使用这些工具,在本书中有详尽的介绍。

程序套路

根据客户的需求,SAP定制了几种基本的程序类型,如ABAP类型模块池(这些程序使用一系列的屏幕来定义复杂的用户交互模式)、报表程序(遵循一个相对简单的编程模型,用户可有选择地输入一系列参数,然后程序根据输入的参数以一个交互式列表的形式产生一张报表)。每一种类型的程序在具体应用中又可以分为几种不同的模式,其程序结构根据相应的应用模式也不尽相同,这些在本书的程序实例中都有很好的体现。

编程规范

没有规矩,不成方圆。无论在程序的设计上还是书写上都有一定的规范,一方面,便于后继者维护;另一方面,也便于代码的重用及更少缺陷的产生,例如注释、公用 Form的编辑等,这些在本书的程序实例及注意点中有比较详尽的介绍。编著者第1章SAP R/3概要

SAP R/3 是一款基于 Client/Server(客户机/服务器结构)和开放系统、集成的企业资源计划系统(Enterprise Resource Planning,简称ERP)软件,其功能涵盖企业的财务、后勤(工程设计、采购、库存、生产销售和质量等)和人力资源管理等各个方面。此软件由德国SAP公司研创,2005年更名为mySAP ERP。SAP R/3是为客户服务设计的软件,其中R指的是实时Realtime,3表示组成R/3系统的三层。而SAP R/3的前身SAP R/2,则为大型计算设备的使用服务。最早于1973年推出的RF程序,也称为SAP R/1,现在仅用于计算机支持的会计核算方面。1.1SAP简介

SAP(System,Applications,and Products in Data Processing,数据处理的系统、应用和产品)公司是 ERP思想的倡导者,成立于 1972年,总部设在德国南部的 Walldorf(海德堡)。它是一家通过业务工程成功地集成信息技术的公司,其主打产品 R/3 是用于分布式客户机/服务器环境的标准ERP软件。现在SAP R/3已成为一个基于客户机/服务器结构和开放系统的、集成的企业资源计划系统。1.2SAP R/3系统概述

SAP R/3主要功能模块包括:销售和分销、物料管理、生产计划、质量管理、工厂维修、人力资源、工业方案、办公室和通信、项目系统、资产管理、控制、财务会计。R/3支持的生产经营类型是:按订单生产、批量生产、合同生产、复杂设计生产、按库存生产、流程型生产和智能型生产。其用户主要分布在航空航天、汽车、化工、消费品、电器设备、电子、食品饮料等行业。

SAP R/3的功能涵盖了企业管理业务的各个方面,这些功能模块服务于各个不同的企业管理领域。在每个管理领域,R/3 又提供了进一步细分的单一功能子模块,例如财务会计模块包括总账、应收账、应付账、财务控制、金融投资、报表合并、基金管理等子模块。SAP 所提供的是一个标准而又全面的 ERP 软件,同时软件的模块化结构保证了数据单独处理的特殊方案需求,其功能覆盖企业的财务、后勤(工程设计、采购、库存、生产、销售和质量等)和人力资源管理、SAP业务工作流系统以及互联网应用链接功能等各个方面,如图1-1所示。图1-1 SAP R/3系统的功能模块

R/3应用软件采用模组化结构。它们既可以单独使用,也可以和其他解决方案相结合。从流程导向的角度而言,各应用软件间的整合程度越高,它们带来的好处就越多。SAP R/3各功能模块简单介绍如下。

FI 财务会计集中公司有关会计的所有资料,提供完整的文献和全面的信息,同时作为企业实行控制和规划的最新基础。

TR 财务管理是一个高效率财务管理完整解决方案,确保公司在世界范围的周转,对财务资产结构实行盈利化组合,并限制风险。

OC办公室和通信是公司管理系统中规划与控制工具的完整体系,具有统一的报表系统,协调公司内部处理业务的内容和过程。

EC企业控制是根据特制的管理信息,连续监控公司的成功因素和业绩指标。

IM 投资管理提供投资手段和专案,从规划到结算的综合性管理和处理,包括投资前分析和折旧模拟。

PP 生产计划提供各种制造类型的全面处理,从重复性生产、定制生产、定装生产、加工制造、批量及定存生产直到过程生产,具有扩展MRP(Material Requirement Planning物料需求计划)Ⅱ的功能。另外还可以选择连接PDC(Parking Distance Control停车距离控制系统)、制造质量控制系统(Producing Quality Control,PQC)、CAD(Computer Aided Design计算机辅助设计)和PDM(Product Data Management产品数据管理)。

MM物料管理以工作流程为导向的处理功能对所有采购处理最佳化,可自动评估供应商,通过精确的库存和仓储管理降低采购和仓储成本,并与发票核查相整合。

PM工厂维护提供对定期维护、检查、耗损维护与服务管理的规划、控制和处理,以确保各操作性系统的可用性。

QM品质管理监控、输入和管理整个供应链与品质保证相关的各类处理、协调检查处理、启动校正措施,以及与实验室信息系统整合。

PS 项目系统协调和控制项目的各个阶段,直接与采购及控制合作,从报价、设计到批准以及资源管理与结算。

SD 销售与分销积极支援销售和分销活动,具有出色的定价、订单快速处理、按时交货,交互式多层次可变配置功能,并直接与盈利分析和生产计划模块连接。

HR人力资源管理采用涵盖所有人员管理任务和帮助简化与加速处理的整合式应用程序,为公司提供人力资源规划和管理解决方案。

开放式信息仓库包括智能信息系统,该系统把来自R/3应用程序和外部来源的数据归纳成为主管人员信息,不仅支持使用者部门决策和控制,同时也支持对成功具有关键作用的高阶控制和监控。

R/3——定制化策略信息管理保持竞争领先地位,它依赖于公司建立有效并尽可能以客户为导向的企业流程结构的能力。这就需要具备可有效支持企业流程的信息处理系统。1.3SAP R/3的主要特点

SAP R/3的主要特点如下。

功能性:R/3 以模块化的形式提供了一整套业务措施,其中的模块囊括了全部所需要的业务功能并把用户与技术性应用软件相结合而形成一个综合的系统,用于公司或企业进行战略和运用的管理。

集成化:R/3 把逻辑上联系的部分连接在一起。重复工作和多余数据被完全取消,操作规程被优化,集成化的业务处理取代了传统的人工操作。

灵活性:R/3 系统中方便的裁剪方法使之具有灵活的适应性,从而能满足各种用户的需要和特定行业的要求。R/3还配备适当的界面来集成用户自己的软件或外来的软件。

开放性:R/3 的体系结构符合国际公认的标准,使客户得以突破专用硬件平台及专用系统技术的局限。同时,S A P提供的开放性接口,可以方便地将第三方软件产品有效地集成到R/3系统中。

用户友好:图标与图形符号简化了人机交互的操作。统一设计的用户界面确保了工作人员能够运用同样的熟悉的技术从事不同的工作。

模块化:R/3 的模块结构使用户既可以选用各个实用程序,也可以完全转入一个新的组织结构体系。

可靠:作为用户的商业伙伴,SAP继续不断地为集成化软件的质量设立越来越多的国际标准。

低成本高效益:信息处理是取得竞争优势的要点之一。当竞争加剧时,企业必须更加努力地获取其市场占有量。这就要使用高度集成化的数据处理软件,而R/3正是这种软件的优秀典范。

国际适用:R/3 支持多种语言,而且是为跨国界操作而设计的。R/3 可以灵活地适应各国的货币及税务要求。

服务:在 R/3 系统实施过程中,用户将得到 SAP 技术专家的全面支持与服务,包括组织结构方面与技术方面的咨询、项目计划与实施方面的协助,以及培训课程。

注:R/3系统并非只是软件,而是一种策略性解决方案。

R/3系统——企业流程的思维与行动。

公司必须运用动态战略对瞬息万变的挑战做出反应。迅速适应客户新需求和市场新商机的能力,是赢得竞争胜利的决定性因素。此种适应力需要一个功能强大、开放式的基础结构,它可针对目前的企业流程提供最佳化支持,并能灵活地适应变化与发展。R/3系统就是应对这些挑战的最佳方案,它是采用主从式架构的最普遍的标准商业应用软件。1.4SAP发展历史1.4.1 SAP大事年表

1972 年,IBM 公司的五名经理和工程师离开了 IBM,在德国曼海母创建了他们自己的公司,这就是SAP。

当时创建 SAP 的原因是,他们发现自己的客户正在自行开发类似的程序来处理业务流程。于是他们意识到可以提供可重用的标准化的系统,来集成和实现用户的业务流程。尽管当时还没有微机,计算机最多仅有 500KB 内存,但他们认为计算机的普及可作为业务流程的关键点。

SAP最初的产品是一个自动化财务和交易程序,命名为RF,就是后来的R/1。

1976年,SAP搬迁到现在公司的总部所在地,海德堡。

1979年,SAP推出用于大型机的R/2。

1988年,SAP在德国上市。

1992年,SAP推出了著名的R/3。基于C/S模式,统一的图形界面,兼容关系数据库,可以运行在Windows NT等多种平台,以及计算上的先进特性,使SAP成为世界领先的应用系统提供商。但是,至此SAP的所有应用都是独立的,仅仅是Client加上数据库。

1996年,随着互联网的迅猛发展,SAP推出了支持Internet的新版R/3 3.1。

1998年,推出全新的CRM和SCM解决方案。

1999年,SAP推出了所谓的mySAP Business Suit。其实这也是新版的R/3,但是其应用已经不再是孤立的,它支持全面、协同的电子商务和ERP解决方案。

通过mySAP,SAP实现了更方便、更容易沟通的系统框架。借助NetWeaver04,SAP成功地把它以前的所有技术和业务逻辑通过和 J2EE 平台集成而开放出来。NetWeaver 05和AP/BPP/TP/ESA,使SAP实现了更高程度的技术/业务分离(TP/AP)、更好的业务封装(AP)和更方便的顶层业务实现(BPP)。1.4.2 SAP技术平台

SAP 其实并不是现在才想做业务平台的领导者,自它的商业开发语言(ABAP)推出以来,一直就是世界最先进、最主流的电子商务平台提供者。只是现在,特别是 J2EE 普及之后,人们才更多地认识到平台的重要性。SAP将围绕电子商务提供三种平台。

◎ 技术平台TP(Technical Platform)

技术平台TP,也就是所谓的NetWeaver。它提供了所有技术基础设施,是J2EE的扩展,其提供的内容远远超过J2EE的范畴,它的架构同时也包括了基于ABAP的应用服务器。

◎ 应用平台(AP)

NetWeaver 虽然提供了技术平台,但是,要用它来实现一个企业的业务流程,却是一件极其复杂的事。因此必须有更靠近应用的平台,提供基础业务设施的封装。这就是所谓的AP(Application Platform),它是由SAP的ESA(Enterprise Server Architecture)来实现的。简单地说,NetWeaver加上ESA(就是AP)便提供了一个实现基础业务逻辑的平台。◎ 业务流程平台(BPP)

这是一个面向业务流程的平台。基础业务逻辑可以用AP实现,通常SAP已经提供大量基于 SAP 系统的业务逻辑。同时,第三方也可能提供业务逻辑。BPP 的开发人员只需要使用BPP的开发环境(Visual Composure)去组装这些业务逻辑。1.4.3 SAP现状

目前,SAP 的员工已超过 30 000 人、实验室分布于全球,是世界第三大独立软件供应商。它提供超过21个行业、13个跨行业的解决方案。在技术上,SAP有自己的商业开发语言(ABAP)、有自己的应用服务Application Server、有自己的开发平台。SAP几乎可以提供除OS外所有的基础软件和解决方案。其实,NetWeaver或mySAP的概念对我们了解SAP的技术而言并不重要,因为SAP的技术几乎概括一切,SAP的整个架构就是一个现代 IT 领先技术架构的实现。无论 mySAP 还是 NetWeaver,或 AP/TP/BPP,都是 SAP为了适应更先进技术而进行的对SAP总体技术框架的改造。

现在SAP在120多个国家和地区拥有17 500多家客户、44 500多个系统安装点、1000多万个最终用户,世界 500 强中 80%以上的公司都在使用 SAP 的管理方案。SAP 在全球多家证券交易所上市,包括法兰克福证交所和纽约证交所。自 20 世纪 80 年代开始 SAP同中国企业合作以来,于 1995 年正式成立了中国分公司,并设立了北京、上海、广州分公司。根据 IDC 公布的数据,2000 年 SAP 在中国 ERP 软件市场份额达到 30%,并逐年递增。SAP在中国已有300多家用户,其中既包括中石化、中化、红塔、海尔、联想、COSCO、长虹、一汽-大众、上海通用、上海浦发行、国贸中心、李宁、乐百氏、麦德龙、万科、康佳、浙江电力、上海三菱、小天鹅、大唐电信、宗申摩托、华凌空调等大型企业和集团,也包括宝岛眼镜、青岛狮王、兆维晓通、杭州解放路百货等中小型企业。在消费品行业有广东乐百氏集团、广东保洁有限公司、广东美晨集团有限公司等。

小结:R/3系统所支持的功能是非常多的,内容包罗万象,为了能够使得 R/3系统具有高度的灵活性以及可集成性,R/3 系统提供了系统定制这项强大的功能,根据企业的具体业务需要而取舍。当然,由于在某些特殊的环境下,系统定制不能够解决企业的具体问题,所以需要利用R/3系统的开发平台以及所提供的ABAP/4编程语言来解决特殊的问题。本书主要介绍ABAP/4编程的一些概念、方法以及编程实例。第2章SAP开发概要

SAP R/3系统是德国SAP公司开发的几乎适用于所有行业的一整套集成化的企业管理系统软件,现在也称这种类型的软件为 MRPII 软件,SAP R/3 系统可以为大中型企业提供从生产到销售等一系列过程的整体解决方案。SAP 公司自从 1994 年年底进入中国市场以来,发展迅速,在 MRPII 软件领域取得了骄人的业绩,这主要归功于 SAP公司开发的企业管理系统软件具有广泛的适应性,能够根据企业的具体情况进行系统定制以符合企业的实际业务情况,并且也提供了一系列编程接口对系统进行二次开发。另外,R/3 系统的一个主要的特征就是具有高度的可集成性,与作业相关的工作处理过程在系统结构上被连接了起来,因此所有相关的数据都在同一个基础上更新以及存储。在某一个应用模块中的每一个修改都会自动引起所涉及的功能域中数据的更新。所以,所有的应用模块都是在一个标准的数据处理基础上实现的。

注:二次开发,简单地说,就是在现有的软件上进行定制修改,进行功能的扩展,然后达到自己想要的功能,一般来说都不会改变原有系统的内核。2.1SAP系统2.1.1 Client/Server构架

SAP系统的构成如图2-1所示。图2-1 SAP系统构成

SAP 系统实现了三层(表示层、应用层和数据库层)的系统结构,通过这种结构,系统可灵活扩展,以满足系统负载的要求。SAP推荐这个三层的系统配置,其中应用层、数据库层也可以配置在一个服务器上。

1.表示层

表示层是用户的操作层(Presentation Client),终端用户通过此层进行系统的具体应用。SAP的图形界面操作系统(统称SAPGUI)是“SAPGUI for Windows”,“SAPGUI for HTML”,“SAPGUI for Java”。表示层也是SAP用户和R/3系统交互的接口,用户在这一层对SAP系统进行操作。这一层将用户的命令或者操作传送给R/3系统,经系统进行相应的处理后把数据返还给用户。

2.应用层

应用层由SAP R/3的应用服务器(SAP R/3 Application Server)构成,SAP R/3的源程序和客户开发的R/3应用集中在此层,R/3系统通过一个内部的数据管理工具SAPDBA和数据库服务器紧密地关联在一起,执行对数据库服务器的系统管理、存储管理等。

应用层包括一个或者多个应用服务器和一个消息服务器。每一个应用服务器包括一系列服务以便运行应用程序。所有的服务分别设置在这些应用服务器之中,其实用户需要的只是其中的一个应用服务器。在多个服务器之间传递信息可以决定用户到底需要的是哪个服务器的服务,每个服务器由来自用户(表示层)、加载和执行应用程序所需要的进程、相应用户要求的“调度员”和应用程序运行产生的“工作流程”组成。

3.数据库层

数据库层由SAP R/3的数据库服务器(Database Server)构成,R/3应用的所有数据和Log都存放在此层。目前,R/3系统支持的后台外挂关系型数据库有Oracle、DB2、Informix、SQL 等,国内使用最广的是基于 Oracle 或 DB2 的 R/3 应用。其作用是建立与 RDBMS (Relational Database Management System关系型数据库管理系统)的连接,按照需要应用层实现数据检索和更新RDBMS。

注:SAP R/3 C/S架构

R/3 系统具有良好的结构、可集成性与灵活性等特点,以更好地适应企业不断变化的业务需求,并且有助于在企业中推广实施 R/3系统以及对 R/3系统进行维护。R/3系统之所以具有这些优势主要是由于R/3系统具有良好的客户机/服务器结构,R/3系统的客户机/服务器结构具有以下三层结构。(1)客户端提供图形用户界面(GUI),用户借助于图形用户界面能够与系统交互,向应用服务器层(中间层)请求服务,并且接收从应用服务器层返回的结果。(2)中间层是应用服务器层,客户端的用户可以借助于GUI向应用服务器层的代理者发出请求以完成某项任务。(3)应用服务器层的代理者根据用户的请求调用相应的应用服务功能并对数据库服务器中的数据库进行操作,调用结束后就把结果以相应的显示方式返回给用户。

这种架构由于大量的计算在后台服务器上进行,故减少了网络流量,具有相当大的优势。2.1.2 结构与职能

SAP系统结构如图2-2所示。图2-2 SAP系统结构

1.SAP系统结构(1)应用层

应用层提供会计、市场营销、生产管理应用。

R/3系统的设计始终从用户的需要出发。R/3保持了友好的用户使用界面。R/3使用用户已经非常熟悉的Windows技术,可以同时执行多个任务。R/3模块都是菜单驱动的,指引用户很容易地使用整个系统。

位于 R/3 客户机/服务器体系结构表示层的 SAP GUI 是用户界面。它基于如下一些Windows的风格。

◎ 联机帮助:提供完成R/3应用操作的信息。

◎ 屏幕元素:有输入/输出字段、复选框、单选框、按钮、表格、滚动条等。

◎ 菜单:所有的R/3应用都能通过菜单访问。

◎ 工具条:包含常用定向命令的图标,如退出、保存、取消、打印等。

◎ 功能键:很多主要的操作都能通过功能键完成。

◎ 输入值:某些字段只能接收给定的有意义的输入值,用户可以从列表中选择。(2)Basis层

Basis层连接应用层和系统层,它对SAP应用系统的系统层依赖最少。该层由四部分组成,包括进行ABAP程序运行的“ABAP解释器”、控制屏幕的“Dynpro解释器”、SAP GUI“用户界面”数据定义的“ABAP字典”和与外部系统进行通信的“系统接口”。

◎ 屏幕解释器

屏幕解释器负责设计R/3屏幕、检查用户输入并提供出错信息。R/3系统是一个双向的过程,用户输入信息,R/3提供反馈。这通常称为“对话”,而控制这些对话的就是屏幕解释器。

◎ ABAP/4解释器

ABAP/4是SAP开发的第四代编程语言,所有的SAP模块都用ABAP/4写成。ABAP/4解释器和屏幕解释器一样负责管理与用户的对话,不过它的作用是处理输入数据,并编辑输出数据。通过屏幕解释器与ABAP/4 解释器的共同作用,用户与应用模块之间便建立了有效率的对话。

◎ 数据字典

数据字典顾名思义是R/3用来查找用的。应用模块使用的所有数据(如数据类型、数据域允许的最大字符长度等)都定义在数据字典的表中,屏幕解释器使用这些信息来检查输入是否有效,ABAP/4 解释器则用这些信息来定义数据能够被另一模块使用之前所需要的处理过程。同时数据字典也存储关于系统与业务的综合信息。

◎ 流控制

流控制有助于提高R/3应用软件管理一系列工作的效率。比如,它保证用户的数据已被保存;当用户要求系统执行一系列的任务时,流控制将在批处理(Batch Process)中进行处理。(3)系统(平台)层

系统(平台)层是 SAP 系统正在运行的操作系统(如 UNIX、Windows)和 RDBMS(Oracle、SQL Server)等。

◎ 支持SAP的操作系统如下:

IBM AIX(包含IBM JVM of AIX);

IBM AS/400(包含IBM JVM for OS/400);

Compaq UNIX(包含Compaq JVM for Tru64);

HP-UX(包含HP JVM for HP-UX);

Linux(包含IBM JVM for Linux/Intel);

Windows NT(包含Windows 2003);

SUN Solaris(包含SUN JVM for Solaris and Windows);

IBM OS/390,z/OS(包含IBM JVM for OS/390 and z/OS)。

◎ 支持SAP的数据库如下:

SAP DB;

DB2 for OS/390 and AS/400;

DB2 Universal Database for UNIX/NT;

Informix;

Microsoft SQL Server;

Oracle(包含Oracle Parallel Server)。

2.SAP结构特点(1)效能

SAP R/3是一个对CPU、内存、硬盘和I/O需求很大的应用系统,作为一种有多层结构的应用系统,在其服务器的内部连接上对带宽有较高的要求。(2)可扩展性

SAP的ALE(Application Link Enabling)能够使分散的SAP应用系统相互联系,系统的可扩展性最基本的需求是,CPU、内存和硬盘的容量。(3)高可靠性

SAP R/3作为一种实时的应用系统需要最小的停机时间,需要有极好的系统可靠性。在系统可靠性方面,许多硬件厂商提供了切换软件的容错机制。2.2SAP系统数据构成2.2.1 Client(集团)

SAP系统的Client如图2-3所示。图2-3 SAP系统的Client

SAP系统的Client(集团)可以看作一个SAP系统的多个虚拟系统,SAP用户将以客户端的形式登录。

Client 是系统中的最高等级,其实 Client 翻译成“集团”并不合适;Client 是一个逻辑的概念,从技术上理解更容易些,每一 Client(集团)包括一个完整的逻辑数据库,该逻辑数据库中包括ERP系统涉及的各种配置和交易表格等,如果你接触过系统应该知道,假设同一测试服务器上有Client 200、Client 400和Client 600这样3个Client,除了一些跨Client的配置表格中的数据,除非在程序中使用Client指定可跨Client读取显示数据,否则一般各Client的业务交易数据相互不可见,这种分离数据的作用非常明显,在Client 200做的财务凭证当然不能在Client 400看到。一个显示视图“集团”总览的示例如图2-4所示。图2-4 显示视图“集团”总览的示例

如图2-4所示,系统中共有3个Client。

SAP里的Client(集团)是指SAP系统内部的一种独立的业务实体或单元;使用某种SAP用户接口,用户可以登录到集团来实际访问和使用系统。包括SAP ERP、CRM、SCM在内的每种系统都会有一套系统特定的独有的集团。我们周围的机构可能会有多个生产集团,IT小组也会使用其他集团来开发和测试将来要交付给最终用户使用的业务功能。一个显示视图“集团”明细的示例如图2-5所示。图2-5 显示视图“集团”明细的示例

集团都有自己独立的主记录和表集合。关于这一点,我们最好还是从公司的角度来理解,譬如一家大型跨国机构,可能有五六家公司。SAP内部的每个集团都表示一家不同的公司,公司可以根据离散的业务组、功能或地域来分解客户。这样,当我们登录某集团即公司来完成自己的工作时,其他公司的员工也可登录到同一SAP系统的其他集团。这样,跨国机构作为一个整体,可以很方便地报告全公司的财务状况、库存量等。

在某个系统内部可能会配置多个集团。例如,为了特殊的开发人员培训计划,技术团队可能会在开发环境中配置新的集团,用来向开发者讲解如何在保证不改变重要开发数据的情况下使用系统。在其他系统中,从生产一直到QA与测试系统等,常常也会建立相同的集团配置。

不管有多少集团,每一个集团都会被分配一个唯一的三位数字编号,在登录的时候使用。集团的区分因而也变得比较容易。开发者可以登录到Client 100来培训,登录到Client 200来审批新的业务逻辑,登录到Client 500来执行公司的实际开发活动。同样,终端用户可以登录到生产系统中的Client 300来完成每日的工作,偶尔也会使用QA或测试系统中的Client 900来检查正在开发的新功能的状态。

在 SAP 世界里,术语 Client(集团)所描述的含义与 IT 界一般所讲的“客户机”有明显不同。IT普通术语客户机代表独立的PC或工作站。而本书中一般都是以Client来描述SAP系统内部一种逻辑独立的业务实体。2.2.2 数据结构

SAP系统的数据结构如图2-6所示,大致可分为Client依存的数据(上半部分)和Client非依存的数据(下半部分)两部分。图2-6 SAP系统的数据结构

1.Client依存的数据(1)Client依存定制数据

自定义的信息,每个Client设定不同的参数信息,如图2-5中客户端000中的数据。(2)应用数据

各种凭证和其他交易数据,如表BKPF、VBAK、EKKO中的数据。(3)用户数据

与用户关联的各种数据,如表USR01、AGR_DEFINE中的数据。

2.Client非依存的数据(1)Client非依存定制数据

定制公共的系统信息,如跨集团应用的数据。(2)库

附加(ABAP的)计划扩建、改建和表结构。

3.SAP Client(集团)的作用

Client(集团)是SAP系统的一个组织单元/结构。该组织单元是最高层次的,也是所有实施 SAP 应用模块必须创建并维护的组织结构。每个 Client 在业务、组织、技术等方面与其他Client都是独立的,有各自的主数据和数据库表。

在 Client 层次设置的系统属性和参数,适用于该 Client 下的所有公司/公司代码等其他组织架构/单元;所有的输入和产出、处理加工都是分 Client进行的,即不跨 Client处理。

R/3 初始安装时,有两个默认的 Client即 000和 001;这两个 Client包含必要的默认配置内容,因此可以作为创建新Client的模板。

注:Client依存数据与非依存数据的技术实现

从设计逻辑上看,Client在整个系统的层次上分离数据。

在技术上,数据库表的第一个字段是否为 Client(MANDT),如果为 MANDT,则说明表中的数据是Client依存的,否则是非依存的。2.3SAP系统应用2.3.1 蓝图

SAP系统蓝图如图2-7所示,可分为单系统蓝图、双系统蓝图和三系统蓝图三种。图2-7 SAP系统蓝图

1.单系统蓝图

单系统蓝图可以使用最少硬件资源用于生产,若将单系统蓝图进行开发会直接影响生产和SAP客户定制,因此该系统不可做开发。

2.双系统蓝图

双系统蓝图是开发、测试和质量保证与生产属于不同 SAP的系统,是一个 SAP系统进行开发的最低系统配置。

3.三系统蓝图

三系统蓝图是SAP公司推荐的蓝图,现在被广泛应用。在全球已实施的众多 SAP 项目中,“三系统蓝图结构”使用最为广泛,已成为默认的标准。在这样的整体架构中必须至少包含三套 SAP 系统:生产系统、开发系统、测试系统。它们的作用分别如下。

◎ 生产系统(Production System)

它是企业日常运转实际使用的系统,其中存有企业的完整业务数据,在生产系统中不允许直接做客户化或开发。

◎ 开发系统(Development System)

它是SA项目的实施系统,各种业务模块的客户化工作、相关的应用开发等在该系统中进行。

◎ 测试系统(Testing System)

它是为各种客户化和开发工作提供完整测试的系统,其中存有企业实际业务数据,用于验证客户化和开发的正确性。2.3.2 SAP实施

SAP系统实施如图2-8所示。

由图 2-8可见,SAP实施的过程是指企业从购买 SAP之日起到实际用 SAP进行企业管理为止。SAP 实施的过程也是对 SAP 客户化的过程。实施一个系统其实质就是配置一个系统,也就是一般称为“客户化”的过程。

不同的企业有不同的工作流程,但是 SAP系统是一个通用的软件。要使用SAP去进行管理就需要将 SAP 与组织的运行变为一体。作为一个通用的软件,系统在设计的时候是不可能把所有方面都设想到的。必然有许多企业发现自己现在某方面的工作方式和流程与软件能提供的选项根本不能配合。这样在SAP实施过程中会伴随ADD-ON开发、增强和SAP源代码的修改。图2-8 SAP系统实施

1.客户定制

根据SAP客户业务需求的各类标准,设置系统配置参数的代码,如货币等。

2.ADD-ON开发

实施方案,以满足客户的要求和ABAP附加的额外的表的开发。

3.增强

由于 SAP 标准 ABAP 程序中提供了很多接口,以适应客户的特殊要求,故可以开发并使用ABAP标准程序留用的接口来实现其功能。

4.Modification

SAP标准也提供了ABAP程序的表结构直接修改功能,注册对象的界面如图2-9所示。图2-9 注册对象界面2.3.3 SAP传输

SAP的传输示意图如图2-10所示。

传输是 SAP 实施由开发系统(客户定制,ADD-ON,增强,Modification)复制到质量保证环境和生产环境,以保证其品质的工具和规则。

传输的操作步骤如下。

1.配置TMS(传输管理系统)

配置TMS的示意图如图2-11所示。此部分内容由Basis完成,相关内容请参照对应资料。图2-10 SAP传输示意图图2-11 配置TMS示意图

2.传输申请号

在 SAP 系统调整时提出“一个任务变化的要求”作为注册,其“创建请求”界面如图2-12所示。图2-12 “创建请求”界面

3.发布

变更请求和变更请求任务是“释放”在文件传输操作系统上执行的出口运输工作目录,其“传输组织器:请求”界面如图2-13所示。图2-13 “传输组织器:请求”界面

4.传输

传输是将文件和目录“转移”到质量保证环境和生产环境,其“开始输入”界面如图2-14所示。图2-14 “开始输入”界面2.3.4 SAP开发

SAP系统开发和项目管理的示意图如图2-15所示。图2-15 SAP系统开发和项目管理示意图

1.开发类(SAP 4.7以后的版本称为包,即Package)

开发类可以由本单位传输,开发类的界面如图2-16所示。图2-16 开发类界面

2.变更请求

进行档案管理信息库和自定义更改时,变更请求的界面如图2-17所示。图2-17 变更请求界面

3.任务

任务是为工作单位更改请求而分配给项目成员的工作。信息库项目成员记录定制变化的任务。

注:在项目中,为确保每个任务传送的准确性,防止发生混乱,往往是一个任务对应一个变更请求;当然,在变更要求相对较低的任务时,也可以把它们放到一个任务中,如基本的数据字典等。

小结:本节主要从技术面剖析了 SAP 系统工作原理及相关开发技术,如果要进行进一步的学习,需参阅Basis相关书籍。第3章ABAP开发前提

从ASAP快速实施SAP(Accelerated SAP,ASAP)角度讲:SAP实施进入到系统实现阶段,一般才进入ABAP开发;从学习角度讲,ABAP开发,首先要建立ABAP的开发环境。

从狭义上说,ABAP开发环境是SAP R/3系统的ABAP工作台,即ABAP Workbench,事务代码是SE80;从广义上讲,ABAP开发环境本身就是构建的SAP平台。

按照一般说法,SAP是基于C/S架构的ERP软件(内核由Basis升级到SAP WAS之后,SAP系统也支持B/S架构),就ABAP开发而言,客户端Client与服务端Server是必不可少的。3.1服务端开发平台

SAP系统的原型是一套自动报账的财务系统,演变为SAP R/1,后来是SAP R/2,再后来发展到SAP R/3,版本不断升级(由3.0、4.6到4.71),后来发展到ECC 6.0,开发环境的平台由R/3 Basis升级为SAP WAS(Web Application Server),后来升级为NetWeaver 2004,内部版本是7.0。前几年SAP公司还为ABAP开发人员提供了一款产品,MiniSAP;最近的内部版本7.1于2008年7月底向客户发布,7.1版本的ABAP开发环境要比先前几个版本好许多。

ABAP开发环境大致有以下几种:

◎ MiniSAP;

◎ SAP R/3;

◎ NetWeaver(SAP Web AS For ABAP).

上述几种环境都有一个共同点,它们都包含Basis。

Basis就是R/3的操作系统,它介于ABAP/4代码和计算机操作系统之间。因此,SAP喜欢称之为中间件。

ABAP/4程序不能直接在操作系统上运行,需要一组程序(这组程序就是Basis)对其输入/输出进行装载、解释和缓冲。

Basis在某些方面有点像Windows环境。Windows启动后为Windows程序提供了运行环境。没有Windows,为Windows环境编写的程序就不能运行。Basis对于ABAP/4来说就像Windows对于Windows程序一样。Basis为ABAP/4程序提供了运行环境。没有Basis,ABAP/4 程序就不能运行。当启动 R/3 时,就可以认为启动了 Basis。Basis 是一组带有接口的R/3系统程序,利用这些接口,用户就可以启动ABAP/4程序。

ABAP/4 程序在保护性的 Basis 环境下运行,它们不能在操作系统环境下运行。Basis读取ABAP/4代码,并向操作系统指令解释ABAP/4代码。

ABAP/4程序不能直接访问操作系统的功能,而是利用Basis功能进行文件I/O和在窗口中显示数据。与操作系统的分离使得ABAP/4程序不用修改就可运行在任何支持R/3的系统上。

注:SAP产品概念及版本简介

SAP Business Suite

当前SAP公司的主力产品中包含了mySAP ERP,mySAP CRM,mySAP SCM 等。如果购买的是此种许可证,就意味着几乎可以用 SAP 所有产品的功能;但某些特定行业的特定引擎(Engine)除外。

mySAP ERP

主要就是以前的SAP R/3,加上SAP最新的集成平台SAP NetWeaver。

mySAP CRM

之所以叫mySAP CRM而不是SAP CRM,是为了突出SAP的CRM产品是以客户为中心的、灵活可配置的。mySAP CRM主要包括SAP的CRM产品功能包再加上SAP最新的集成平台SAP NetWeaver。

SAP NetWeaver

是SAP最新的集成应用平台。一方面,SAP用这个平台来集成SAP与非SAP(Oracle,Siebel等)应用系统;另一方面,SAP把一些各个系统都可以通用的功能放入此平台中,如SAP门户(SAP Portal)可以访问各种SAP应用系统(ERP,CRM等)及非SAP系统,SAP商务智能(SAP BI)可以对来自各种系统的数据进行分析。

mySAP.com

这是前几年SAP为了迎合网络风潮而给自己的产品包改的名字,它跟www.mySAP.com这个网站没有任何实质关系,其实它就是现在的SAP Business Suite。

SAP R/3

SAP R/3以前是SAP公司的主力产品,包括大家非常熟悉的SD,MM,FI,CO,PP等模块。但近年来SAP已经不再单独出售R/3的许可证,代之以mySAP ERP。这就意味着客户无论选择 SAP 的何种产品(mySAP ERP,mySAPCRM 等)都会得到 SAP NetWeaver,其中包括SAP Portal与SAP BI的使用许可。

SAP All-in One (SAP A1)

在SAP R/3的基础上,SAP做了一些预配置,然后按不同行业交给咨询合作伙伴,由他们再加一些预配置,然后以咨询合作伙伴的名义将加了预配置的系统销售给用户。它内含mySAP CRM的部分功能。

SAP Business One (SAP B1)

它是在 SAP 收购的另一家公司的产品基础上改造而成的,优点是价格低廉,并且由于数据结构相同可以无缝地将系统升级至SAP A1,SAP Business Suite。SAP B1中有CRM功能,但远不及mySAP CRM系统的功能那么强大。

SAP Release版本之间的差异和关系

版本4.6C以前是所谓传统的R3系统,建立在SAP Basis的基础上。

版本4.70以后,改为R3 Enterprise,最大的变化是SAP Web AS取代了传统的Basis,核心业务功能模块也做了划分。

R3 Enterprise之后改称为mySAP ERP2004,基础平台演变成SAP NetWeaver,并产生SAP ECC (ECC=ERP Central Component),作为Enterprise的替代,并集成了BI,SEM和ITS;自2005年第4季度开始推出的mySAP ERP2005,其最大的变化是全面转向ESA体系(基于消息机制的企业应用体系),并引入了新的功能模块,比如PLM和SRM。3.1.1 Mini SAP

Mini SAP 是 SAP 公司专为初学者提供的一个完整的 SAPBasis 系统,可以学习Windows NT+SQLServer+单一系统(不涉及系统间软件传递)环境下所有的Basis功能,也可以学习 ABAP 的几乎所有功能(除了系统间 RFC 调用)。但要注意两点:Mini SAP规定了系统名MBS(不像正式系统在安装时可以任意取名),只有一个DEVCLASS。

Mini SAP麻雀虽小,但五脏俱全,而且SAP公司对此提供免费下载,故不失为一个很好的学习软件,它的安装也比较简单,这里不做过多说明。3.1.2 SAP R/3

IDES(International Display Education System)是SAP提供给客户或合作伙伴用于学习SAP R/3软件的培训系统,它与正式系统的最大区别在于,安装后系统中已经按一个模板企业(1000 公司)的组织架构配置了系统,并在系统中提供了相关的业务数据,通常安装后系统内已有800、801、802等Client(集团)用于学习不同的业务案例,当然常用的是800。

IDES系统与正式系统没有太大区别(如果有License的话),因此从000中复制一个Client或新建一个公司代码都没有问题。但通常都不建议用IDES环境来做这样的事,因为不知道SAP在其中设置了什么控制手段,所以最关键的是要有SAP对生产环境的服务支持。

关于这一套软件,这里不加以赘述,值得提醒的是,这是一个 SAP 学习者的后续版本,因为一旦安装了IDES就会抛弃Mini SAP。

现在用得比较多的是SAP R/3 4.7的IDES,其安装过程比较复杂,但是在网络上提供很多类似的安装指导,这里也不做过多介绍。3.1.3 NetWeaver

SAP NetWeaver是下一代基于服务的平台,它将作为未来所有SAP应用程序的基础。NetWeaver 包含了一个门户框架、商业智能和报表、商业流程管理(BPM)、自主数据管理(Master Data Management,MDM)、一个公用运行时间应用服务器(Common run-time Application Server),以及SAP应用开发和管理平台。

SAP NetWeaver全面实现与Microsoft.NET和IBM WebSphere的互操作性和可扩展性。

Enterprise Services Architecture(ESA)基于服务的完整业务解决方案的蓝图,使公司能够通过现有技术投资获得更大的业务价值,并且是 SAP 公司第一次实现在整个企业内使用Web服务。将来,所有SAP解决方案都将采用ESA蓝图开发,并希望在可用性、伸缩性、适应性和扩展性方面确立新的标准。

SAP官方网站如ftp.sap.com或sdn.sap.com都有相关试用版下载,安装相对比较简单,详细步骤参照【附录A:SAP NetWeaver 7.01安装指南】。

注:三种开发平台的相同点

三种环境中均含有大量的例子程序,事务代码(TCode):ABAPDOCU。三种环境都能够实现全部功能的ABAP开发(包括数据库编程)。

SAP 正式环境含有业务功能并能进行开发,但正式环境需要经过较复杂的系统配置,才能使用业务功能。正式环境没有任何业务数据,开发 ABAP 程序需要向 SAP 公司申请开发关键字。

SAP IDES环境含有业务功能并能进行开发,而且有一套完整的演示数据,能直接使用各类业务功能。同时,对于例子程序,也有演示数据,能进行ABAP的真实业务程序开发。但开发ABAP程序需要向SAP公司申请开发关键字。

MiniSAP没有业务功能,只有开发和维护功能。对于例子程序,没有演示数据。3.2客户端开发平台

访问SAP系统是使用SAP应用的前提,其解决方案是安装一套SAP特定的用户接口(GUI),供用户运行SAP业务事务。SAP提供了三种版本的GUI(Graphical User Interface):GUI For HTML、GUI For Java和GUI For Windows。

SAP 的 GUI For Windows 是目前最流行的 SAP 用户界面。它也称为“SAP GUI for Windows(SAP GUI for the Windows environment)”,Windows界面需要相当多的磁盘空间和内存才能良好运行。与此类似,SAP的GUI For Java也是客户端(SAP GUI for the Java environment),它支持非Microsoft前端客户来访问SAP。

SAP GUI For Windows(优点是操作数据速度较快,缺点是不跨平台,而且需要安装客户端)。

SAP GUI For Java(优点是可以跨平台,缺点是操作速度较For Windows略慢)。

SAP GUI For HTML(优点几乎没有。缺点是对网络传输要求较高,速度较慢)。3.2.1 客户端SAP GUI的安装

GUI For HTML:应用较少,这里不加以赘述。

GUI For Java:可用于多种操作系统,安装较为简单,但与服务端的配置烦琐,要配置文件关联才能登录系统。详细步骤参照【附录B:SAP GUI安装配置指南】中的GUI For Java部分。

GUI For Windows:至今为止,GUI For Windows是SAP应用最为广泛的GUI,安装比较简单,详细步骤参照【附录B:SAP GUI安装配置指南】中的GUI For Windows部分。3.2.2 客户端SAP GUI的登录

通过SAP GUI,可以有两种方式登录到SAP中。

◎ 通过链接登录到 SAP,在【附录 B:SAP GUI安装配置指南】中将有详解。

◎ 通过快捷方式登录到 SAP(前提:已创建登录SAP连接),操作步骤如下。

步骤一、GUI 登录画面:快捷方式页签,如图 3-1所示。图3-1 GUI登录的快捷方式页签

单击右侧按钮。

步骤二、SAP快捷方式属性界面,如图3-2所示。

填入相应的标题,启动事务,连接,登录参数;单击图3-2中的按钮。

步骤三、GUI登录画面:快捷方式页签。

双击如图 3-2 所示的快捷方式中的图标,在弹出对话框中输入用户名和密码并单击按钮,如图3-3所示。图3-2 SAP快捷方式属性界面图3-3 输入用户名和密码3.2.3 SAP画面简介

SAP事务:ABAP编辑器画面,如图3-4所示,其主要栏目分别介绍如下。图3-4 ABAP编辑器画面

1.SAP菜单栏:事务所能提供的功能集合。

2.SAP标准工具栏:SAP事务常用的功能集合。

3.SAP标题栏:SAP事务的功能描述。

4.SAP应用工具栏:当前SAP事务常用的功能集合。

5.SAP画面区:Dynpro画面,选择画面,浏览画面。

6.SAP信息栏:显示SAP与用户交互的信息。

7.SAP状态栏:位于状态栏的右边有状态显示区域,其包括三个部分:

1)单击按钮,出现如图3-5所示的系统信息;

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载