报表程序
1.工具报表Query
工具报表Query适用于简单的查询报表开发,无需具有ABAP编程知识,但又提供了写ABAP代码的功能,对于一些简单的、无太多计算逻辑或判断逻辑的报表,推荐用其开发。
2.SAP基础报表
SAP基础报表是最简单的一种报表程序,显示在屏幕上的数据以及格式都通过ABAP中的WRITE语句实现,现在多用于Job Log。
3.交互式报表
交互式报表是在SAP标准报表基础上的一种应用,现在已经很少使用。
4.ALV报表
ALV报表属于报表的一种高级形式,显示出来的报表整洁美观,具有很好的交互功能,屏幕上的数据以及格式主要通过系统的函数(Function)实现。
5.SAP Script
SAP Script属于商务报表,主要用于商业用途或对外的报表设计。
6. SAP Smart Form
SAP Smart Form属于商务报表,主要应用于商业用途或对外的报表设计,是SAP Script的升级版,包含了SAP Script的绝大多数功能,但开发起来比SAP Script更方便、快捷。
7.Adobe Form(多使用于电子商务)
Adobe LiveCycle Designer是一款基于客户端的点按(point-and-click)图形表单设计工具。它简化了XML表单设计的创建过程,以便于Adobe PDF或HTML表单形式分发。
8.Report Painter
Report Painter报表主要应用于FICO、SD模块,功能也非常强大,但是实际应用比较少。
批处理
SAP系统提供两种从其它SAP系统和非SAP系统向本系统传递数据的基本方法。这两种方法统称为“批输入”或“批数据通信”。
1.在数据传递中无需手工交互
如果要传递的数据以电子表格(例如,磁带)形式存在,则可使用批输入自动将数据输入SAP系统。
2.输入确保数据的完整性
批输入采用交互用户所用的同一事务将数据输入到SAP系统。因此,批输入数据符合应用于采用正常交互方法输入的数据的所有检查和控制。
1.Direct Input
Direct Input是指使用SAP自带的输入程序将SAP标准格式的文件导入到数据库中。它与Batch Input的区别是Direct Input不产生事务和对话,直接更新数据库。
2.CATT/ECATT
CATT(计算机辅助测试工具)是SAP R/3系统的一部分,是SAP中ABAP工具包中的一种测试工具。CATT让开发者创建测试数据和分组,以及为重复性的商务交易自动生成可重用的测试程序。ECATT是SAP自带的功能测试工具,主要用作SAP业务流程的自动化测试,每个测试流程和测试结果。和CATT相比,ECATT操作简单,类似于BDC的录屏功能,用于常用的简单业务数据导入,现在CATT基本上已被ECATT完全取代。
3.LSWM
LSWM是SAP用来从旧的系统或者非SAP系统把大批量或周期性的数据迁移到SAP的主力工具,类似于ECATT/SCATT,其优点是可以在一个SESSION中处理大批量数据,并灵活易学易用。如果BDC和ECATT只能根据定制好的画面输入参数,那么一旦没有这个值系统就会报错。如果我们根据业务对FI Ac_count Document或者主数据一些参数做了拓展,则一旦参数缺失或者不匹配,将不得不终止SESSION,通过SM35手动去更正或者重新录屏。
4.BDC(Batch Data Conversion)
BDC是SAP常用的一种数据传输方法,用于一些数据量很大,但是对数据又要求不高的数据传输。
BDC的两种通用方法
1. CALL TRANSACTION
顾名思义,就是直接调用BDC进行数据批量导入。优点:方便快捷,程序处理方便。缺点:日志管理能力差,需要自己建透明表来维护数据。一般仅把它用于测试,不做正式使用。
2. BDC SESSION
这是一种不直运行,而是将BDC程序生成SESSION,间接运行的方法。优点:通过T-code SM35可以进行运行管理及日志管理,方便查错。缺点:相对于CALL TRANSACTION方法来说实现起来比较繁琐,但可以使用这种方法来实现BDC功能。
对话程序技术
事务是实施与用户对话的程序。在典型的对话中,用户可以在系统显示的屏幕上输入或请求信息。作为对用户输入或请求的相应,程序执行适当的动作,即转到下一屏幕,显示输出或更改数据库。
要满足这样的请求,对话程序必须提供:
1.友好的用户界面;
2.对用户输入的数据格式化保存并做一致性检查;
3.输入错误的简易纠正法;
4.通过将数据存储在数据库库中来访问数据;
函数概要
1.函数Function包含在一个函数组(Function Group)中,在逻辑上函数组充当函数的容器。
2.函数Function允许封装和重用在SAP系统中的全局函数。它是一个中央管理的函数库,能实现不同SAP系统之间或SAP系统和远程系统之间的远程通信。
3.与子程序Form不同,不同把函数定义在你的程序源代码中,可以定义函数的可选的输入参数,也可以给它们指定默认值。函数还支持异常处理,可以直接在编辑中测试。
小结:从以上可以看出,ABAP涉及很多内容,但我们主要从实战和功能角度讲解以下核心点:
1.语法Coding
与一般语言语法近似,如IF,WHILE等,但并没有GOTO叙述。
2.报表Reports
呼叫一个独立的事件(Depending Event),读取数据库产生数据列表。
3.批处理BDC
大多数是从文件读取数据,通过Batch Input机制,将数据输入到系统标准表
4.对话Dialog
屏幕参数输入的对话框,专门处理数据库或异栋的事务过程。
5.函数Function
函数Function是包含在Function和End Function语句之间的一组ABAP语句。函数Function与Form过程类似,可以使用参数。
6.Include程序
Include是指在SAP R/3系统中包含一个静态的文件,同时解析这个文件中的ABAP语句。
上述为常用的ABAP程序类型。在实际项目开发中,往往将一类程序结合编程规约纳为模板,项目开发人员直接使用模板进行编程,这样提高了效率,使程序易读。从项目管理角度讲,在程序开发之初,需要项目经理指定相关的编程规范和程序模板,关于模板制作,后面的文章中会继续阐述,请大家持续关注。