前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matinal:SAP ABAP 从创建类开始学习面向对象编程

matinal:SAP ABAP 从创建类开始学习面向对象编程

作者头像
matinal
发布2024-03-22 08:54:55
1060
发布2024-03-22 08:54:55
举报
文章被收录于专栏:SAP TechnicalSAP Technical

前言:SAP ABAP 从创建类开始学习面向对象编程。

对于ABAP OO开发新手而言, 要创建一个ABAP类,请转到ABAP工作台SE80,选择“类”,点击鼠标右键后点击“创建”,在输入字段中输入名称YCL_CUSTOMER并按回车。确认弹出窗口,并在下一个窗口中输入描述,同时保持其他设置不变。

保存后, 双击左侧(在“对象名称”下方)的YCL_CUSTOMER类,并在右侧选择属性选项卡,以创建类的属性。

选择表SCUSTOM数据库列的子集作为类的属性。选择属性选项卡并根据ABAP字典中用于相应数据库表列的ABAP字典类型添加属性:

  • ID:类型 S_CUSTOMER
  • NAME:类型 S_CUSTNAME
  • STREET:类型 S_STREET
  • POSTCODE:类型 POSTCODE
  • CITY:类型 CITY
  • COUNTRY:类型 S_COUNTRY
  • TELEPHONE:类型 S_PHONENO
  • EMAIL:类型 S_EMAIL

所有属性都应该是公共实例属性,通过级别(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系统中管理客户数据。

怎么样,在了解此篇文章有何感想?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档