Transaktion SEGW
- Neues Projekt: ZFLIGHT_ASSOC
- Entitätstyp:
- Carrier aus DDIC Struktur „SCARR“
- Carrid (Key)
- Carrname
- Url
- Carrier aus DDIC Struktur „SCARR“
- Flights aus DDIC Struktur „SPFLI“
- Carrid (Key)
- Connid (Key)
- Countryfr
- Cityfrom
- Airpfrom
- Entitätsmenge:
- CarrierSet
- FlightsSet
- Serviceklassen generieren
- Service registrieren
Serviceimplementierung: GetEntity(Read)
* URL/SERVICENAME/CarrierSet('AA') METHOD carrierset_get_entity. io_tech_request_context->get_converted_keys( IMPORTING es_key_values = er_entity ). IF NOT er_entity-carrid IS INITIAL. SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF @er_entity WHERE carrid = @er_entity-carrid. ENDIF. ENDMETHOD. * URL/SERVICENAME/FlightsSet(Carrid='AA',Connid='64') METHOD flightsset_get_entity. io_tech_request_context->get_converted_keys( IMPORTING es_key_values = er_entity ). IF NOT er_entity-carrid IS INITIAL AND NOT er_entity-connid IS INITIAL.. SELECT SINGLE * FROM spfli INTO CORRESPONDING FIELDS OF @er_entity WHERE carrid = @er_entity-carrid AND connid = @er_entity-connid. IF sy-subrc <> 0. CLEAR: er_entity. ENDIF. ENDIF. ENDMETHOD.
Serviceimplementierung: GetEntitySet(Query)
* URL/SERVICENAME/CarrierSet METHOD carrierset_get_entityset. SELECT * FROM scarr INTO CORRESPONDING FIELDS OF TABLE @et_entityset. ENDMETHOD. * URL/SERVICENAME/FlightsSet METHOD flightsset_get_entityset. SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE @et_entityset. ENDMETHOD.
Assoziation anlegen
- Rechtsklick auf „Assoziationen“ -> Anlegen
- Name: CarrierToFlights
- Principal-Entität: Name „Carrier“
- Untergeordnete Entität: Name „Flights“
- Kardinalität: Carrier 1 : Flights n
- Navigationsproperty anlegen: ToFlights
- Bezug: Carrid – Carrid
Code anpassen
* URL/SERVICENAME/CarrierSet('AA')/ToFlights?$format=json METHOD flightsset_get_entityset. * Typen und Konstanten sind in der MPC definiert DATA: lv_flights TYPE zcl_zflight_assoc2_mpc=>ts_flights. DATA(lv_source_entity_type_name) = io_tech_request_context->get_source_entity_type_name( ). CASE lv_source_entity_type_name. * Typen und Konstanten sind in der MPC definiert WHEN zcl_zflight_assoc2_mpc=>gc_carrier. io_tech_request_context->get_converted_source_keys( IMPORTING es_key_values = lv_flights ). ENDCASE. IF NOT lv_flights IS INITIAL. SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE @et_entityset WHERE carrid = @lv_flights-carrid. ELSE. SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE @et_entityset. ENDIF. ENDMETHOD.
Weiterführende Infos: Link