在学习这门语言之前,让我们先看看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(适用于录入数据量非常大的场景,但建立的步骤比较细,看起来比较繁杂,每一步都是环环相扣的,如果前面一步你没做,后面的就会进行不下去哦。)