接触SAP 时间也不短了,但却真正做的项目并不是很多,只是接触面还算比较多。
今天再次做项目时,发现时间一长,有些东西已经忘的差不多了,也因此想起来是该自已总结汇总一下,以方便自己之后的学习和使用。
今天就先列一个准备写的目录,以提醒自己之后不断补充吧。
SAP 的很多参考信息,参看百科会更清析。
http://baike.baidu.com/view/8784.htm?fr=ala0_1
- SAP 公司简介
之前没有真正了解时,我和很多人一样,以为是一家美国公司。后来真正开始使用时,再一查,才发现原来是家德国公司。不过还算是和美国有点关系,因为其5位创始人原来在IBM公司就职。没成想现在自己创立的公司开发的软件,被卖给老东家使用。
它的意义还是值得一提:SAP 是的“Systems Applications and Products in Data Processing"的简称。
- SAP 系统简介
个人理解,其实它就是一个ERP系统,不过是一个世界级的ERP系统,目前应该算是世界第一了,其后第二名应该是Oracle 。当然不仅个一般的ERP 系统,而且很庞大的一个系统,其几乎涵盖了各个行业,为不同的行业准备了不同的模块。不同的行业均可以选择自己合适的模块和功能,当然也是非常昂贵的:)
- SAP 主要模块划分及简介
最常用的模块应该是PP, MM, SD,FI,HR
其它模块还有:
FI 应收、应付、总帐、合并、投资、基金、现金等;
CO 利润及成本中心,产品成本、项目会计、获利分析等;
AM 固定资产、技术资产、投资控制等;
SD 销售计划、询价报价、订单管理、运输发货、发票等;
MM 采购、库房管理、库存管理、MRP、供应商评价等;
PP 工厂数据、生产计划、MRP、能力计划、成本核算等;
QM 质量计划、质量检测、质量控制、质量文档等;
PM 维护及检测计划、单据处理、历史数据、报告分析等;
HR 薪资、差旅、工时、招聘、发展计划、人事成本等;
PS 项目计划、预算、能力计划、资源管理、结果分析等;
WF 工作定义、流程管理、电子邮件、信息传送自动化等;
PI SAP与其他系统的集成;
IS 针对不同行业提供特殊应用。
基础部分:R/3系统内核、数据库、支持各类平台的接口、ABAP/4工具语言, NetWeaver 等。
- SAP 二次开发主要涉及的功能
Report
相关T-Code : SE38 / SE71
种类有很多,有Flat Report / ALV Report / Excel Report / Script Form
Flat Report : 主要使用Write 语句来进行屏幕输出的方式来输出报表;
ALV Report : 应该是最常用的一种报表形式,主要使用ALV 函数的方式来输出,形式类似于Excel 的输出格式,很方式和灵活的对输出结果进行组织;
Excel Report: 即使用Excel 的方式输出,当然也是用函数的方式输出;
Script Form : 是SAP 标准功能使用的一种Hardcopy 形式的报表,类似于Crystal Report 的样式,但开发方法却是完全不同,此需要使用Script 脚本语言来进行输出和控制;
Query
相关T-Code : SQ01 / SQ02
属于SAP系统内置的一种方便的自定义报表方法,可以简单的生成类似于 ALV 的报表样式,而且可以写代码控制每个字段和输出
BAPI
相关T-Code : SE37
BAPI(business application programming interface)是面向对象程序设计方法中的一组程序接口。它允许程序员通过SAP将第三方软件整合成R/3专有产品。为了完成一些特殊的商业任务,如上传交易数据等,R/3系统中内置了BAPI。
属于RFC - Remote function call 的形式,主要用于SAP外部功能和应用调用SAP 的内部功能,当然也可以用于SAP内部的使用
其它信息可参考:http://baike.baidu.com/view/370222.htm?fr=ala0_1
BADI
相关T-Code :SE18 / SE19
BADI(bussiness Add-Ins),也相当于一组附加接口,用以方便实现对现有的标准程序的一些扩展,如加入新的客户定制的验证和检查等。
其它信息可参考:http://wenku.baidu.com/view/d2a1e342336c1eb91a375dd7.html
Dialog Form
相关T-Code :SE80
在此T-Code中,一般要建立对应的Menu, Toolbar, Title, Screen, Include Code 及最终使用的Dialog Form 的T-Code。
关键点主要有:PBO – Process Before Output ; PAI- Process After Input;OK-Code 的使用;Table (Grid)功能的使用。
Workflow
相关T-Code : 参看http://help.sap.com/saphelp_40b/helpdata/en/9b/572614f6ca11d1952e0000e82dec10/content.htm
主要用于管理和维护 SAP 内部的一个工作流的处理,目前我接触的主要是一些检查和自动发送e-Mail 的处理。
具本之后会单独列一单讲解。
WebDynpro
此功能是SAP Web 开发的一种方式,目前我接触的主要是对 HRMS Protal 网站中的功能进行维护和开发。而其对应的开发环境,则是独立于SAP 之外的一个环境,内核使用的是 Eclipse ,而主环境则使用 Boland 公司开发的一个 NetWeaver Developer 开发环境。而语言,则使用 Java。感觉其架构使用了经典的MVC (Module / Viewer / Controller)。
使用WebDynpro 开发Web 程序,会让你感觉如同开发Windows 程序一样方便和快捷,因其使用的MVC 架构非常好用,至少比ASP.Net 好用多了。
具体之后会单独列一篇文章讲解。
- ABAP 语言简介
- 作为SAP内部二次开发使用的语言,也算是第四代支持面向对象的语言。虽然表面看起来没有其它语言那么方便使用和强大,但实际使用之后也会发现,因为其仅为SAP开发使用,故其有很多比较方便和人性化的地方。
- 其实作为一语言,其大部分和其它语言没什么不同,一样有最基本的数据类型,有变更的声明,有流程控制语言,有各种函数处理。但其最特别也最强大的是被称之为 Internal Table (内表)的对象或使用方式。另一项很特别也功能很强的是它对SQL语言的内嵌支持,无法使用Connection 对象, Command 对象,而是直接写Select … From … Into … Where …. 等SQL语名,而且支持实时检查。要说.Net 中能和它对应的,也只能说是 VS2008 / 2010 才出现的 LINQ 语言了。而这种方式 SAP 已经使用了很多年了。
- 由于SAP不支持二次开发时直接使用后台数据库,故所有对数据库处理的动作均需要在ABAP程序内部实现。故其对数据的处理主要使用 内部的SQL 语句,及Internal Table (感觉类似于.Net 中的DataSet ) 。
- 而对于 ABAP语言,有太多的内容,无法细讲,之后我的专门写一章来介绍其中的重点。
- 各模块主要T-Code ,及相关涉及到的Table
主要会介绍我目前了解了一些的 MM / PP / SD / FI / HR 模块。先写下一些以前常用的一些,以备后查。