news 2026/5/8 16:56:45

SAP-BTP :(2)RAP-创建数据库表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAP-BTP :(2)RAP-创建数据库表

步骤1.右键包New > Other ABAP Repository Object,在搜索字段中输入database,在列表中选择Database table,然后选择Next

在弹出的对话框中保留ZRAP_ATRAV_####作为名称,并填写Description,然后选择下一步

分配一个传输请求并选择完成,表格已创建,默认代码显示在新编辑器中。

将默认源代码替换为下方提供的代码片段,并将所有出现的####替换为你选择的后缀(编辑器会出现红色提示)

@EndUserText.label : 'Travel data' @AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE @AbapCatalog.tableCategory : #TRANSPARENT @AbapCatalog.deliveryClass : #A @AbapCatalog.dataMaintenance : #RESTRICTED define table zrap_atrav_#### { key client : mandt not null; key travel_uuid : sysuuid_x16 not null; travel_id : /dmo/travel_id; agency_id : /dmo/agency_id; customer_id : /dmo/customer_id; begin_date : /dmo/begin_date; end_date : /dmo/end_date; @Semantics.amount.currencyCode : 'zrap_atrav_####.currency_code' booking_fee : /dmo/booking_fee; @Semantics.amount.currencyCode : 'zrap_atrav_####.currency_code' total_price : /dmo/total_price; currency_code : /dmo/currency_code; description : /dmo/description; overall_status : /dmo/overall_status; created_by : syuname; created_at : timestampl; last_changed_by : syuname; last_changed_at : timestampl; local_last_changed_at : timestampl; }

SQL语法简短说明:

  • 使用了 ABAP 飞行参考场景中的一些数据元素(命名空间/DMO/)。
  • 表键由CLIENT字段和TRAVEL_UUID字段组成,后者是一个技术键(16字节通用唯一识别码)。
  • 一个人类可读的行程标识符:TRAVEL_ID
  • 字段 CURRENCY_CODE 借助语义注释@Semantics.amount.currencyCode被指定为金额字段BOOKING_FEETOTAL_PRICE的货币键
  • 已定义一些标准管理字段:CREATED_BYCREATED_ATLAST_CHANGED_BYLAST_CHANGED_ATLOCAL_LAST_CHANGED_AT

激活后按F8预览(没有的话右键->OPEN WITH ->Data Preview),目前数据库表是空的,所以没有显示任何数据。

根据上述同样的步骤创建一张数据库表ZRAP_ABOOK_KJ(其中####为你选择的后缀),用于存储预订数据SQL语句代码如下:

@EndUserText.label : 'TEST' @AbapCatalog.enhancement.category : #NOT_EXTENSIBLE @AbapCatalog.tableCategory : #TRANSPARENT @AbapCatalog.deliveryClass : #A @AbapCatalog.dataMaintenance : #RESTRICTED define table zrap_abook_kj { key client : mandt not null; key booking_uuid : sysuuid_x16 not null; travel_uuid : sysuuid_x16 not null; booking_id : /dmo/booking_id; booking_date : /dmo/booking_date; customer_id : /dmo/customer_id; carrier_id : /dmo/carrier_id; connection_id : /dmo/connection_id; flight_date : /dmo/flight_date; @Semantics.amount.currencyCode : 'zrap_abook_kj.currency_code' flight_price : /dmo/flight_price; currency_code : /dmo/currency_code; created_by : syuname; last_changed_by : syuname; local_last_changed_at : timestampl; }

步骤2.用演示数据填充数据库表

创建一个类,核心代码如下:

METHOD if_oo_adt_classrun~main. " delete existing entries in the database table DELETE FROM zrap_atrav_####. DELETE FROM zrap_abook_####. " insert travel demo data INSERT zrap_atrav_#### FROM ( SELECT FROM /dmo/travel FIELDS uuid( ) AS travel_uuid , travel_id AS travel_id , agency_id AS agency_id , customer_id AS customer_id , begin_date AS begin_date , end_date AS end_date , booking_fee AS booking_fee , total_price AS total_price , currency_code AS currency_code , description AS description , CASE status WHEN 'B' THEN 'A' " accepted WHEN 'X' THEN 'X' " cancelled ELSE 'O' " open END AS overall_status , createdby AS created_by , createdat AS created_at , lastchangedby AS last_changed_by , lastchangedat AS last_changed_at , lastchangedat AS local_last_changed_at ORDER BY travel_id UP TO 200 ROWS ). COMMIT WORK. " insert booking demo data INSERT zrap_abook_#### FROM ( SELECT FROM /dmo/booking AS booking JOIN zrap_atrav_#### AS z ON booking~travel_id = z~travel_id FIELDS uuid( ) AS booking_uuid , z~travel_uuid AS travel_uuid , booking~booking_id AS booking_id , booking~booking_date AS booking_date , booking~customer_id AS customer_id , booking~carrier_id AS carrier_id , booking~connection_id AS connection_id , booking~flight_date AS flight_date , booking~flight_price AS flight_price , booking~currency_code AS currency_code , z~created_by AS created_by , z~last_changed_by AS last_changed_by , z~last_changed_at AS local_last_changed_by ). COMMIT WORK. out->write( 'Travel and booking demo data inserted.'). ENDMETHOD.

保存激活后运行类程序

查看数据库表

本文讲了 ABAP 开发工具(ADT)应用程序创建数据库表。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 16:55:54

国产办公之光!WPS多维表格百万行32ms重新定义协作天花板

大家好,这里是K姐。 一个帮助你把AI真正用起来的女子。 上周三,我参加了武汉金山办公 WPS AI NEXT 的线下路演。 金山办公发布了新一代 WPS 多维表格,并且甩出了一个极其硬核的成绩单:在权威表格智能体评测榜单 SpreadSheetBen…

作者头像 李华
网站建设 2026/5/8 16:55:51

防爆工控机在化工防爆机器人中的应用

干工控这行 17 年,化工行业的防爆项目,是我做起来最谨慎、最不敢有半点马虎的项目。化工园区、储罐区、生产车间,到处都是易燃易爆的气体、液体,一点点电火花、过高的表面温度,都可能引发爆炸、火灾,造成灾…

作者头像 李华
网站建设 2026/5/8 16:55:05

不懂复杂SECS协议,也能快速搞定PLC SECS/GEM对接

当前半导体、光伏、面板行业里,绝大多数 自动化设备都是以PLC作为核心控制,但普通PLC本身并不自带SECS/GEM协议能力。想要接入工厂EAP、MES系统,实现标准化通信、远程管控和数据采集,就必须配套专业的PLC专用SECS/GEM通信软件。放…

作者头像 李华
网站建设 2026/5/8 16:54:59

云原生测试的终极形态:Serverless架构下的质量保障变革

在云原生技术浪潮的席卷下,软件架构正经历着前所未有的变革,Serverless架构作为云原生的核心范式之一,凭借其按需付费、自动扩缩容、运维成本极低等特性,正逐渐成为构建现代应用的首选模式。对于软件测试从业者而言,Se…

作者头像 李华
网站建设 2026/5/8 16:54:57

agent-server的搭建(goland)

本文章依旧沿用作者推特学习项目。 完整项目源码:https://github.com/twitter-learn-cloud-development/backend-services 该篇文章单独讲开发规划。 🚀 推特 AI Agent 项目架构与演进规划 📌 项目定位 以 Go 高并发为底座、MCP 为工具协议…

作者头像 李华
网站建设 2026/5/8 16:53:44

PCB直流电源完整性设计:从电流承载到热管理实战指南

1. 直流电源完整性设计的核心:不仅仅是电流预算 在上一篇文章里,我们详细拆解了电源预算这个至关重要的前期步骤。当你对板上各个模块的平均功耗和峰值功耗有了一个相对清晰的模型后,是不是觉得大功告成了?很多工程师朋友确实会在…

作者头像 李华