在学习这门语言之前,让我们先看看SAP的二次开发具有哪些工具和技术 ,这里给大家一个overview:
1、REPORT(报表) :报表程序的主要作用是从数据库中抓取数据通过整理陈列出来,给企业高层或具有相关需求的人员查看。如无特殊需求,此类程序一般不需客制screen、menu、title。
A、ABAP LIST(最简单的一种报表程序,显示在屏幕上的数据及格式都通过ABAP中的WRITE语句实现,开发工具:SE38)
B、ALV REPORT (属于报表的一种高级形式,显示出来的报表整洁美观,具有很大的交互功能,屏幕上的数据及格式主要通过系统的FUNCTION实现,开发工具:SE38)
C、SAPSCRIPT(属于商务报表,主要应用于商业用途或对外的报表设计,开发工具:SE38、SE71)
D、SMARTFORM (属于商务报表,主要应用于商业用途或对外的报表设计,是SAPSCRIPT的升级版,包含了SAPSCRIPT的绝大多数功能,但开发起来比SAPSCRIPT更方便,快捷。开发工具:SE38、SMARTFORMS)
E、QUERY (适用于简单的查询报表开发,无需具有ABAP编程知识,但又提供了写ABAP代码的功能,对于一些简单的、无太多计算逻辑或判断逻辑的报表,推荐用其开发,开发工具:SQ01、SQ02、SQ03)
F、REPORT PAINTER(此类报表主要应用于FICO模块,比较少用,但功能也非常强大。)
2、DIALOG(事务程序):
事务程序属于对话型程序,提供对话框界面,方便操作人员与系统进行数据交互,这种程序会更新数据库。企业的讯息如果需要录入或更新到系统就需要此类程序的协助。它包含客制的screen、menu、title。
3、REPORT与DIALOG技术合并产生的程序:
这类程序往往不太好给其归类,程序的类型属于“可直接执行程序”,但往往因为一些特殊的需求,需要将DIALOG程序的一些技术合并在报表中来,它同样具有客制的screen、 menu、 title, 可以更新数据库。
4、其他类型:
A、FUNCTION GROUP(函数组,可以包含大量function module,同其他语言一样,针对一些具有共同运算或判断规则的程序,可以将其写成一个可以共用的代码段,这样就大大避免的冗余代码的存在)
B、TYPE POOLS (类型池,包含许多系统自定义的数据类型及类型组,如ALV要用到的数据类型都包含在SLIS这个类型池里)
C、MODULE POOLS(模块池,主要包含以“MODULE”关键字引导的代码段)
D、SUBROUTING POOLS(子程序池,主要包含以“form”关键字引导的代码段)
E、INTERFACE POOLS (接口池,主要应用于OO程序,定义了许多interface 与 class)
5、多系统之间数据交换技术:
A、RFC (一种特殊的function module,用于SAP系统与非SAP系统之间数据交换,SAP <-> 其他系统)
B、EDI (一种SAP系统与非SAP系统之间数据交换的技术,SAP <-> 文件服务器 <-> 其他系统)
C、XI (一种SAP系统与非SAP系统之间数据交换的技术,SAP <-> IDOC <-> 其他系统)
D、BAPI(可以看作是封装过的的RFC,用于SAP系统与非SAP系统之间数据交换,SAP <-> 其他系统)
6、增强技术:在遇到需要修改标准程序中某些逻辑或者数据时,一般不建议直接去修改标准程序,而是尽量利用SAP提供的出口。
A、USER EXIT
B、CUSTOM EXIT
C、SCREEN EXIT
D、MENU EXIT
F、BADI (属于EXIT的升级版,用OO技术实现)
7、 数据导入导出技术:下列工具主要应用在项目进入测试阶段,需要导入大量主数据的时候。
A、CATT、ECATT(系统会提供一些基本的组件供顾问适用,但如有特殊的需求,还是需要顾问自行录制)
B、BDC(BATCH INPUT) (用这种方式导入数据需要通过ABAP代码协助实现)
C、LSMW(适用于录入数据量非常大的场景,但建立的步骤比较细,看起来比较繁杂,每一步都是环环相扣的,如果前面一步你没做,后面的就会进行不下去哦。)
转自:http://blog.csdn.net/liangziyisheng/article/details/6229628