Skip to main content

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 SPAWN and CHAIN to call helper scripts. (For more information, see the SPAWN and 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.

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 Developer Toolkit 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 App Developer 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.

Constraints

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 xxxxxx characters.

EP Command

The SRWRuntime communications bus does not pass the EP command to the following:

  • EMU_COMMAND services

  • EMU_RESPONSE services

  • 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 Developer Toolkit 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.

image66

 

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

com.sabre.edge.app.scribe

Extension Point

com.sabre.edge.app.scribe.scriptsprovider

Classes

Not applicable