Hi,
This will be helpful for the ones of you using SAP internal GDS access:
You can check command lines in transaction AMADEUS.
You can write ANY item to PNR if you have valid AMADEUS command for command line. SAP standard unfortunately is restricted to certain objects, as types of PNR elements are restricted in some domain to RM*, RMS* and others, but e.g. not SSR elements – the ones you will need for full TMC compliance.
To write valid AMADEUS command to AMADEUS command line, you need to go with BADI as follows, feeding field “a_command” with any input you like. In your case, add details for other services instead of xxxxxx – you need to the read them before, which is not part of this sample.
Enjoy, Michael
SAMPLE:
***********************************
METHOD if_ex_fitp_cust_remarks~create_rm.
data: lt_bapirettab type bapirettab.
********************
* Daten der PNR
data:
pnr_acknowledgement type standard table of ftps_api_pnr_ack_data,
pnr_main_out type standard table of ftps_api_pnr_main,
pnr_flight_out type standard table of ftps_api_pnr_flight,
pnr_hotel_out type standard table of ftps_api_pnr_hotel,
pnr_car_out type standard table of ftps_api_pnr_car,
pnr_other_service_out type standard table of
ftps_api_pnr_other_service,
pnr_auxiliary_out type standard table of ftps_api_pnr_auxiliary,
pnr_name_out type standard table of ftps_api_pnr_name,
pnr_address_out type standard table of ftps_api_pnr_address,
pnr_phone_out type standard table of ftps_api_pnr_phone,
pnr_fop_out type standard table of ftps_api_pnr_fop,
pnr_remarks_out type standard table of ftps_api_pnr_remarks,
pnr_remarks_to_del type standard table of ftpt_pnr_remarks,
pnr_fqtv_out type standard table of ftps_api_pnr_fqtv,
pnr_seat_out type standard table of ftps_api_pnr_seat,
pnr_seat_details_out type standard table of
ftps_api_pnr_seat_details,
pnr_misc_ssr_out type standard table of ftps_api_pnr_ssr_misc,
pnr_ssr_out type standard table of ftps_api_pnr_ssr_misc,
pnr_osi_out type standard table of ftps_api_pnr_osi,
pnr_tk_element_out type standard table of ftps_api_pnr_tk_elem,
pnr_seg_assoc_out type standard table of ftps_api_pnr_seg_assoc,
wa_flight type ftps_api_pnr_flight.
**********************
* Für Verbindung
data:
a_t_output type table of ftps_api-text initial size 0,
a_error_type type ftps_api-error_type,
a_error_code type ftps_api-error_code,
* p_rc TYPE i,
a_destination type rfcdes-rfcdest,
a_contexthandler type ftps_api-ctxtid,
a_changed(1) value space,
* a_lines_of_table TYPE i VALUE 0,
a_command(100) type c value space,
* a_once TYPE c VALUE ‘Y’,
a_msg_text(80) type c.
DATA wa_cust_remarks TYPE ftpt_pnr_remarks.
***************************
call function ‘FITP_RETRIEVE_PNR’
exporting
variant = wa_variant-variant
record_locator = wa_variant-rec_locator
operation_mode = ‘R’
sw_portal = ‘ ‘
importing
t_return = lt_bapirettab
tables
pnr_main_out = pnr_main_out
pnr_name_out = pnr_name_out
pnr_flight_out = pnr_flight_out
pnr_hotel_out = pnr_hotel_out
pnr_car_out = pnr_car_out
pnr_other_service_out = pnr_other_service_out
pnr_auxiliary_out = pnr_auxiliary_out
pnr_address_out = pnr_address_out
pnr_phone_out = pnr_phone_out
pnr_fop_out = pnr_fop_out
pnr_remarks_out = pnr_remarks_out
pnr_fqtv_out = pnr_fqtv_out
pnr_seat_out = pnr_seat_out
pnr_seat_details_out = pnr_seat_details_out
pnr_misc_ssr_out = pnr_misc_ssr_out
pnr_osi_out = pnr_osi_out
pnr_tk_element_out = pnr_tk_element_out
pnr_segment_association = pnr_seg_assoc_out
pnr_acknowledgement = pnr_acknowledgement
exceptions
no_pnr_found = 1
others = 2.
* Check/Establish connection
call function ‘TP_START_STOP_CONNECTION’
exporting
variant = wa_variant-variant
start_connection = ‘X’
importing
destination = a_destination
contexthandler = a_contexthandler
changed = a_changed
exceptions
no_destination_found = 1
no_valid_variant = 2
others = 3.
****************************************
* Verbindung o.k. ?
****************************************
if sy-subrc is initial.
clear: a_command.
***********************
*SSR ELEMENTE ERZEUGEN
***********************
* Befehl füllen_001
concatenate ‘SSR xxxxxxxx’
into a_command.
* AMADEUS-Befehl erzeugen
call function ‘FITP_AMADEUS_ENTRY’ destination a_destination
exporting
command = a_command
context_handler = a_contexthandler
importing
error_type = a_error_type
error_code = a_error_code
tables
t_output = a_t_output
exceptions
communication_failure = 1 message a_msg_text
system_failure = 2 message a_msg_text.
********************************
endif.
endif.
endif.
endif.
endmethod.
endmethod.
Regards, Michael
Thanks for the code snippet, Michael! We are currently not using Amadeus, but since I am one of those poor sods who use FI-TV-PL, at some point we might ending up doing so and this will then come in handy.
Cheers, Lukas
Hi Lukas,
I do not think so….
…pls read my other blog post with alternatives carefully between the lines.
Regards,
Michael
Hi Michael,
I’m well aware of your overview blog and of the current possibilities available on the market. However, I don’t think our company will switch solutions in the next X years for several reason I will not utter here.
Cheers, Lukas