You are on page 1of 42

ANA Aeroportos de Portugal, S.A.

ANA
Aeroportos de Portugal, SA

Interface between ANAs


Resource Broker and
Client Systems
v2.8 - March 2015

OutSystems, S.A.
Rua Central Park, Ed. 6 2A
2795-242 Linda-a-Velha
OUTSYSTEMS 2012

1/42

ANA Aeroportos de Portugal, S.A.

Portugal
www.outsystems.com
Project:
Reference:
Version:
Author:
Client:
Contact(s):
Date:

Updates:
Date:
Jul 2007

Resource Broker
ResourceBroker IWC 2.0
2.6
Tiago Gafeira
ANA Aeroportos de portugal, S.A.
helpdesk@ana.pt
2014-03-07

Autor:
Nuno
Baptista

Version:
V2.0

Description:
Flight Airport Infrastructure
Format changed, FTP TMP
files functional description.

Jul 2007

Daniel
Martins

V2.1

Flight Airport Infrastructure


Date Format changed,
Subscribing to Flight Airport
Infrastructure information
changed, Flight Airport
Infrastructure Format
Status
description changed.

Apr 2010

Miguel
V 2.2
Palmeirinha

Multi-airport and multiseason subscriptions.

Feb 2012

Miguel
V2.3
Palmeirinha

Extended Method for InfraStructure data.

Mar 2014

Tiago
Gafeira
Hlio
Cardoso

New web service for InfraStructure data.


Changes to the possible
values of Gate status (pag.
16)

Mar 2015

OUTSYSTEMS 2012

V2.7
V2.8

2/42

ANA Aeroportos de Portugal, S.A.

1.

Service Description...................................................................... 4

2.

Requesting a User Account ......................................................... 4

3.

Subscribing to Schedule information ........................................... 4


3.1.

Available Channels ......................................................................................... 5


3.1.1.
3.1.2.
3.1.3.

Email ............................................................................................................ 5
FTP .............................................................................................................. 6
Web Services .............................................................................................. 6

3.2.

Schedules Format .......................................................................................... 8

3.3.

Subscriptions Life Cycle ................................................................................ 9

3.4.

Cloning a Subscription .................................................................................. 10

4.

Subscribing to Flight Airport Infrastructure information .............. 11


4.1.

Available Channels ....................................................................................... 12


4.1.1.
4.1.2.
4.1.3.

Email ............................................................................................................ 12
FTP .............................................................................................................. 12
Web Services .............................................................................................. 13

4.2.

Flight Airport Infrastructure Format ............................................................... 15

4.3.

Lookups ........................................................................................................ 16

4.4.

Subscriptions Life Cycle .............................................................................. 18

4.5.

Cloning a Subscription .................................................................................. 19

5.

Subscribing to Public Arrivals & Departures Information ........... 19


5.1.

Airlines with public flights (action GetAirlines) .............................................. 19

5.2.

Airports of origin/destination/via of public flights (action GetAirports) .......... 20

5.3.

Cities of origin/destination/via of public flights (action GetCities) ................. 21

5.4.

Public flights current status in extended mode (action GetFlights) ............... 22

5.5.

Public flights current status in short mode (action GetFlightsByOpFlightNr) 24

6.
Appendix I Client Web Service WSDL Contract for Schedule or
Flight Airport Infrastructure change notification ....................................... 27
7.
Appendix II Resource Broker Web Service WSDL Contract for
Schedule information............................................................................... 30
8.
Appendix III Resource Broker Web Service WSDL Contract for
Flight Airport Infrastructure information ................................................... 32
9.
Appendix IV Resource Broker Web Service WSDL Contract for
Public airlines, airports and airports cities information ............................ 37
10.
Appendix V Resource Broker Web Service WSDL Contract for
Public arrival and departure flights information ....................................... 40

OUTSYSTEMS 2012

3/42

ANA Aeroportos de Portugal, S.A.

1.

Service Description

The Resource Broker is an airport information concentrator that receives


updated information from the Flight Scheduling system SCORE and from
several Airport Operational System (AOS). This information enables the
Resource Broker to provide Subscription Services to Client Systems or
applications that wish to be automatically updated on:
Season Schedules and subsequent updates. Whenever Slot
Coordination creates a new Season Schedule or any update to an
existing Schedule, the Resource Broker will send this information
to all the subscribers that asked for Schedule updates.
Flight Airport Infrastructure information. Whenever an AOS
changes Flight Airport infrastructures, the Resource Broker will
send this information to all the subscribers.
Public arrivals and departures flight status.
Although the final goal is to integrate the Resource Broker with all Airports,
the second stage this services implementation is for Lisbon, Oporto, Faro,
Funchal, Ponta Delgada, Santa Maria and Horta Airports.
This document describes the alternatives to subscribe these services and the
content of the information obtained.

2.

Requesting a User Account

To start subscribing the Resource Broker Services, the client (e.g. a


Handling Company) must register a user in the system. This step will not
be available in self-mode, so a Back-office administration user will carry out
the registration. Note: When the user requests a new account it should
explicitly indicate if he/she desires access to Schedule and/or Flight Airport
Infrastructure and/or Public Arrivals & Departures information.
If the requested information is for Schedule and/or Flight Airport
Infrastructure, then after being registered, the user will receive a username
and password by email (for security reasons the password should be
changed immediately after the first login). After that, the user may access
the system and start subscribing Schedule and/or Flight Airport
Infrastructure information.
If the requested information is for Public Arrivals & Departures
Information, then you must provide the IP that ANA shall allow to access
Resource Broker.

3.

Subscribing to Schedule information

A registered user is able to make several subscriptions to receive Schedule


information. In each subscription he/she defines:

The relevant Airports the subscriber chooses one of three types


of selection:
o All Airports;
o A list of selected Airports;

OUTSYSTEMS 2012

4/42

ANA Aeroportos de Portugal, S.A.

o All except a list of selected Airports;


The Season (one specific season or All seasons from that day on);
The Subscription start and end date - the end date can be omitted,
in this case the subscription will be active until it is explicitly
disabled;
The relevant Airlines The subscriber chooses one of three types
of selections:
o All Airlines;
o A list of selected Airlines;
o All except a list of selected Airlines;
Type of update information see Section 3.2 for details;
The channel see Section 3.1 for details;
Send Season - The user can also choose if he/she wishes to receive
the season history (The season original records and all subsequent
updates)

Whenever SCORE creates a new Season Schedule or any update to an


existing Schedule, the Resource Broker will send this information to all the
subscribers that asked for Schedules and updates, restricted to the
conditions specified in the subscription creation and trough the selected
channel.

3.1. Available Channels


In each subscription the Schedule Data can be delivered throw one of three
channels: Email, FTP and Web Services:

3.1.1.

Email

To create an Email subscription you just need to define the email addresses
that should be notified of the new data (one or more separated by ,) and
the downloaded file prefix. When new relevant schedule data is available an
email containing a link to the update file will be sent to you. The
downloaded file name will have the format <prefix><timestamp>.txt
where <timestamp> is the download instant in the format yyyyMMddhhmmss
E.g.: If the file prefix is set to LISTP, then an update file downloaded on
June 15th 2004 at 14h30m24s, will be called LISTP20040615143025.txt
Note1: If more than one email address is provided, a Check Connection
Email (sent immediately after the subscription creation or edition) will only
be sent to the first email of that list. (See Section 3.3 for details)
Note2: Email messages delivery depends on a number of independent
servers (e.g. the client Internet Service Provider) and the Resource broker
cannot guarantee the messages are delivered immediately and/or in the
same order they were generated.

OUTSYSTEMS 2012

5/42

ANA Aeroportos de Portugal, S.A.

3.1.2. FTP
To create a FTP subscription you need to provide the server address,
username and password (if needed) of a user with write permissions and the
file prefix. When new relevant schedule data is available the update file will
be written in the FTP server. The created file name will have the format
<prefix><timestamp> where <timestamp> is the creation instant in the
format yyyyMMddhhmmss
Note1: If the client wishes to provide a base path relative to the FTP root,
this should be added to the FTP address in the form <server>/<base path>
Again its the client responsibility to guarantee that the provided user has
permissions to write in that path.
Note2: The Resource Broker will not delete any messages from the remote
server. Its the client responsibility to delete unnecessary file to keep it from
growing too big.
Note3: The Resource Broker can write temporary files to guarantee that
clients only process complete files. On this case Resource Broker needs
permissions to change (rename) files on FTP Server. To enable this
functionality just tick the option Temporary files on FTP Data
connection.

3.1.3. Web Services


Clients wishing to use Web Services as the notification strategy must
implement the contract specified in the Appendix I. The complete Web
Services architecture is as follows:

To create a Web Services subscription you need to provide the Callback


URL (The WSDL Contract URL as specified in Appendix I) and a
password. This password is used to compose de security token passed in
the secret input attribute of the GetData and CheckConn calls. The
security token is computed as follows: MD5 (SubscriptionNumber +
Password) and it will be checked in every communication to ensure the call
is from a trusted origin.
Note: If you are unfamiliar with the MD5 message digest please check out
the following sites:

http://www.rsasecurity.com/rsalabs/faq/3-6-6.html
http://msdn.microsoft.com/library/default.asp?url=/library/enus/cpref/html/frlrfsystemsecuritycryptographymd5classtopic.asp

OUTSYSTEMS 2012

6/42

ANA Aeroportos de Portugal, S.A.

(Several other implementations in almost all programming


languages can be found across the Internet)

Note1: To maintain security and be sure both systems are communicating


without problems the CheckConn implementation should validate the
provided secret and return the appropriate Boolean value (True if the test
was successful, False otherwise). See Section 3.3 for details.
When new relevant schedule data is available Resource Broker will call the
ScoreDataAvailable Callback method indicating which subscription has
updates (see Appendix II for the WSDL contract). The client logic can then
invocate the GetData method providing the same Subscription Number
and receive all updates since the last call.

OUTSYSTEMS 2012

7/42

ANA Aeroportos de Portugal, S.A.

3.2. Schedules Format


The following table specifies the format of the file sent by the Resource
Broker for new Season Schedules or Schedule updates (all dates and times
are in UTC). Each field is a fixed length field.
Field

Field Name

TransactionId

LastTransaction

FlightStatus

4
5
6
7

FlightSeason
FlightCoordinatedAirport
ArrCarrier
ArrFlightNumber

3
3
3
5

8
9

DepCarrier
DepFlightNumber

3
5

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

StartPeriod
EndPeriod
Weekday
SeatCapacity
AircraftType_IATA
AircraftType_ICAO
OriginAirport_IATA
PreviousAirport_IATA
OriginAirport_ICAO
PreviousAirport_ICAO
Sta
Std
OverIndicator
NextAirport_IATA
FinalAirport_IATA
NextAirport_ICAO
FinalAirport_ICAO
ArrServiceType
DepServiceType
Frequency

8
8
7
3
3
4
3
3
4
4
4
4
1
3
3
4
4
1
1
1

Field Description
Sequential numeric id that defines the order of the
updates. Right justified.
1 if record is the last record in an initial load or
last record within a given flight update otherwise 0
Hold status of flight (X for delete, K for
update/insert and I for Initial load)
Season identification of flight (e.g. W03)
Coordinated airport of flight, IATA code.
Arrival carrier, IATA codes, left justified
Arrival flight number, left justified, 0 padded up to 4
chars 0002, 0123X
Departure carrier, IATA code, left justified
Departure flight number, left justified ,0 padded up to
4 chars 0002, 0123X
Start period, format DDMMYYYY
End period, format DDMMYYYY
Weekday, format NNNNNNN (e.g. 1030507)
Number of seats in flight, format NNN
Aircraft type, expect subtype
Aircraft type only if IATA field is blank
Origin airport
Previous airport
Origin airport only if IATA field is blank
Previous airport only if IATA field is blank
Scheduled time of arrival , HHMM
Scheduled time of departure , HHMM
Over midnight indicator, format blank or N
Next airport
Final airport
Next airport only if IATA field is blank
Final airport only if IATA field is blank
Arrival service type
Departure service type
Frequency of operation, format blank or N

Initial flight data and subsequent updates will have the same format
specified above. When subscribing schedules updates, two different types
of strategies, regarding the way the update information is delivered can be
selected. Before explaining these strategies, we will give some context on
how the SCORE system deals with updates.

How SCORE works


In SCORE flight records are kept in a periodically format, but updates may
be done only on a subset of days within a flight record. To handle this, the

OUTSYSTEMS 2012

8/42

ANA Aeroportos de Portugal, S.A.

original flight record needs to be fragmented, one fragment will contain the
update and the update period, all other fragments will be identical to
original record except from the period. Here is an example:
The following record is in the SCORE DB:
TP100 28MAR27OCT 1230000 150737 BRU1000 J

An SCR updates the arrival time in a subset of the period:


CTP100 01JUN01JUL 1200000 150737 BRU1000 J
RTP100 01JUN01JUL 1200000 150737 BRU1010 J

This results in the following database operations in SCORE:


Delete:
TP100 28MAR27OCT 1230000 150737 BRU1000 J

Insert:
TP100
TP100
TP100
TP100

28MAR27OCT
28MAR31MAI
01JUN01JUL
02JUL27OCT

0030000
1200000
1200000
1200000

150737
150737
150737
150737

BRU1000 J
BRU1000 J
BRU1010 J
BRU1000 J

Update Strategies
The Resource Broker can deliver updates in two different formats, as
shown next for the example above.
Format 1
The following records will be inserted in the file sent to subscribers:
XTP100
KTP100
KTP100
KTP100
KTP100

28MAR27OCT
28MAR27OCT
28MAR31MAI
01JUN01JUL
02JUL27OCT

1230000
0030000
1200000
1200000
1200000

150737
150737
150737
150737
150737

BRU1000
BRU1000
BRU1000
BRU1010
BRU1000

J
J
J
J
J

where the first char in the line is the flight status (X for deletes and K for
inserts).
Format 2
The following record will be inserted in the file sent to subscribers:
KTP100 01JUN01JUL 1200000 150737 BRU1010 J

In this format, the only case where an update results in an X and a K


records is if the update is a flight number change.

3.3.

Subscriptions Life Cycle

A subscription can be in one of four statuses:


Pending
Active (not started)
Active (started)

OUTSYSTEMS 2012

9/42

ANA Aeroportos de Portugal, S.A.

Disabled

Pending
Immediately after a Subscription is created or edited a process called
CheckConn is activated. This process checks if the Channel specific
information provided in the subscription is valid by performing one of the
following actions (depending on the chosen channel):

Email An email with an activation link is sent to the first email


address provided. The client must follow this link to successfully
complete the CheckConn process.
FTP A status command is sent to the FTP server. If the
command completes without errors the process is successful.
Web Service The Callback CheckConn method is called. If this
method returns True the process is Successful.

By doing this Resource Broker prevents common misspelling mistakes in


addresses and passwords and provides a more reliable guarantee that all
active subscriptions are able to receive the schedule data.
If the process is not successful the subscription turns into the pending
status and will not receive any update. Subscriber must then re-check the
provided information and correct any mistakes. After the CheckConn
process is successful the subscriptions turns into the active status.
Active (not started)
Subscriptions in the active (not started) status have successfully completed
the CheckConn process but the Subscription start date hasnt yet been
reached. No updates are sent and the subscription may still be edited.
Active (started)
When the Subscription start date is reached the subscription turns into the
active (started) status. Updates are sent and the subscription can no longer
be edited.
Note: if the subscription has the Send season feature checked, then all
season history will be immediately sent. Otherwise, the subscriber will start
receiving information when a schedule update match the subscription
definition (timeframe, airport, season, companies included/excluded)
Disabled
A subscription can be disabled either by an explicit action from the
subscriber or if the end date has been reached. A disabled subscription
doesnt receive updates and cannot be edited.

3.4. Cloning a Subscription


Resource Broker offers a cloning feature that allows the client to easily copy
complex subscriptions. To use it simply select any pending, active or
disabled subscription and press the clone button. A new fully filled
subscription form is presented allowing the client to further customize it.

OUTSYSTEMS 2012

10/42

ANA Aeroportos de Portugal, S.A.

4. Subscribing to Flight Airport


Infrastructure information
A registered user is able to make several subscriptions to receive Flight
Airport Infrastructure data. In each subscription he/she defines:

The Airport;
The Subscription start and end date (the end date can be omitted,
in this case the subscription will be active until it is explicitly
disabled)
The relevant Airlines the subscriber chooses one of three types
of selection:
o All Airlines;
o A list of selected Airlines;
o All except a list of selected Airlines;
The Movement Type the subscriber chooses one of three types
of selection:
o All (Departures and Arrivals);
o Departures;
o Arrivals;
The relevant Service Types the subscriber chooses one of three
types of selection:
o All Service Types (Public Flights, Aero Taxi, Others);
o A list of selected Service Types;
o All except a list of selected Service Types;
The relevant Check-in Counters the subscriber chooses one of
three types of selection:
o All Check-in Counters;
o A list of selected Check-in Counters;
o All except a list of selected Check-in Counters;
The relevant Belts the subscriber chooses one of three types of
selection:
o All Belts;
o A list of selected Belts;
o All except a list of selected Belts;
Type of update information see Section 4.2 for details;
The channel see Section 4.1 for details;

Whenever an AOS changes Flight Airport Infrastructures, the Resource


Broker will send this information to all the subscribers that asked for this
information, restricted to the conditions specified in the subscription
creation and trough the selected channel.

OUTSYSTEMS 2012

11/42

ANA Aeroportos de Portugal, S.A.

4.1. Available Channels


In each subscription the Flight Airport Information Data can be delivered
throw one of three channels: Email, FTP and Web Services:

4.1.1.

Email

To create an Email subscription you just need to define the email addresses
that should be notified of the new data (one or more separated by ,) and
the downloaded file prefix. When new relevant data is available an email
containing a link to the update file will be sent to you. The downloaded file
name will have the format <prefix><timestamp>.txt where <timestamp> is
the download instant in the format ddMMyyyyhhmmss
Note1: If more than one email address is provided, the Check Connection
Email (sent immediately after the subscription creation or edition) will only
be sent to the first email of that list. (See Section 3.3 for details)
Note2: Email messages delivery depends on a number of independent
servers (e.g. the client Internet Service Provider) and the Resource broker
cannot guarantee the messages are delivered immediately and/or in the
same order they were generated.

4.1.2. FTP
To create a FTP subscription you need to provide the server address,
username and password (if needed) of a user with write permissions and an
additional file prefix. When new relevant data is available the update file will
be written in the FTP server. The created file name will have the format
<prefix><timestamp> where <timestamp> is the creation instant in the
format ddMMyyyyhhmmss
Note1: If the client wishes to provide a base path relative to the FTP root,
this should be added to the FTP address in the form <server>/<base path>
Again its the client responsibility to guarantee that the provided user has
permissions to write in that path.
Note2: The Resource Broker will not delete any messages from the remote
server. Its the client responsibility to delete unnecessary file to keep it from
growing too big.

OUTSYSTEMS 2012

12/42

ANA Aeroportos de Portugal, S.A.

4.1.3. Web Services


Clients wishing to use Web Services as the notification strategy must
implement the contract specified in the Appendix I. The complete Web
Services architecture is as follows:

The Client application must provide a Web Service called ResourceBroker


with the following methods (or callbacks):
CheckConn The Resource Broker will call this callback any time
it needs to check if the Client application is accessible;
ResourceDataAvailable The Resource Broker will call this
callback every time it needs to notify the client application that new
relevant updates are available for a certain subscription.
The Resource Broker provides a Web Service called
ResourceDataSubscription with the following method (see Appendix III
for the WSDL contract):
GetDataExtended - To be called by client applications to get
updates of a given subscription, since the last call to this method.
GetData Deprecated.
When a change is made in a flight that matches the filter criteria of the
subscription, ResourceBroker makes a call to the ResourceDataAvailable
web method implemented by the subscriber. The subscriber must respond
to this call and only after execute a call to the GetDataExtended method
to retrieve the data.
Resource Broker only issues a new notification trough
ResourceDataAvailable after the subscriber retrieves the data using
GetDataExtended or the elapse of a pre-defined interval of time. Each
subscribers call to GetDataExtended retrieves the current data of all
flights changed since last call.
To create a Web Service subscription the user need to provide the Callback
URL (The WSDL Contract URL) and a password. This password is used to
compose the security token passed in the secret input attribute of the
GetDataExtended and CheckConn calls. The security token is
computed as follows: MD5 (SubscriptionNumber + Password) and it will
be checked in every communication to ensure the call is from a trusted
origin.
Note: If you are unfamiliar with the MD5 message digest please check out
the following sites:

http://www.rsasecurity.com/rsalabs/faq/3-6-6.html

OUTSYSTEMS 2012

13/42

ANA Aeroportos de Portugal, S.A.

http://msdn.microsoft.com/library/default.asp?url=/library/enus/cpref/html/frlrfsystemsecuritycryptographymd5classtopic.asp
(Several other implementations in almost all programming
languages can be found across the Internet)

Note1: To maintain security and be sure that both systems are


communicating without problems the CheckConn implementation should
validate the provided secret and return the appropriate Boolean value
(True if the test was successful, False otherwise). See Section 4.3 for
details.

OUTSYSTEMS 2012

14/42

ANA Aeroportos de Portugal, S.A.

4.2. Flight Airport Infrastructure Format


The following table specifies the format of the file sent by the Resource
Broker for new Flight Airport Infrastructure and updates. Each field is a
fixed length field used on the ftp channel.
Field Name
Id
Airport
URNO
FlightType
MovType
Registration
AirlineCode
FlightNr
StandCode
ArrivalBelt
Gate
CheckinCounters
FlightDestination
FlightOrigin
EstimateDateTime
ScheduleDateTime
ControlDateTime

Type

Len

char

1
1
12
3
9
3
2
10
50
4
4
14
14
14

ActualDateTime

char

14

CallSign

char

Via

char

CodeShare
BlockDateTime
BeginBoardingDateTime
EndBoardingDateTime
ServiceType
AircraftType
DelayCodes
ExitDoor
Chute
BoardingStatus
ScheduleDateTimeUTC
EstimatedDateTimeUTC

char

char

110
14
14
14
2
4
50
2
31
3
14
14

EstimatedInternalDateTimeUTC

char

14

ControlDateTimeUTC
ActualDateTimeUTC
BlockDateTimeUTC
BeginBoardingDateTimeUTC
EndBoardingDateTimeUTC

char

char

14
14
14
14
14

GateStatus

char

CheckinCounters2

char

50

Gate2
ArrivalBelt2

char

10
2

int
char

Int
char
char
char
char
char
char
char
char
char
char
char
char
char

char
char
char
char
char
char
char
char
char
char

char
char
char

char

Field Description
Primary Key Sequential ID (Autonumber)
ANA IATA Airport code that the flight relates to.
Unique flight identifier per airport
X=Canceled; O=Operating; S=Scheduled; T=Towing
A=Arrival; D=Departure; B=Turnaround
Registration of the airplane
Airline Code (preferably IATA otherwise ICAO)
Flight Number (e.g. BY 1234 A)
Stand Code (alpha numeric)
Arrival Belt
Boarding Gate. Left justified.
Check In (Example: 10-14). Left justified.
Destination Airport Code (preferably IATA otherwise ICAO)
Origin Airport Code (preferably IATA otherwise ICAO)
Estimated Date and Time (local time). Format DDMMYYYYHHMMSS
Schedule Date and time (local time). Format DDMMYYYYHHMMSS
Control Date and time (local time). Format DDMMYYYYHHMMSS
Touchdown or Take Off Date and Time (local time). Format
DDMMYYYYHHMMSS
Flight Call Sign
Via (Intermediate Stop) Airport Code (preferably IATA otherwise
ICAO)
Flight codeshare(e.g. AF 4412/TP 6458)
Date and Time of Blocks On/Off (local time). Format DDMMYYYYHHMMSS
Date and Time of Begin Boarding (local time). Format DDMMYYYYHHMMSS
Date and Time of End Boarding (local time). Format DDMMYYYYHHMMSS
Flight Service Type
Aircraft Type (preferably code IATA otherwise ICAO)
Flight delay codes
Disembarking Gate
Chute number (if available)
Boarding Satus
Schedule Date and time (UTC). Format DDMMYYYYHHMMSS
Estimated Date and Time (UTC). Format DDMMYYYYHHMMSS
Internal Estimated Date and Time (UTC). Format DDMMYYYYHHMMSS. Only
available for authorized subscribers.
Control Date and time (UTC). Format DDMMYYYYHHMMSS
Touchdown or Take Off Date and Time (UTC). Format DDMMYYYYHHMMSS
Date and Time of Blocks On/Off (UTC). Format DDMMYYYYHHMMSS
Date and Time of Begin Boarding (UTC). Format DDMMYYYYHHMMSS
Date and Time of End Boarding (UTC). Format DDMMYYYYHHMMSS
GTO Gate Open, BOR Boarding, FNC Final Call, GCL Gate
Closed, GTA Gate at, GTG Go to gate, NGT New Gate
Second range of Check Ins (Example: 204-206) Second Terminal (if
exists)

Second Boarding Gate (Example: 204) Second Terminal (if exists)


Second Arrival Belt Second Terminal (if exists)

OUTSYSTEMS 2012

15/42

ANA Aeroportos de Portugal, S.A.

GateStatus2

char

BeginBoardingDateTime2

char

14

EndBoardingDateTime2

char

14

BeginBoardingDateTimeUTC2

char

14

EndBoardingDateTimeUTC2
Mixed
RotationKey
CreationDateTime
OriginOrDestination
Status
Nature
OperationType
Classification
Runway
SeatNumber
Vias
AirlineCodeICAO
ContraMarca

char

14

bool
int
char
char
char
char
char
char
char

14
4
1
3
2
2
10

int
char
char
char

80
3
14

GTO Gate Open, BOR Boarding, FNC Final Call, GCL Gate
Closed, GTA Gate at, GTG Go to gate, NGT New Gate
Date/Time of Begin Boarding (local time). Format DDMMYYYYHHMMSS
Gate 2
Date/Time of End Boarding (local time). Format DDMMYYYYHHMMSS Gate
2
Date and Time of Begin Boarding (UTC). Format DDMMYYYYHHMMSS Gate
2
Date and Time of End Boarding (UTC). Format DDMMYYYYHHMMSS Gate 2
Flight on two terminals - Boolean
URNO of the Arrival for Departures Same as URNO for Arrivals
Creation Date and time (UTC). Format DDMMYYYYHHMMSS
Origin or Destination Airport Code (preferably IATA otherwise ICAO)
X-Cancelled; O-Operating; S-Scheduled;
Flight Nature
Flight Operation type
Flight Classification
Runway used
Number of seats available
All Vias List separated by ;
Airline Code ICAO
Customs Authority unique code

4.3. Lookups
Flight Type
Code
D
G
N
O
S
T
X

Description
Diverted
Ground Movement
No Operated
Operating
Scheduled
Towing
Canceled

Service Type
Code
A
B
C
D
E
F
K
L
N
O
P
T
U

Description
Mail/Cargo
SERVICE TYPE for TESTS
Passenger Charter
Air Taxi
Foreign State
Mail/Cargo regular
Training
Search and Rescue
Medical Services
Special Events
Position
Training and formations
Air Work

OUTSYSTEMS 2012

16/42

ANA Aeroportos de Portugal, S.A.

V
W
X
Y
Z

Private
Military
Technical Scale
Emergency
Portuguese State

Nature
Code
111
112
113
114
211
212
213
311
312
411
511
512
513
611
612
711
712
911

Description
Passenger Scheduled
Passenger Additional Flight
Passenger Charter
Passenger Charter Requiring Special
Handling
Cargo / Mail Schedule
Cargo / Mail Additional Flight
Cargo / Mail Charter
Txi Flight
Aerial Work
Private
Search and Rescue
Medical Care and Assistance
Emergency
Portuguese AirForce
Foreign AirForce
Portugese State
Foreign State
Other Movements

Operation Type
Code
1
2
3
4
5
6
7
8
9

Description
Commercial
Technical Stop
Alternate
Forced Return
Ferry
Leisure or Tourism
Test, Instruction, Training
Positioning
Others

Classification
Code
1
2
3
4

Description
International Flight
Flights Within Schengen Area
Intra-EU Flights Outside Schengen Area
Local Flights

OUTSYSTEMS 2012

17/42

ANA Aeroportos de Portugal, S.A.

4.4.

Subscriptions Life Cycle

A subscription can be in one of the following status:


Pending
Active (not started)
Active (started)
Disabled
Pending
Immediately after a Subscription is created or edited a process called
CheckConn is activated. This process checks if the Channel specific
information provided in the subscription is valid by performing one of the
following actions (depending on the chosen channel):

Email An email with an activation link is sent to the first email


address provided. The client must follow this link to successfully
complete the CheckConn process.
FTP A status command is sent to the FTP server. If the
command completes without errors the process is successful.
Web Service The Callback CheckConn method is called. If this
method returns True the process is Successful.

By doing this, the Resource Broker prevents common misspelling mistakes


in addresses and passwords and provides a more reliable guarantee that all
active subscriptions are able to receive the Flight Airport Information Data.
If the process is not successful the subscription turns into the pending
status and will not receive any update. Subscriber must then re-check the
provided information and correct any mistakes. After the CheckConn
process is successful the subscriptions turns into the active status.
Active (not started)
Subscriptions in the active (not started) status have successfully completed
the CheckConn process but the Subscription start date hasnt yet been
reached. No updates are sent and the subscription may still be edited.
Active (started)
When the Subscription start date is reached the subscription turns into the
active (started) status. Updates are sent and the subscription can no longer
be edited.
Note: the subscriber will start receiving information at 19:00, with the
flights of the following day.
Disabled
A subscription can be disabled either by an explicit action from the
subscriber or if the end date has been reached. A disabled subscription
doesnt receive updates and cannot be edited.

OUTSYSTEMS 2012

18/42

ANA Aeroportos de Portugal, S.A.

4.5. Cloning a Subscription


Resource Broker offers a cloning feature that allows the client to easily copy
complex subscriptions. To use it, simply select any pending, active or
disabled subscription and press the clone button. A new fully filled
subscription form is presented allowing the client to further customize it.

5. Subscribing to Public Arrivals &


Departures Information
The Public Arrivals & Departures Information is divided into 4 information
types:
Airlines with public flights: has information about the airline
companies that operated public flights from the previous day to the
next day, from the point of view of each ANA airport.
Airports of origin/destination/via of public flights: has
information about the airports of origin, or destination, or via, of
public flights from the previous day to the next day, from the point
of view of each ANA airport.
Cities of origin/destination/via of public flights: has
information about the cities of origin, or destination, or via, of
public flights from the previous day to the next day, from the point
of view of each ANA airport.
Public flights current status: has information about the current
status of the public flights. The available flights are from the
previous day to the next day.

5.1. Airlines with public flights (action


GetAirlines)
To access for the airline companies that operated public flights from the
previous day to the next day, from the point of view of each ANA airport,
you shall call the Resource Brokers Web Service defined at

OUTSYSTEMS 2012

19/42

ANA Aeroportos de Portugal, S.A.

Appendix IV Resource Broker Web Service WSDL Contract for Public


airlines, airports and airports cities information.
Note that this is mainly static information that only changes once a day
(except in error recovery situations). We recommend you to cache this
information in your application accordingly.
The input parameters are:
SubscriptionId number of your subscription, provided to you
by ANA.
FlightsDayWindow - reference day to look for airlines. Send 0 to
get the airlines related to flights from yesterday to tomorrow.
ANAAirport - ANA's airport code from which to look for the
airlines. Send empty to get from all the ANA's airports.
The output parameters are:
[List of] Airlines a list of airlines that operated public flights,
according to the input parameters. The airline is a structure defined
of:
o AirlineId Resource Brokers internal key of the airline.
o IATA IATA code of the airline.
o ICAO ICAO code of the airline.
o Name airlines name (according to IATA naming
convention)

5.2. Airports of origin/destination/via of


public flights (action GetAirports)
To access for the airports of origin, or destination, or via, of public flights
from the previous day to the next day, from the point of view of each ANA
airport, you shall call the Resource Brokers Web Service defined at

OUTSYSTEMS 2012

20/42

ANA Aeroportos de Portugal, S.A.

Appendix IV Resource Broker Web Service WSDL Contract for Public


airlines, airports and airports cities information.
Note that this is mainly static information that only changes once a day
(except in error recovery situations). We recommend you to cache this
information in your application accordingly.
The input parameters are:
SubscriptionId number of your subscription, provided to you
by ANA.
FlightsDayWindow - reference day to look for airports. Send 0 to
get the airlines related to flights from yesterday to tomorrow.
ANAAirport - ANA's airport code from which to look for the
airports. Send empty to get from all the ANA's airports.
MovType - movement type: A for arrival, D for departure. Send
empty string for any.
The output parameters are:
[List of] Airports a list of airports of origin/destination/via of
public flights, according to the input parameters. The airport is a
structure defined of:
o AirportId Resource Brokers internal key of the airport.
o IATA IATA code of the airport.
o ICAO ICAO code of the airport.
o Name airports name (according to IATA naming
convention)
o City airports city name
o Country airports country

5.3. Cities of origin/destination/via of public


flights (action GetCities)
To access for the cities of origin, or destination, or via, of public flights
from the previous day to the next day, from the point of view of each ANA
airport, you shall call the Resource Brokers Web Service defined at

OUTSYSTEMS 2012

21/42

ANA Aeroportos de Portugal, S.A.

Appendix IV Resource Broker Web Service WSDL Contract for Public


airlines, airports and airports cities information.
Note that this is mainly static information that only changes once a day
(except in error recovery situations). We recommend you to cache this
information in your application accordingly.
The input parameters are:
SubscriptionId number of your subscription, provided to you
by ANA.
FlightsDayWindow - reference day to look for airports cities.
Send 0 to get the cities related to flights from yesterday to
tomorrow.
ANAAirport - ANA's airport code from which to look for the
cities. Send empty to get from all the ANA's airports.
MovType - movement type: A for arrival, D for departure. Send
empty string for any.
The output parameters are:
[List of] Cities a list of cities of origin/destination/via of public
flights, according to the input parameters. The city is a structure
defined of:
o Name airports city name

5.4. Public flights current status in extended


mode (action GetFlights)
To access for the current status of public flights, you shall call the Resource
Brokers Web Service defined at

OUTSYSTEMS 2012

22/42

ANA Aeroportos de Portugal, S.A.

Appendix V Resource Broker Web Service WSDL Contract for Public


arrival and departure flights information.
This action returns one record per operating flight and per code share. For
example, for flight TP 494 with code-shares JKK9454, NI2472,
AP1494, the action returns four records, with the field OperatingFlightNr
always equal to TP 494, and FlightNr populated with TP 494, JKK9454,
NI2472, AP1494 in the 1st, 2nd, 3rd and 4th record, respectively.
Note that Resource Broker only returns information about flight from -24h
to +24h.
The input parameters are:
SubscriptionId number of your subscription, provided to you
by ANA.
MaxResults - Maximum number of flights to return.
StartIndex - Start flights retrieval from this value (usually starts
with 0, then with MaxResult, then with MaxResult*2, when the
user scrolls).
FlightNr - searches for the flight number. Send empty string for
any.
StartFrom - start flights retrieval from this date.
EndDate retrieve flights up to this date.
AirlineId - search flight of the selected airline. Send 0 for any.
OrigDestAirport - Airport IATA code of origin/destination. Send
empty string for any.
ANAAirport - ANA's airport code from which to look for the
flights. Send empty to get from all the ANA's airports.
MovType - movement type: A for arrival, D for departure. Send
empty string for any.
OrigDestCity - City of origin/destination. Send empty string for
any.
FlightId - Searches for the flight by its internal Id. Send 0 for any.
Locale Returns the remarks in the specified language. Use PT
for Portuguese, EN for English or ES for Spanish.
The output parameters are:
FlightsList - [List of] FlightInfo a list of flights, filtered
according to the input parameters. The flight info is a structure
defined of:
o FlightId id of the flight
o ANAAirport ANA's airport code of the flight.
o MovType A for arrival, D for departure.
o OperatingFlightNr Flight number of the operating
flight.
o FlightNr Flight number or code share of the operating
flight.
o AirlineName airlines name, according to IATA.
o OriginDest City of origin (for arrivals) or destination
(for departures).
o Via City of via.
o ScheduleDatetimeLocal Flight schedule datetime, in
local time.

OUTSYSTEMS 2012

23/42

ANA Aeroportos de Portugal, S.A.

EstimatedDatetimeLocal Flight public estimated


datetime, in local time.
o ActualDatetimeLocal Local time of airplane take-off or
landing
o Remarks Flights remarks, in the language specified by
Locale.
HasMoreFlights - Returns true if there are more flights then
MaxResult, for the given filters, false otherwise.
o

5.5. Public flights current status in short mode


(action GetFlightsByOpFlightNr)
To access for the current status of public flights, you shall call the Resource
Brokers Web Service defined at

OUTSYSTEMS 2012

24/42

ANA Aeroportos de Portugal, S.A.

Appendix V Resource Broker Web Service WSDL Contract for Public


arrival and departure flights information.
This action returns one record per operating flight. For example, for flight
TP 494 with code-shares JKK9454, NI2472, AP1494, the action returns
one record, with the field FlightNr populated with TP 494, and
CodeShare populated with JKK9454/NI2472/AP1494.
Note that Resource Broker only returns information about flight from -24h
to +24h.
The input parameters are:
SubscriptionId number of your subscription, provided to you
by ANA.
MaxResults - Maximum number of flights to return.
StartIndex - Start flights retrieval from this value (usually starts
with 0, then with MaxResult, then with MaxResult*2, when the
user scrolls).
FlightNr - searches for the flight number. Send empty string for
any.
StartFrom - start flights retrieval from this date.
EndDate retrieve flights up to this date.
AirlineId - search flight of the selected airline. Send 0 for any.
OrigDestAirport - Airport IATA code of origin/destination. Send
empty string for any.
ANAAirport - ANA's airport code from which to look for the
flights. Send empty to get from all the ANA's airports.
MovType - movement type: A for arrival, D for departure. Send
empty string for any.
OrigDestCity - City of origin/destination. Send empty string for
any.
FlightId - Searches for a list of flights by their internal Id (comma
separated values). Send empty for any.
Locale Returns the remarks in the specified language. Use PT
for Portuguese, EN for English or ES for Spanish.
The output parameters are:
FlightsList - [List of] FlightInfoByOpFlightNr a list of
flights, filtered according to the input parameters. The flight info is
a structure defined of:
o FlightId id of the flight
o ANAAirport ANA's airport code of the flight.
o MovType A for arrival, D for departure.
o FlightNr Flight number of the flight.
o AirlineName airlines name, according to IATA.
o OriginDest City of origin (for arrivals) or destination
(for departures).
o Via City of via.
o ScheduleDatetimeLocal Flight schedule datetime, in
local time.
o EstimatedDatetimeLocal Flight public estimated
datetime, in local time.
o ActualDatetimeLocal Local time of airplane take-off or
landing

OUTSYSTEMS 2012

25/42

ANA Aeroportos de Portugal, S.A.

Remarks Flights remarks, in the language specified by


Locale.
o CodeShare List of codeshares for this flight, separated
by a /.
o RemarksCode a code for each type of remark (1 for
Boarding, 2 for Closed, 3 for Departed, 4 for arrived, 5 for
estimated, 6 for canceled)
HasMoreFlights - Returns true if there are more flights then
MaxResult, for the given filters, false otherwise.
LastUpdate returns the date/time of the last update of the data.
o

OUTSYSTEMS 2012

26/42

ANA Aeroportos de Portugal, S.A.

6. Appendix I Client Web Service


WSDL Contract for Schedule or Flight
Airport Infrastructure change notification
Note: The Client should replace MyServer with the client server name
and MyVirtualDir with the clients Web Service Virtual Directory.
If you were unable to copy/paste the contract definition please request it to
the Resource Broker Administration Team.
<?xml version="1.0" encoding="utf-8" ?>
- <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:s0="http://www.outsystems.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://MyVirtualDir/ResourceBroker/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://MyVirtualDir/ResourceBroker/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
- <types>
- <s:schema elementFormDefault="qualified"
targetNamespace="http://www.outsystems.com">
- <s:element name="CheckConn">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="Subscription" type="s:int" />
<s:element minOccurs="0" maxOccurs="1"
name="Secret" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="CheckConnResponse">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="Result" type="s:boolean" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="ScoreDataAvailable">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="Subscription" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="ScoreDataAvailableResponse">
<s:complexType />
</s:element>
- <s:element name="ResourceDataAvailable">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="Subscription" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="ResourceDataAvailableResponse">
<s:complexType />

OUTSYSTEMS 2012

27/42

ANA Aeroportos de Portugal, S.A.

</s:element>
</s:schema>
</types>
<message name="CheckConnSoapIn">
<part name="parameters" element="s0:CheckConn" />
</message>
<message name="CheckConnSoapOut">
<part name="parameters" element="s0:CheckConnResponse" />
</message>
<message name="ScoreDataAvailableSoapIn">
<part name="parameters" element="s0:ScoreDataAvailable" />
</message>
<message name="ScoreDataAvailableSoapOut">
<part name="parameters" element="s0:ScoreDataAvailableResponse" />
</message>
<message name="ResourceDataAvailableSoapIn">
<part name="parameters" element="s0:ResourceDataAvailable" />
</message>
<message name="ResourceDataAvailableSoapOut">
<part name="parameters" element="s0:ResourceDataAvailableResponse" />
</message>
<portType name="ResourceBrokerSoap">
- <operation name="CheckConn">
<input message="tns:CheckConnSoapIn" />
<output message="tns:CheckConnSoapOut" />
</operation>
- <operation name="ScoreDataAvailable">
<input message="tns:ScoreDataAvailableSoapIn" />
<output message="tns:ScoreDataAvailableSoapOut" />
</operation>
- <operation name="ResourceDataAvailable">
<input message="tns:ResourceDataAvailableSoapIn" />
<output message="tns:ResourceDataAvailableSoapOut" />
</operation>
</portType>
<binding name="ResourceBrokerSoap" type="tns:ResourceBrokerSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
- <operation name="CheckConn">
<soap:operation
soapAction="http://MyVirtualDir/ResourceBroker/CheckConn"
style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="ScoreDataAvailable">
<soap:operation
soapAction="http://MyVirtualDir/ResourceBroker/ScoreDataAvailab
le" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
- <operation name="ResourceDataAvailable">
<soap:operation
soapAction="http://MyVirtualDir/ResourceBroker/ResourceDataAvai
lable" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>

OUTSYSTEMS 2012

28/42

ANA Aeroportos de Portugal, S.A.

</operation>
</binding>
- <service name="ResourceBroker">
- <port name="ResourceBrokerSoap" binding="tns:ResourceBrokerSoap">
<soap:address
location="http://MyServer/MyVirtualDir/ResourceBroker.asmx" />
</port>
</service>
</definitions>

OUTSYSTEMS 2012

29/42

ANA Aeroportos de Portugal, S.A.

7. Appendix II Resource Broker Web


Service WSDL Contract for Schedule
information
Address:
http://reb.ana.pt/resourcebroker/ScoreData.asmx?WSDL

<?xml version="1.0" encoding="UTF-8"?>


<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://ResourceBroker/ScoreData/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s0="http://www.outsystems.com"
xmlns:tns="http://ResourceBroker/ScoreData/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:s="http://www.w3.org/2001/XMLSchema"><wsdl:types><s:schema
targetNamespace="http://www.outsystems.com"
elementFormDefault="qualified"><s:element
name="getData"><s:complexType><s:sequence><s:element name="Subscription"
type="s:int" maxOccurs="1" minOccurs="1"/><s:element name="Secret"
type="s:string" maxOccurs="1"
minOccurs="0"/></s:sequence></s:complexType></s:element><s:element
name="getDataResponse"><s:complexType><s:sequence><s:element name="Data"
type="s0:ArrayOfScore" maxOccurs="1"
minOccurs="0"/></s:sequence></s:complexType></s:element><s:complexType
name="ArrayOfScore"><s:sequence><s:element name="Score" type="s0:Score"
maxOccurs="unbounded" minOccurs="0"
nillable="true"/></s:sequence></s:complexType><s:complexType
name="Score"><s:sequence><s:element name="TransactionId" type="s:int"
maxOccurs="1" minOccurs="1"/><s:element name="LastTransaction" type="s:int"
maxOccurs="1" minOccurs="1"/><s:element name="FlightStatus" type="s:string"
maxOccurs="1" minOccurs="0"/><s:element name="FlightSeason" type="s:string"
maxOccurs="1" minOccurs="0"/><s:element name="FlightCoordinatedAirport"
type="s:string" maxOccurs="1" minOccurs="0"/><s:element name="ArrCarrier"
type="s:string" maxOccurs="1" minOccurs="0"/><s:element name="ArrFlightNumber"
type="s:string" maxOccurs="1" minOccurs="0"/><s:element name="DepCarrier"
type="s:string" maxOccurs="1" minOccurs="0"/><s:element
name="DepFlightNumber" type="s:string" maxOccurs="1"
minOccurs="0"/><s:element name="StartPeriod" type="s:string" maxOccurs="1"
minOccurs="0"/><s:element name="EndPeriod" type="s:string" maxOccurs="1"
minOccurs="0"/><s:element name="Weekday" type="s:string" maxOccurs="1"
minOccurs="0"/><s:element name="SeatCapacity" type="s:string" maxOccurs="1"
minOccurs="0"/><s:element name="AircraftType_IATA" type="s:string"
maxOccurs="1" minOccurs="0"/><s:element name="AircraftType_ICAO"
type="s:string" maxOccurs="1" minOccurs="0"/><s:element
name="OriginAirport_IATA" type="s:string" maxOccurs="1"
minOccurs="0"/><s:element name="PreviousAirport_IATA" type="s:string"
maxOccurs="1" minOccurs="0"/><s:element name="OriginAirport_ICAO"
type="s:string" maxOccurs="1" minOccurs="0"/><s:element
name="PreviousAirport_ICAO" type="s:string" maxOccurs="1"

OUTSYSTEMS 2012

30/42

ANA Aeroportos de Portugal, S.A.

minOccurs="0"/><s:element name="Sta" type="s:string" maxOccurs="1"


minOccurs="0"/><s:element name="Std" type="s:string" maxOccurs="1"
minOccurs="0"/><s:element name="OverIndicator" type="s:string" maxOccurs="1"
minOccurs="0"/><s:element name="NextAirport_IATA" type="s:string" maxOccurs="1"
minOccurs="0"/><s:element name="FinalAirport_IATA" type="s:string" maxOccurs="1"
minOccurs="0"/><s:element name="NextAirport_ICAO" type="s:string"
maxOccurs="1" minOccurs="0"/><s:element name="FinalAirport_ICAO"
type="s:string" maxOccurs="1" minOccurs="0"/><s:element name="ArrServiceType"
type="s:string" maxOccurs="1" minOccurs="0"/><s:element name="DepServiceType"
type="s:string" maxOccurs="1" minOccurs="0"/><s:element name="Frequency"
type="s:string" maxOccurs="1" minOccurs="0"/><s:element name="AcReg"
type="s:string" maxOccurs="1"
minOccurs="0"/></s:sequence></s:complexType></s:schema></wsdl:types><wsdl:
message name="getDataSoapIn"><wsdl:part name="parameters"
element="s0:getData"/></wsdl:message><wsdl:message
name="getDataSoapOut"><wsdl:part name="parameters"
element="s0:getDataResponse"/></wsdl:message><wsdl:portType
name="ScoreDataSoap"><wsdl:operation name="getData"><wsdl:input
message="tns:getDataSoapIn"/><wsdl:output
message="tns:getDataSoapOut"/></wsdl:operation></wsdl:portType><wsdl:binding
name="ScoreDataSoap" type="tns:ScoreDataSoap"><soap:binding
transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation
name="getData"><soap:operation style="document"
soapAction="http://ResourceBroker/ScoreData/getData"/><wsdl:input><soap:body
use="literal"/></wsdl:input><wsdl:output><soap:body
use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:binding
name="ScoreDataSoap12" type="tns:ScoreDataSoap"><soap12:binding
transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation
name="getData"><soap12:operation style="document"
soapAction="http://ResourceBroker/ScoreData/getData"/><wsdl:input><soap12:bo
dy use="literal"/></wsdl:input><wsdl:output><soap12:body
use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service
name="ScoreData"><wsdl:port name="ScoreDataSoap"
binding="tns:ScoreDataSoap"><soap:address
location="http://reb.ana.pt/resourcebroker/ScoreData.asmx"/></wsdl:port><wsdl:p
ort name="ScoreDataSoap12" binding="tns:ScoreDataSoap12"><soap12:address
location="http://reb.ana.pt/resourcebroker/ScoreData.asmx"/></wsdl:port></wsdl:s
ervice></wsdl:definitions>

OUTSYSTEMS 2012

31/42

ANA Aeroportos de Portugal, S.A.

8. Appendix III Resource Broker Web


Service WSDL Contract for Flight Airport
Infrastructure information
Address:
http://reb.ana.pt/resourcebroker/ResourceDataSubscription.asmx?WSDL
<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="http://ResourceBroker/ResourceDataSubscription/" xmlns:s0="http://www.outsystems.com"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://ResourceBroker/ResourceDataSubscription/">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Retrives resource data for a
given subscription.</wsdl:documentation>
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.outsystems.com">
<s:element name="getData">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Subscription" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="Secret" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getDataResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Data" type="s0:ArrayOfFlightResource"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfFlightResource">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="FlightResource" nillable="true"
type="s0:FlightResource"/>
</s:sequence>
</s:complexType>
<s:complexType name="FlightResource">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Id" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="CreationDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="FlightNr" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="MovType" type="s:string"/>

OUTSYSTEMS 2012

32/42

ANA Aeroportos de Portugal, S.A.

<s:element minOccurs="0" maxOccurs="1" name="ScheduleDateTime" type="s:string"/>


<s:element minOccurs="0" maxOccurs="1" name="OriginOrDestination" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Via" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="AircraftType" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ServiceType" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Status" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="StandCode" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ExitDoor" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ArrivalBelt" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Registration" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="CheckInCounters" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Chute" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Gate" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="EstimateDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ActualDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="BlockDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="CodeShare" type="s:string"/>
</s:sequence>
</s:complexType>
<s:element name="getDataExtended">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Subscription" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="Secret" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getDataExtendedResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Data" type="s0:ArrayOfFlightResourceExt"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfFlightResourceExt">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="FlightResourceExt" nillable="true"
type="s0:FlightResourceExt"/>
</s:sequence>
</s:complexType>
<s:complexType name="FlightResourceExt">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Id" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="Airport" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="URNO" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="FlightType" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="MovType" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Registration" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="AirlineCode" type="s:string"/>

OUTSYSTEMS 2012

33/42

ANA Aeroportos de Portugal, S.A.

<s:element minOccurs="0" maxOccurs="1" name="FlightNr" type="s:string"/>


<s:element minOccurs="0" maxOccurs="1" name="StandCode" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ArrivalBelt" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Gate" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="CheckInCounters" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="FlightDestination" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="FlightOrigin" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="EstimatedDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="EstimatedInternalDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ScheduleDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ControlDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ActualDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="CallSign" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Via" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="CodeShare" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="BlockDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="BeginBoardingDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="EndBoardingDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ServiceType" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="AircraftType" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="DelayCodes" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ExitDoor" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Chute" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="BoardingStatus" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ScheduleDateTimeUTC" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="EstimatedDateTimeUTC" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="EstimatedInternalDateTimeUTC" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ControlDateTimeUTC" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ActualDateTimeUTC" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="BlockDateTimeUTC" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="BeginBoardingDateTimeUTC" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="EndBoardingDateTimeUTC" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="GateStatus" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="CheckInCounters2" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Gate2" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ArrivalBelt2" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="GateStatus2" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="BeginBoardingDateTime2" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="EndBoardingDateTime2" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="BeginBoardingDateTimeUTC2" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="EndBoardingDateTimeUTC2" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="Mixed" type="s:boolean"/>
<s:element minOccurs="1" maxOccurs="1" name="RotationKey" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="CreationDateTime" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="OriginOrDestination" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Status" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Nature" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="OperationType" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Classification" type="s:string"/>

OUTSYSTEMS 2012

34/42

ANA Aeroportos de Portugal, S.A.

<s:element minOccurs="0" maxOccurs="1" name="Runway" type="s:string"/>


<s:element minOccurs="1" maxOccurs="1" name="SeatNumber" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="Vias" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="AirlineCodeICAO" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ContraMarca" type="s:string"/>
</s:sequence>
</s:complexType>
</s:schema>
</wsdl:types>
<wsdl:message name="getDataSoapIn">
<wsdl:part name="parameters" element="s0:getData"/>
</wsdl:message>
<wsdl:message name="getDataSoapOut">
<wsdl:part name="parameters" element="s0:getDataResponse"/>
</wsdl:message>
<wsdl:message name="getDataExtendedSoapIn">
<wsdl:part name="parameters" element="s0:getDataExtended"/>
</wsdl:message>
<wsdl:message name="getDataExtendedSoapOut">
<wsdl:part name="parameters" element="s0:getDataExtendedResponse"/>
</wsdl:message>
<wsdl:portType name="ResourceDataSubscriptionSoap">
<wsdl:operation name="getData">
<wsdl:input message="tns:getDataSoapIn"/>
<wsdl:output message="tns:getDataSoapOut"/>
</wsdl:operation>
<wsdl:operation name="getDataExtended">
<wsdl:input message="tns:getDataExtendedSoapIn"/>
<wsdl:output message="tns:getDataExtendedSoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ResourceDataSubscriptionSoap" type="tns:ResourceDataSubscriptionSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getData">
<soap:operation soapAction="http://ResourceBroker/ResourceDataSubscription/getData"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getDataExtended">
<soap:operation soapAction="http://ResourceBroker/ResourceDataSubscription/getDataExtended"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>

OUTSYSTEMS 2012

35/42

ANA Aeroportos de Portugal, S.A.

<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="ResourceDataSubscriptionSoap12" type="tns:ResourceDataSubscriptionSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getData">
<soap12:operation soapAction="http://ResourceBroker/ResourceDataSubscription/getData"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getDataExtended">
<soap12:operation soapAction="http://ResourceBroker/ResourceDataSubscription/getDataExtended"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ResourceDataSubscription">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Retrives resource data for a
given subscription.</wsdl:documentation>
<wsdl:port name="ResourceDataSubscriptionSoap" binding="tns:ResourceDataSubscriptionSoap">
<soap:address location="http://reb.ana.pt/resourcebroker/ResourceDataSubscription.asmx"/>
</wsdl:port>
<wsdl:port name="ResourceDataSubscriptionSoap12" binding="tns:ResourceDataSubscriptionSoap12">
<soap12:address location="http://reb.ana.pt/resourcebroker/ResourceDataSubscription.asmx"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

OUTSYSTEMS 2012

36/42

ANA Aeroportos de Portugal, S.A.

9. Appendix IV Resource Broker Web


Service WSDL Contract for Public airlines,
airports and airports cities information
Address:
http://reb.ana.pt/resourcebroker2/Lookups.asmx?WSDL
<?xml version="1.0" encoding="utf-8" ?>
- <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.outsystems.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://ResourceBroker2/Lookups/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://ResourceBroker2/Lookups/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsdl:types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://www.outsystems.com">
- <s:element name="GetAirports">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="FlightsDayWindow" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="ANAAirport" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="SubscriptionId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="MovType" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetAirportsResponse">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Airports" type="s0:ArrayOfAirportDefinition" />
</s:sequence>
</s:complexType>
</s:element>
- <s:complexType name="ArrayOfAirportDefinition">
- <s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AirportDefinition" nillable="true"
type="s0:AirportDefinition" />
</s:sequence>
</s:complexType>
- <s:complexType name="AirportDefinition">
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="AirportlId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="IATA" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ICAO" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="City" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Country" type="s:string" />
</s:sequence>
</s:complexType>
- <s:element name="GetAirlines">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="SubscriptionId" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="FlightsDayWindow" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="ANAAirport" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetAirlinesResponse">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Airlines" type="s0:ArrayOfAirlineDefinition" />

OUTSYSTEMS 2012

37/42

ANA Aeroportos de Portugal, S.A.

</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfAirlineDefinition">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AirlineDefinition" nillable="true"
type="s0:AirlineDefinition" />
</s:sequence>
</s:complexType>
<s:complexType name="AirlineDefinition">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="AirlineId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="IATA" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ICAO" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
</s:sequence>
</s:complexType>
<s:element name="GetCities">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="SubscriptionId" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="FlightsDayWindow" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="ANAAirport" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="MovType" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetCitiesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Cities" type="s0:ArrayOfCityDefinition" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfCityDefinition">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="CityDefinition" nillable="true"
type="s0:CityDefinition" />
</s:sequence>
</s:complexType>
<s:complexType name="CityDefinition">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
</s:sequence>
</s:complexType>
</s:schema>
</wsdl:types>
<wsdl:message name="GetAirportsSoapIn">
<wsdl:part name="parameters" element="s0:GetAirports" />
</wsdl:message>
<wsdl:message name="GetAirportsSoapOut">
<wsdl:part name="parameters" element="s0:GetAirportsResponse" />
</wsdl:message>
<wsdl:message name="GetAirlinesSoapIn">
<wsdl:part name="parameters" element="s0:GetAirlines" />
</wsdl:message>
<wsdl:message name="GetAirlinesSoapOut">
<wsdl:part name="parameters" element="s0:GetAirlinesResponse" />
</wsdl:message>
<wsdl:message name="GetCitiesSoapIn">
<wsdl:part name="parameters" element="s0:GetCities" />
</wsdl:message>
<wsdl:message name="GetCitiesSoapOut">
<wsdl:part name="parameters" element="s0:GetCitiesResponse" />
</wsdl:message>
<wsdl:portType name="LookupsSoap">
<wsdl:operation name="GetAirports">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Retrieves all airports associated
with any flights from the last FlightsDayWindow days, from the ANAAirport
airport</documentation>

OUTSYSTEMS 2012

38/42

ANA Aeroportos de Portugal, S.A.

<wsdl:input message="tns:GetAirportsSoapIn" />


<wsdl:output message="tns:GetAirportsSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetAirlines">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Retrieves all airlines associated
with any flights from the last FlightsDayWindow days, from the ANAAirport
airport</documentation>
<wsdl:input message="tns:GetAirlinesSoapIn" />
<wsdl:output message="tns:GetAirlinesSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetCities">
<wsdl:input message="tns:GetCitiesSoapIn" />
<wsdl:output message="tns:GetCitiesSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="LookupsSoap" type="tns:LookupsSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="GetAirports">
<soap:operation soapAction="http://ResourceBroker2/Lookups/GetAirports" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetAirlines">
<soap:operation soapAction="http://ResourceBroker2/Lookups/GetAirlines" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetCities">
<soap:operation soapAction="http://ResourceBroker2/Lookups/GetCities" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Lookups">
<wsdl:port name="LookupsSoap" binding="tns:LookupsSoap">
<soap:address location="http://reb.ana.pt/ResourceBroker2/Lookups.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

OUTSYSTEMS 2012

39/42

ANA Aeroportos de Portugal, S.A.

10. Appendix V Resource Broker Web


Service WSDL Contract for Public arrival
and departure flights information
Address:
http://reb.ana.pt/resourcebroker2/Flights.asmx?WSDL
<?xml version="1.0" encoding="utf-8" ?>
- <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.outsystems.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://ResourceBroker2/Flights/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://ResourceBroker2/Flights/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsdl:types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://www.outsystems.com">
- <s:element name="GetFlights">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="MaxResults" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="StartIndex" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="FlightNr" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="StartFrom" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="AirlineId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="OrigDestAirport" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ANAAirport" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="MovType" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="SubscriptionId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="OrigDestCity" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="FlightId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="Locale" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="EndDate" type="s:dateTime" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetFlightsResponse">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="FlightsList" type="s0:ArrayOfFlightInfo" />
<s:element minOccurs="1" maxOccurs="1" name="HasMoreFlights" type="s:boolean" />
</s:sequence>
</s:complexType>
</s:element>
- <s:complexType name="ArrayOfFlightInfo">
- <s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="FlightInfo" nillable="true"
type="s0:FlightInfo" />
</s:sequence>
</s:complexType>
- <s:complexType name="FlightInfo">
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="FlightId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="ANAAirport" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="MovType" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="OperatingFlightNr" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="FlightNr" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="AirlineName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="OriginDest" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Via" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="ScheduleDatetimeLocal" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="EstimatedDatetimeLocal" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="ActualDatetimeLocal" type="s:dateTime" />

OUTSYSTEMS 2012

40/42

ANA Aeroportos de Portugal, S.A.

<s:element minOccurs="0" maxOccurs="1" name="Remarks" type="s:string" />


</s:sequence>
</s:complexType>
<s:element name="GetFlightsByOpFlightNr">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="MaxResults" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="StartIndex" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="FlightNr" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="StartFrom" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="AirlineId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="OrigDestAirport" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ANAAirport" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="MovType" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="SubscriptionId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="OrigDestCity" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="FlightId" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Locale" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="EndDate" type="s:dateTime" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetFlightsByOpFlightNrResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="FlightsList"
type="s0:ArrayOfFlightInfoByOpFlightNr" />
<s:element minOccurs="1" maxOccurs="1" name="HasMoreFlights" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" name="LastUpdate" type="s:dateTime" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfFlightInfoByOpFlightNr">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="FlightInfoByOpFlightNr" nillable="true"
type="s0:FlightInfoByOpFlightNr" />
</s:sequence>
</s:complexType>
<s:complexType name="FlightInfoByOpFlightNr">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="FlightId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="ANAAirport" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="MovType" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="FlightNr" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="AirlineName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="OriginDest" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Via" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="ScheduleDatetimeLocal" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="EstimatedDatetimeLocal" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="ActualDatetimeLocal" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="Remarks" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="CodeShare" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="RemarksCode" type="s:int" />
</s:sequence>
</s:complexType>
</s:schema>
</wsdl:types>
<wsdl:message name="GetFlightsSoapIn">
<wsdl:part name="parameters" element="s0:GetFlights" />
</wsdl:message>
<wsdl:message name="GetFlightsSoapOut">
<wsdl:part name="parameters" element="s0:GetFlightsResponse" />
</wsdl:message>
<wsdl:message name="GetFlightsByOpFlightNrSoapIn">
<wsdl:part name="parameters" element="s0:GetFlightsByOpFlightNr" />
</wsdl:message>
<wsdl:message name="GetFlightsByOpFlightNrSoapOut">
<wsdl:part name="parameters" element="s0:GetFlightsByOpFlightNrResponse" />
</wsdl:message>
<wsdl:portType name="FlightsSoap">

OUTSYSTEMS 2012

41/42

ANA Aeroportos de Portugal, S.A.

- <wsdl:operation name="GetFlights">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Returns flights that matches
filters</documentation>
<wsdl:input message="tns:GetFlightsSoapIn" />
<wsdl:output message="tns:GetFlightsSoapOut" />
</wsdl:operation>
- <wsdl:operation name="GetFlightsByOpFlightNr">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Returns flights that matches filters only one line per flight (share codes are in the same line)</documentation>
<wsdl:input message="tns:GetFlightsByOpFlightNrSoapIn" />
<wsdl:output message="tns:GetFlightsByOpFlightNrSoapOut" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="FlightsSoap" type="tns:FlightsSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
- <wsdl:operation name="GetFlights">
<soap:operation soapAction="http://ResourceBroker2/Flights/GetFlights" style="document" />
- <wsdl:input>
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="GetFlightsByOpFlightNr">
<soap:operation soapAction="http://ResourceBroker2/Flights/GetFlightsByOpFlightNr"
style="document" />
- <wsdl:input>
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="Flights">
- <wsdl:port name="FlightsSoap" binding="tns:FlightsSoap">
<soap:address location="http://reb.ana.pt/ResourceBroker2/Flights.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

OUTSYSTEMS 2012

42/42

You might also like