您现在的位置:e-works > 智造书屋 > 书籍列表 > 工程师突击:SAP ABAP实用程序开发攻略 > SAP开发环境介绍

第二章 SAP应用开发环境介绍

第二节 SAP开发环境介绍

    在本节将对SAP开发语言ABAP及其开发平台(ABAP Workbench)作一个概述。

2.2.1 SAP开发语言ABAP

    ABAP(Advanced Business Application Programming)是SAP专用的开发语言,也常称为ABAP/4,其中4表示第四代语言。在R/3系统中,几乎所有的程序及组件都由ABAP 开发,应用范围包括报表、屏幕、接口及数据转换等。ABAP是一门事件驱动语言,它需要通过用户动作或者时间来控制程序的执行,语言本身的详细语法和各种工具的具体使用方法将在后续章节作进一步的介绍。

2.2.2 ABAP开发平台ABAP Workbench

    ABAP Workbench是用来开发SAP标准及客制化程序的软件,主要包括以下常用的开发工具。

    ABAP Editor(ABAP编辑器):用于编写及维护程序。

    ABAP Dictionary(ABAP数据字典):用于创建及维护数据字典对象。

    Repository Browser(存储对象浏览器):用于显示开发类中的组件结构。

    Menu Painter(菜单绘制):用于开发图形用户界面,包括菜单栏及工具栏。

    Screen Painter(屏幕绘制):用于制作及维护客制屏幕。

    Repository Information System(信息存储系统):包含开发及即时运行的对象,如数据模型、数据类型、结构体、程序、功能模组等。

    Test and Analysis Tools(测试分析工具):用于程序语法检查及编译。

    ABAP Query Tool(报表创建工具):用于创建简单的报表,所有编码自动生成,无需编程。

    Data Modeler(数据建模):一个图形化的数据建模工具。

    Workbench Organizer(Workbench 组织工具):用于管理修改请求,可以同时维护多个开发项目。

    Class Builter(类创建工具):用于创建ABAP类及方法等面向对象元素。

    Function Builder(功能模组创建工具):用于创建一定功能的ABAP程序模块。

    上述工具分别用于开发各种SAP仓库对象,其具体功能及应用将在后续章节中说明。

2.2.3 SAP仓库对象及开发类别

    SAP仓库与ABAP开发平台是SAP系统的重要组成部分,也是系统开发的主要工具。NetWeaver的仓库基本是从R/3仓库衍生过来的,功能上也大致相同,所以很多时候我们仍习惯地称之为R/3仓库。

    SAP仓库存储所有SAP系统开发过程中的相关对象,这些对象也称为仓库对象,它包括ABAP程序、数据表结构定义、系统数据类型等。所有的用户定制的仓库对象都是通过ABAP工作台进行开发并存储于SAP数据仓库中,这些仓库对象又可进一步按照不同的应用进行组织,这些具体的应用我们则称之为“开发类别”。在R/3系统中,开发类的命名为“Development Class”。

    每一个仓库对象都隶属于一个特定的开发类别,系统中包含许多开发类,用户也可以按需求自行创建。同一开发类下可组织多个对象,以方便进行管理及查询,例如MM模组某项目中创建新的开发类ZMM,该项目包含多个ABAP程序及数据表,通过该开发类,可以轻松地查到项目各程序的信息及状况;对于多数据集团的用户,通过开发类可以方便地实现其包含的程序及数据在不同服务器之间的批量传输。

    在前面的章节中我们介绍了SAP可分为多个功能模组(如MM、SD模组),开发类别有时可形成一个功能模组,也可由多个开发类组成一个功能模组。对于客制化的开发类,一般建议不要包含太多对象,以方便管控及查询,对于某个项目可以依据开发进展将对象分布在不同的开发类中。

    各个仓库对象及其开发类别都记录在系统的对象目录中,也可在ABAP Workbench中的对象导航器工具中查看和维护各种对象。通过“TCode:SE84”,信息存储系统Repository Information System可以方便地对已存在的仓库对象进行查询,除名称外信息存储系统还提供多种检索方式。

2.2.4 对象导航器

    输入“TCode:SE80”,我们可以进入SAP对象导航器(Object Navigator)。对象导航器为ABAP工作台的一部分,也是ABAP Workbench众多开发工具的中心入口,其将所有的对象开发工具整合在一起,并提供方便的导航功能。对象导航器基本开发界面如图2-8所示。

 图2-8 对象导航器基本开发界面

图2-8 对象导航器基本开发界面

    对象导航器主要分为导航菜单、对象选择列表、对象列表、上下文菜单、控制工具栏、应用窗口及附属窗口等。通过导航菜单能够方便地实现相关资源管控项目的快速切换,需要说明的是导航菜单在R/3 4.X系统版本中是不存在的,4.X系统版本中仅包括(Repository Browser)菜单,提供程序、开发类别、屏幕、功能模组等相关功能,这也是本书将讲述的重点。本章节将会通过建立一实例程序来简要介绍其功能及应用方式。其他菜单,如信息存储系统,能帮组用户快速查看类信息、数据字典信息、数据模型、商务对象、程序库信息等,限于篇幅本书不作详细讲述。

    每一导航菜单都会有相应的应用对象,通过选择对象列表可以将其组件按树结构显示。在具体组件上单击鼠标右键可以显示相关上下文菜单,该菜单可以实现一系列用户需求功能。

    应用窗口可以显示具体的程序、表结构、代码等,如ABAP代码编辑窗口,附属窗口可以提供程序运行或代码编译中的即时信息,如错误信息回馈等。

    在正式介绍程序开发之前,我们先简要讲述SAP程序的命名规则:所有SAP用户开发的对象必须以SAP公司提供的关键字进行命名,包括所有的程序、功能模块、表及其他数据字典对象等。SAP提供的默认关键字为Y和Z,即所有用户创建对象必须以Y或Z作为第一个字母进行命名,本书后面所有实例都将参照此规则。

    下面,我们将通过对象导航器建立一个具体的程序实例。

    1)选择Repository Brower菜单,在下拉列表框中选择对象Program,输入新程序名:Z_HELLOWORLD并按〈Enter〉键,系统将提示该程序名不存在是否建立新程序,如图2-9所示。

 图2-9 通过对象导航器创建程序

图2-9 通过对象导航器创建程序

    2)单击Yes按钮后,系统将会弹出Create Program对话框用于确定新建程序名,如图2-10所示。

 图2-10 命名新建程序

图2-10 命名新建程序

    3)在对话框中单击 按钮图标进行确认,系统将导航进入ABAP Editor(ABAP编辑器)的属性设定界面,ABAP Editor才是ABAP Workbench中专用的程序代码设计开发工具。这里我们不难理解,Object Navigator(对象导航器)的工作实质就是能将各应用程序的功能归纳整合并快速导航到实际程序。如图2-11所示,Title为程序说明,默认会出现在程序标题栏中;Type为程序类别,包括Class Pool、Module Pool、Include Program等,本程序选择Executable program(可执行程序)即可;Status表示程序状态,包括SAP Standard Production Program(SAP标准程序)、Customer Production Program(客制化程序)、System Program(系统程序)、Test Program(测试程序),本例选择Test Program即可。Application为选择程序所属功能模组,本例保持为空,一般应用程序开发设置Type及Status即可,其他设置请参考图示,如图2-11所示。

 图2-11 程序属性设置

图2-11 程序属性设置

    4)单击Save按钮,系统将进入Create Object Directory Entry对话框。前文中已经说明,每一个对象创建时都需要分配一个开发类别,本书所有实例都为本地测试程序,选择Local Object即可,系统将程序分配给本地开发类$TMP,该类中的对象不能进行系统间传输,仅能用于测试。对于指定开发类别程序,可输入名称后,再单击 按钮进行保存。Person Responsible默认为系统登录用户名,一般不需作修改,如图2-12所示。

 图2-12 输入开发类别

图2-12 输入开发类别

    5)保存开发类别设置后,系统完成仓库对象初始化,将返回对象导航器界面,程序名将会出现在左边的树形结构象列表中,双击对象名,代码编辑器中将显示自动生成的程序声明代码,在程序名右边有Inactive标记,表示该程序状态尚未激活。代码工具栏可以显示目前程序代码的行数及当前光标位置,更加方便开发者对代码的管控,如图2-13所示。

 图2-13 通过对象导航器检视代码

图2-13 通过对象导航器检视代码

    经过上述操作后,对象导航器ABAP代码编辑工具栏新增了许多按钮,通过这些按钮可以实现对代码的编辑、语法检查、激活及测试等功能,如图2-14所示。

 图2-14 对象导航器ABAP代码编辑工具栏

图2-14 对象导航器ABAP代码编辑工具栏

    各按钮名称、说明及基本功能简介如下:

    Previous Object/Next Object(翻页):开启多个窗口后页面切换。

    Display -> Change(编辑):在代码显示模式和修改模式间切换。

    Active -> Inactive(状态切换):在代码激活和非激活状态间切换。

    Other Object(其他对象):切换到其他程序代码浏览窗口。

    Check(语法检查):检查程序语法是否存在错误,有错误将会提示。

    Activate(激活):激活程序,保证当前最新版本程序能够编译运行。

    Direct Provessing(运行):运行程序。

    Where User-List(对象使用列表):列出当前程序被系统中哪些对象使用。

    Display Object List(显示导航窗口):显示程序中所有对象列表,双击该对象自动导航。

    Display Navigation Window(程序对象列表):在屏幕下方显示程序对象列表。

    Fullscreen On/Off(全屏切换):代码编辑窗口全屏切换。

    Help On(联机帮组):获取ABAP相关联机帮助。

    Set/Delete break point(设置断点):在程序中设置断点以用于程序调试。

    Pattern(插入模式):用于在程序中生成ABAP模式代码,如功能模块等。

    Pretty Printer(代码规范):用于规范代码书写格式,用它可自动调节代码大小写、缩进等,使程序代码格式更美观易读。

    6)单击工具栏菜单 按钮,程序将进入编辑状态。

    接下来,将在代码编辑窗口完成第一个程序“Hello SAP”。输入代码,单击 按钮保存程序,单击 按钮激活程序。然后可以看到,程序的状态已经变为了Active。在界面左下角的状态栏中出现提示“Object(s) activated”,如图2-15所示。

 图2-15 完成程序代码编辑并激活

图2-15 完成程序代码编辑并激活

    单击 按钮运行程序,程序运行结果如图2-16所示。

 图2-16 程序运行界面

图2-16 程序运行界面

2.2.5 ABAP编辑器

    ABAP程序编辑器(ABAP Editor)为开发平台最常用工具,其TCode为SE38,也可从SAP初始目录树结构导航菜单Tools → ABAP Workbench → Development → SE38–ABAP Editor命令进入,如图2-17所示。

 图2-17 ABAP Editor初始登录界面

图2-17 ABAP Editor初始登录界面

    在Program文本框中输入程序名,如果是已经存在的程序,单击Display或Change按钮可对其进行查看或修改,通过Subobjects下的单选按钮,可以选择查看程序的相关属性。对于新程序,可以单击Create按钮进行创建,具体创建过程与对象导航器中创建新程序基本一致,此处不再详述。

    与导航环境不同,编辑器工具栏中有新增部分按钮,如图2-18所示。

 图2-18 ABAP Edidot初始工具栏

图2-18 ABAP Edidot初始工具栏

    Environment Analysis(环境分析):确定ABAP对象关系及其对象与其所属创建的开发类别。

    Delete(删除):删除当前程序。

    Copy(复制):复制当前程序到新程序。

    Rename(重命名):重新命名当前程序。

    Debugging(调试运行):调试运行当前程序。

    With variant(通过变式运行):使用变式运行程序。

    Variant(变式):设定程序执行的变量或参数。

    进入代码浏览窗口,所有功能与前面所介绍的对象导航器代码编辑窗口一致。单击工具栏中的 按钮即可切换到ABAB Editor代码浏览/编辑窗口,如图2-19所示。

 图2-19 ABAP Editor代码浏览/编辑窗口

图2-19 ABAP Editor代码浏览/编辑窗口

2.2.6 ABAP数据字典

    ABAP数据字典是SAP定义和管理数据的主要工具,是ABAP Workbench的重要组成部分。

    通过数据字典可以定义系统中的各类数据对象,包括数据类型、数据结构、数据库表、视图等。数据字典中的所有对象可以供所有SAP程序使用,实现项目统一化、标准化。其他开发台工具组件可以直接访问数据字典中的对象,还可以通过通用接口(如SQL语言)直接操作数据(如数据的插入、更新、删除等)。

    数据字典工具的相关TCode为SE11,初始界面如图2-20所示。

 图2-20 数据字典初始界面

图2-20 数据字典初始界面

    可在数据库中创建和维护的元素简介如下,具体的操作和创建将在后面章节详细介绍。

    Database table(数据库表):数据字典中的表与物理数据库一致,用于存储数据,通常也叫做透明表。

    View(视图):数据表的一种逻辑表示形式,可以将多个透明表中的字段结合现实。

    Data Type(数据类型):包括数据元素(Data Element)、数据结构体(Structure)和表类型,可用于结构类型和表类型的组件字段。

    Domain(域):用于设置数据元素类型、长度和小数位等属性,所有数据元素是由域派生。

    Search help(查询帮组):屏幕字段可能输入值帮助列表。

    Lock object(锁定对象):用于解决多个用于操作同一数据库时的数据一致性问题。

2.2.7 TCode的创建与维护

    程序创建以后通过程序名来使用是较为烦琐的,我们可以为其分配TCode以方便记忆和操作,输入“Tcode:SE93”进入TCode维护界面。通过该界面程序,可以实现对TCode关系的创建、修改及删除,如图2-21所示。

 图2-21 TCode维护界面

图2-21 TCode维护界面

    新建一“TCode:Z_HELLOWORLD”,单击Create按钮,如图2-22所示。

 图2-22 创建新关系后的TCode维护界面

图2-22 创建新关系后的TCode维护界面

    如图2-22所示,输入基本描述,我们建立的为一普通Report程序,参照图进行设置。单击 按钮进入如图2-23所示的界面,输入程序名并保存,即完成了程序与TCode的绑定设定。

 图2-23 输入程序名与TCode绑定

图2-23 输入程序名与TCode绑定