前言:SAP ABAP 从创建类开始学习面向对象编程。
对于ABAP OO开发新手而言, 要创建一个ABAP类,请转到ABAP工作台SE80,选择“类”,点击鼠标右键后点击“创建”,在输入字段中输入名称YCL_CUSTOMER并按回车。确认弹出窗口,并在下一个窗口中输入描述,同时保持其他设置不变。
保存后, 双击左侧(在“对象名称”下方)的YCL_CUSTOMER类,并在右侧选择属性选项卡,以创建类的属性。
选择表SCUSTOM数据库列的子集作为类的属性。选择属性选项卡并根据ABAP字典中用于相应数据库表列的ABAP字典类型添加属性:
所有属性都应该是公共实例属性,通过级别(Level)和可见性(Visibility)列设置。如下图:
接下来,为类创建一个带有客户ID作为可选参数的构造函数。构造函数然后从数据库中获取客户的数据,并将对象的属性填充为从数据库中获取的值。
要创建构造函数,请单击右上角的构造函数按钮,打开已经存在但为空的构造函数方法的编辑器。
点击“参数”来添加客户ID作为可选参数(在第三列的复选框中打勾!),字典类型为S_CUSTOMER。
点击“方法”将带您回到之前的视图,双击CONSTRUCTOR方法将打开ABAP编辑器。
在构造函数中,首先检查是否提供了客户ID,因为它被声明为可选参数。如果提供了ID,从数据库中选择具有此ID的客户数据到一个结构体中。结构体类型在ABAP字典中可用,因为数据库表SCUSTOM基于它。
结构体在方法顶部声明,使用Open SQL语句SELECT...FROM...INTO填充。因为SQL直接集成到ABAP中,因此只需在ABAP代码中输入SQL语句即可。应用程序服务器自动为你提供数据库连接,并完全隐藏不同数据库方言之间的差异,这可能会让程序员发疯。这是通过应用程序服务器中称为“Open SQL”的调用层完成的,它提供了一个统一的SQL,被翻译成当前使用的数据库的特定SQL方言,使ABAP编程独立于数据库供应商。
然后,对象实例的属性用从数据库中获取的结果填充。一个列,即结构体的组件,可以直接用“-”分隔符访问,例如,客户的姓名作为S_CUSTOMER-NAME可用。
整个构造函数方法如下:
检查无误后激活。
进入 测试:
接下来,实例化一个客户对象,通常在大多数情况下已经知道客户的ID(例如,通过客户管理器类的查询方法)。因此,为类创建一个带有客户ID作为可选参数的构造函数。构造函数然后从数据库中获取客户的数据,并将对象的属性填充为从数据库中获取的值。
要创建这个新方法,请返回类构建器,点击方法选项卡,然后进入更改模式。创建一个新的方法SAVE作为公共实例方法。双击SAVE,将打开编辑器。代码如下:
* declaration of structure DATA: s_customer TYPE scustom. * fill structure with current attribute values s_customer-id = me->id. s_customer-name = me->name. s_customer-street = me->street. s_customer-postcode = me->postcode. s_customer-city = me->city. s_customer-country = me->country. s_customer-telephone = me->telephone. s_customer-email = me->email. * update the data in the DB MODIFY scustom FROM s_customer.
现在,可以在测试环境中使用ABAP工作台直接测试和执行ABAP编码,而无需编写测试程序。在成功激活类后,点击测试按钮,工作台将显示以下内容:
这个屏幕是ABAP工作台的内置测试功能。它根据类的方法和属性自动生成一个测试UI。输入相关信息并点击执行。
现在,数据已更新,用SE16查看数据库表SCUSTOM,它将显示ID号为1的记录新的信息。
以上内容为ABAP OO 新手提供了创建第一个ABAP对象的详细步骤,包括如何定义类、属性、构造函数和方法,以及如何在ABAP工作台中测试这些对象。这个例子展示了如何创建一个简单的客户类,用于在SAP系统中管理客户数据。
怎么样,在了解此篇文章有何感想?