التوثيق · واجهة PMS

Paramétrage OXI → Bridg_

Le guide de mise en service d'une interface Oracle OPERA (OXI) 2 voies vers Bridg_ : licence, interface, communication, versions de schéma, paramètres et recette — à remettre à l'intégrateur.

Staginghttps://staging.bridgchannel.appv1.0 · 2026-09-11<?Label BRIDG|DOC|1.0|NEW?>

هذا التوثيق التقني متاح باللغة الفرنسية فقط.

Mettre en service une interface Oracle Xchange (OXI) 2 voies entre OPERA 5 on-premise et Bridg_. Chaque valeur ci-dessous a été relevée sur une installation OXI 5.5 réelle et validée contre les schémas XML officiels d'Oracle. À remettre tel quel à l'intégrateur OPERA de l'établissement.

Avant de commencer

Cinq points à réunir avant de toucher à un écran OXI. Le premier conditionne le calendrier de toute l'installation.

Point Ce qu'il faut
OPERA OPERA 5 on-premise. OPERA Cloud n'est pas couvert par ce modèle de branchement.
OXI Module servlet HTTP/S. La passerelle PL/SQL (dépréciée) ne fait ni HTTPS ni messages > 32 Ko.
Licence OPX_GN2 — Opera Xchange Generic 2-way, add-on Oracle licencié par interface et par propriété. Sans elle, les Business Events (le flux OPERA → Bridg_) ne s'activent pas.
Réseau Sortie HTTPS (443) depuis le serveur OXI vers staging.bridgchannel.app. Aucun flux entrant : OXI est toujours le client, toutes les connexions partent de l'hôtel.
Côté Bridg_ Une connexion créée avec le dialecte opera-oxi et le code resort OPERA. Vous récupérez alors le connectionId et le secret.

1. Créer l'interface

OXI → Interface Configuration → New Interface.

Champ Valeur
Interface OXI-2W — Opera Xchange Generic 2-way
OPERA Property Le code resort OPERA (ex. ATLALG). C'est la valeur externalPropertyCode saisie dans Bridg_ — les deux doivent coïncider.
External System Property Le code de la base externe, propre à Bridg_ (ex. BRIDG). OXI le renverra dans chaque requête sous propertyName.
Message Format XML
Data Flow 2 sens : OPERA → External et External → OPERA
Delta Mode Y — n'émettre que les changements, pas l'état complet à chaque fois
Deletion Indicator Caractère ~ · Numérique -99999 · Date 12/12/1800 (valeurs usuelles ; Bridg_ ne s'en sert pas mais OXI l'exige)
INTERFACE CONFIGURATION · NEW INTERFACE Interface OXI-2W OPERA Property ATLALG External System Property BRIDG Message Format XML Data Flow Two-Way (OPERA ⇄ External) Delta Mode Y
En cuivre : les deux codes à décider. OPERA Property doit être identique à l'externalPropertyCode de la connexion Bridg_ ; External System Property est un code neuf, propre à cette interface.

2. Méthodes de communication

Interface Configuration → Comm Methods, à renseigner dans les deux sens. C'est ici que vit l'URL de Bridg_ — identique pour les deux sens :

https://staging.bridgchannel.app/api/pms/v1/connections/<connectionId>/messages?key=<secret>

OXI ajoute lui-même &propertyName=…&zipData=… à chaque requête — il détecte la query existante et concatène avec &, donc le paramètre key reste intact.

Sens Comm Type Mode Sleep Time Timeout
Opera → External (OXI pousse) HTTP/S Client .01 min (≈ 0,6 s) 60 s
External → Opera (OXI vient chercher) HTTP/S Client 1 à 2 min 60 s
COMM METHODS · OPERA → EXTERNAL SYSTEM Comm Method HTTP/S Communication Mode Client URL …/connections/<connectionId>/messages?key=<secret> Use Client Certificate No Sleep Time · Time Out .01 60
L'écran HTTP/S n'a aucun champ identifiant / mot de passe : le secret voyage dans l'URL via ?key=. Même URL dans le sens External → Opera, avec un Sleep Time de 1 à 2 min.

3. Versions de schéma XML

Edit Interface → XML Version. Alignez chaque type sur la version que Bridg_ traduit.

Type Version Namespace Statut Bridg_
RATE V6 rate.fidelio.6.0 traduit
RTAV V4 rtav.fidelio.4.0 traduit
RESERVATION V5 reservation.fidelio.5.0 traduit
RESTRICTION V4 restriction.opera.4.0 traduit
RESULT V4 result.fidelio.4.0 traduit
RAVL / RAVR V2 ravl/ravr.fidelio.2.0 RAVL oui · RAVR refusé
PROFILE V5 lu dans les réservations
INVENTORY · ALLOTMENT · STAY · HURDLE non traduits

4. Paramètres clés

Trois réglages décident si l'interface parle ou reste muette.

Paramètre Valeur Pourquoi
Change_To_Inventory_Generates RTAV La disponibilité doit voyager en RTAV. En INVENTORY, Bridg_ ne la traduit pas.
Business Events Actifs Sans eux, OPERA n'émet aucun changement live vers Bridg_.
Restrictions RAVL ou RESTRICTION Par code tarifaire (RAVL) ou tarif × type (RESTRICTION). RAVR (par type seul) est refusé.
EDIT INTERFACE · PARAMETERS ! Business Events Inactive ← l'état à NE PAS laisser : OPERA reste muet Business Events Active (prompt au 1ᵉʳ Edit → Yes) Change_To_Inventory_ Generates RTAV
Le bandeau rouge « Business Events Inactive » est la cause n°1 d'une interface muette. Le prompt d'activation n'apparaît qu'au premier Edit Interface — voir la note ci-dessous.

5. Correspondance des codes

Interface Configuration → Conversion Codes. Le pont entre les codes OPERA et ceux de Bridg_.

Relevez les codes de types de chambre et de codes tarifaires réellement distribués, puis mappez-les dans Bridg_ (écran Interface PMS → Correspondance des codes).

  • Seuls les tarifs et types de chambre effectivement distribués ont besoin d'un mapping — inutile de traiter les 200+ codes internes.
  • Un code non mappé est refusé item par item (le reste du message passe) et apparaît dans le journal Bridg_ avec le code fautif : UNMAPPED_UNIT_TYPE ou UNMAPPED_RATE.
  • Le mapping se complète au fil de l'eau : ajoutez le code manquant côté Bridg_, relancez, l'item passe.

6. Recette

Cinq contrôles, dans l'ordre, avant de passer la connexion en ACTIVE.

# Contrôle Attendu
1 Ping. Au redémarrage du processeur OXI, le GET de drainage sort. 200 avec Content-Length: 0 (file vide) — visible dans le log OXI.
2 Resync (Utilities → Resync) : Rates, Restriction, Inventory sur une plage de dates courte. Messages PROCESSED côté Bridg_, calendrier qui reflète les valeurs.
3 Date de fin des prix. Poussez un tarif du 01 au 03. Si la nuit du 03 manque, réglez rateEndDateInclusive à false côté Bridg_.
4 Réservation OPERA → Bridg_. Créez une résa à la réception. Elle apparaît dans Bridg_ (source PMS), départs 0 nuit inclus.
5 Boucle retour. Créez une résa de test dans Bridg_. OXI la récupère (Message Status → From External System) et renvoie un RESULT SUCCESS.

Limites connues

Ce que Bridg_ refuse volontairement plutôt que de le traduire à moitié — un item refusé est toujours journalisé, jamais perdu en silence.

  • Tarifs par durée de séjour (tiered) et prix week-end : refusés.
  • Restrictions par classe de chambre, catégorie de tarif, hôtel entier ou bloc : refusées (granularité non supportée).
  • RAVR (restriction par type de chambre) : refusé — passez par RAVL ou RESTRICTION.
  • Prix : seule l'occupation double est distribuée aujourd'hui.

Dépannage

Les symptômes les plus fréquents et leur cause.

Symptôme Cause probable Correctif
Rien n'arrive dans Bridg_, calendrier vide Business Events inactifs, ou Change_To_Inventory_Generates ≠ RTAV, ou resync jamais lancé Étape 4, puis un resync (étape 6)
Le GET ne renvoie pas 200 / Content-Length: 0 URL ou ?key= erroné, ou connexion non trouvée Recopier l'URL de l'étape 2 ; vérifier connectionId et secret
401 Unauthorized Clé ?key= invalide Régénérer / recopier le secret côté Bridg_
RESULT FAILEDUNMAPPED_* Code type de chambre / tarif absent du mapping Ajouter le code dans Conversion Codes (étape 5)
RESULT FAILEDUNSUPPORTED_* Granularité non supportée (classe, hôtel, bloc, RAVR) Voir Limites connues ; émettre par tarif
400 MALFORMED_GZIP Corps annoncé gzip mais illisible (rare) Repasser zipData à N pour isoler
Erreur Oracle (ORA-…) au Save de l'interface Problème de base OPERA côté serveur, hors périmètre interface Escalader au DBA / à l'hébergeur OPERA