Академический Документы
Профессиональный Документы
Культура Документы
RECOMMENDED INFORMATION
SERVICES – ACI ACRIS
Change History
0.2 3 May 2012 Incorperated feedback Eric Lansbergen Arie van der Veek
0.9 3 May 2012 Finalized draft version for presentation to Arie van der Veek
ACRIS community
Table of Contents
References ...............................................................................................................................5
1. Introduction........................................................................................................................6
2. Requirements ....................................................................................................................8
2.1. Level 2 requirements – (Non-) functional requirements for all implementations ...............8
2.2. Level 3 requirements - (Non-) functional requirements for specific implementations ........8
3. Design Decisions ...............................................................................................................9
4. Service Description.......................................................................................................... 12
4.1. Business Object............................................................................................................. 12
4.2. Static View..................................................................................................................... 13
4.3. Dynamic View ................................................................................................................ 13
5. Definition of message structure ....................................................................................... 14
5.1. Common data structures ............................................................................................... 14
5.1.1. BCPB data structure ................................................................................................... 14
5.1.2. UniqueIdOfAirline element .......................................................................................... 17
5.1.3. Result data structure .................................................................................................. 17
5.2. Identify Passenger method ............................................................................................ 19
5.2.1. Message: IdentifyPassengerRequest ......................................................................... 19
5.2.2. Message: IdentifyPassengerReply ............................................................................. 20
5.3. Get Bag Tag method .................................................................................................... 26
5.3.1. Message: GetBagTagRequest ................................................................................... 26
5.3.2. Message: GetBagTagReply........................................................................................ 27
5.4. Commit Bag Tag method .............................................................................................. 31
5.4.1. Message: CommitBagTagRequest ............................................................................. 31
5.4.2. Message: CommitBagTagReply ................................................................................. 33
6. Error handling .................................................................................................................. 34
Abbreviation/Definition Meaning
ACI Airports Council International.
ACRIS Airport Community Recommended Information Services.
BCBP Bar Coded Boarding Pass, the IATA standard which describes the
data elements of the barcode on the boarding pass.
BSM Baggage Source Message, a message sent from the DCS to the
BHS to indicate a bag is injected into the BHS.
BHS Baggage Handling System is a system that routes and transports
baggage from the point the passenger drops it off to the airplane.
Contract/Code first Contract first development refers to the method of Web Service
development development where first the service contract is designed in the
form of a WSDL and then the implementation is made of the
service. This is contra to code first development where the WSDL
is generated from the actual code.
Coupling (tight/loose) The terms tight data coupling and loose data coupling are used to
denote whether the WSDL will contain a description of the data.
DCS Departure Control System.
SOA Service Oriented Architecture, an Information Technology
principle based on loosely coupled services in order to support
business flexibility in an interoperable and technology
independent way.
SSDOP Self Service Drop Off Point
Web Service A method of communication between two electronic devices over
the web.
WSDL Web Services Description Language, a XML format for describing
network services.
XML Extensible Markup Language, a markup language that defines a
set of rules for encoding documents in a format that is both
human-readable and machine-readable.
References
Nr Document
1 ACI - ACRIS Recommended Practice, ACI_RP502A10_ACRIS, version 1.0, April 2011
2 Air Transport & Travel Industry, PADIS EDIFACT and XML codeset, version 12.1,
February 2012
3 IATA RESOLUTION 792 Bar Coded Boarding Pass (BCBP), Version 3
1. Introduction
This document describes the baggage check-in service. This documentation contains
information about the functionality of the service and how it can be used by client. This
documentation does not contain information about the implementation logic and requirements of
all the different departure control systems (DCS) wrapped by this service. These should be
described in separate implementation document.
This service provides the following functionality to support the baggage check in process within
the passenger process:
Check if the passenger is on the flight and the passenger is allowed to check in baggage
Commit a bag tag in the DCS when the bag is fully processed
The current version does not (yet) support functionality which has already been identified as
potential additions in functionality: registration of payment information, calculation of overweight
fee, support for pre-tagged luggage, visa check and support for upgrades. At this point in time
only the boarding pass is used as identification token of passengers. Tokens like passport of
frequent flyer card are not (yet) supported.
The service itself doesn’t handle any airline business logic. The logic for checking if a passenger
is allowed to check in baggage or how a License Plate Code (LPC) is generated is the
responsibility of an airline. This logic is present in a system that is called a Departure Control
System (DSC). A DCS is an airline system and not an airport system. Each DCS has his own
way of exposing services to use the DCS and provide baggage check in functionality. This
service provides a uniform way to access all these different DCS with their different technologies
and interaction protocols and hides airline specific logic from its clients. This service is designed
to be capable to interact with multiple DCS.
This service is a technical service and not a business service, because it does not contain the
actual business process that handles the full baggage check in. This process still requires user
interaction and can differ per airport/airline. This service provides building blocks that enable
applications to implement this business process. This service is only limited to baggage check-in
and not passenger check-in. Passenger check-in is viewed as a separate service. Both services
could of course be combined in one business process that does both passenger and baggage
check-in.
The typical use case for this service is when functionality of more than one DCS needs to be
exposed to clients. For example a series of common use self-service drop off point (SSDOP)
which needs to service passengers of all the airlines in one single terminal. This service can be
used to provide one uniform interface towards the SSDOP’s and hide airline specifics.
Figure 1 shows an example application of the baggage check-in service. It provides one uniform
service definition for the SSDOP’s, so they only need to implement one client and its
corresponding logic. The Baggage Check-in Service handles the requests and translates them
to the logic and protocols for the different DCS. Also it can for example invoke an external
business rule engine if the business rules are not present in the DCS.
The service definition is not limited to only cases where multiple DCS need to be exposed.
Figure 1 also shows that DCS of Airline D uses the ACRIS Baggage Check-in Service Definition
to expose its baggage check-in functionality. This service can also be used on the DCS side, or
wherever it fits the requirements.
This service is also not limited to only Self Service Drop Off Points. For example it can also be
used for off airport bag drop at a car park or a specialized company that picks up luggage at
home. The building blocks are available and do not limit the business processes developed by
clients.
2. Requirements
Characteristic Requirement
Availability: 24/7 availability recommended. The availability does not span to the
services used on the DCS. It is recommended to agree on availability
requirements for each individual DCS in a separate implementation
document.
Message order: Parallel. The order of messages in processing is irrelevant, because
the service is stateless.
Response Time: The response time of the service is highly dependent on the DCS
that is queried and the method of querying. The maximum response
time of any DCS cannot be higher than 30 seconds. Average
response time will be between 1 and 5 seconds.
Monitoring: N/A
Error handling: Standardized error should be returned by the service, so errors can
be handles by clients in the same manner. Please read the chapter
Error Code for more information
Message Patterns: Request - Reply
Incoming protocol: SOAP over HTTPS
Outgoing protocol: SOAP over HTTPS
Message Size: The expected average message size is variable, expected to be
between 1Kb and 5Kb.
Frequency: N/A, depends on local situation
Security: Yes, WS-Security username/password token
Transaction No transactions are supported
management:
3. Design Decisions
The following design decisions have influenced the design of the service.
Design decision 1
Issue How do we manage the state between the service provider and consumer
Decision We don’t. The baggage check-in service is stateless.
Assumptions A passenger takes between 30 and 120 second to check in a bag.
Constraints
Positions
Argument Applying transactions will impose to much overhead to the solution.
The DCS is the leading source of information and this information can be
altered by many “unknown” sources. Replication state over all these
sources would lead to unacceptable complexity.
The chance that the parts of passenger data that are needed for baggage
check-in is altered during the time the passenger is dropping of a bag is
minimal. If it does happen, the solution should be able to handle the
exception state.
Also keeping state in the service will severely limit the easy by which the
service can scale.
Implications If the passenger details are updated
Notes
Design decision 2
Issue Should active bag tags (LPC’s) allowed to be returned by the service
Decision No, It must be guaranteed by the DCS that at this point in the process the
tags are NOT active yet in the DCS.
Assumptions All DCS are able to produce inactive tags
Constraints
Positions
Argument This is a security feature so there are no tags that are activated in the
passenger’s control.
The tags should be activated by the SSDOP at the point that a non-
authorized person cannot access the bags anymore before being inserted
into the BHS.
Implications There is no functionality to “delete” a tag.
Notes If the assumption “All DCS are able to produce inactive tags” turns out to
be invalid, there must be a way to flag a tag active or not when retrieving it
and a method should be exposed to delete a tag.
Design decision 3
Issue Should we support committing multiple LPC’s at one time
Decision No
Assumptions When committing an individual tag it can go wrong while committing it.
The client can only inject one piece of baggage to the BHS a time.
Committing of a tag is done BEFORE it is inserted into the BHS. This gives
the DCS a final “go/no go” moment to determine if the bag can proceed or
not.
Constraints
Positions
Argument One committing one bag tag at a time is supported, because there is no
support for transactions.
The client must be forced to process and commit bags one by one to
prevent the transmission of a BSM message while the baggage is not
injected into the BHS.
Example: Two tags are committed via the service. Bag 1 is injected into
the BHS. Bag 2 gives an error. Now there is a bag in the machine that is
committed, but not inserted in the BHS. Depending on the client it can be
returned to the passenger and there is an activated tag but no suitcase in
the BHS. This can give issues with baggage reconciliation and baggage
safety.
Implications
Notes
Design decision 4
Issue What tokens should we use to identify a passenger
Decision Barcoded Boarding Pass
Assumptions Every passenger is checked in and has received a boarding pass at check
in
Constraints
Positions Use the Barcoded Boarding Pass
Use the Passport
Argument Currently each passenger has a barcoded boarding pass after he/she has
checked in. All boarding passes are implemented following BCBP as of
December 2010 as announced by IATA
(http://www.iata.org/pressroom/pr/Pages/2010-12-15-01.aspx)
Therefore it is the most widely used standard to identify a passenger when
he/she is present in the terminal.
Design decision 5
Issue Some airlines, mainly low cost carriers, do not fill one or more of the
following fields: CabinType, SeatNumber and PassengerStatus.
The IATA resolution 792 states that all mandatory fields must be filled. In
practice these fields are filed with blanks (spaces).
These fields are mandatory in the BCBP schema, therefore not sending
them will result in invalid XML messages.
Decision Make fields optional in BCBP schema
Assumptions
Constraints
Positions Making the fields optional in the BCBP schema, not making any change
Argument The least evasive way to change the schema is making the fields optional.
This leaves the patterns defined for the fields intact.
Design decision 6
Issue Some airlines do not support one unique identifier or lack a unique
identifier, while it is mandatory for all calls except the identify passenger
call
Decision The baggage check-in service shall compose a key based on values given
by the service. Each implementation is free to determine what how to
compose the key.
Assumptions
Constraints
Positions Composing a key in the service
Making the field optional and using a different way of identification (BCBP)
Argument In the field it is seen that many DCS have a form of uniquely identifying a
passenger with an ID. The form differs, but coding this form in one field by
a composite key will solve this issue easily.
Sending the BCBP each time introduces a lot of overhead to the service,
as unnecessary fields are sent over each call. Also all this data needs to
be managed by the client for the full duration of the transaction. Keeping
only an unique identifiers saves in data management on the client.
The composite key can be as long as desired, so it should not limit the
capabilities to generate a key that meets the requirements of the DCS.
Implications The key should be given unaltered from client to service and back. Once a
key has been generated it should not change during the transaction.
Notes
Design decision 7
Issue How do we make distinction between the Airline that is operating the flight
and what airline branding should be shown
Example usage:
A passenger buys a ticket from Kenya Airways which is a partner of KLM.
KLM operates the flight and Kenya Airways is a code share. On the
boarding pass the operating airline is KL, The service knows based on the
OperatingAirline field to go to the KLM DCS to locate the passenger.
Kenya Airways has its own branding on the client. The service returns KQ
as branding airline, so the client know to load the Kenya Airways branding
instead of the KLM branding.
Implications
Notes
4. Service Description
The Baggage check-in service contains three service calls to provide the previously described
functionality. As stated before, the service is stateless.
First off the business objects that have been reused will be described. Then the static and
dynamic view is described.
For the other information exchanged by the services there are no known standards available
and therefore they are modeled specifically for this service. If standards prove to be applicable
they will replace these elements.
As the scan of the 2D barcode should result in the same data as defined in the BCBP XML
schema, an elaborate definition is not given. Please review the IATA resolution 729
documentation [3] in case of questions. The BCBP XML is part of IATA PADIS.
The elements in the following table should be filled. General rule is to fill in as much information
as possible, but at a minimum all the required elements. The Optional/Required indicator is
based on the optionality needed for this interface. A field might be optional in the XSD, but
needs to be filled for this service. This difference is represented in the two columns
If an element and its sub elements should be filled, then only the container element is described.
In the description is stated that the subfields should be filled.
All attributes and elements that are defined as required in the XSD, should be filled.
<OperatingCarrierPNR_Code ID="EJZ8MHP"/>
<FromCity>AMS</FromCity>
<ToCity>BJV</ToCity>
<OperatingCarrier>OR</OperatingCarrier>
<FlightNumber>0703</FlightNumber>
<DepartureDate>122</DepartureDate>
<CabinType>Y</CabinType>
<SeatNumber>019B</SeatNumber>
<CheckInSequenceNumber>0005</CheckInSequenceNumber>
<PassengerStatus>1</PassengerStatus>
</RequiredInformation>
</Segment>
<Security/>
</IATA_BarCodeBoardingPassRQ>
This field is present in all messages except the IdentifyPassengerRequest. This field is
deliberately left out in the IdentifyPassengerRequest, because at the passenger identification
stage of the process the UniqueIDOfAirline is not present as it is not defined in the Boarding
Pass. All subsequent calls will be done based on the UniqueIDOfAirline
Result /ActionSuccessful Boolean Required Indicates if the action that the method should
perform is successful. What it functionally
means for a method is described in the
method paragraph.
Result / ErrorMessages String Optional Code that represents the human readable
/Message/@code message. Use this code to implement own
multi-language support.
Exampe message:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<soap:Header/>
<soap:Body>
<IdentifyPassengerRequest xmlns="http://service.acris.aci.aero/baggagecheckinservice/types">
<IATA_BarCodeBoardingPassRQ xmlns="http://www.iata.org/IATA/2007/00" Version="0">
<Originator>
<Source>
<RequestorID ID_Context="SSDOP.B19"/>
</Source>
</Originator>
<RequiredInformation>
<PassengerName>
<GivenName>ADRIANUS</GivenName>
<Surname>VANDERVEEK</Surname>
</PassengerName>
</RequiredInformation>
<Segment>
<RequiredInformation>
<OperatingCarrierPNR_Code ID="EJZ8MHP"/>
<FromCity>AMS</FromCity>
<ToCity>BJV</ToCity>
<OperatingCarrier>OR</OperatingCarrier>
<FlightNumber>0703</FlightNumber>
<DepartureDate>122</DepartureDate>
<CabinType>Y</CabinType>
<SeatNumber>019B</SeatNumber>
<CheckInSequenceNumber>0005</CheckInSequenceNumber>
<PassengerStatus>1</PassengerStatus>
</RequiredInformation>
</Segment>
<Security/>
</IATA_BarCodeBoardingPassRQ>
</IdentifyPassengerRequest>
</soap:Body>
</soap:Envelope>
Result /ActionSuccessful Boolea Required ActionSuccessful is true when the passenger is found
n on the fight and the passenger is allowed to check in
baggage for the flight and the other elements besides
the result will contain data. If ActionSuccessful is false
then there were errors which can be found in the error
messages. When ActionSuccessful there will be no
other elements filled besides the result element.
PassengerDetails / Title String Optional The title of the person, for example Dhr. or Ir.
PassengerDetails /Gender String Optional The gender of the passenger. Enum of Male, Female
or Unknown. Default: Unknown
FlightDetails / BrandingAirline String Required The IATA airline code indicating the airline for which
the Kiosk should be branded. This can be IATA 2 or 3
letter encoding.
FlightDetails/ Routes Required Container for routing information. Routes can contain
multiple route elements
FlightDetails/ Routes / Route Required List of route hops. The hops are sequentially ordered.
[1..10] The first in the list is the first stop of the flight and the
last one is the last stop of the flight. If there is only
one route it is a direct flight without stops
FlightDetails/ Routes / Route String Required The full flight number for example KL1255 or OR563
/FlightNumber
FlightDetails/ Routes / Route / Date Required The date on which the flight is scheduled to depart.
DepartureScheduleDate
FlightDetails/ Routes / Route / Time Optional The time on which the flight is scheduled to depart.
DepartureScheduleTime
FlightDetails/ Routes / Route / String Required The IATA code of the airport the flight departs from
DepartureAirportIATA
FlightDetails / Routes / Route / String Optional The terminal the flight is departing from and where the
DepartureTerminal gate is located
FlightDetails / Routes / Route / String Optional The gate the flight departs from. Note it is optional
DepartureGate and might not be returned, even if it is the local
departure station.
FlightDetails/ Routes / Route / Date Optional The scheduled date on which the flight arrives. Is not
ArrivalScheduleDate mandatory, as it is not the departure time at the local
station
FlightDetails/ Routes / Route / Time Optional The scheduled time on which the flight arrives. Is not
ArrivalScheduleTime mandatory, as it is not the departure time at the local
station
FlightDetails/ Routes / Route / String Required The IATA code of the airport
ArrivalAirportIATA
FlightDetails/ Routes / Route / String Optional The full name of the airport as returned from the DCS.
ArrivalAirportName Language of name is not specified. There is no
support for multiple languages. The IATA code can be
used to translate the airport name to the required
FlightDetails / Routes / Route String Optional The terminal the flight is departing from and where the
/ArrivalTerminal gate is located
FlightDetails / Routes / Route / String Optional The gate the flight departs from. Note it is optional
ArrivalGate and might not be returned, even if it is the destination
from the airport the flight departs from.
Booking /SeatNumber String Optional The seatnumber of the passenger on the local flight
Booking /Compartment String Optional The compartment in which the seat is located like
business class.
Booking /Compartment /@Code String Optional The IATA code for the compartment
Booking / BaggageAllowance Required This element contains the allowance for a pieces or
weight based system.
Booking / BaggageAllowance / Decima Required The amount of KG a single bag may weigh If there is
WeightPerBag l a limit to the total weight of all the bags of a
passenger, it should be stated in the Weight element.
This element regards both to pieces and weight
concept.
Booking / BaggageAllowance / Integer Required The amount of bags that the passenger is allowed to
PieceAllowance / AllowedPieces check in
Booking / BaggageAllowance / Decima Required The tolerance that can be given in kilograms on top
PieceAllowance / l of the allowed weight, for example 0.9KG. By
WeightTolerance separating allowed weight and tolerance one can hide
the tolerance applied from the passenger.
Booking / BaggageAllowance / Decima Required The amount of weight that all the bag in total may
PieceAllowance / l weight in kilograms
TotalAllowedWeight
Booking / BaggageAllowance / Decima Required The tolerance that can be given in kilograms on top
WeightAllowance / l of the allowed weight, for example 0.9KG. By
WeightTolerance separating allowed weight and tolerance one can hide
the tolerance applied from the passenger.
Booking / BaggageAllowance / Decima Required The amount of weight that all the bag in total may
WeightAllowance / l weight in kilograms
TotalAllowedWeight
Booking / BaggageAllowance / Decima Optional Contains data about the baggage already checked in.
BaggageAlreadyCheckedIn l If the DCS does not contain the information, the
element will not be filled. If it is present then it is filled.
If the element is not present it can be assumed that
there is no baggage checked in.
Booking / BaggageAllowance / Integer Optional The amount of pieces of baggage already checked in
BaggageAlreadyCheckedIn /
AmountOfPieces
Booking / BaggageAllowance / Optional Container for array of bag tag id’s already checked in.
BaggageAlreadyCheckedIn /
Booking / BaggageAllowance / String Required A bagtag id that is already checked in for passenger.
BaggageAlreadyCheckedIn /
BagTagIds / BagTagId
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<S:Body>
<ns2:IdentifyPassengerReply xmlns="http://www.iata.org/IATA/2007/00" xmlns:ns2="http://
service.acris.aci.aero/baggagecheckinservice/types">
<ns2:Result>
<ns2:ActionSuccessful>true</ns2:ActionSuccessful>
</ns2:Result>
<ns2:ResultData>
<ns2:PassengerDetails>
<ns2:Title>Ing.</ns2:Title>
<ns2:GivenName>Adrianus Cornelis</ns2:GivenName>
<ns2:SurName>VANDERVEEK</ns2:SurName>
</ns2:PassengerDetails>
<ns2:FlightDetails>
<ns2:BrandingAirline>KL</ns2:BrandingAirline>
<ns2:Routes>
<ns2:Route>
<ns2:FlightNumber>KL1945</ns2:FlightNumber>
<ns2:DepartureScheduleDate>2011-04-17+02:00</ns2:DepartureScheduleDate>
<ns2:DepartureScheduleTime>14:03:22.954+01:00</ns2:DepartureScheduleTime>
<ns2:DepartureAirportIATA>AMS</ns2:DepartureAirportIATA>
<ns2:DepartureAirportName>Amsterdam</ns2:DepartureAirportName>
<ns2:DepartureGate>E23</ns2:DepartureGate>
<ns2:ArrivalScheduleDate>2011-12-29+01:00</ns2:ArrivalScheduleDate>
<ns2:ArrivalScheduleTime>14:03:22.954+01:00</ns2:ArrivalScheduleTime>
<ns2:ArrivalAirportIATA>BCN</ns2:ArrivalAirportIATA>
<ns2:ArrivalAirportName>Barcalona</ns2:ArrivalAirportName>
<ns2:ArrivalGate>A10</ns2:ArrivalGate>
</ns2:Route>
</ns2:Routes>
</ns2:FlightDetails>
<ns2:UniqueIdOfAirline>PUK|23453|92474324</ns2:UniqueIdOfAirline>
<ns2:Booking>
<ns2:SeatNumber>14D</ns2:SeatNumber>
<ns2:Compartment ns2:code="C">Economy</ns2:Compartment>
<ns2:BaggageAllowance>
<ns2:WeightPerBag>32</ns2:WeightPerBag>
<ns2:AllowanceIsEstimated>false</ns2:AllowanceIsEstimated>
<ns2:WeightAllowance>
<ns2:WeightTolerance>0.9</ns2:WeightTolerance>
<ns2:TotalAllowedWeight>23</ns2:TotalAllowedWeight>
</ns2:WeightAllowance>
</ns2:BaggageAllowance>
</ns2:Booking>
</ns2:ResultData>
</ns2:IdentifyPassengerReply>
</S:Body>
</S:Envelope>
FlightNumber String Required The full flight number, for example: KL2535 or
OR2347
OperatingCarrier String Required IATA 2 or 3 letter code for the operating Carrier as
specified on the boarding pass, for example KL or
EZY.
AmountOfTags Required The amount of tags that the DCS should return.
The amount is limited to 1 upto and including 25
tags per request.
Example:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<soap:Header/>
<soap:Body>
<GetBagTagRequest xmlns="http://service.acris.aci.aero/baggagecheckinservice/types">
<Flight>
<FlightNumber>OR0703</FlightNumber>
<ScheduleDate>2012-05-01</ScheduleDate>
<OperatingCarrier>OR</OperatingCarrier>
</Flight>
<UniqueIdOfAirline>|CODECO|01MAY|OR0703|BJV|L|109B36CB006C|</UniqueIdOfAirline>
<AmountOfTags>1</AmountOfTags>
</GetBagTagRequest>
</soap:Body>
</soap:Envelope>
Result /ActionSuccessful Boolean Required ActionSuccessful is true when a bag tag has been
successfully created and the other elements besides
the result will contain data. If When ActionSuccessful is
false then there were errors that can be found in the
error messages and no other elements will be filled
besides the result element.
Choice BagTagData or Required Choice containing either the Bagtag data as normal
PECTAB Data data or in the AEA PECTAB standard
BagTagData String Choice Container for bag tag data to create own tags.
BagTagData/ PassengerName String Optional The name of the passenger that should be printed on
the baggage label
BagTagData / BagTagIDs / Required The bag tag id’s as issued by the airline
BagTagID [1..25]
BagTagData / String Required The flight number of the flight towards the destination,
DestinationsOnTag / eg. KL0334 or OR235
Destination / FlightNumber
PECTABData Choice Container for raw PECTAB data that can be sent to
AEA Compatible printers. No additional data is
supplied
<ns2:BagTagPrintStream>BTP010001)010074605319)050074)06KL)07605319)08021)09F2QHBU)0BNME:)0CADDIN
K)1BKL1615)1CIST)1E29APR)22ISTANBUL)ED29APR)EEKL/SS)EFSSDOPAM)F0AMS)F1
1)F229APR)</ns2:BagTagPrintStream>
</ns2:PECTABData>
</ns2:ResultData>
</ns2:GetBagTagReply>
</S:Body>
</S:Envelope>
Example with BagTagData:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-
open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-
open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<S:Header/>
<S:Body>
<ns2:GetBagTagReply xmlns="http://www.iata.org/IATA/2007/00"
xmlns:ns2="http://service.acris.aci.aero/baggagecheckinservice/types">
<ns2:Result>
<ns2:ActionSuccessful>true</ns2:ActionSuccessful>
</ns2:Result>
<ns2:ResultData>
<ns2:BagTagData>
<ns2:PassengerName>Jansansen</ns2:PassengerName>
<ns2:PNRCode>DAHRY7</ns2:PNRCode>
<ns2:CheckinSequenceNumber>152</ns2:CheckinSequenceNumber>
<ns2:BagTagIDs>
<ns2:BagTagID>000002</ns2:BagTagID>
</ns2:BagTagIDs>
<ns2:IssuingOperatingAirline ns2:IATA2="XH"
ns2:IATA3="XH">0000</ns2:IssuingOperatingAirline>
<ns2:DestinationsOnTag>
<ns2:Destination>
<ns2:IATAAirport>BCN</ns2:IATAAirport>
<ns2:FlightNumber>OR0367</ns2:FlightNumber>
<ns2:DepartureDate>2012-02-09</ns2:DepartureDate>
</ns2:Destination>
<ns2:Destination>
<ns2:IATAAirport>LHR</ns2:IATAAirport>
<ns2:FlightNumber>KL4725</ns2:FlightNumber>
<ns2:DepartureDate>2012-02-20+01:00</ns2:DepartureDate>
</ns2:Destination>
</ns2:DestinationsOnTag>
</ns2:BagTagData>
</ns2:ResultData>
</ns2:GetBagTagReply>
</S:Body>
</S:Envelope>
OperatingCarrier String Required IATA 2 or 3 letter code for the operating Carrier as
specified on the boarding pass, for example KL or
EZY
Bag/@BagTagID String Required The unique ID of a bag tag following the IATA
licence plate coding
Example:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:typ="http://service.acris.aci.aero/baggagecheckinservice/types"
xmlns:ns="http://www.iata.org/IATA/2007/00">
<soapenv:Header/>
<soapenv:Body>
<typ:CommitBagTagRequest>
<typ:Flight>
<typ:FligthNumber>KL7346</typ:FligthNumber>
<typ:ScheduleDate>2011-12-16</typ:ScheduleDate>
<typ:OperatingCarrier>KL</typ:OperatingCarrier>
</typ:Flight>
<typ:UniqueIdOfAirline>12345123451234</typ:UniqueIdOfAirline>
<typ:Bag typ:BagTagID="0074234151234234">
<typ:Measurements>
<typ:WeightOfBag>12.4</typ:WeightOfBag>
</typ:Measurements>
</typ:Bag>
</typ:CommitBagTagRequest>
</soapenv:Body>
</soapenv:Envelope>
Exampe:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:CommitBagTagReply xmlns="http://www.iata.org/IATA/2007/00"
xmlns:ns2="http://service.acris.aci.aero/baggagecheckinservice/types">
<ns2:Result>
<ns2:ActionSuccessful>true</ns2:ActionSuccessful>
</ns2:Result>
</ns2:CommitBagTagReply>
</S:Body>
</S:Envelope>
6. Error handling
This chapter describes the error codes returned by the baggage check-in service. Each DCS
can have its own error codes. These error codes needs to be translated to the error codes
defined in this chapter. This enables the client to uniformly interpret the error codes, regardless
of source and act accordingly. The error messages are not standardized. It is recommended to
return the original messages from the source, so no meaning of the error message is lost. Error
messages can differ depending on the DCS or in which part of the service the error has been
encountered. It is not guaranteed that the error message will always be the same.
Please note that not all errors are thrown by all DCS. It can be the case that a DCS only throw 5
out of 20 defined errors. For example if an airline does allow staff travelers to drop of baggage at
an SSDOP it makes no sense that it would throw an error indicating “Staff travelers not allowed.”
The client should be able to handle all defined errors in all service calls.
The service also returns SOAP Faults and HTTP errors, which have not got error codes. SOAP
faults are thrown when an error occurs in the service framework, before the message is received
by the business logic. This is because there usually is a default way of handling infrastructure
errors like invalid XML or WS-Security. HTTP errors are given when for example the server is
found. When SOAP Faults or HTTP errors occur the transaction should be aborted.
Errors in the result object are only returned if the ActionsSuccessful field in the result is false,
therefore the transaction should be aborted.
TEC_00 Unknown error The cause of the error is unknown and will Unknown Error.
01 remain unknown.
TEC Unmapped error Unmapped error. The error is not mapped yet
_0002 and should be mapped. If the error is actually
unknown, but mapped it will get the code
ASB_0001
TEC Required field is A required field is missing or sent empty. This is Required field UniquePaxID
_0003 missing usually the case when an optional field is not is missing
sent but required for the handling of a specific
airline. So the XML is valid, but the content
misses crucial information.
TEC Data is not parsable The received data could not be parsed Field AmountOfSuitcases is
_0004 not a parsable int
TEC Data is not correct The received data could be parsed but is Amount of tags does not
_0005 incorrect or does not make sense. For example match. Requested: 4. In
a flight date that is 10 years in the past or there stream: 2
is a difference in the amount of requested tags
and the returned tags.
TEC Airline not supported The given airline/operating carrier is not Could not find service
_0006 supported by the baggage check-in service. handler for airline HV
TEC Web service A technical error has occurred in invoking the Client ID is not allowed or
_0007 Invocation Error airline web services, like authentication or departure station is not
connection issues. allowed. Please review the
message for more details.
TEC Operation Not Operation not supported for airline. This can be
_0008 Supported the case if for example the airline does not
support payment and the payment operation is
invoked.
DCS_0002 Flight not Found The flight for the passenger has not
been found.
DCS_0004 Staff not allowed Staff travelers are not allowed to drop
off luggage at the SSDOP.
DCS_0006 Flight not open The flight is not open yet for baggage
drop-off.
DCS_0010 BagTag not The bag tag could not be retrieved from Printing of bag tag is denied or bag
retrieved the DCS. tag could not be created.
DCS_0016 Error committing There was an error at the final commit At final commit it is detected that a tag
bag and the bag could not be checked in. has been already committed.