02 持久层 - 客制化

文章目录

    • OverView
    • [0] Provision
    • [1] New Package
    • [2] Create Table
    • [3] Insert MockData
    • [4] Check Data


OverView

  • 创建 ABAP Package
  • 客制化底表
  • 向底表写入测试数据
  • 查看测试数据

[0] Provision

没有创建 BTP Trail User Account 的需先申请账号,并通过 Eclipse 连接到 BTP,具体内容可参见「00 - RAP 开发环境配置」

Booster - Abap Environment - Start

  • 如果提示 Error 缺失 Entitlement,点击进入 Subaccount 后点击左侧 Entitlements
  • 点击 Configure Entitlements 按钮,点击 Add Service Plans
  • 添加 ABAP environment
  • 然后再返回主控台尝试即可

下载 Service Key,用于 Eclipse 连接 BTP


[1] New Package

Project - New - ABAP Package

这里创建名为 ZTRAVEL_APP_10001 的 Package

P.S. Package 可以添加到 Favorite Packages 中,方便检索

在这里插入图片描述


[2] Create Table

Package - New - Other ABAP Repository Object

这里创建名为 ZTRAVEL_10001 的 Table

在这里插入图片描述

如下为 Table 的定义:

@EndUserText.label : 'Database table for travel data 10001'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table ztravel_10001 {key client      : abap.clnt not null;key mykey       : 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 : 'ztravel_10001.currency_code'booking_fee     : /dmo/booking_fee;@Semantics.amount.currencyCode : 'ztravel_10001.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;}

保存并激活(快捷键与 GUI 端一致「Ctrl + S, Ctrl + F3」)


[3] Insert MockData

创建 Table 完成后,接下来就是写入几条测试数据,这里通过构造类来写入

Package - New - ABAP Class

这里创建名为 zcl_generate_travel_data_10001 的类,代码如下:

CLASS zcl_generate_travel_data_10001 DEFINITIONPUBLICFINALCREATE PUBLIC .PUBLIC SECTION.INTERFACES if_oo_adt_classrun.PROTECTED SECTION.PRIVATE SECTION.
ENDCLASS.CLASS zcl_generate_travel_data_10001 IMPLEMENTATION.METHOD if_oo_adt_classrun~main.DATA itab TYPE TABLE OF ztravel_10001.*   fill internal travel table (itab)itab = VALUE #(( mykey = '02D5290E594C1EDA93815057FD946624' travel_id = '00000022' agency_id = '070001' customer_id = '000077' begin_date = '20190624' end_date = '20190628' booking_fee = '60.00' total_price =  '750.00' currency_code = 'USD'description = 'mv' overall_status = 'A' created_by = 'MUSTERMANN' created_at = '20190612133945.5960060' last_changed_by = 'MUSTERFRAU' last_changed_at = '20190702105400.3647680' )( mykey = '02D5290E594C1EDA93815C50CD7AE62A' travel_id = '00000106' agency_id = '070005' customer_id = '000005' begin_date = '20190613' end_date = '20190716' booking_fee = '17.00' total_price = '650.00' currency_code = 'AFN'description = 'Enter your comments here' overall_status = 'A' created_by = 'MUSTERMANN' created_at = '20190613111129.2391370' last_changed_by = 'MUSTERMANN' last_changed_at = '20190711140753.1472620' )( mykey = '02D5290E594C1EDA93858EED2DA2EB0B' travel_id = '00000103' agency_id = '070010' customer_id = '000011' begin_date = '20190610' end_date = '20190714' booking_fee = '17.00' total_price = '800.00' currency_code = 'AFN'description = 'Enter your comments here' overall_status = 'X' created_by = 'MUSTERFRAU' created_at = '20190613105654.4296640' last_changed_by = 'MUSTERFRAU' last_changed_at = '20190613111041.2251330' )).*   delete existing entries in the database tableDELETE FROM ztravel_10001.*   insert the new table entriesINSERT ztravel_10001 FROM TABLE @itab.*   output the result as a console messageout->write( |{ sy-dbcnt } travel entries inserted successfully!| ).ENDMETHOD.
ENDCLASS.

Ctrl + F3 激活,F9 执行写入数据


[4] Check Data

切换到 Table 页签,F8 执行即可查看底表数据

在这里插入图片描述

至此,客制化底表已经完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/52777.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 枚举类型enum的常用方法

在Java中,枚举类型(enum)提供了一些常用的方法,用于操作枚举常量。下面是枚举类型常用的方法: values():该方法返回枚举类型的所有枚举常量数组。 enum Weekday {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, …

Linux命令(59)之screen

linux命令之screen 1.screen介绍 linux命令screen是用来进行多窗口管理。 默认screen命令没有安装,安装命令(基于yum源):yum install -y screen 2.screen用法 screen [参数] screen参数 参数说明-r恢复离线的screen作业-ls显示所有的screen作业 3.…

跨境多商户中日韩英多语言商城搭建(PC+小程序+H5),搭建方案

随着全球化的推进,跨境电商正变得越来越普遍。在本文中,我们将介绍跨境电商系统开发中多语言商城独立站的部署搭建方案。 准备工作 在开始部署搭建之前,需要准备以下环境: 服务器,确保服务器具备足够的性能和稳定性。 …

睿讯微带你深度了解汽车交流充电桩

这几年随着新能源汽车的普及,充电桩也越来越多的出现在我们的视野中。新能源纯电汽车就好比一种大号的电子产品,而充电桩则是它不可缺少的子系统,是新能源车主们的必要选择。 汽车充电桩分为直流和交流两种,2022年底全国公共充电桩…

【Apollo学习笔记】—— 相机仿真

文章目录 前言相关代码整理 测试实践文件目录包管理BUILD文件以及cyberfile.xml文件源程序BUILD运行结果其他参考CameraOutput channels启动camera驱动启动camera video compression驱动 前言 本文是对Cyber RT的学习记录,文章可能存在不严谨、不完善、有缺漏的部分&#xff0…

Posix API原理返回值说明

文章目录 1、概述2、connect函数3、listen函数4、accept返回值处理5、recv返回值处理5.1、LT\ET模式读取数据 6、send返回值处理 1、概述 主要介绍网络编程中,使用到的一些系统调用解释,以及返回值的说明 2、connect函数 connect函数功能为,客…

WiFi无线组网温湿度实时监测系统

近年来随着我国电子技术和无线通信技术的快速发展,远距离数据采集传输被应用到众多领域,由于事关环境安全和生命健康,受到了各行各界的关注。在温湿度监测中,目前采用的通信技术主要是4G、WiFi、以太网、LoRa等,今天&a…

C++多线程环境下的单例类对象创建

使用C无锁编程实现多线程下的单例模式 贺志国 2023.8.1 在多线程环境下创建一个类的单例对象,要比单线程环境下要复杂很多。下面介绍在多线程环境下实现单例模式的几种方法。 一、尺寸较小的类单例对象创建 如果待创建的单例类SingletonForMultithread内包含的成…

kernel pwn入门

Linux Kernel 介绍 Linux 内核是 Linux 操作系统的核心组件,它提供了操作系统的基本功能和服务。它是一个开源软件,由 Linus Torvalds 在 1991 年开始开发,并得到了全球广泛的贡献和支持。 Linux 内核的主要功能包括进程管理、内存管理、文…

命令模式 Command Pattern 《游戏设计模式》学习笔记

对于一般的按键输入,我们通常这么做,直接if按了什么键,就执行相应的操作 在这里我们是将用户的输入和程序行为硬编码在一起,这是我们很自然就想到的最快的做法。 但是如果这是一个大型游戏,往往我们需要实现一个按键…

电气防火限流式保护器在汽车充电桩使用上的作用

【摘要】 随着电动汽车行业的不断发展,电动汽车充电设施的使用会变得越来越频繁和广泛。根据中汽协数据显示,2022年上半年,我国新能源汽车产销分别完成266.1万辆和260万辆,同比均增长1.2倍,市场渗透率达21.6%。因此,电动汽车的安全…

【ChatGPT 指令大全】怎么使用ChatGPT写履历和通过面试

目录 怎么使用ChatGPT写履历 寻求履历的反馈 为履历加上量化数据 把经历修精简 为不同公司客制化撰写履历 怎么使用ChatGPT通过面试 汇整面试题目 给予回馈 提供追问的问题 用 STAR 原则回答面试问题 感谢面试官的 email 总结 在职场竞争激烈的今天,写一…