previous

IDeaS V5i Currency Exchange API

IDeaS, a third-party external interface used for Yield or Revenue Management, is connected to OPERA PMS through direct calls to OPERA's IDeaS API. The V5i Currency Exchange API allows the V5i client to collect currency exchange information for those properties who are working in multiple currencies. To enable this functionality, IDeaS makes the V5i Currency Exchange API call providing basic information. In response, OPERA creates a session specific temporary table containing the Resort ID, Resort Base Currency Code, the Yield Currency Code, the Begin Date, and the Exchange Rate. IDeaS then fetches records from this table; all conversion and interpretation of revenue amounts takes place on the IDeaS side.

For example, assuming the ODH property's base/local currency code is GBP and by the current exchange rate, .5586 GBP = 1 USD. When the API call is made to OPERA, IDeaS provides resort code ODH plus a start date and the number of days for which currency exchange information should be provided. In response, OPERA provides the following information in a temporary table:

Resort: ODH
Base Currency Code: GBP
Converting Currency Code: USD
Begin Date: 2008-01-01 10:00 AM
Exchange Rate: .5586

For a given Converting Currency Code, multiple rows will be returned by OPERA should there be multiple exchange rate Begin Dates and times (i.e., current, future, and historical). The Begin Date includes a time component (OPERA V5.0 and later) since exchange rates can vary over the course of a day. When multiple exchange rates are returned, IDeaS will use the Begin Date and time to determine which exchange rate for each Converting Currency Code to apply to its calculations.

Note: The exchange rate for the POST exchange type is used by the Currency Exchange API because the POST exchange type is common to both PMS and ORS. It is important that the ORS be subscribed to the PMS Exchange Rates business events to ensure that daily exchange rate updates are available to ORS.

Procedure

This API will populate a temporary table (session specific) which must then be queried to fetch the required data.

get_exchange_rate

(in_resort IN VARCHAR2,
in_start_date IN DATE,
in_no_of_days IN NUMBER,
out_msg OUT VARCHAR2);

When the table has been created and populated, the out_msg "SUCCESS" is returned; if the table cannot be created and populated, a relevant error message is returned.

Example:

Fetch data for property ODH for currency EUR starting from April 21, 2007 for 365 days.

declare

vmsg VARCHAR2(200);

begin

v5i_currency_exchange.get_exchange_rate('ODH',to_date('21-apr-2007','dd-mon-rrrr'),365,vmsg);

If vmsg = 'SUCCESS' then

--- query the temp_v5i_currency_exchange table.

end if;

end;

Note: The above API call will populate the temp_v5i_currency_exchange table with exchange records for conversion of the resort-defined base/local currency into all currencies configured for the property (e.g., EUR, AUD, CAD, etc.), on the passed date and number of days forward.

Table Structures

TEMP_V5I_CURRENCY_EXCHANGE

Field

Data Type

Notes

RESORT

VARCHAR2(20)

Property code

BASE_CURRENCY_CODE

VARCHAR2(20)

Property base/local currency ("to" currency)

CURRENCY_CODE

VARCHAR2(20)

Converting currency ("from" currency)

BEGIN_DATE

DATE

Start date and time for the exchange rate

EXCHANGE_RATE

NUMBER

Exchange rate