The source code for these examples can be found in the batches
and test/airsched
directories. They are compiled along with the rest of the AirSched
project. See the Users Guide for more details on how to build the AirSched
project.
All the steps below can be found in the same order in the batch AirSched.cpp
program.
First, we instanciate the AIRSCHED_Service object:
Then, we construct a default sample list of travel solutions and a default booking request (as mentionned in ug_procedure_bookingrequest and ug_procedure_travelsolution parts):
For basic use, the default BOM tree can be built using:
The main step is the network building (see The travel solution calculation procedure):
When the AirSched.cpp
program is run (with the -b
option), the log output file should look like:
What is interesting is to compare the travel solution list (here reduced to a single travel solution) displayed before:
and after the network building:
Between the two groups of dashes, we can see that a network option structure has been added by the network builder: the price is 450 EUR for the Y class, the ticket is refundable but there are exchange fees and the customer must stay over on saturday night.
Let's return to our default BOM tree display: the only network rule stored was a match for the travel solution into consideration (same origin airport, same destination airport, flight date included in the network rule date range, same airline "BA", ...).
By looking at the network rule trip type "RT", we can guess we face a round trip network: that means the price given in the default bom tree construction in stdair::CmdBomManager.hpp
has been divided by 2 because we are considering either an inbound trip or an outbound one.
The objective here is to build a network input file to network builde the default travel solution list built using:
This travel solution list, reduced to a singleton, can be displayed as done before:
We deduce:
We can deduce a part of our network rule file :
We have no information about stay duration and advance purchase (such information are contained into the booking request): so let us put "0" to embrace all the requests possible.
No information for the point-of-sale and the channel too: let us consider all the channels ("IN", "DN", "IF" and DF") and all the points of sale (the origin "LHR", the destination "SYD" and the rest-of-the-world "ROW") existing. To access this information, we could look into the default booking request.
The input file is now:
Let us say we have just the Economy cabin "Y" and Bristish Airways prices ticket for class "Y".
No information about the trip type, so we duplicate all the network rules for both type: one-way "OW" and round-trip "RT" (to access this information, we could look to the default booking request).
The network options are all set to a default value "T" (meaning true) and the network values are chosen to be all distinct.
We obtain:
The steps are the same as before Summary of the different steps except the bom tree must be built using the network input file :
When the AirSched.cpp
program is run with the -f
option linking with the file built just above:
~/AirSched -f ~/<YourFileName>.csv
the last lines of the log output should look like:
[D]~/AirSchedgit/AirSched/batches/AirSched.cpp:223: Travel solutions: [0] [0] BA, 9, 2011-06-10, LHR, SYD, 21:45 --- Y, 145, 1 1 1 ---
We have just one network option added to the travel solution. We can deduce from the price value 145 that the network builder used the network rule number 15 to price the travel solution. We have an inbound or outbound trip of a round trip: the total price 290 has been divided by 2.