SAP(System, Applications, and Products in Data Processing,数据处理的系统、应用和产品)
公司成立于1972年,总部位于德国沃尔多夫市,是全球最大的企业管理和协同化商务解决方案供应商、全球第三大独立软件供应商。目前,在全球有120多个国家的超过41,200家用户正在运行SAP软件。财富500强80%以上的企业都正在从SAP的管理方案中获益。SAP在全球50多个国家拥有分支机构,并在多家证券交易所上市,包括法兰克福和纽约证交所。SAP早在八十年代就开始同中国的国营企业合作,并取得了成功经验。
1995年在北京正式成立SAP中国公司,并陆续建立了上海、广州、大连分公司。作为中国ERP市场的绝对领导者,SAP的市场份额近年来以非常快的速度增长,年度业绩以50%以上的速度递增。 SAP在中国拥有众多的合作伙伴,包括IBM、HP、Sun、埃森哲、毕博、凯捷中国、德勤、IDS-Scheer (爱迪斯)、源讯、汉得、高维信诚、神州数码、东软软件、汉普、清华紫光、海信,中科软等。
常用信息:
SAP公司的网站:http://www.sap.com/china/
http://www.sap.com/index.epx
SAP官方在线帮助:http://help.sap.com/
(抵的上所有的资料)SAP LOGO:
(SAP中国老师说,当年SAP的成立者从IBM出来时设计的LOGO和IBM是相反的色调,蓝底白字)
SAP模块介绍
(1)财务会计模块(FI),它可提供应收、应付、总账、合并、投资、基金、现金管理等功能,这些功能可以根据各分支机构的需要来进行调整,并且往往是多语种的。同时,科目的设置会遵循任何一个特定国家中的有关规定。
(2)管理会计模块(CO),它包括利润及成本中心、产品成本、项目会计、获利分析等功能,它不仅可以控制成本,还可以控制公司的目标,另外还提供信息以帮助高级管理人员作出决策或制定规划。
(3)资产管理模块(AM),具有固定资产、技术资产、投资控制等管理功能。
(4)销售与分销模块(SD),其中包括销售计划、询价报价、订单管理、运输发货、发票等的管理,同时可对分销网络进行有效的管理。
(5)物料管理模块(MM),主要有采购、库房与库存管理、MRP、供应商评价等管理功能。
(6)生产计划模块(PP),可实现对工厂数据、生产计划、MRP、能力计划、成本核算等的管理,使得企业能够有效的降低库存,提高效率。同时各个原本分散的生产流程的自动连接,也使得生产流程能够前后连贯的进行,而不会出现生产脱节,耽误生产交货时间。
(7)质量管理模块(QM),可提供质量计划、质量检测、质量控制、质量文档等功能。
(8)工厂维修模块,可提供维护及检测计划、交易所处理、历史数据、报告分析。
(9)人力资源模块(HR),其中包括:薪资、差旅、工时、招聘、发展计划、人事成本等功能。
(10) 项目管理模块(PS),具有项目计划、项目预算、能力计划、资源管理、结果分析等功能。
(11) 工作流管理(WF),可提供工作定义、流程管理、电子邮件、信息传送自动化等功能。
(12) 行业解决方案(IS),可针对不同的行业提供特殊的应用和方案。这些功能覆盖了企业供应链上的所有环节,能帮助企业实现整体业务经营运作的管理和控制。
定义:ABAP=Advanced business application program, 一种高级企业应用编程语言。
SAP最初开发ABAP/4(高级商业应用程序设计)语言仅为内部使用,为应用程序员提供优化的工作环境。经过不断的改进和修改以满足商业领域的需要。现在,ABAP/4已成为SAP开发所有自己的应用程序的仅有工具。
ABAP/4 是第四代支持结构化程序设计的语言。它合并了所有通常的控制结构和模块化概念。同时,它还支持面向对象的程序设计方法,这就为ABAP的应用开发开拓了更广阔的空间。而且,它还可以实现和其他编程语言的合成,如VB,JAVA,C/C++等。
二:ABAP的一些特性。
1.ABAP/4 支持商业数据类型和操作。您可以用特殊日期和时间字段进行计算。 系统会自动执行必需的类型转换。
2. ABAP/4 报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻辑数据库支持报表程序。
3.ABAP/4 允许您定义和调用子程序。也可以调用其他程序的子程序 。参数能够以各种方式从子程序传递或传递到子程序。
4. ABAP/4 包含一种特殊子程序,叫做功能模块。您可以在中央库中创建和维护功能模块。在调用程序和子程序之间功能模块有一个明确定义的数据接口。它们能够以调用程序的独立模式进行分别测试。
5. ABAP/4 包含一个叫 Open SQL 的SQL子集。用 Open SQL,您可以读取和访问数据库表,与所用的数据库系统无关。
6. ABAP/4将对话程序组织为包含对话模块的模块池。每个动态程序 (由一个屏 幕及其流逻辑组成的“ 动态程序” )都基于一个ABAP/4 对话程序。流逻辑包含对 ABAP/4对话模块的调用。
三:ABAP的一些优点。
优点一:ABAP/4是面向对象语言。它支持封装性和继承性。封装性是面向对象的基础,而继承性则是建立在封装性基础上的重要特性。
优点二:ABAP/4具有事件驱动的特性。
优点三:ABAP/4和COBOL具有类似之处。
优点四:ABAP/4适合生成报表。
优点五:ABAP/4支持对数据库的操作。
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来长期保存,以供另一个事务使用。 而内部会话的子程序,功能模块和类方法可以直接引用对象指针。