SAP ABAP RESTful – Modelo de programación RAP
Modelo de datos
CÓDIGO FUENTE
Modelo de datos
SAP ABAP RESTful – Modelo de programación RAP
1
SAP ABAP RESTful – Modelo de programación RAP
Modelo de datos
Contenido
1. Tablas de base de datos ....................................................................................................... 3
1.1. ZTRAVEL_LOG ................................................................................................................ 3
1.2. ZBOOKING_LOG ............................................................................................................ 4
1.3. ZBOOKSUPPL_LOG ........................................................................................................ 4
1.4. ZLOG_LOG ..................................................................................................................... 5
2. Inserción de datos ................................................................................................................ 6
2.1. ZCL_INSERT_DATA_LOG ................................................................................................ 6
2
SAP ABAP RESTful – Modelo de programación RAP
Modelo de datos
1. Tablas de base de datos
1.1. ZTRAVEL_LOG
@EndUserText.label : 'Flights Managing Travels'
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table ztravel_log {
key client : abap.clnt not null;
key travel_id : /dmo/travel_id not null;
agency_id : /dmo/agency_id;
customer_id : /dmo/customer_id;
begin_date : /dmo/begin_date;
end_date : /dmo/end_date;
@Semantics.amount.currencyCode :
'ztravel_log.currency_code'
booking_fee : /dmo/booking_fee;
@Semantics.amount.currencyCode :
'ztravel_log.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;
3
SAP ABAP RESTful – Modelo de programación RAP
Modelo de datos
1.2. ZBOOKING_LOG
@EndUserText.label : 'Flight Booking'
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table zbooking_log {
key client : abap.clnt not null;
@AbapCatalog.foreignKey.label : 'Travel'
@AbapCatalog.foreignKey.screenCheck : false
key travel_id : /dmo/travel_id not null
with foreign key [0..*,1] ztravel_log
where travel_id = zbooking_log.travel_id;
key booking_id : /dmo/booking_id not null;
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 :
'zbooking_log.currency_code'
flight_price : /dmo/flight_price;
currency_code : /dmo/currency_code;
booking_status : /dmo/booking_status;
last_change_at : timestampl;
1.3. ZBOOKSUPPL_LOG
@EndUserText.label : 'Flight Booking Supplement'
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table zbooksuppl_log {
key client : abap.clnt not null;
@AbapCatalog.foreignKey.label : 'Travel'
4
SAP ABAP RESTful – Modelo de programación RAP
Modelo de datos
@AbapCatalog.foreignKey.screenCheck : false
key travel_id : /dmo/travel_id not
null
with foreign key [0..*,1] zbooking_log
where travel_id = zbooksuppl_log.travel_id;
@AbapCatalog.foreignKey.label : 'Travel'
@AbapCatalog.foreignKey.screenCheck : false
key booking_id : /dmo/booking_id not
null
with foreign key [0..*,1] zbooking_log
where travel_id = zbooksuppl_log.travel_id
and booking_id = zbooksuppl_log.booking_id;
key booking_supplement_id :
/dmo/booking_supplement_id not null;
supplement_id : /dmo/supplement_id;
@Semantics.amount.currencyCode :
'zbooksuppl_log.currency'
price : /dmo/supplement_price;
currency : /dmo/currency_code;
last_changed_at : timestampl;
1.4. ZLOG_LOG
@EndUserText.label : 'Log Table'
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table zlog_log {
key client : abap.clnt not null;
key change_id : abap.raw(16) not null;
travel_id : /dmo/travel_id;
changing_operation : abap.char(10);
changed_field_name : abap.char(32);
changed_value : abap.char(32);
created_at : timestampl;
user_mod : syuname;
}
5
SAP ABAP RESTful – Modelo de programación RAP
Modelo de datos
2. Inserción de datos
2.1. ZCL_INSERT_DATA_LOG
CLASS zcl_insert_data_log DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_insert_data_log IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
DATA: lt_travel TYPE TABLE OF ztravel_log,
lt_booking TYPE TABLE OF zbooking_log,
lt_book_sup TYPE TABLE OF zbooksuppl_log.
SELECT travel_id,
agency_id,
customer_id,
begin_date,
end_date,
booking_fee,
total_price,
currency_code,
description,
status AS overall_status,
createdby AS created_by,
createdat AS created_at,
lastchangedby AS last_changed_by,
lastchangedat AS last_changed_at
6
SAP ABAP RESTful – Modelo de programación RAP
Modelo de datos
FROM /dmo/travel INTO CORRESPONDING FIELDS OF
TABLE @lt_travel
UP TO 50 ROWS.
SELECT * FROM /dmo/booking
FOR ALL ENTRIES IN @lt_travel
WHERE travel_id EQ @lt_travel-travel_id
INTO CORRESPONDING FIELDS OF TABLE
@lt_booking.
SELECT * FROM /dmo/book_suppl
FOR ALL ENTRIES IN @lt_booking
WHERE travel_id EQ @lt_booking-travel_id
AND booking_id EQ @lt_booking-booking_id
INTO CORRESPONDING FIELDS OF TABLE
@lt_book_sup.
DELETE FROM: ztravel_log,
zbooking_log,
zbooksuppl_log.
INSERT: ztravel_log FROM TABLE @lt_travel,
zbooking_log FROM TABLE @lt_booking,
zbooksuppl_log FROM TABLE @lt_book_sup.
out->write( 'DONE!' ).
ENDMETHOD.
ENDCLASS.