The Watch Object

PReS Workflow scripting offers a number of methods of communicating with your process by means of PReS Workflow automation object's methods and functions. The automation object is available in all 4 languages through their own syntax - the examples provided here are for JavaScript.

While the functions here are in mixed case to simplify reading, it's important to note that some languages (especially JavaScript) are case-sensitive and will require the proper case. Examples in this chapter will always use the proper case when relevant.

Here is a list of the methods and functions that are available to you through the automation object (or "Watch" object). While these examples are all in JavaScript, you can click on any variable name to open a page to see examples for each supported language.

Variable Name Description
Example Usage (VBScript)
Script.ReturnValue Returns a boolean True or False value to a Workflow scripted condition
Example usage: Script.ReturnValue = 1;
Watch.ExecuteExternalProgram Calls and executes an external program in the command line.
Example usage:
Watch.ExecuteExternalProgram("lpr -S 192.168.100.001 -P auto c:\\myfile.ps", "c:\\", 0, true);

Watch.ExpandResourcePath

Expands a Connect resource file name (e.g. invoice.OL-template) to its fully qualified path (e.g. C:\ProgramData\Objectif Lune\PlanetPress Workflow\Documents\invoice.OL-template).

Example usage:

var fullPath = Watch.ExpandResourcePath("invoice.OL-template");
Watch.ExpandString Retrieves the content of any Workflow string, containing any variable available to Watch, including data selections.
Example usage: var watchDate = Watch.ExpandString("%y-%m-%d");

Watch.GetConnectToken

Uses the default Connect Server host as defined in the Workflow preferences to log into the Connect Server and retrieve an authorization token.

Example usage:

var tokenConnect = Watch.GetConnectToken();

Watch.GetConnectTokenEx

Uses the arguments passed to it to log into the Connect Server and retrieve an authorization token.

Example usage:

var tokenConnect = Watch.GetConnectTokenEx("localhost", 1234, "myUser", "secret");
Watch.GetJobFileName Retrieves a string containing the job path and file name located in the job spool folder.
Example usage: var s = Watch.GetJobFilename();
Watch.GetJobInfo Retrieves the content of a numbered job info (%1 to %9).
Example usage: var s = Watch.GetJobInfo(9);
Watch.GetMetadataFilename Retrieves a string containing the job's metadata path and filename. This is useful when using the Metadata API in your script. (See Metadata API.)
Example usage: var s = Watch.GetMetadataFileName();
Watch.GetOriginalFileName Retrieves a string containing the job's original path and filename. Note: this filename is generally no longer available if it has been captured by Watch.
Example usage: var s = Watch.GetOriginalFileName();
Watch.GetPDFEditObject Is used to manipulate PDF files using the AlambicEdit API. The AlambicEdit library allows Workflow to access, create or modify PDF files.

Watch.GetResources

Retrieves a specific type of Connect resources when it is passed a file extension (e.g. "OL-template") or all Connect resources when it is passed an empty string.

Example usage:

var allTemplates = Watch.GetResources("OL-template");
Watch.GetVariable Retrieves the content of a local or global variable by name.
Example usage: var s = Watch.GetVariable("MyVariable");
Watch.InstallResource Is used to copy or unpack resources, such as a Connect Designer template, Data Mapping Configuration, package file, etc., from the supplied path to the Connect Documents folder.
Example usage: Watch.InstallResource("c:\myfile.ol-package");
Watch.Log Writes to the Workflow log file, or the message window when in debug - can accept multiple log levels from 1 (red) to 4 (gray).
Example usage: Watch.Log("Hello, World!", 3);
Watch.SetJobInfo Writes the value of a string to a numbered job info.
Example usage: Watch.SetJobInfo(9, "Job info 9 Value");
Watch.SetVariable Writes the value of a string to a local or global variable by name.
Example usage: Watch.SetVariable("MyVariable", "Hello World!");
Watch.Sleep Pauses all processing for X milliseconds.
Example Usage: Watch.Sleep(1000);