Skip to content

Instantly share code, notes, and snippets.

@codesnik
Created February 28, 2012 11:02
Show Gist options
  • Save codesnik/1931903 to your computer and use it in GitHub Desktop.
Save codesnik/1931903 to your computer and use it in GitHub Desktop.

Revisions

  1. codesnik revised this gist Feb 28, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion amadeus_workflow.md
    Original file line number Diff line number Diff line change
    @@ -117,7 +117,7 @@ BOOKING
    STALE PNR CANCELING
    =============

    for each PNR, which haven't received payment in half an hour
    for each PNR, which haven't received payment in half an hour
    create new session
    do PNR_Retrieve for pnr number
    # cancel PNR itinerary
  2. codesnik revised this gist Feb 28, 2012. 1 changed file with 53 additions and 30 deletions.
    83 changes: 53 additions & 30 deletions amadeus_workflow.md
    Original file line number Diff line number Diff line change
    @@ -28,7 +28,7 @@ SELECT RECOMMENDATION
    get session from pool

    # check price
    do Fare_InformativePricingWithoutPNR
    do Fare_InformativeBestPricingWithoutPNR

    if price discrepancy?
    display corrected recommendation, advise customer
    @@ -65,45 +65,39 @@ BOOKING
    break

    # add passenger name records and commit pnr
    do PNR_AddMultiElements with passengers data and option code for commit/retrieve
    do PNR_AddMultiElements with passengers data
    SRDOCS, SR FOID, FE, FFN elements
    ES and RP access remarks
    and option code for commit/retrieve

    if got errors adding name records, or no PNR number returned on commit
    # cancel PNR itinerary
    do PNR_Cancel with option code for commit
    display error to customer
    break

    # creating tst
    retry block start:
    # repricing block start
    do Fare_PricePNRWithLowerFares

    do Fare_PricePNRWithBookingClass
    if last ticket date is too near to process
    do PNR_Cancel with option code for commit
    display error to customer
    break

    if got price discrepancy
    display corrected recommendation, advise customer
    logout session

    if got price discrepancy
    or if last ticket date is too near to process
    if customer does not confirm booking with new price
    do PNR_Cancel with option code for commit
    display error to customer
    break
    else
    do PNR_retrieve
    reenter at "# repricing block start"

    do Ticket_CreateTSTFromPricing

    do PNR_AddMultiElements with option code for commit/retrieve
    do PNR_AddMultiElements with code for ignore and retry whole block once on 'SIMULTANEOUS CHANGES TO PNR' error

    # adding passengers passport and bonus cards data
    retry block start:

    for each passenger
    do Command_Cryptic SRDOCS...
    do Command_Cryptic SR FOID...
    do Command_Cryptic FE ...
    do Command_Cryptic FFN ...

    # give access to pnr to ticketing office
    do CommandCryptic ES ...
    do CommandCryptic RP ...
    do Ticket_CreateTSTFromPricing

    do PNR_AddMultiElements with option code for commit/retrieve
    do PNR_AddMultiElements with code for ignore and retry whole block once on 'SIMULTANEOUS CHANGES TO PNR' error
    do PNR_AddMultiElements with option code for commit/retrieve

    # check again for seat confirmation, some carriers have several second delay before dropping reservation
    do PNR_Retrieve
    @@ -114,12 +108,41 @@ BOOKING

    logout session

    # payment processing
    if payment authorization on credit card fails
    display time remaining before booking will be canceled
    allow user to correct credit card data or confirm another means of payment
    reenter at "# payment processing"

    STALE PNR CANCELING
    =============

    for each PNR, which haven't received payment in half an hour
    create new session
    do PNR_Retrieve for pnr number
    # cancel PNR itinerary
    do PNR_Cancel with option code for commit
    display error to customer
    logout session
    break

    send email with booking details
    TICKETING
    =========

    create new session in ticketing office

    for each unprocessed PNR do

    create new session for TICKETING office
    do PNR_Retrieve
    do DocIssuance_IssueTicket

    unless ok eticket returned
    Queue_PlacePNR
    next

    # wait 5 seconds
    do PNR_Retrieve
    unless eticket number returned?
    Queue_PlacePNR
    next

    logout ticketing session
  3. codesnik created this gist Feb 28, 2012.
    125 changes: 125 additions & 0 deletions amadeus_workflow.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,125 @@
    SEARCH & DISPLAY
    ================

    get session from pool

    get customer input (departure, destination, dates, passengers count)

    # search for recommendations conforming to customer input
    do Fare_TravelBoardSearch

    # search again with the same options and additiona restriction: only nonstop flights
    do Fare_TravelBoardSearch

    # optionally
    do Fare_MasterPricerCalendar

    merge recommendations and filter out some of them according to our business rules

    display recommendations to customer

    return session to pool



    SELECT RECOMMENDATION
    =====================

    get session from pool

    # check price
    do Fare_InformativePricingWithoutPNR

    if price discrepancy?
    display corrected recommendation, advise customer
    break

    return session to pool

    # bookability check
    create new session

    do Air_SellFromRecommendation

    if unable to sell any segment?
    display error to customer
    break

    display flights details, prices, etc

    logout session


    BOOKING
    =======

    get and validate passengers data and credit card data

    create new session

    # add itinerary
    do Air_SellFromRecommendation

    if unable to sell any segment?
    display error to customer
    break

    # add passenger name records and commit pnr
    do PNR_AddMultiElements with passengers data and option code for commit/retrieve

    if got errors adding name records, or no PNR number returned on commit
    # cancel PNR itinerary
    do PNR_Cancel with option code for commit
    display error to customer
    break

    # creating tst
    retry block start:

    do Fare_PricePNRWithBookingClass

    if got price discrepancy
    or if last ticket date is too near to process
    do PNR_Cancel with option code for commit
    display error to customer
    break

    do Ticket_CreateTSTFromPricing

    do PNR_AddMultiElements with option code for commit/retrieve
    do PNR_AddMultiElements with code for ignore and retry whole block once on 'SIMULTANEOUS CHANGES TO PNR' error

    # adding passengers passport and bonus cards data
    retry block start:

    for each passenger
    do Command_Cryptic SRDOCS...
    do Command_Cryptic SR FOID...
    do Command_Cryptic FE ...
    do Command_Cryptic FFN ...

    # give access to pnr to ticketing office
    do CommandCryptic ES ...
    do CommandCryptic RP ...

    do PNR_AddMultiElements with option code for commit/retrieve
    do PNR_AddMultiElements with code for ignore and retry whole block once on 'SIMULTANEOUS CHANGES TO PNR' error

    # check again for seat confirmation, some carriers have several second delay before dropping reservation
    do PNR_Retrieve
    if any segment isn't confirmed
    do PNR_Cancel with option code for commit
    display error to customer
    break

    logout session

    if payment authorization on credit card fails
    do PNR_Retrieve for pnr number
    # cancel PNR itinerary
    do PNR_Cancel with option code for commit
    display error to customer
    logout session
    break

    send email with booking details