About Sabre Scribe Scripts
Sabre Scribe is a Sabre technology that enables you to create scripts for automating the tasks of travel agents in Sabre Red 360 classic view (classic view is native view in the Sabre GDS). The scripts are ASCII files that contain Sabre Scribe and Sabre GDS commands. The files also include expressions, variables, and strings. The Sabre Scribe compiler understands and converts the scripts into executable code.
You can use any of the commands that the Sabre Scribe developer documentation describes, and wrap your compiled Sabre Scribe script files as plug-ins for Sabre Red 360. The wrapping of a Sabre Scribe script does not change the functionality of the script, but instead, it improves the deployment and version control of the scripts.
The file type of the source scripts is
sst and the file type of the compiled scripts is
ssc. You include only the
ssc file in the plug-in because it is used at runtime. As Sabre Red App certified developers, you are responsible for storing the
sst source code files to ensure that you can maintain your Sabre Scribe Red Apps.
You must designate your scripts as either visible or hidden. (Visible scripts are also referred to as main scripts, and hidden scripts are referred to as helper scripts.) Because visible scripts often call hidden scripts, end-users cannot see or choose hidden scripts. Main scripts typically use
CHAIN to call helper scripts. (For more information, see the
CHAIN commands in the Sabre Scribe Scripting Reference Guide.) If your project has a main script and a helper script, you include both scripts inside one wrapper plug-in.
You cannot designate menu entries for your Sabre Scribe scripts. The Open SabreScript dialog in Sabre Red 360 lists your scripts under the name of your wrapper plug-in. End-users can launch the Open SabreScript dialog in the following ways only when SR360 has focus:
By typing CTRL+A (Windows) or ⌘+A (macOS)
By selecting the dialog from the Tools menu
By clicking the Scribe Scripts button on the application side bar
Wrapping Sabre Scribe scripts does not require you to write any code, but you need the manifest.
For more ways to use Sabre Scribe Red Apps, see the following headings:
Access to Additional Files within a Sabre Scribe Plug-in
Sabre Scribe scripts can read from and write to files that you add to the wrapper plug-in. Examples of files that you may want to include in your plug-in are
csv or other files that contain data. To provide script access to files within the plug-in, add the com.sabre.edge.redapp.pluginresources extension point to
plugin.xml and specify the files to be accessed.
When you have a new version of your plug-in, add the
override flag with a value of
true, and specify the updated files that are embedded inside the plug-in. You can also set the flag to
false if you do not want to override the existing files.
In both cases, include a definition to the path where the files are located in the plug-in project. This enables access to the files when end-users run your Sabre Scribe scripts.
You can add this functionality to any plug-in within your Red App bundle, however, if you use different plug-ins within your Red App bundle to provide the script and the files, the script cannot read the file easily.
The files are copied only on the first run of your updated plug-in within Sabre Red 360. When end-users run your updated script, the script is run from within the updated plug-in and the newer files are accessed from within the plug-in. The older files and scripts are overwritten automatically.
For information, see Accessing Additional Files in Sabre Scribe Plug-ins.
Active Listening for Commands to Trigger Sabre Scribe Scripts
Sabre Scribe has a feature called Scribe Active Listening. After an end-user types a specific command in Sabre emulator, the script is executed.
You can make your script listen to specific Sabre commands available in the commands.properties file located in SABRE_DIR/apps/emulator/scribe. For detailed information, see Scribe Scripting Reference Guide.
Sabre Red 360 Software Development Kit extends this feature to handle mappings for Red Apps. To use this feature, register your scripts in your
redapp.xml file. In this file, define the command for active listening. When end-users run your Red App, active listening for your command is registered. You do not write Java code.
You can implement active listening for commands in the same Red App. All scripts that are registered in
redapp.xml must be in the same Red App bundle. Commands that contain special characters must be mapped as UTF-8.
If multiple scripts register the same command, the Conflict Resolution dialog is displayed in Sabre Red 360. End users must choose the script (or service) they want to call. (For information about this dialog, see the Red Apps FAQs.)
Developers can configure active listening for commands in
commands.properties. This solution is not intended for using Sabre Scribe scripts from a Red App. If multiple scripts register the same command using
commands.properties, Sabre Red 360 will also display the Conflict Resolution dialog to end-users.
AG Command and Masking of Passwords
Red Apps are not permitted to listen for the
AG command. Red Apps that listen for
AG will fail certification. Red Apps can listen for all commands with an empty
action_code, however, if passwords are returned, they will be masked with the
The SRWRuntime communications bus does not pass the
EP command to the following:
Event listeners. This includes active listeners from Sabre Scribe scripts.
Additional Information about Active Listening
For information about how to implement active listening for a Sabre Scribe script, and a map of Sabre special characters to UTF-8, see Triggering Sabre Scribe Script with Active Listening.
For constraints on host commands that you can use with EMU_COMMAND services, see About Emulator Command Intercept and Markup Services.
Securing Sabre Scribe Scripts in a Plug-in
Sabre Red 360 Software Development Kit provides a mechanism to secure your scripts. This mechanism, which is the Red App Bundle export wizard, prevents your Sabre Scribe scripts from being used outside of your Red App in which you included the scripts. When you are ready to create your Red App bundle, automatically secure your scripts and create your Red App bundle with the Red App Bundle wizard.
The following figure shows the
SampleScript.ssc in the wrapper plug-in on the Open SabreScript dialog in Sabre Red 360.
Dependencies and Extension Points for Wrapping Sabre Scribe
When you are creating the wrapping plug-in for your Sabre Scribe scripts, Sabre Red 360 has defined some dependencies, extension points, and classes that are required. They are listed below.
Minimum Required Dependency