Oracle® Hospitality OPERA Cloud Services
Developer’s Guide
Release 1.20
February 2016
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
This software and related documentation are provided under a license agreement containing
restrictions on use and disclosure and are protected by intellectual property laws. Except as
expressly permitted in your license agreement or allowed by law, you may not use, copy,
reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or
display any part, in any form, or by any means. Reverse engineering, disassembly, or
decompilation of this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be
error-free. If you find any errors, please report them to us in writing.
If this software or related documentation is delivered to the U.S. Government or anyone licensing it
on behalf of the U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated
software, any programs installed on the hardware, and/or documentation, delivered to U.S.
Government end users are "commercial computer software" pursuant to the applicable Federal
Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication,
disclosure, modification, and adaptation of the programs, including any operating system,
integrated software, any programs installed on the hardware, and/or documentation, shall be
subject to license terms and license restrictions applicable to the programs. No other rights are
granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications,
including applications that may create a risk of personal injury. If you use this software or
hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe,
backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its
affiliates disclaim any liability for any damages caused by use of this software or hardware in
dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be
trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC
trademarks are used under license and are trademarks or registered trademarks of SPARC
International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or
registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open
Group.
This software or hardware and documentation may provide access to or information about content,
products, and services from third parties. Oracle Corporation and its affiliates are not responsible
for and expressly disclaim all warranties of any kind with respect to third-party content, products,
and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle
Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to
your access to or use of third-party content, products, or services, except as set forth in an
applicable agreement between you and Oracle.
ii
Contents
1 Introduction .......................................................................................... v
Audience ................................................................................................................................. v
Documentation ....................................................................................................................... v
Revision History ............................................................................................................. v
2 Overview ........................................................................................... 2-1
OPERA Cloud Services ...................................................................................................... 2-1
What are Web Services? ..................................................................................................... 2-1
SOAP ............................................................................................................................. 2-1
Approach and Technologies .............................................................................................. 2-1
Specifications ................................................................................................................ 2-1
Developer Tools ........................................................................................................... 2-2
Server Location............................................................................................................. 2-2
3 Common Types and Namespaces ..................................................... 3-3
4 Use Cases ........................................................................................... 4-4
Reservation Service ............................................................................................................. 4-4
Type ............................................................................................................................... 4-4
WSDL............................................................................................................................. 4-4
Transport Protocol ....................................................................................................... 4-4
Reservation Service Methods (Operations) .............................................................. 4-5
Use Case 1: Create Reservation ......................................................................................... 4-5
Use Scenario.................................................................................................................. 4-5
Minimum Requirements for Creating a Reservation .............................................. 4-5
CreateReservation Request Parameters .................................................................... 4-6
CreateReservation Response Parameters ................................................................. 4-6
Sample Request Message ............................................................................................ 4-7
Sample Response Message ....................................................................................... 4-10
Use Case 2: Change Reservation ..................................................................................... 4-13
Use Scenario................................................................................................................ 4-13
Minimum Requirements for Changing a Reservation .......................................... 4-13
ChangeReservation Request Parameters ................................................................ 4-14
ChangeReservation Response Parameters ............................................................. 4-14
Sample Request Message .......................................................................................... 4-15
Sample Response Message ....................................................................................... 4-17
Use Case 3: Cancel Reservation ...................................................................................... 4-18
Use Scenario................................................................................................................ 4-18
Minimum Requirements for Cancelling a Reservation ........................................ 4-18
CancelReservation Request Parameters.................................................................. 4-18
CancelReservation Response Parameters ............................................................... 4-19
Contents
iii
Sample Request Message .......................................................................................... 4-19
Sample Response Message ....................................................................................... 4-20
5 Reservation Workflow .................................................................... 5-22
6 Testing Web Services ...................................................................... 6-23
Requirements ..................................................................................................................... 6-23
Using SoapUI ..................................................................................................................... 6-24
7 Glossary ........................................................................................... 7-35
iv
Contents
1
Introduction
This guide presents the Oracle Hospitality OPERA Cloud Services (OPERA Cloud) from
an integration perspective. It provides the information necessary for developers to
interface their applications with OPERA Cloud services and describes the design
approach, specifications, and integration methodologies.
Audience
This document is intended for web developers, programmers, and architects.
Documentation
Oracle Hospitality product documentation is available on the Oracle Help Center at
http://docs.oracle.com
Revision History
Date
February 2016
Introduction
Description of Change

Initial publication.
v
2
Overview
OPERA Cloud Services
OPERA Cloud Services uses a collection of Web services to provide client applications
with access to key functionality within the OPERA Cloud application. Its Web service
functions are accessible through standard Internet protocols and data formats such as
Simple Object Access Protocol (SOAP) over Hypertext Transfer Protocol (HTTP).
A Web Services Description Language (WSDL) file defines the application programmatic
Interface (API) for each Web service. An associated Extensible Markup Language (XML)
Schema Definition (XSD) language document formally describes the elements in each
service.
What are Web Services?
Similar to component-based development, Web services represent black-box
functionality that can be reused without needing to know how the service is
implemented. A Web service interface is defined strictly in terms of the messages that the
service accepts and generates. You can use a Web service to implement applications on
any platform in any programming language as long as the applications can create and
consume messages defined for the service interface.
Web services provide flexibility because they remove the need for applications to
programmatically understand each other.
SOAP
The Simple Object Access Protocol (SOAP) is a method of sharing messages between a
client and server. SOAP is a lightweight protocol intended for exchanging structured
information in a decentralized, distributed environment. It uses XML technologies to
define an extensible messaging framework, which provides a message construct that can
be exchanged over a variety of underlying protocols. The framework is independent of
any particular programming model and other implementation-specific semantics.
SOAP allows third-party developers to interface with OPERA Cloud using XML data
files over the Hypertext Transfer Protocol (HTTP). SOAP structures these XML files into
remote procedure calls.
Approach and Technologies
Specifications
OPERA Cloud uses JAX-WS 2.1, WSDL 1.1, and SOAP 1.1 specifications and is WS-I
Basic Profile 1.1 compliant. Each service has a Web Services Description Language
(WSDL) file from which you can generate stubs in the programming language of your
choice. A SOAP toolkit for your particular programming language generates the required
stubs and SOAP message for each method call to the server.
Overview
2-1
Developer Tools
You can use the following tools when developing and testing applications that consume
our Web services. This list is not comprehensive and only provides an example of what
you can use.

SOAP UI V5.1.3 or later for Web service testing

JAXB for XML binding

Java APIs for Java Proxy generation

wsimport for parsing a WSDL

XJC for XML to Java conversion
Server Location
There are multiple data centers that host OPERA Cloud. The specific customer
installation or hotel chain determines the location of the data center and the application
server you need to connect to when calling the services.
2-2
Overview
3
Common Types and Namespaces
When working with OPERA Cloud, you need to know the common types and common
namespaces shared by all services.
For example, the Reservation service uses the RSV (Reservation) namespace
(http://micros/opera/ws/RSV/v9_00). The RSV namespace includes all of the
Reservation Service Request (RQ) and Response (RS) types. Request (RQ) and Response
(RS) types are composed of multiple elements and attributes of complex or simple types
from the common namespace (http://micros/opera/ws/common/v9_00).
Although the common namespace includes simple and complex types used by all the
service namespaces and each service has access to all of these common types, a service
namespace does not necessarily use all of them.
Common Types and Namespaces
3-3
4
Use Cases
This section highlights use cases for the Reservation service to demonstrate how you can
integrate OPERA Cloud reservation functionality.
The following Reservation Service methods or operations describe the reservation
workflow: creating a reservation, changing a reservation, and canceling a reservation.
This section also explains the requirements for completing these operations.
Reservation Service
The Reservation service provides the capability to handle all reservation operations in
OPERA Cloud. This service includes Reservation methods for fetching, creating,
modifying, and cancelling a reservation. This also includes all related functionalities of a
reservation such as methods to create reservations, methods to retrieve rate information,
methods to change a reservation, methods for reinstating a reservation, and methods for
canceling a reservation.
Type
SOAP
WSDL
The Reservation Service WSDL provides the contents of the Reservation service requests
and responses. It also provides the URL of the Reservation XSD.
The location of the Reservation Service WSDL depends on your implementation and the
service end point you are using.
In the following WSDL example, replace the <SERVER_NAME/IP_ADDRESS:<PORT>
with your server name, IP Address, and Port number and replace the <SCHEMA_MAP>
with your server schema map.
http://<SERVER_NAME/IP_ADDRESS>:<PORT>/OPERA9WS/<SCHEMA_MAP>/O
peraReservationServices/ReservationService?wsdl
Transport Protocol
You must communicate SOAP messages using an HTTPS Posting Method. Use the
following HTTPS Posting Method to send requests to the application server.
4-4
POST
/OPERA9WS/opera/OperaReservationServices/ReservationService
Accept Encoding
gzip, deflate
Content Type
text/xml; charset=UTF-8
SOAP Action
http://micros/opera/ws/rsv/v9_00/FetchReservations
Use Cases
Reservation Service Methods (Operations)
The following operations enable an external client program to use the Reservation
Service API to send requests to the application server.
CreateReservation
Operation to create a new reservation in the property.
ChangeReservation
Operation to modify a reservation's details.
CancelReservation
Operation to cancel a reservation.
Upon receiving a request, the Reservation Service invokes the required business and
security logic to service the request and return an appropriate response.
Use Case 1: Create Reservation
Use Scenario
This operation allows you to book a reservation for a guest in a specific property.
When to call the method
You call this method when booking a reservation. In the application, the user selects the
Book It button.
Minimum Requirements for Creating a Reservation
You need to have the following data before a reservation can be created in the
application.

Resort ID

Stay Dates (arrival, departure)

Profile with a Profile ID

Room Stay Details (rate code, room type)

Rate Details (amount, market code, source code, guarantee code)

Payment Method
In a third-party Central Reservation System (CRS) scenario, you must call the
DownloadExternalProfile operation in the ProfileExternalService to download the Profile
ID from this system. This operation fetches the profile information from the external
system and inserts it into the database.
Use Cases
4-5
CreateReservation Request Parameters
The input of this method is the argument CreateReservationRQ. This argument is passed
to the CreateReservation method and has the structure defined by the following table.
Element
Type
Occurs
SEQUENCE
Description
1..1
OperaContext
OperaContextType
0..1
Refer to Generic common
types document.
Reservations
HotelReservationsType
0..1
A collection of reservations to
be created.
FetchInstructions
anyType (restriction)
0..1
A collection of instructions to
be returned as a set of
reservation information in a
successful reservation.
ReservationsInstruct
ionsType
ReservationsInstructions
Type
0..1
A collection of reservations to
be created.
CreateReservation Response Parameters
The output of this method is the argument CreateReservationRS. This argument is
passed to the CreateReservation method and has the structure defined by the following
table.
Element
Type
SEQUENCE
4-6
Occurs
Description
1..1
Success
SuccessType
0..1
Refer to Generic common types
document.
Warnings
WarningsType
0..1
Refer to Generic common types
document.
Errors
ErrorsType
0..1
Refer to Generic common types
document.
Reservations
HotelReservations
Type
0..1
A collection of reservations (with
information based on the fetch
instructions in the request) that were
successfully created.
Use Cases
Sample Request Message
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header> </S:Header>
<S:Body>
<ns2:CreateReservationRQ xmlns="http://micros/opera/ws/common/v9_00"
xmlns:ns2="http://micros/opera/ws/rsv/v9_00"
xmlns:ns3="http://micros/opera/ws/clearCache/v9_00"
xmlns:ns4="http://micros/opera/ws/ping/v9_00">
<OperaContext>
<CROCode>DFLT_CHA</CROCode>
<Language>E</Language>
<RunningApplication>ORS</RunningApplication>
<TerminalId>UNDEFINED</TerminalId>
<LogLevel>FINER</LogLevel>
<ExternalSystem>OPERA9UI</ExternalSystem>
<UseLocal>false</UseLocal>
</OperaContext>
<ns2:Reservations>
<Reservation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
HotelCode=" HOTEL1" ResStatus="Reserved"
xsi:type="HotelReservationInstructionType">
<RoomStay>
<RoomRates>
<RoomRate End="2015-11-11" MarketCode="TRA" NumberOfUnits="1"
PseudoRoom="false" RatePlanCode="COW" RoomType="DLK"
RoomTypeCharged="DLK" SourceOfBusiness="VOI" Start="2015-11-11">
<Rates>
<Rate End="2015-11-11" Start="2015-11-11">
<Base AmountBeforeTax="167.99" CurrencyCode="USD"/>
<Discount/>
<RequiredPoints/>
</Rate>
</Rates>
<StayProfiles>
<StayProfile ResProfileType="Company"/>
<StayProfile ResProfileType="Group"/>
<StayProfile ResProfileType="TravelAgent"/>
<StayProfile ResProfileType="ReservationContact"/>
<StayProfile ResProfileType="BillingContact"/>
<StayProfile ResProfileType="Source"/>
</StayProfiles>
<GuestCounts Adults="1" Children="0">
<ChildAges/>
<ChildBuckets Bucket1Count="0" Bucket2Count="0"
Bucket3Count="0" Bucket4Count="0" Bucket5Count="0"/>
Use Cases
4-7
</GuestCounts>
</RoomRate>
</RoomRates>
<GuestCounts Adults="1" Children="0">
<ChildAges/>
<ChildBuckets Bucket1Count="0" Bucket2Count="0" Bucket3Count="0"
Bucket4Count="0" Bucket5Count="0"/>
</GuestCounts>
<TimeSpan>
<StartDate>2015-11-11</StartDate>
<EndDate>2015-11-12</EndDate>
</TimeSpan>
<ExpectedTimes ResExpectedArrivalTime="2015-11-11T00:00:00-05:00"
ResExpectedDepartureTime="2015-11-12T00:00:00-05:00"/>
<Guarantee OnHold="true"/>
</RoomStay>
<ResGuests>
<ResGuest>
<ProfileInfo>
<ProfileIDList>
<UniqueID ID="5543347" ID_Context="OPERA" Type="Profile"/>
</ProfileIDList>
<Profile>
<Customer Language="E">
<PersonName Language="E" NameType="Primary">
<GivenName>Bill</GivenName>
<Surname>Jones</Surname>
</PersonName>
<PersonName NameType="Alternate"/>
</Customer>
<Addresses>
<AddressInfo>
<UniqueID ID="3273921" ID_Context="OPERA"
Type="Address"/>
<Address Type="HOME">
<AddressLine/>
<AddressLine/>
<AddressLine/>
<AddressLine/>
<CountryName Code="US"/>
<Language>E</Language>
</Address>
</AddressInfo>
</Addresses>
<Telephones>
<TelephoneInfo>
<UniqueID ID="5267125" ID_Context="OPERA"
Type="Communication"/>
4-8
Use Cases
<Telephone PhoneNumber="2394304109"
PhoneTechType="PHONE" PhoneUseType="BUSINESS"/>
</TelephoneInfo>
</Telephones>
</Profile>
</ProfileInfo>
<ArrivalTransport/>
<DepartureTransport/>
</ResGuest>
</ResGuests>
<ResProfiles>
<ResProfile ResProfileType="Company"/>
<ResProfile ResProfileType="Group"/>
<ResProfile ResProfileType="TravelAgent"/>
<ResProfile ResProfileType="ReservationContact"/>
<ResProfile ResProfileType="Source"/>
<ResProfile ResProfileType="Addressee"/>
</ResProfiles>
<Comments/>
<ReservationPaymentMethods>
<ReservationPaymentMethod FolioView="1" PaymentMethod="CA">
<EmailFolioInfo EmailFolio="false"/>
</ReservationPaymentMethod>
</ReservationPaymentMethods>
<OverrideInstructions/>
</Reservation>
</ns2:Reservations>
<ns2:FetchInstructions>
<ns2:FetchInstruction>Reservation</ns2:FetchInstruction>
<ns2:FetchInstruction>ReservationPaymentMethods</ns2:FetchInstruction>
<ns2:FetchInstruction>Preferences</ns2:FetchInstruction>
<ns2:FetchInstruction>Memberships</ns2:FetchInstruction>
<ns2:FetchInstruction>Comments</ns2:FetchInstruction>
<ns2:FetchInstruction>Packages</ns2:FetchInstruction>
<ns2:FetchInstruction>InventoryItems</ns2:FetchInstruction>
</ns2:FetchInstructions>
</ns2:CreateReservationRQ>
</S:Body>
</S:Envelope>
Use Cases
4-9
Sample Response Message
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header/>
<S:Body>
<ns2:CreateReservationRS xmlns="http://micros/opera/ws/common/v9_00"
xmlns:ns2="http://micros/opera/ws/rsv/v9_00"
xmlns:ns3="http://micros/opera/ws/clearCache/v9_00"
xmlns:ns4="http://micros/opera/ws/ping/v9_00">
<Success/>
<ns2:Reservations>
<Reservation AllowAutoCheckin="false" AllowMobileCheckout="false"
AllowMobileViewFolio="false" AllowPreRegistration="false"
ComputedResStatus="Reserved" CreateBusinessDate="2015-07-06"
CreateDateTime="2015-10-16T11:02:07-04:00"
CreatorID="DEVTEST" HasOpenFolio="false" HotelCode="HOTEL1"
LastModifierID="DEVTEST" LastModifyDateTime="2015-10-16T11:02:07-04:00"
PreRegistered="false" PrintRate="true" ResStatus="Reserved"
RoomStayReservation="true"
UpgradeEligible="false" WalkIn="false">
<ReservationIDList>
<UniqueID ID="2815333" ID_Context="OPERA" Type="Reservation"/>
<UniqueID ID="5840274" ID_Context="OPERA" Type="Confirmation"/>
</ReservationIDList>
<SourceOfSale SourceCode="DFLT_CHA" SourceType="CRO"/>
<RoomStay PrintRate="true" RoomNumberLocked="false">
<CurrentRoomInfo>
<RoomType>DLK</RoomType>
</CurrentRoomInfo>
<RoomRates>
<RoomRate BOGODiscount="false" Complimentary="false"
DiscountAllowed="true" End="2015-11-11" FixedRate="false" HouseUseOnly="false"
MarketCode="TRA" MarketCodeDescription="TRANSIENT" NumberOfUnits="1"
PseudoRoom="false"
RatePlanCode="COW" RoomType="DLK"
RoomTypeCharged="DLK" SourceOfBusiness="VOI" SourceOfBusinessDescription="Call
Center" Start="2015-11-11" SuppressRate="false">
<Total AmountBeforeTax="167.99"/>
<TotalPoints/>
<Rates>
<Rate End="2015-11-11" Start="2015-11-11">
<Base AmountBeforeTax="167.99" CurrencyCode="USD"/>
<ShareDistributionInstruction>Full</ShareDistributionInstruction>
<Total AmountBeforeTax="167.99"/>
<RequiredPoints/>
</Rate>
4-10
Use Cases
</Rates>
<StayProfiles>
<StayProfile ResProfileType="Company"/>
<StayProfile ResProfileType="Group"/>
<StayProfile ResProfileType="TravelAgent"/>
<StayProfile ResProfileType="ReservationContact"/>
<StayProfile ResProfileType="BillingContact"/>
<StayProfile ResProfileType="Source"/>
</StayProfiles>
<GuestCounts Adults="1" Children="0">
<ChildAges/>
<ChildBuckets Bucket1Count="0" Bucket2Count="0"
Bucket3Count="0" Bucket4Count="0" Bucket5Count="0"/>
</GuestCounts>
<ForeignExchange/>
</RoomRate>
</RoomRates>
<GuestCounts Adults="1" Children="0">
<ChildAges/>
<ChildBuckets Bucket1Count="0" Bucket2Count="0" Bucket3Count="0"
Bucket4Count="0" Bucket5Count="0"/>
</GuestCounts>
<TimeSpan>
<StartDate>2015-11-11</StartDate>
<EndDate>2015-11-12</EndDate>
</TimeSpan>
<ExpectedTimes ResExpectedArrivalTime="2015-11-11T00:00:00-05:00"
ResExpectedDepartureTime="2015-11-12T00:00:00-05:00"/>
<OriginalTimeSpan/>
<Guarantee GuaranteeCode="O9ONHOLD" OnHold="true"
ShortDescription="Used for On Hold Reservation in OPERA9"/>
<Total AmountBeforeTax="167.99"/>
<TotalPoints Points="0"/>
<MultiValueAttrs/>
</RoomStay>
<ResGuests>
<ResGuest Primary="true">
<ProfileInfo>
<ProfileIDList>
<UniqueID ID="5543347" ID_Context="OPERA" Type="Profile"/>
</ProfileIDList>
<Profile ProfileType="Guest">
<Customer Language="E">
<PersonName NameType="Primary">
<GivenName>Bill</GivenName>
<Surname>Jones</Surname>
</PersonName>
<PersonName NameType="External"/>
Use Cases
4-11
</Customer>
<Addresses>
<AddressInfo>
<UniqueID ID="3273921" ID_Context="OPERA"
Type="Address"/>
<Address PrimaryInd="true" Type="HOME">
<AddressLine/>
<AddressLine/>
<AddressLine/>
<AddressLine/>
<CountryName Code="US"/>
<Language>E</Language>
</Address>
</AddressInfo>
</Addresses>
<Telephones>
<TelephoneInfo>
<UniqueID ID="5267125" ID_Context="OPERA"
Type="Communication"/>
<Telephone PhoneNumber="2394304109"
PhoneTechType="PHONE" PhoneUseType="BUSINESS" PrimaryInd="true"/>
</TelephoneInfo>
</Telephones>
</Profile>
</ProfileInfo>
<ArrivalTransport DateTime="2015-11-11T00:00:00-05:00"
TransportationReqd="false"/>
<DepartureTransport DateTime="2015-11-12T00:00:00-05:00"
TransportationReqd="false"/>
<VisaInfo/>
</ResGuest>
</ResGuests>
<SharedGuests/>
<ReservationPackages/>
<InventoryItems/>
<Comments/>
<PreferenceCollection>
<PreferenceType PrefType="SPECIALS" PrefTypeDescription="Specials
Global- SID- elisa">
<Preference PreferenceId="73344">
<PrefValue>CH</PrefValue>
<Description>Champagne</Description>
<Global>false</Global>
<Hotels> HOTEL1</Hotels>
</Preference>
</PreferenceType>
<PreferenceType PrefType="ROOM FEATURES"
PrefTypeDescription="Room Features"/>
4-12
Use Cases
</PreferenceCollection>
<ReservationMemberships/>
<ReservationPaymentMethods>
<ReservationPaymentMethod FolioView="1" PaymentMethod="CA"/>
</ReservationPaymentMethods>
<Cashiering TransactionsPosted="false">
<BillingPrivileges AutoSettlement="true" AutoSettlementFreq="5.5"
DirectBillAuthorized="false" PostStayCharging="false" PostingRestriction="true"
PreStayCharging="false" VideoCheckout="false"/>
</Cashiering>
<ExtSystemSync>false</ExtSystemSync>
</Reservation>
</ns2:Reservations>
</ns2:CreateReservationRS>
</S:Body>
</S:Envelope>
Use Case 2: Change Reservation
Use Scenario
This operation allows you to modify or update the reservation details for a guest in a
specific property.
When to call the method
You call this method when a reservation needs to be updated. In the application, the user
selects the Save Changes button.
Minimum Requirements for Changing a Reservation
You need to have the following data before a reservation can be changed in the
application.
Use Cases

Resort ID

Stay Dates (arrival, departure)

Profile with a Profile ID

Room Stay Details (rate code, room type)

Rate Details (amount, market code, source code, guarantee code)

Payment Method
4-13
ChangeReservation Request Parameters
The input of this method is the argument ChangeReservationRQ. This argument is
passed to the ChangeReservation method and has the structure defined by the following
table.
Element
Type
Occurs
SEQUENCE
Description
1..1
OperaContext
OperaContextType
0..1
Refer to Generic common
types document.
Reservation
HotelReservationInstructi
onType
0..1
A collection of reservations
with information that needs
to be changed.
ReservationsInstru
ctionsType
ReservationsInstructions
Type
0..1
A collection of reservations
to be created.
ChangeReservation Response Parameters
The output of this method is the argument ChangeReservationRS. This argument is
passed to the ChangeReservation method and has the structure defined by the following
table.
Element
Type
SEQUENCE
4-14
Occurs
Description
1..1
Success
SuccessType
0..1
Refer to Generic common types
document.
Warnings
WarningsType
0..1
Refer to Generic common types
document.
Errors
ErrorsType
0..1
Refer to Generic common types
document.
Reservations
HotelReservations
Type
0..1
Reservation information for the
reservations that have been
changed.
MasterInfoList
anyType
(restriction)
0..1
A list of information for the
configured codes that are used in
the reservation information.
Use Cases
Sample Request Message
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header> </S:Header>
<S:Body>
<ns2:ChangeReservationRQ xmlns="http://micros/opera/ws/common/v9_00"
xmlns:ns2="http://micros/opera/ws/rsv/v9_00"
xmlns:ns3="http://micros/opera/ws/clearCache/v9_00"
xmlns:ns4="http://micros/opera/ws/ping/v9_00">
<OperaContext>
<CROCode>DFLT_CHA</CROCode>
<Language>E</Language>
<RunningApplication>ORS</RunningApplication>
<TerminalId>UNDEFINED</TerminalId>
<LogLevel>FINER</LogLevel>
<ExternalSystem>OPERA9UI</ExternalSystem>
<UseLocal>false</UseLocal>
</OperaContext>
<ns2:Reservations>
<ns2:Reservation HotelCode="HOTEL1" MarkAsRecentlyAccessed="true"
ResStatus="Reserved" WalkIn="false">
<ReservationIDList>
<UniqueID ID="2815333" ID_Context="OPERA" Type="Reservation"/>
<UniqueID ID="5840274" ID_Context="OPERA" Type="Confirmation"/>
</ReservationIDList>
<RoomStay>
<GuestCounts Adults="1" Children="0"/>
<TimeSpan>
<StartDate>2015-11-11</StartDate>
<EndDate>2015-11-12</EndDate>
</TimeSpan>
<ExpectedTimes ResExpectedArrivalTime="2015-11-11T00:00:00-05:00"
ResExpectedDepartureTime="2015-11-12T00:00:00-05:00"/>
<Guarantee GuaranteeCode="4P" OnHold="false"/>
</RoomStay>
<ResGuests>
<ResGuest>
<ProfileInfo>
<ProfileIDList>
<UniqueID ID="5543347" ID_Context="OPERA" Type="Profile"/>
</ProfileIDList>
<Profile>
<Customer Language="E">
<PersonName Language="E" NameType="Primary">
<GivenName>Bill</GivenName>
<Surname>Jones</Surname>
</PersonName>
Use Cases
4-15
<PersonName NameType="Alternate"/>
</Customer>
<Addresses>
<AddressInfo>
<UniqueID ID="3273921" ID_Context="OPERA"
Type="Address"/>
<Address Type="HOME">
<AddressLine/>
<AddressLine/>
<AddressLine/>
<AddressLine/>
<CountryName Code="US"/>
<Language>E</Language>
</Address>
</AddressInfo>
</Addresses>
<Telephones>
<TelephoneInfo>
<UniqueID ID="5267125" ID_Context="OPERA"
Type="Communication"/>
<Telephone PhoneNumber="2394304109"
PhoneTechType="PHONE" PhoneUseType="BUSINESS"/>
</TelephoneInfo>
</Telephones>
</Profile>
</ProfileInfo>
<ArrivalTransport DateTime="2015-11-11T00:00:00-05:00"
TransportationReqd="false"/>
<DepartureTransport DateTime="2015-11-12T00:00:00-05:00"
TransportationReqd="false"/>
</ResGuest>
</ResGuests>
<ResProfiles>
<ResProfile ResProfileType="Company"/>
<ResProfile ResProfileType="Group"/>
<ResProfile ResProfileType="TravelAgent"/>
<ResProfile ResProfileType="ReservationContact"/>
<ResProfile ResProfileType="Source"/>
<ResProfile ResProfileType="Addressee"/>
</ResProfiles>
<Comments/>
<PreferenceCollection>
<PreferenceType PrefType="SPECIALS">
<Preference>
<PrefValue>CH</PrefValue>
</Preference>
</PreferenceType>
</PreferenceCollection>
4-16
Use Cases
</ns2:Reservation>
</ns2:Reservations>
</ns2:ChangeReservationRQ>
</S:Body>
</S:Envelope>
Sample Response Message
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header/>
<S:Body>
<ns2:ChangeReservationRS xmlns="http://micros/opera/ws/common/v9_00"
xmlns:ns2="http://micros/opera/ws/rsv/v9_00"
xmlns:ns3="http://micros/opera/ws/clearCache/v9_00"
xmlns:ns4="http://micros/opera/ws/ping/v9_00">
<Success/>
<ns2:Reservations>
<Reservation CreateDateTime="2015-10-16T11:02:07-04:00"
HotelCode="HOTEL1" ResStatus="Requested">
<ReservationIDList>
<UniqueID ID="2815333" ID_Context="OPERA" Type="Reservation"/>
<UniqueID ID="5840274" ID_Context="OPERA" Type="Confirmation"/>
</ReservationIDList>
<RoomStay>
<TimeSpan>
<StartDate>2015-11-11</StartDate>
<EndDate>2015-11-12</EndDate>
</TimeSpan>
<ExpectedTimes ResExpectedArrivalTime="2015-11-11T00:00:00-05:00"
ResExpectedDepartureTime="2015-11-12T00:00:00-05:00"/>
<Guarantee GuaranteeCode="4P"/>
</RoomStay>
<ResGuests>
<ResGuest Primary="true">
<ProfileInfo>
<ProfileIDList>
<UniqueID ID="5543347" ID_Context="OPERA" Type="Profile"/>
</ProfileIDList>
<Profile>
<Customer>
<PersonName NameType="Primary">
<GivenName>Bill</GivenName>
<Surname>Jones</Surname>
</PersonName>
</Customer>
</Profile>
Use Cases
4-17
</ProfileInfo>
</ResGuest>
</ResGuests>
<ExtSystemSync>false</ExtSystemSync>
<Traces/>
</Reservation>
</ns2:Reservations>
</ns2:ChangeReservationRS>
</S:Body>
</S:Envelope>
Use Case 3: Cancel Reservation
Use Scenario
This operation allows you to cancel a reservation for a guest in a specific property.
When to call the method
You call this method when a reservation needs to be cancelled. In the application, the
user selects the Cancel button.
Minimum Requirements for Cancelling a Reservation
You need to have the following data before a reservation can be cancelled in the
application.

Resort ID

Stay Dates (arrival, departure)

Profile with a Profile ID

Room Stay Details (rate code, room type)

Rate Details (amount, market code, source code, guarantee code)

Payment Method

Cancellation Reason

Cancellation Date
CancelReservation Request Parameters
The input of this method is the argument CancelReservationRQ. This argument is passed
to the CancelReservation method and has the structure defined by the following table.
Element
Type
SEQUENCE
4-18
Occurs
Description
1..1
OperaContext
OperaContextType
0..1
Refer to Generic common
types document.
Reason
CancellationReasonType
0..1
The reason for cancelling the
reservation.
Reservations
anyType (restriction)
0..1
A collection of reservations
to be cancelled.
Use Cases
CancelReservation Response Parameters
The output of this method is the argument CancelReservationRS. This argument is
passed to the CancelReservation method and has the structure defined by the following
table.
Element
Type
SEQUENCE
Occurs
Description
1..1
Success
SuccessType
0..1
Refer to Generic common types
document.
Warnings
WarningsType
0..1
Refer to Generic common types
document.
Errors
ErrorsType
0..1
Refer to Generic common types
document.
CxlActivityLog
anyType
(restriction)
0..1
Cancellation information includes
information regarding Reason or
Date of Cancellation.
Reservations
anyType
(restriction)
0..1
A collection of reservations that
were cancelled.
Sample Request Message
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header> </S:Header>
<S:Body>
<ns2:CancelReservationRQ xmlns="http://micros/opera/ws/common/v9_00"
xmlns:ns2="http://micros/opera/ws/rsv/v9_00"
xmlns:ns3="http://micros/opera/ws/ping/v9_00"
xmlns:ns4="http://micros/opera/ws/clearCache/v9_00" VerificationOnly="false">
<OperaContext>
<HotelCode> HOTEL1</HotelCode>
<Language>E</Language>
<RunningApplication>PMS</RunningApplication>
<TerminalId>UNDEFINED</TerminalId>
<LogLevel>FINER</LogLevel>
<ExternalSystem>OPERA9UI</ExternalSystem>
<UseLocal>false</UseLocal>
</OperaContext>
<ns2:Reason Code="FLIGHT">
<Description>Flight Cancelled</Description>
</ns2:Reason>
<ns2:Reservations>
<ns2:Reservation HotelCode="HOTEL1">
<ReservationIDList>
Use Cases
4-19
<UniqueID ID="39415" ID_Context="OPERA" Type="Reservation"/>
</ReservationIDList>
<CxlInstr DeleteResTraces="false"/>
<ReservationLockHandle>38001</ReservationLockHandle>
</ns2:Reservation>
</ns2:Reservations>
</ns2:CancelReservationRQ>
</S:Body>
</S:Envelope>
Sample Response Message
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header/>
<S:Body>
<ns2:CancelReservationRS xmlns="http://micros/opera/ws/common/v9_00"
xmlns:ns2="http://micros/opera/ws/rsv/v9_00"
xmlns:ns3="http://micros/opera/ws/ping/v9_00"
xmlns:ns4="http://micros/opera/ws/clearCache/v9_00">
<Success/>
<ns2:CxlActivityLog>
<ns2:CxlActivity>
<Reason Code="FLIGHT">
<Description>Flight Cancelled</Description>
</Reason>
<CxlDate>2015-10-27</CxlDate>
<UserID>918</UserID>
<UserName>DAVID@HOTEL1.COM</UserName>
<CancellationIDList>
<UniqueID ID="64212" ID_Context="OPERA" Type="Cancellation"/>
</CancellationIDList>
</ns2:CxlActivity>
</ns2:CxlActivityLog>
<ns2:Reservations>
<ns2:Reservation HotelCode="HOTEL1" ResStatus="Cancelled">
<ReservationIDList>
<UniqueID ID="39415" ID_Context="OPERA" Type="Reservation"/>
<UniqueID ID="58524" ID_Context="OPERA" Type="Confirmation"/>
<UniqueID ID="64212" ID_Context="OPERA" Type="Cancellation"/>
</ReservationIDList>
<RoomStay>
<TimeSpan>
<StartDate>2015-05-31</StartDate>
<EndDate>2015-06-03</EndDate>
</TimeSpan>
<RoomType>STDK</RoomType>
<RateAmount Amount="100" CurrencyCode="USD"/>
4-20
Use Cases
<RateSuppressed>false</RateSuppressed>
<Guarantee GuaranteeCode="6PM"/>
</RoomStay>
<ResGuest>
<GivenName>Bill</GivenName>
<Surname>Jones</Surname>
<GuestRestricted>false</GuestRestricted>
</ResGuest>
<CxlInstr DeleteResTraces="true" Status="OPERA_CXL_NO"/>
</ns2:Reservation>
</ns2:Reservations>
</ns2:CancelReservationRS>
</S:Body>
</S:Envelope>
Use Cases
4-21
5
Reservation Workflow
The following flowchart describes the details of the reservation workflow in OPERA
Cloud and shows the order in which operations are called.
Availability Search
Criteria (required)
 Dates
 Guest Number
 Number of Rooms
 Resort ID
Search for Room & Rate Availability
(required)
Calls the Availability
FetchHotelAvailability
operation
Search for a new
room & rate
Are Rates
Available?
NO
YES
External CRS?
NO
YES
Call
ProfileExternalService
to Download the Profile
Fetch Profile
Calls the
ProfileService
FetchProfiles
operation
Select
Profile
(required)
Book It
5-22
Calls the
ReservationService
CreateReservation
operation
Reservation Workflow
6
Testing Web Services
You can use SoapUI to test a Web service operation implemented with the
wss_username_token_over_ssl Oracle Web Services Management (OWSM) security
policy. This section details the steps to use SoapUI to test such a Web service.
Requirements

You must have the appropriate WSDL URL from the Web service publisher as in
the following example:
https://nplhildmw1.ft.micros.com:9015/OPERA9WS/opera/OperaReservation
Services/ReservationService?WSDL

You must have a Personal Information Exchange (.pfx) file (for example,
o9machine.pfx) and password from the Web service publisher. You must save
this file in a folder on the machine where SoapUI is installed.
Testing Web Services
6-23
Using SoapUI
1.
From the Start menu, select All Programs, select SmartBear, and then select
soapUI.
Figure 61
6-24
Start Menu displays a scrollable list of folders and links
Testing Web Services
2.
From the File menu, select New soapUI Project to create a new project.
Figure 62
Testing Web Services
File Menu displays a list of SoapUI project file options
6-25
3.
In the New soapUI Project window, enter a name into the Project Name field,
and paste the WSDL URL into the Initial WSDL/WADL field. Select OK to
create the new project.
Figure 63 New soapUI Project Window displays the fields for creating a
new SoapUI project
6-26
Testing Web Services
4.
Right-click your project name under the soapUI Navigator pane and select
Show Project View.
Figure 64
Testing Web Services
soapUI Navigator Pane displays all of your SoapUI projects
6-27
5.
Select the WS-Security Configurations tab, select the Keystores Tab, and
select the + button.
Figure 65 WS-Security Configurations Tab and Keystores Tab for adding a
Keystore to the configuration
6.
Select the pfx file for your source file. Under the Keystores tab, enter the pfx
password into the Password field and enter an alias with the same password
into the Alias Password field. The Web service publisher provides the pfx
password.
Figure 66
6-28
Keystores Tab displays the Password and Alias Password fields
Testing Web Services
7. Select the Outgoing WS-Security Configurations tab, select the + button, and
create a key configuration.
Figure 67 Outgoing WS-Security Configurations Tab for configuring
outgoing Web service security
Testing Web Services
6-29
8.
At the bottom of the window, configure the Username, Signature, and
Timestamp for the same key.
Figure 68 Outgoing WS-Security Configurations Tab displaying the
Username Configuration fields
6-30
Testing Web Services
Figure 69 Outgoing WS-Security Configurations Tab displaying the
Signature Configuration fields
Testing Web Services
6-31
Figure 610 Outgoing WS-Security Configurations Tab displaying the
Timestamp Configuration fields
9.
Select the Incoming-WS Security Configurations tab and select your account.
Figure 611 Incoming-WS Security Configurations Tab for configuring
incoming Web service security
6-32
Testing Web Services
10. Open the Web service operation you would like to test by expanding it and
selecting the request. The operations are located on the Navigator pane under
Projects.
Figure 612
operations
Testing Web Services
Navigator Pane displays all the available Web service
6-33
11. Select the Aut button (located at the bottom of the window) and select the
Outgoing WSS and Incoming WSS.
Figure 613
Aut Button
12. Execute the request by selecting the play button at the top, left corner of the
window.
Figure 614
6-34
Play Button
Testing Web Services
7
Glossary
SOAP
Simple Object Access Protocol (SOAP) is a lightweight protocol
intended for exchanging structured information in a decentralized,
distributed environment. SOAP uses XML technologies to define an
extensible messaging framework, which provides a message
construct that can be exchanged over a variety of underlying
protocols. The framework is designed to be independent of any
particular programming model and other implementation specific
semantics.
XML
Extensible Markup Language (XML) describes a class of data objects
called XML documents and partially describes the behavior of
computer programs that process them.
XML documents are made up of storage units called entities, which
contain either parsed or unparsed data. Parsed data is made up of
characters, some of which form character data, and some of which
form markup. Markup encodes a description of the document's
storage layout and logical structure. XML provides a mechanism to
impose constraints on the storage layout and logical structure.
URI
Uniform Resource Identifier (URI) is the generic term for all types of
names and addresses that refers to objects on the World Wide Web.
XSD
XML Schema Definition (XSD) is the current standard schema
language for all XML documents and specifies how to formally
describe the elements in an XML document.
WSDL
Web Services Description Language (WSDL) is an XML format for
describing network services as a set of endpoints operating on
messages containing either document-oriented or procedure-oriented
information. The operations and messages are described abstractly
and then are bound to a concrete network protocol and message
format to define an endpoint. Related concrete endpoints are
combined into abstract endpoints (services).
Glossary
7-35
Download PDF
Similar pages