Skip Navigation
You need to enable JavaScript to run this app.
Sabre Red 360
24.4
SDK
Primary tabs
Description
Help
(active tab)
Resources
Sabre Red 360 Software Development Kit Help
Getting Started
Sabre Red 360 Software Development Kit Overview
Red Apps
Developer Resources
Technical Support
Legal Disclaimers and Red App Advisories
Red Apps FAQs
Copyright
Web Red Apps
Web Modules Overview
Setup for Web Red Apps Development
Setup Overview
Concierge
Offline Bundle
Concierge Installer
Web Modules Structure
Assets
i18n
Styles
Templates
Tests
Web Red Apps Development
Creating Web Module
Building Web Module
Running Web Module
Testing Web Module
Exporting Web Module
Workflow Extensions
Overview
Workflow Extension Points
Using Workflow Extensions
Timeout and Timeout Action
Extension point abort
UI Contributions
Command Helper Button
Decision Support Bar Tiles
Drawer Action Buttons
Nudge
Tile Widgets
Tile Widgets Overview
Air Availability Tile Widgets
Shopping Tile Widgets
Hotel Tile Widgets
Side Panels
Side Panels Overview
Custom Workflows Side Panel
Agency Admin Side Panel
Applications Side Panel
Web Module APIs
Custom Commands
Events
Logger
Sabre Red 360 Services
AgentProfileService
ConfigService
Display Graphical PNR
EnvironmentPublicService
EventBusService
ExternalServiceConnector
FormsService
Get PNR
Get PNR (Web API)
IAreaService
ICommandMessageService
ICustomFormsService
IEncodeDecodePublicService
IExternalCommunicationService
InterstitialService
IReservationService
ISeatMapService
ISoapApiService
PnrPublicService
Profile Prefs Refresh
PublicCslService
PublicModalsService
RestApiService
SrwAsyncApi
SrwSyncApi
Trip Summary Refresh
Trip Summary Refresh (Web API)
React Components
React Components Overview
Simple Dropdown
Select Widget
Srw Date Picker
Drag and Drop
Custom Form
Red App Cookbooks
External website communication
Using Redux
Local storage
Web Red Apps examples
com.sabre.redapp.example3.web.addpnr Sample
com.sabre.redapp.example3.web.command.message Sample
com.sabre.redapp.example3.web.forms.service Sample
com.sabre.redapp.example3.web.handlebar Sample
com.sabre.redapp.example3.web.persistence Sample
com.sabre.redapp.example3.web.multimodalflow Sample
com.sabre.redapp.example3.web.react.modal Sample
com.sabre.redapp.example3.web.seat.map Sample
com.sabre.redapp.example3.web.end.pnr.validator Sample
Desktop Red Apps
How Do I Start?
Audience
Setup for Desktop Red App Development
Sabre Red 360 Software Development Kit Upgrade and Maintenance
Red App Development using WebKit Browser
WebKit Browser Quickstart
Creating Red App using WebKit Browser editor
Creating Red App using Webkit Browser view
Defining custom Java handler classes accessible from JavaScript in WebKit browser
Native Browser to WebKit Browser Migration
Registering JavaScript functions as Services in WebKit
Using SRW API within OnLoad event
Issues with calling SRW API
Opening Editors Programmatically from a web based Red App
Loading WebKit Browser with POST data
Loading Webkit View with POST data
Opening Views Programmatically from a Web based Red App
Handling popups in WebKit
Using load listener
Introducing Red Apps and the Sabre Red 360 Software Development Kit
What Is a Red App and Red App Bundle
Overview of Functionality in the Sabre Red 360 Software Development Kit
Red Workspace and GDS Environments
Using Your Sabre ID and Other IDs
Certificate Authorities Supported by Sabre
Red App Requirements and Standards
Red App Requirements
Design and Coding Requirements
Communications Components in Red Apps
General Requirements for a Red App Configuration File
Project Layout Requirements
Binary Build Requirements
Red App Release Types and Version Numbers
Red App Bundle Requirements
Red App Standards
Red App Names
Dependent Plug-in Names
Main Red App and Dependent Plug-in Versions
Main and Dependent Plug-in IDs
Company (Provider) Names
Communications Services Standards
Plug-in Project Properties
Plug-in Projects
Introduction to Plug-in Projects
Creating Projects with Red App Sample Plug-ins
Creating Projects with Red App Wizards
Creating Empty Plug-in Projects with an Eclipse Wizard
Distributing a Red App Among Multiple Plug-in Projects
Launching Red Workspace and Verifying Plug-ins
Workbench or UI Elements
UI or Workbench Elements Overview
Editors (Tabs)
About Editors
Dependencies, Extension Points, and Classes for Editors
Creating a Sample Editor
Sample plugin.xml for the Sample Editor
Additional Resources for Editors
Views (Assistant Tools Panel)
About Views
Dependencies, Extension Points, and Classes for Views
Creating a Sample View
plugin.xml for Basic Views
plugin.xml for Vertical and Horizontal Views
Additional Resources for Views
Basic Menus
About Basic Menu Contributions
Guidelines for Menu Contributions
Main Menu Contributions
Application Side Bar
Identifiers and locationURI Syntax for Main Menus
locationURI Syntax for the Application Side Bar
Dependencies and Extension Points for Basic Menus
Development Workflow for Basic Menus
Creating Basic Menu Contributions
Sample plugin.xml with Menu Contributions
Additional Resources for Basic Menus
Advanced Conditional Activation of Menus
About Conditional Activation and Handler Policies
Controlling the Visibility and Activation of Menu Contributions
Additional Resources for Advanced Menu Activation
Status Lines
About Status Line Contributions
Adding Status Lines for Editors
Adding Status Lines for Views
Additional Resources for Status Lines
Pop-up Dialogs
About Pop-up Dialogs
Dependencies and Classes for Dialogs
Development Workflow for Dialogs
Creating a Dialog
Additional Resources for Dialogs
Notification Services
About Notifications
Dependencies and Classes for Notifications
Development Workflow for Notifications
Creating a Notification Service
Creating a Basic Text Notification
Creating a Notification with a More Details Link
Creating a Notification with a Progress Bar
Destroying or Replacing a Notification
Additional Resources for Notifications
Contributing to Preference Pages
Icons for editor or view tab
Development Languages and Technologies
Development Languages and Technologies Overview
Website Integration Using a Custom Implementation
About Website Integration Using a Custom Implementation
Additional Resources for Custom Websites
Website Integration Using Default Implementations
About Website Integration Using Default Implementations
Dependencies, Extensions, and Classes for Default Implementations
Integrating a Web App Using the Default Editor
Integrating a Web App Using the Default View
Additional Resources for Default Website Integration
Website Integration Using JavaScript
About Website Integration with JavaScript
Accessing Billing API from JavaScript (deprecated)
Access to OSGi Services from Web Apps with JavaScript
Registering JavaScript Functions as Services
Registering Event Listeners in Web Apps with JavaScript
Using JavaScript to Access OSGi NonCommunications Services
Using JavaScript to Access SRWRuntime Communication Services
Additional Resources for Website Integration Using JavaScript
Sabre Scribe Scripts
About Sabre Scribe Scripts
Development Workflow for Sabre Scribe Scripts
Wrapping Sabre Scribe Scripts as a Plug-in
Accessing Additional Files in Sabre Scribe Plug-ins
Triggering Sabre Scribe Scripts with Active Listening
Additional Resources for Sabre Scribe
Custom Database Connectivity in Scribe
Swing Red Apps
About Swing Apps as Plug-ins
Development Workflow for Wrapping Swing Apps
Embedding a Swing App
Wrapping a Swing App in an Editor
Wrapping a Swing App in a View
Extending the SwingControl Class
Modifying Swing Code to Interact with UI Elements
Additional Resources for Swing
Web Modules in Desktop Red Apps
Web Module in Desktop Red App
Create Web Module Template
Build and Deploy Web Module
Test and Debug Web Module
Communication between Web Module and Java Services
Call Java service from TypeScript
Call TypeScript service from Java
Communications in Red Apps
Communications in Red Apps Overview
Predefined Clients for Communication Services
Synchronous Services
About Synchronous Services
General Process for Calling Synchronous Services
Request and Response Object Classes for Synchronous Services
Registering Your Own Service in a Red App
Emulator Command Intercept and Markup Services
About Emulator Command Intercept and Markup Services
EMU_COMMAND Service
EMU_RESPONSE Service
Flows for Emulator Intercept and Markup Services
Simple Flow for Intercepting and Modifying Commands
Flow for Defining Your Own Command
Sabre Emulator Markup Flow
Flow when SRWRuntime Invokes Services with Registered Commands
Intercepting and Modifying Sabre Emulator Commands
Sample Code for an Emulator Request and Response
Additional Resources for Emulator Command Intercept and Markup
Markup Instructions for EMU_RESPONSE
Sending Information to Sabre Emulator
About Sending Information to Sabre Emulator
Sending Requests to SRWRuntime for Sabre Emulator Services
Sample Code for Emulator Services
Additional Resources for Sabre Emulator Service
Sabre Host Communications Services
About Sabre Host Communications Services
Flow for Session Locking when Sending a Single Command to the Host Communications Service
Flow for the Locking Service when Sending Multiple Commands to the Host Communications Service
Using Host Communications to Send Commands
Sample Code for Host Communications Services
Sample Code for SDS Service
Multiple Responses Handling
Additional Resources for Host Communications
Sabre Web Services Communications
About Communications with Sabre Web Services
Flows for Communicating with Sabre Web Services
Accessing Sabre Web Services
Sample Code for Accessing Web Services with SOAP
Sample Code for Accessing Web Services with REST
Additional Resources for Sabre Web Services
The Billing Service (deprecated)
Using Billing Service (deprecated)
The Locking Service
About the Locking Service
Locking and Unlocking a TA Session
Additional Resources for Locking
Single Sign-On
Single Sign-On Overview
Single Sign-On Setup Procedure
Using Single Sign-On Service
Single Sign-On Service Cookbook
Web Single Sign-On
Assertion Validation
The Graphical Seat Map Service
Graphical Seat Map Service
Event Listeners and Event Listening
About Event Listeners and Event Listening
Event Listening for Sabre Profiles Event
Event Publishing
About Event Publishing in Red Apps
Sample Process for Publishing Events
Additional Resources for Event Publishing
Addressed Events
Overview of Authentication, Authorization, and Registration
Overview of Authentication, Authorization, and Registration
Authenticating and Requesting Authorization to Use Services
Registering Services, EventListeners, and Events in Red Apps
SRWRuntime Error Codes
Sabre System Special Characters
Migration from MySabre API to SRWRuntime Services
The Highlight Service
About the Highlight Service
Sending highlight request to Emulator
Sabre Business Events
Plug-in Services
Plugin Services Overview
Traditional OSGi Services
Agent Profile Service
About Agent Profile Service
Development Workflow for Agent Profile Service
Creating Access to Agent Profile Service
Additional Resources for Agent Profile Service
ConfigService
About ConfigService
Development Workflow for ConfigService
Using ConfigService and Configuring Properties
Additional Resources for ConfigService
Agent Work Area Data Retrieval
About Retrieval of Agent Work Area Data
Retrieving Agent Work Area Data
Sample Java Code for IWorkAreaService
Additional Resources for Agent Data Retrieval
Logger Services
About Logger Services
Development Workflow for Logger Services
Creating Access to ILoggerService
Additional Resources for Logger Services
Encode/Decode Service
About Encode/Decode Service
Using the Encode/Decode Service
Additional Resources for Encode/Decode
Other Plug-in Services
Contact Details
About Contact Details in a Plug-in
Adding Contact Details to a Plug-in
Contact Details Extension Point Properties Table
Additional Resources for Contact Details
First Run Actions in a Plugin
About Actions on First Runs
Adding First Run Actions to a Plug-in
Additional Resources for First Runs
Internationalization Service
About Internationalization Services
Development Workflow for Internationalization
Preparing Your Plug-in for Internationalization
Additional Resources for Internationalization
Long Running Operations in a Plugin
About Long-running Operations in a Plug-in
Sample Code for a Long-running Operation
Additional Resources for Long-running Operations
Unpacking and Copying Plugin Resources
About Unpacking and Copying Plugin Resources
Unpacking and Copying Resources from a Plug-in
Access to Resources in Plugins and Workspace Files
About Access to Plug-in Resources and Workspace Files
Accessing Resources in a Plug-in and the Workspace
Additional Resources for Access to Plug-in and Workspace Resources
Creating and Securing a Red App Bundle
Preparing to Create and Upload a Red App Bundle
Building a redapp.xml File
Manually Creating and Securing a Red App Bundle
Automatically Exporting a Plug-in Project as a Bundle
Automatically Exporting a Sabre Scribe Project as a Bundle
Validating Your Generated Red App Bundle
Uploading and Testing Red Apps
Activator Classes
About Activator Classes
Adding an Activator Class to a Plugin
Additional Resources for Activators
Red App Sample Plug-ins
Red App Sample Plug-ins Overview
com.sabre.redapp.example.cf.emu Sample
com.sabre.redapp.example.cf.emu.bridge Sample
com.sabre.redapp.example.cf.event Sample
com.sabre.redapp.example.cf.host Sample
com.sabre.edge.example.cf.rest2sg Sample
com.sabre.redapp.example.cf.sws Sample
com.sabre.redapp.example.cf.webapp.services Sample
com.sabre.redapp.example.conditional.activation Sample
com.sabre.redapp.example.editor.basic Sample
com.sabre.redapp.example.firstrun Sample
com.sabre.redapp.example.logger Sample
com.sabre.redapp.example.longrunning Sample
com.sabre.redapp.example.resources Sample
com.sabre.redapp.example.scribe Sample
com.sabre.redapp.example.cf.sds Sample
com.sabre.redapp.example.swing Sample
com.sabre.redapp.example.swt Sample
com.sabre.redapp.example.view.basic Sample
com.sabre.redapp.example.cf.highlight Sample
com.sabre.redapp.example.webkit Sample
com.sabre.redapp.example.cf.webkit.webapp.services Sample
com.sabre.redapp.example.openeditor Sample
com.sabre.redapp.example3.desktop.hint Sample
com.sabre.redapp.example3.desktop.linkpayment Sample
com.sabre.redapp.example3.desktop.pnr Sample
com.sabre.redapp.example3.desktop.sso Sample
com.sabre.redapp.example3.desktop.pricing.qualifiers Sample
com.sabre.redapp.example3.desktop.template Sample
Red App Wizards
Red App Wizards Overview
Red App View Wizard
Sabre Scribe Red App Project Wizard
Swing Red App Project Wizard
Web Red App Project Wizard
Red App Editor Wizard
Red App Contact Details Wizard
Red App Bundle Wizard
Development Tools
Scribe IDE
Java Workflow Extensions
Overview
Using Workflow Extensions
Timeout and Timeout Action
Legacy Workflow Extensions (deprecated)
Overview (deprecated)
Exposed Workflow Extension Points (deprecated)
Accessing Workflow Data (deprecated)
Manual Tasks (deprecated)
Using Workflow Extension in Red App (deprecated)
Generic Commands and Handlers
About Generic Commands and Handlers
Creating a Command and a Handler
Sabre Native API
Overview
Message Broker
Protocol and Connection
Messages List
Errors
Sample
Exporting Native API bundle
Sabre Emulator API to Native API: Migration Guide
Configure HTTP client to work with Sabre Red 360 proxy settings
Glossary
Desktop Red Apps FAQs
Search