PlanetPress Workflow User Guide Planet Press 8.8 Ug

User Manual: Pdf PlanetPress Workflow - 8.8 - User Guide User Guide for Objectif Lune PlanetPress Software, Free Instruction Manual

Open the PDF directly: View PDF PDF.
Page Count: 796 [warning: Documents this large are best viewed by clicking the View PDF Link!]

User Guide
Version:8.8
User Guide
Version 8.8
Last Revision:4/9/2018
Objectif Lune, Inc.
2030 Pie-IX, Suite 500
Montréal, QC, Canada, H1V 2C8
+1 (514) 875-5863
www.objectiflune.com
All trademarks displayed are the property of their respective owners.
© Objectif Lune, Inc. 1994-2018. All rights reserved. No part of this documentation may be
reproduced, transmitted or distributed outside of Objectif Lune Inc. by any means whatsoever
without the express written permission of Objectif Lune Inc. Inc. Objectif Lune Inc. Inc. disclaims
responsibility for any errors and omissions in this documentation and accepts no responsibility
for damages arising from such inconsistencies or their further consequences of any kind.
Objectif Lune Inc. Inc reserves the right to alter the information contained in this documentation
without notice.
Table of Contents
Table of Contents 4
Welcome to PlanetPress Workflow 8.8 10
Icons used in this guide 10
System Requirements 12
Operating System (64-bit only) 12
Minimum Hardware Requirements 12
Known Issues 12
Basics 16
Setting Up the Working Environment 16
Setting Up Preferences 16
Create a New Process 16
Considerations 17
Send your Configuration 17
Features 20
The Nature of PlanetPress Workflow 20
About Branches and Conditions 20
Branches 21
Conditions 21
Configuration Components 21
Connect Resources 21
Available Resources 22
Resource Save Location 22
Resource Archives 23
About Data 23
Data File and Job File 24
Job File Names and Output File Names 25
Data selections 26
AboutData Emulation 35
Using the File Viewer 36
Sample Data 36
Metadata 38
Data Repository 51
Structure 52
Page 4
Accessing the Data Repository 53
Where to find the Data Repository 54
About Documents 54
Import Documents 54
Import PrintShop Mail Documents 55
Debugging and Error Handling 55
About Error Handling 55
Using the On Error tab 56
Creating and Using Error Processes 57
Accessing the Logs 58
Resubmit Backed Up Input Files to a Process 60
Knowing What to Resubmit 62
Debugging your PlanetPress Workflow Process 63
The Plug-in Bar 66
Categories 66
Settings & Customization 67
About Printing 68
PlanetPress Workflow Printer Queues 69
Shared Printer Queue Properties 70
Windows Output Printer Queue 72
LPR Output Printer Queue 73
FTP Output Printer Queue 74
Send to Folder Printer Queue 76
Triggers 77
Load Balancing 77
Objectif Lune Printer Driver (PS) 78
About Processes and Subprocesses 81
Processes 81
Subprocesses 81
Process Properties 82
Activate or Deactivate a Process 87
Convert a Branch to a Subprocess 87
Import Processes from Another Configuration File 88
Toggle the Run on Desktop Property 89
Using Scripts 91
The Script Editor and XSLT Editor 92
SOAP Server API Reference 98
Page 5
The Watch Object 105
Data Repository API 121
Stopping Execution 141
Special Workflow Types 142
Special Workflows 142
PlanetPress Capture Workflow 143
Database Considerations (ODBC) 150
HTTP Server Workflow 179
PDF Workflow 186
Workflow processes in a Connect Send solution 189
The basic processes involved in the Capture OnTheGo Workflow 191
About Tasks 196
Task Properties 197
Variable Properties 197
Input Tasks 203
Action Tasks 268
Data Splitters 368
Process Logic Tasks 396
Connector Tasks 426
PlanetPress Capture 475
Metadata Tasks 509
OL Connect Send 538
OL Connect tasks 555
Output Tasks 619
Working With Variables 644
Types of Variables 644
Job Info Variables 645
Standard Variables 646
Manipulate Local Variables 650
Manipulate Global Variables 652
About Configurations 654
Create a New Configuration 654
Open a PlanetPress Workflow Configuration File 655
Saving and Sending 656
Exit PlanetPress Workflow Configuration Program 658
About related programs and services 658
Available Input services 659
Page 6
Available Output services 660
Start and Stop PlanetPress Workflow Service 660
The Interface 663
Customizing the Workspace 664
Dock and Undock Areas of the Program Window 664
Show or Hide Areas of the Program Window 666
Combine and Attach Areas 666
Resize the Program Window Areas 671
Change the Interface Language 671
PlanetPress Workflow Button 672
Options 672
The Configuration Components Pane 674
Components Area Sections 674
Processes and Subprocesses 677
Manipulate Global Variables 685
Connect Resources 687
PPS/PSM Documents 689
Associate Documents and PlanetPress Printer Queues 694
Using the Clipboard and Drag & Drop 695
Rename Objects in the Configuration Components Pane 698
Reorder Objects in the Configuration Components Pane 698
Grouping Configuration Components 699
Expand and Collapse Categories and Groups in the Configuration Components Pane 700
Delete Objects and Groups from the Configuration Components Pane 701
Other Dialogs 701
Activate Your Printers 701
Workflow Services 702
Process Properties 704
Advanced SQL Statement Dialog 709
Access Manager 709
PDF Viewer 717
The PlanetPress Workflow Service Console 719
Update document 721
Data Repository Manager 721
Virtual Drive Manager 724
The Debug Information Pane 725
The Message Area Pane 726
Page 7
The Object Inspector Pane 727
The Plug-in Bar 728
Categories 729
Settings & Customization 729
Preferences 730
Other Preferences and Settings 732
General appearance preferences 732
Object Inspector appearance preferences 733
Configuration Components Pane appearance preferences 733
Default Configuration behavior preferences 734
Notification Messages behavior preferences 735
Sample Data behavior preferences 737
Network behavior preferences 738
PlanetPress Capture preferences 739
OL Connect preferences 748
PDF Text Extraction Tolerance Factors 749
General and logging preferences 751
Messenger plugin preferences 752
HTTP Server Input 1 plugin preferences 753
HTTPServer Input 2 plugin preferences 756
LPD Input plugin preferences 757
Serial Input plugin preferences 758
Telnet Input plugin preferences 759
PlanetPress Fax plugin preferences 759
FTP Output Service preferences 763
PlanetPress Image preferences 764
LPR Output preferences 767
PrintShop Web Connect Service preferences 768
Editor Options 769
The Process Area 773
Zoom In or Out within Process Area 774
Adding Tasks 774
Adding Branches 775
Edit a Task 775
Replacing Tasks, Conditions or Branches 776
Remove Tasks or Branches 776
Task Properties Dialog 777
Page 8
Cutting, Copying and Pasting Tasks and Branches 778
Moving a Task or Branch Using Drag-and-Drop 781
Ignoring Tasks and Branches 782
Resize Rows and Columns of the Process Area 782
Selecting Documents in Tasks Links 783
Highlight a Task or Branch 784
Undo a Command 784
Redo a Command 784
The Quick Access Toolbar 785
The PlanetPress Workflow Ribbon 786
The Task Comments Pane 788
Additional Information 789
Copyright Information 790
Legal Notices and Acknowledgements 791
Page 9
Welcome to PlanetPress Workflow
8.8
This PDF documentation covers version 8.8. To view the documentation of previous versions
please refer to the PDF files available in the Downloads section of our website:
http://www.objectiflune.com/OL/Download/DownloadCenter.
Workflow is the heart of all of our solutions. Working in conjunction with PlanetPress Connect,
PlanetPress Capture, CaptureOnTheGO, PlanetPress Imaging, PlanetPress Fax, and a variety
of plugins, it helps improve your communications processes. Processes such as
communication creation, interaction, distribution and even maintenance.
Workflow is the "super dispatcher". It caters for inputs from a huge variety of sources, such as
email, web pages, databases, individual files (PDF, csv, XML, etc), print streams, FTP, Telnet
and even ERP systems! This data can then be analysed, modified, stored, verified, routed and
used as triggers for other processes from entirely within Workflow. Finally it is passed to one of
our other products (or not) to be outputted in multiple ways (printed, emailed, posted, archived,
sent to third party solutions, etc..).
Consider Workflow as a set of buildings blocks that enable you to build your own customised
automated processes which will fit your environment and not the other way around. Create
processes that will save you time and money!
Icons used in this guide
Icons are used throughout this guide to point your attention to certain information.
Note
Complementary information that is not critical, but may help you better use PlanetPress Workflow.
Tip
Information that is useful or suggests an easier method.
Page 10
Technical
Information that may require specific knowledge to understand.
Warning
Information that is potentially critical to using PlanetPress Workflow. Pay close attention.
Page 11
System Requirements
These are the system requirements for PlanetPress Workflow 8.8.
Operating System (64-bit only)
lMicrosoft Windows 2008/2008 R2 Server
lMicrosoft Windows 2012/2012 R2 Server
lMicrosoft Windows Vista
lMicrosoft Windows 7
lMicrosoft Windows 8.1
lMicrosoft Windows 10 (Pro and Enterprise versions only)
Note
Windows XP, Windows 2003 and older versions of Windows are not supported by PlanetPress
Workflow.
Minimum Hardware Requirements
lNTFS Filesystem (FAT32 is not supported)
lCPU Intel Core i7-4770 Haswell (4 Core)
l8GB RAM (16GB Recommended)
lDisk Space: At least 10GB (20GB recommended)
Known Issues
lAnoto Pen Director 2.8 is not supported on Windows Server 2012 and Windows 10.
l22356: Using the PT-PT setting to perform ICR on AlphaNumeric fields may not work
properly. If you encounter the issue, use the PT-BR setting instead, or use another
PlanetPess Field in your document design.
Page 12
l21962: Barcode scanner task may have issues reading 2-D barcodes printed/scanned
with low resolution. Make sure the scans and the original printed output are at least
300DPI (600 or better recommended)
l21405: When printing through a Windows printer driver on Windows Server 2008 or
Windows Server 2008 R2, the Job Owner setting is ignored. This is caused by a
documented issue in those two Operating Systems. Microsoft has provided no reason nor
workaround for the problem, therefore PlanetPress Workflow cannot circumvent the issue.
lUnder Windows 2000, the SharePoint output task does not work with SharePoint 2010.
Under the same OS, the PlanetPress Capture ICR does not work due to the .NET 3.5
requirement.
l21465: The SharePoint Output task does not validate the field contents. That's
Sharepoint's responsibility.
l20143: The Metadata to PDI task encodes the XML using the default system encoding,
not the document's. In addition, it does not discriminate between index names written in
different cases (e.g. Name vs. name).
lPrinting PDF files in passthrough mode using a Windows Printer Driver task causes jobs
to be processed sequentially rather than in parallel. This is caused by a 3rd party library
used in the printing process. Possible workarounds are to use a PlanetPress document to
call the PDF files as dynamic images, or to use the PDF file as the Data File for a
PlanetPress Document
lJobInfo #4 in the Windows Input Queue task (the original document name set by the
printing application) replaces any non-alphanumeric character with underscores in order
to filter out any invalid characters. Consequently, if the path contains slashes or colons,
those will be replaced with underscores.
lWhen the PlanetPress Capture database is set to MS Access, it is considered good
practice to have a single process generate Patterns for documents because the Access
engine may lock the other process out of the database as the first process updates it.
lAfter the initial installation, the PlanetPress Workflow Configuration tool may display an
error message the first time you launch it if you had already sent a PlanetPress Workflow
Document to it. You can safely ignore this message, you will simply have to manually
start the PlanetPress Messenger service from the Workflow console for this one time only.
To avoid getting the error altogether, make sure you launch the PlanetPress Workflow
tool once before sending any document to it.
Page 13
l13554: In the LaserFiche connector, when selecting a different template after filling up the
fields and then going back to the first template, the values entered in the fields are lost.
They have to be entered again.
lWhen loading a workflow configuration that includes references to Windows printers, the
output task may fail to recognize the printer if the printer driver has changed between the
moment the config was set up and the moment it was loaded. This is unlikely to occur, but
it could, for instance, happen when importing a Version 7 configuration file into Version 8.
To circumvent the issue, open the output task's properties, make sure you reselect the
proper printer, close the task and send the configuration again.
lThe HTTP/SOAP service may fail when both it and the Workflow service are logged on
using 2 non-local users or 2 local users with different privileges. To resolve the issue,
make sure both services use the same logon credentials.
l13559: The WordToPDF task, when run under the LocalSystem account, may seem to
hang if the installation of MS-Word wasn't properly completed for the LocalSystem
account. If the task seems to take longer than it does when run in Debug mode, this may
be the case. You can confirm this behavior by opening up the Windows Task Manager
and checking whether the MSIExec application is running. In order to complete the
installation of MS-Word for the LocalSystem account, follow these steps:
1. Open a command-line window (CMD.exe)
2. Type "AT 10:56 /INTERACTIVE CMD.EXE" (replace 10:56 with the next upcoming
minute on your system)
3. At the specified time, a new command-line window opens. In it, navigate to Word
Installation folder, then type Winword Follow the instructions to complete the
installation
4. Re-start PlanetPress Workflow and test your process.
lThe WordToPDF task relies on MS-Word to perform its functions. However, MS-Word
sometimes displays confirmation dialogs when it encounters a situation requiring user
input. Such dialog windows cannot be displayed when PlanetPress Workflow runs as a
service. As a result, the process may seem to hang because it is awaiting user input on a
window that isn't displayed. The only way to resolve this situation is to kill the
PlanetPress Workflow service. To avoid these types of issues from occurring, it is
imperative that the configuration for the WordToPDF task be tested thoroughly in Debug
mode prior to sending it into production. In particular, the connection to the database must
be validated.
lThe WordToPDF task requires the default system printer to be set to a queue that uses
the PlanetPress printer driver. If you change the default system printer or if you import a
Page 14
PlanetPress Workflow configuration file from another PC that includes an instance of the
WordToPDF task, you must review the properties of each instance of the task and click
OK to validate its contents. A new printer queue will be created if required and the default
printer will be reset properly. If you do not perform these steps, running the configuration
will result in several error messages being logged and the task failing.
lThe preferences for the PrintShop Mail Web connector may not be saved properly if you
set them and close the PlanetPress Workflow Configuration tool without first sending the
configuration to the service. Make sure you send the configuration before exiting from the
Configuration tool.
l13009: With Outlook 2010, the Send Email functionality requires that the service be run
with administrative credentials in the domain. In addition, both Outlook and the
PlanetPress Workflow Configuration tool must *not* be running while the service is.
lThe Microsoft Office 2010/2013/2016 and 365 line of products has not been certified for
use with PlanetPress Workflow. Some of its products may not be compatible with the
connectors included.
lBarcodes produced in printer-centric mode may have a slightly different aspect from those
produced in Optimized PostScript mode. This is due to the different types of 3rd party
libraries being used to generate the barcodes. However, all barcodes scan correctly.
Page 15
Basics
PlanetPress Workflow is a tool for the automation of the processing, the distribution and the
printing of your business documents. Once installed on the server, it can be set up to automate
all tasks related to document processing.
Setting Up the Working Environment
Setting up the working environment has to be done the first time you start PlanetPress
Workflow.
1. Defining the printer (see Activate Your Printers).
2. Configure PlanetPress Workflow Services (see Workflow Services).
Setting Up Preferences
PlanetPress Workflow Configuration program lets you configure a variety of options, from how
the application itself looks or behaves, to plugin specific options. For more information about
preferences accessible through the Preferences button in the PlanetPress Workflow Button,
please refer to Preferences.
Create a New Process
You can create a new process in a two different ways:
lIn the Ribbon, go to the Home tab and click the Process button in the Processes group.
lIn the Configuration Components pane, right-click on any process or the Processes
folder and select Insert Process.
Regardless of the method, a new process is created with a default name (Process1, Process2,
etc), Input Task and Output Task. The defaults are configurable in the "Default Configuration
behavior preferences" on page734 screen. The same methods can be used to create a new
Startup process.
Page 16
To add a PlanetPress Workflow startup process:
lIn the Ribbon, go to the Home tab and click the Startup Process button in the
Processes group.
lIn the Configuration Components pane, right-click on any process or the Processes
folder and select Insert Startup Process.
Note
You can only have one Startup Process in any given configuration and cannot add more.
Considerations
lWhile your configuration is limited to a maximum of 512 processes, any given process
can have as many tasks as necessary.
lA given process may include output tasks that generate files used by input tasks from
other processes.
lWhen you send a configuration to your PlanetPress Workflow service, all its active
processes are applied.
lEach process’ schedule determines when its initial input task can be performed.
lOther tasks included in the process are performed regardless of schedule, granted that
the previous task was performed.
Send your Configuration
PlanetPress Workflow Configuration saves entire configurations in the form of a single file. Like
any other file, configuration files may be saved and reopened, as well as rename as desired.
Simply saving a configuration has no effect on the configuration actually used by the
PlanetPress Workflow when it is started. To change any currently active configuration, you
must use the Send Configuration command.
When you use the Send command, the PlanetPress Workflow Configuration program uses the
currently opened configuration (Any_name.OL-workflow) to overwrite PlanetPress Workflow
service's current configuration (ppwatch.cfg).
Page 17
Note
OL-workflow files are equivalent to .pp7 files made with older versions of PlanetPress Workflow.
They contain the processes and such used by Workflow.
If PlanetPress Workflow service is running when you send a new configuration, it stops and
restarts automatically with the new configuration. If the service is stopped, it will not start
automatically.
To send a Configuration to the local server:
1. Open the configuration you want to use as a new configuration.
2. Edit the configuration, if required.
3. When the configuration is ready to be used, from the PlanetPress Workflow button,
choose Send Configuration, then Send Local.
To send a Configuration to a remote server:
1. Open the configuration you want to use as a new configuration.
2. Edit the configuration, if required.
3. When the configuration is ready to be used, from the PlanetPress Workflow button,
choose Send Configuration, then Send Remote.
Alist of available servers on the local network appears.
4. Put a checkmark next to each server where the configuration should be sent.
5. Click OK.
If a server is grayed out, this may mean you do not have access to send a configuration
remotely to it. For more information, please see "Access Manager" on page709.
Note
If PlanetPress Workflow service is paused when you send a new configuration, it will not
stop and restart. Since PlanetPress Workflow service reads its configuration file when it
starts up, when you resume processing, PlanetPress Workflow service will continue
Page 18
using the old configuration.
Page 19
Features
PlanetPress Workflow are input driven applications designed to output data in a variety of ways
through diverse means to various applications and devices. PlanetPress Workflowcan be used
as simple go between, passing along input data to output devices, but it can also perform
various types of data processing. You can combine the various PlanetPress Workflow services
to set up versatile automated processes to print jobs as well as generate other types of output.
The Nature of PlanetPress Workflow
PlanetPress Workflow act as sorts of dispatchers. On the one hand, they retrieves data and
controls plugins that retrieve data from watched locations, and on the other hand they send data
and controls plugins that send data to various devices, for printing or to generate documents
that can then be emailed or faxed. PlanetPress Workflow can also perform a variety of
operations on the data using its action plugins.
In fact, the PlanetPress Workflow plugin based architecture enables almost limitless
customization. You can create or purchase compatible plugins, drop them in any of
PlanetPress Workflow plugin folder and use them to perform other operations. You can even
find free unsupported plugins on the Objectif Lune Web site.
PlanetPress Workflow are service applications, or if you will, applications that continuously run
on a given computer and that perform actions automatically. Those actions are defined in a
PlanetPress Workflow configuration. A given computer can only run one PlanetPress Workflow
configuration at a time. The PlanetPress Workflow Service Console may be used to monitor the
services running on a given computer.
About Branches and Conditions
While some processes can simply start with an input task, manipulate the data with a few action
tasks and finish with an output task, in some cases you may want to have more control over the
flow of your process. For example, you may want multiple outputs, such as printing to multiple
printers as well as generating a PDFand emailing it. To do this, you will need branches. You
may also want to detect certain criteria in your data and act differently depending on that data,
such as sending a fax only when a fax number is found, or printing to a different printer
depending on who send you a print job. To do this, conditions are used.
Page 20
Branches
A branch is effectively a doubling of your job file. As your job file goes down the process, when
it encounters a branch it will go in that branch, process all tasks up to the output, and return to
the main trunk to continue processes. You can have branches within branches, and all
branches must have an output. For more information on branches, see Branch.
A branch is represented as a crossing .
Conditions
Acondition will either execute the branch it creates or the main trunk, but never both. As your
job file goes down the process, when it encounters a condition it will verify whether that
condition results in a "true"or "false"value. If the result is true, it goes in the branch, processes
all tasks up to the output, and the process finishes. If the result is false, it goes down the main
trunk and continues processing until the process finishes.
A conditional branch (or condition) is shown as a crossing with a red diamond over it .
For the list of operations you can perform on Branches and Conditions, please refer to The
Process Area.
Configuration Components
The Configuration Components items displayed in the pane are processes, subprocesses,
variables, documents and printer queues. For more information on operations that you can
perform on each component, please refer to The Configuration Components pane.
Connect Resources
Connect resources are visible in The Configuration Components pane and are added by
using the Send to Workflow option from the PlanetPress 's File menu.
Page 21
Available Resources
lData Mapping Configurations:Displays a list of data mapping configurations used with
the Execute Data Mapping task. Each of the templates have been sent from PlanetPress
Connect using the Send to Workflow tool. For each template in the list, the following two
items appear within them:
lData Model:Displays the data model used in the data mapping configuration.
Double-click on the data model to view it in your default XMLviewer (generally,
Internet Explorer).
lSample Data File(s):Displays a list of sample files that are included in the data
mapping configuration. Double-click on a file to use it as a sample data file for the
active process.
lDocument Templates:Displays a list of templates that can be used in content creation
tasks:"Create Email Content" on page562, "Create Web Content" on page587 and
"Create Print Content" on page582.
lJob Presets:Displays a list of Job Presets that can be used in the "Create Job" on
page567 task.
lOutput Presets:Displays a list of Output Presets that can be used in the "Create Output"
on page570 task.
Resource Save Location
Any resource sent to PlanetPress Workflow from PlanetPress Connect is saved locally at the
following location: %PROGRAMDATA%\Objectif Lune\PlanetPress Workflow 8\PlanetPress
Watch\OLConnect
Resources are saved in their appropriate folder:
lDataMapper contains the data mapping configurations (.OL-datamapper)
lJobCreation contains the Job Presets(.OL-jobpreset)
lOutputCreation contains the Output Presets (.OL-outputpreset)
lTemplate contains the templates (.OL-template)
Page 22
Note
Package Files are not saved anywhere. The individual resources contained within the
package are extracted and placed in the folders noted above.
Resource Archives
From version 8.2, PlanetPress Workflow maintains an archive of previous versions of
resources, in the following location:%PROGRAMDATA%\Objectif Lune\PlanetPress Workflow
8\PlanetPress Watch\OLConnect\Archive , each in their own folder:
ldatamapper contains archives of the data mapping configurations (.OL-datamapper)
ljobcreation contains archives of the Job Presets(.OL-jobpreset)
loutputcreation contains archives of the Output Presets (.OL-outputpreset)
ltemplate contains archives of the templates (.OL-template)
lworkflow contains archives of Workflow configurations received by the server.
The archives are saved using the template named followed by a timestamp. A maximum of 30
of each instance of a resource is kept (meaning if you have 10 different templates, a maximum
of 300 files will be present in the archive\template folder). Older archives are deleted
automatically as new archives are created.
About Data
Data is what drives your business, and our software. We define data as anything that is
obtained through an Input Task and used within the process itself. Once the data is obtained, it
becomes the job file that is passed from one task to another and generally used to generate
output.
Data can be manipulated using the tasks in the process, used as comparison for conditions and
loops, complemented with data from other sources, and used to generate your output. It
originates from many different sources (as many as the input tasks support), parts of it can be
stored in variables, and is always accessible by the task that currently handles it.
Data is referred to using Data Selections either from PlanetPress Workflow or a PlanetPress
Design Document that is being merged with the data (for example in a printed output).
Page 23
For more information about Data, please refer to "Sample Data" on page36.
Note
Null characters present in the data may not be displayed properly when using
PlanetPress Workflow Configuration program, and that they may also be printed
differently by different printers. To ensure consistency, you should consider filtering out
such characters.
Data File and Job File
Whichever source it may come from, a serial port, an e-mail message, or an LPR request, for
instance, and whatever its format, data entering a PlanetPress Workflow process via an input
task is always referred to as a data file. Job file is a more general term, that can refer to data
files as well as other types of files traveling through a process. Image files, for example, can be
passed from task to task in order to be downloaded to a printer. So files traveling within a
process are mostly referred to as job files.
By default, job file names are generated using the %f variable. You may change the
wayPlanetPress Workflow names job files by using any combination of static characters,
variables and Job info variables. You could for instance enter Process_%w_Job_%f in the
File name box to add the process name in the name generated by the PlanetPress Workflow
Tools.
A single job file can be the source of multiple job files. This is the case, for example, when a
process includes multiple branches, as each branch is given a duplicate copy of the job file.
This is also the case when a job file is split into multiple smaller files by a Splitter action task,
for instance (See "Data Splitters" on page368).
It is important to note that job files may be used as a helpful debugging resource (See
"Debugging and Error Handling" on page55).
Actual Data and Sample Data
The actual data is the dynamic data captured by PlanetPress Workflow at run-time. The sample
data file is a static sampling of the run-time data.
Page 24
In the PlanetPress Workflow Configuration program, you use sample data files to create and
edit PlanetPress Workflow configurations.
Job File Names and Output File Names
When an input task sends a new data file down a process, it gives it an internal file name
referred to as the job file name (associated with the %f variable). The new job file typically
keeps the same name until the end of the process.
lIf the job file comes to a branch in the process, PlanetPress Workflow makes a copy of the
job file and give the new file a new job file name.
lIf the job file is processed by a splitter action task, the task typically creates a number of
new files which are all given new job file names.
Since these files are generated and managed by PlanetPress Workflow, you should not
actually pay too much attention to their names.
Many output tasks, on the other hand, let you determine exactly how you want the files they
generate to be named. In the case of Send to Folder output tasks, for example, output files are
saved under their job file names by default (using the variable %f), but you may use a static
(MyOutput.txt, for example) or variable name (%O_Invoices, for instance) of your choosing.
Variables such as %o (original file name) bring up the issue of file overwriting. If the process
receives two source files with the same name, the second output file may overwrite the first one.
This may be what you want, but otherwise you may consider using another variable, such as in
%u (unique 13-character string).
When choosing naming schemes for output files, consider the following:
lFor the benefit of users who must identify files, be it in a folder or on a printer queue,
consider using names that are as meaningful and precise as possible.
lSome devices or applications may use file name extensions to know what to do with
incoming files.
Since variable properties can be entered in the boxes where you specify the folder and file
names, you can use variables, data selections and static text. You could, for example, use the
following: ClientID_@(1,1,1,1,14,KeepCase,Trim)_StatMonth_%m.
Page 25
One last consideration regarding output file names has to do with standard JPEG and TIFF files
generated by PlanetPress Image. When an output job contains multiple pages, multiple JPEG
or TIFF files are generated (one image per file), each one identified by a sequence number
appended to its name (this is managed by your PlanetPress Workflow). A three page job to be
called Invoice, for example, will generate three JPEGs or TIFFs called Invoice0, Invoice1 and
Invoice2. Note that this does not apply to multiple TIFFs, which can include multiple images in
a single file.
Note
You can change the name of a previously named file using a Rename action task (see "Rename"
on page334).
Data selections
A data selection could be compared to an address. It indicates a location within a data file or
database (the job file, metadata file, or Data Repository).
Data selections are always evaluated at run-time so they are always dynamic and depend on
the job file that is currently being processed.
There are several types of data selections you can use, depending on which emulation you are
using, whether or not Metadata have been created by a previous task in the process, and
whether or not data have been entered in the Data Repository.
Adding a data selection
A data selection can be used in any task property that may contain a variable. These properties
are recognizable by their colored field label (maroon, by default). Right-click the property field
and choose Get Data Location or Get Metadata Location to open the Data Selector (see "The
Data Selector" on page31) or Get Repository Location to open the Data Repository Manager
(see "Data Repository Manager" on page721).
Note
The Get (...) Value options will also open the Data Selector or the Data Repository Manager, but
once selected, the value becomes static and does not change between each datapage and job file.
Page 26
After opening a sample of the data and/or metadata, you can easily make a selection.
It is also possible to manually enter a data selection, or to change it after making a selection
with the mouse pointer.
Wild card parameter "?"
Data/metadata selection functions accept a wildcard parameter "?", indicating the function
operates on allnodes (not just one) of a given level.
Examples
lIn a PDF emulation, the format of a selected region could be:
region(?,0.59375,2.21875,1.85416,2.51041,KeepCase,NoTrim)
In this case “?” represents the current physical data page processed by the task.
lIn the following rule, the Metadata selection function loops through all datapages in a job,
comparing their index in the document to a value:
(GetMeta(SelectedIndexInDocument[0], 11, Job.Group[?].Document
[?].Datapage[?]) Equal 0
lIn the following rule, the question mark in the text-based data selection represents the
current page number:
(@(?,1,1,1,9,KeepCase,NoTrim) IS EQUAL TO Page 1 of)
Text-based data selections
Text-based selections are used for text data files such as Line Printer, ASCIIand Channel Skip
emulations. The selection refers to a rectangular selection that may contain multiple lines, rows,
columns on a given page.
Syntax
@(page number, from line, to line, from column, to column, case option, trim
option)
Here is a breakdown of the syntax (all options are mandatory):
l@():Always surrounds a data selection.
lPage Number:The data page number from which you want the data selection to grab the
data. If you want to get data from each page individually, this has to be done after a
splitter.
Page 27
lFrom Line:The starting line of the data selection.
lTo Line:the last line of the data selection.
lFrom Column:the leftmost character position of the data selection.
lTo Column:the rightmost character position of the data selection.
lCase Options:This can be one of three options:
lKeepCase:Keeps the current uppercase and lowercase letters as they are.
lUpperCase:Converts all letters to their uppercase equivalent.
lLowerCase:Converts all letters to their lowercase equivalent.
lTrim Option:Can either be "Trim"if you want to trim empty spaces before and after the
data selection or "NoTrim"if you want to retain the extra spaces.
Database data selections
These selections are used for database-driven data files such as Database and
CSVemulations. The selection refers to a specific field on any given data page.
Syntax
field(record set number, child number, field name, treatment of character case,
treatment of empty trailing cells)
Here is a breakdown of the syntax (all options are mandatory):
lfield():Always surrounds database field selections.
lRecord Set Number: The data page (or "record") of the data selection.
lChild Number:Line Number in the record (if there are multiple lines returned for one
single record).
lField Name: The name of the field you want to retrieve.
lCase Option: This can be one of three options:
lKeepCase:Keeps the current uppercase and lowercase letters as they are.
lUpperCase:Converts all letters to their uppercase equivalent.
lLowerCase:Converts all letters to their lowercase equivalent.
lTrim Option:Can either be "Trim"if you want to trim empty spaces before and after the
data selection or "NoTrim"if you want to retain the extra spaces.
Page 28
Data Repository lookups
The Data Repository selections are made through the lookup function. Selections are done
from the data located in the "Data Repository Manager" on page721. The lookup function
returns the value of a single key, which is always a string.
Syntax
lookup(group, return key, lookup key, lookup value)
Here is a breakdown of the syntax (all arguments are mandatory):
lgroup:The name of the group in which to retrieve the value. Does not need to be
surrounded by quotes.
lreturn key:The name of the key where the information you want to retrieve is located.
Does not need to be surrounded by quotes.
llookup key:The name of the key in the group with which to look up the value. The return
key of the KeySet in which the lookup key's value matches the lookup value will be
returned.
llookup value: A string surrounded by quotes which will be used in the lookup.
PDF data selections
These selections are used for PDF data files. The selection refers to a specific area of any
given page of the PDF by using precise region coordinates (in inches).
Note that when adding a metadata field, if you perform a multi-line data selection on a PDF
region, only the first line of that region will be set to the metadata field.
Syntax
region(page, left, top, right, bottom, case option, trim option)
Here is a breakdown of the syntax (all options are mandatory):
lregion():Always surrounds PDFdata selections.
lPage:The page of the PDFfrom which to retrieve the data.
lLeft:Exact horizontal position (in inches)that defines the left of the selection region.
lTop:Exact vertical position (in inches)that defines the top of the selection region.
Page 29
lRight:Exact horizontal position (in inches)that defines the right of the selection region.
lBottom:Exact vertical position (in inches)that defines the bottom of the selection region.
lCase Option: This can be one of three options:
lKeepCase:Keeps the current uppercase and lowercase letters as they are.
lUpperCase:Converts all letters to their uppercase equivalent.
lLowerCase:Converts all letters to their lowercase equivalent.
lTrim Option:Can either be "Trim"if you want to trim empty spaces before and after the
data selection or "NoTrim"if you want to retain the extra spaces.
Metadata selections
Metadata selections are used with any type of emulation, as long as a metadata file was
created by a previous task in the process.
Tip
To get a sample of the metadata file, debug your process and step through it until the option View
Metadata gets enabled. This happens when metadata have been created by a task in the process.
Open the metadata viewer and save the metadata file to use it as a metadata sample file in the Data
Selector.
Syntax
GetMeta(Field Name [, Option Flags, Metadata Path])
Here is a breakdown of the syntax:
lGetMeta():Always surrounds metadata selections.
lField/Attribute Name:specifies the name of the field (or attribute, if the GetAttribute
option flag is set) to retrieve (see "Metadata" on page38).
lOption Flag (optional):Sets the options for the selection (see table below).
Page 30
lMetadata Path (optional):Defines the precise path where the Metadata Field is located.
Note
Metadata Index/Count values are zero-based: the first element in any collection
has an index of 0 and the last element's index corresponds to the collection's length
minus 1.
Option flags
The flag value to enter should be the sum of all desired flags. So, a value of 11, which is 8+2+1,
means that behavior 8, 2 and 1 are applied.
A value of 0 means 'no flag'.
Name Value Behavior
GetAttribute 1 Search for the name argument in the attribute collection
instead of the default field collection. See: "Metadata" on
page38.
NoCascade 2 Search only the level specified by the path argument
(defaults to Page level when path argument is empty),
instead of default behavior, going from the Page level to
the Job level.
FailIfNotFound 4 Raise an error and crash the job is the specified name is
not found instead of returning an empty string.
SelectedNodesOnly 8 Returns values from the selected nodes only.
The Data Selector
The Data Selector is the tool you use to choose your sample data and metadata files, to select
the appropriate emulation, to make data selections, and to stabilize your data.
To open it:
Page 31
lChoose Debug > Select, on the menu.
lRight-click a task property that may contain variables (recognizable by the color of its field
label, which is maroon by default)and choose one of the Get Data ... or Get Metadata ...
options.
lDebug your configuration and step through it until the option Debug > View Metadata
gets enabled. This happens when the metadata file has been created by a task in the
process.
The Data Selector is divided in two tabs:Data and Metadata.
Data tab
The Data tab contains the Data Options, which let you select your emulation, and the Selector
Options, which let you personalize the data selector's display options (see Data Selector
Page 32
Display Preferences).
The Data Selector uses the emulation (either the emulation chosen when the sample data file
was selected, or the one chosen in the last Change Emulation action task appearing above
the current task) to format the data. It displays the formatted data to let you make selections
easily using the mouse pointer.
Depending on the chosen emulation and data file, the options in the Data Selector, the Sample
data file section and the Data pane itself may change to accommodate your choice. The Line
Printer, Ascii, Channel Skip and User-Defined emulations will display the default options (see
the Emulation section)and a grid-like display of each character on each line. The following
emulations however, will be slightly different.
Database Emulation
lThe Database emulation changes the Browse button( ) for the Database Emulation
Configuration button ( ), which displays the Database Emulation Configuration (see
Database Emulation).
lOnce a database has been opened and query entered, the Data pane displays the results
of the SQLQuery in a grid format, which each line representing a single returned row from
the database. Each column represents a field returned by the query, with its field name as
a row header.
XMLEmulation
lXMLdata is represented in a tree structure which corresponds to the data in the XMLfile.
Each node of the XMLcan be expanded to see the nodes under it. See XML Data
Emulations.
PDF Emulation
lIf you use a PDF emulation, the Data pane displays the data as you would see it in any
PDFreader.
lA new zoom drop-down list is displayed to let you set the zoom in percentage or fit the
PDFto the window or the width of the window.
lA new status bar, displaying the (Left, Top) and (Right, Bottom) coordinate pairs, is shown
under the Data pane.
Page 33
Metadata tab
The Metadata tab allows to load a metadata file and make a selection from it.
The Sample metadata filename is the path to the metadata file describing the current sample
data file. Buttons on the rightcan be usedto load metadata from a file or to save the current
metadata to a file.
Tip
To get a sample of the metadata file, debug your process and step through it until the option Debug
> View Metadata gets enabled. This happens when metadata have been created by a task in the
process. Open the metadata viewer and save the metadata file to use it as a sample file. Click the
Open a meta data file button to open the sample in the metadata selector.
PlanetPress Design documents (unlike Connect Designer templates) are built to contain
metadata. PlanetPress Design users may therefore generate a metadata file for their active
sample data file, using a PlanetPress Design document:click the Create meta data file button.
The Generated PressTalk Expression shows the expression to retrieve the currently selected
attribute or field. Metadata are retrieved with the GetMeta() function (see "Metadata selections"
on page30). This expression is editable, which allows you to customize the string returned by
the metadata selector.
Tip
The wildcard parameter '?' indicates that the function operates on allnodes (not just one) of a given
level; see "Wild card parameter "?" " on page27.
The Enable search on multiple levels option is available when a metadata is selected under
Production information or User defined information. If it is not selected, the option flag includes
NoCascade (+2). For an explanation of option flags in the GetMeta() function, see "Option
flags" on page31.
Metadata level is a tree view allowing users to select the metadata level from which to display
or select metadata elements.
Page 34
The Production information list displays all metadata fields describing the current
metadatalevel,as selected in the Metadata Level tree view, for the current data page, as
selected in theData page box.
The User defined information lists all metadata fields defined by the user on the current
metadata level.
Note
A number of the options in the Metadata Selector in PlanetPress Design 7 are no longer available in
the user interface of PlanetPress Workflow . However, when these settings are made in PlanetPress
Design 7, they will function as expected in PlanetPress Workflow 8.8.
AboutData Emulation
Emulations are like filters that can be used to read the data. When you create a document in
PlanetPress Design, you choose a sample data file and specify the emulation to use for the
chosen data. The emulation setting you choose will typically always be associated with that
document. If you choose a CSV (comma separated values) file and specify the corresponding
emulation, for instance, commas encountered in the data will typically be considered as value
separators.
Within PlanetPress Workflow, the same emulation tools as PlanetPress Design are available
throughout your process, using the Data Selector. One notable exception however is that User-
Defined Emulation is not available because it uses PlanetPress Talk code, which is not
available within PlanetPress Workflow Configuration Program.
The emulation that is used in your process can change during the process, and can be different
than the one used in any PlanetPress Design document used in your process. PlanetPress
Design documents use their own emulations, as defined in the document itself from
PlanetPress Design.
Emulations in PlanetPress Workflow:
lLine Printer
lASCII
lCSV
Page 35
lChannel Skip
lDatabase
lXML
lPDF
Warning
PDFEmulation, also called Document Input, is only available in PlanetPress Workflow.
For more information about each emulation and how to use them, please refer to PlanetPress
Design User Guide.
Using the File Viewer
The File Viewer is like a Data Selector without any data related options, such as emulation
settings. It is displayed when doing a data selection from the Generic Splitter task (see
"Generic Splitter" on page377) with the Use Emulation option unchecked. The only data
formatting codes to which the File Viewer responds are line breaks.
For more information on the selecting data, see "The Data Selector" on page31.
Sample Data
PlanetPress Workflow is a versatile tool that can capture various types of data files and
dispatch this data to various PlanetPress Design documents. To fully understand PlanetPress
Workflow and how it treats data, you must understand how it is integrated into PlanetPress
Design.
This section covers issues relating to the sample data used to create your PlanetPress
Workflow configuration and to the actual data that PlanetPress Workflow will send to
PlanetPress Design documents. It is an important section which you should fully understand
before you start creating your configuration. Also included in this section are procedures that let
you make data selections as well as get data from the sample data file.
Since many of the concepts and explanations included in this chapter are closely related to
concepts and explanations found in the PlanetPress Design User Guide, we suggest that you
review this document, especially the Selecting an Emulation section.
Page 36
Choosing a Database Type Sample Data File
The procedure for selecting a sample data file that is in fact a database is the same as doing so
in PlanetPress Design. For more information, please see the relevant page in the PlanetPress
Design User Guide.
Note
You can also use the PlanetPress Workflow Database action task to get data form a
database, and output in multiple different formats such as CSV. See "Database Query"
on page299.
Choosing a Sample Data File
In order to create your PlanetPress Workflow Process, the sample data you are going to use
has to correspond precisely to the job files that will be treated by that process, at least in terms
of structure.
The sample data file should have a relatively small number of pages (generally less than a
hundred)in order to be processed quickly, while your actual data may be much larger and take
more time to process. The sample data file should also contain at least one of every exception
you may want to detect, or data used for a specific condition. For example if you wanted to filter
out any data for clients in Canada, you would want to use a data file that has at least one user
from Canada, to test whether your condition removes it.
To choose a sample data file:
1. Click the Debug tab in the PlanetPress Workflow Ribbon.
2. Click on Select in the Data group.
3. Use the Data Selector to choose your sample data file and emulation options.
4. Click OK on the Data Selector.
PlanetPress Workflow also keeps the last 9 used data files in memory, which you can reopen to
use in the same process, or a different one.
Page 37
To reopen a sample data file used previously:
1. Click the Debug tab in the PlanetPress Workflow Ribbon.
2. Click on Reopen Data File in the Data group.
3. Click on one of the data files in the list.
4. Use the Data Selector to change the emulation options if necessary.
5. Click OK on the Data Selector.
Metadata
Metadata is a hierarchical structure describing a job. Simply put, metadata is data about data
or, in other words, information tagged to data. Metadata includes information about the data file
itself, the document, custom user fields and in some cases page properties and page counts.
PlanetPress Workflow provides a whole series of plugins to create and edit Metadata within
processes (see "Metadata Tasks" on page509).
Note
Applications or plugins created in PlanetPress Suite 6 and using metadata will need to
be updated for use in version 8.8. No backward compatibility mode is available.
Warning
When a user-defined emulation is used with metadata, results and behavior are unknown
and unsupported. For instance, refreshing the metadata file may cause the document to
crash and/or corrupt. For this reason, it is strongly advised to create backup copies of
your documents beforehand.
Metadata structure
The hierarchical structure of the metadata is composed of a number of basic levels for adding
information to the job. These levels are, from top to bottom:
Page 38
lJob: a file that contains 1 or more groups.
lGroup: a logical and ordered group of documents (ex: all invoices for a specific customer
number; all documents going to the same address, etc.).
lDocument: group of 1 or more ordered datapages intended to the same recipient from the
same source (ex: invoice).
lDatapage: 1 atomic unit of content that produces zero, one or more pages.
lPage: 1 side of a physical paper sheet.
When metadata is produced for a given job, a hierarchical (i.e. tree-like) structure is created,
composed of the above elements in the following order: Job > Group(s) > Document(s) >
Datapage(s) > Page(s). Any operation that modifies the data with regards to the structure (ex:
remove pages, alter the data, etc.) makes the metadata obsolete and so it must be recreated or
refreshed.
Metadata in OL Connect tasks
Although the metadata file created and maintained by OL Connect tasks looks the same as the
metadata file produced by other tasks, it is in fact different: it contains less information. Only the
first three levels in the metadata hold information about the job: Job,Group and Document. A
Group has information about a record set and a Document about one record. Datapage and
Page nodes are visible in the Metadata file, but in this case they don't contain any actual job
related information.
Taking this limitation into account, the Metadata related plugins (see "Metadata Tasks" on
page509) can be used in conjunction with OL Connect tasks nonetheless.
PlanetPress Design example
As an example, consider the typical case of a PlanetPress Design document which uses a Line
Printer data file of transactional data in order to generate PDF invoices for a series of clients. By
using the Metadata tools available in PlanetPress Workflow, the following information can be
added to the data file:
lThe job contains only invoices for clients located in Montreal.
lSince more than one invoice can go to the same recipient, invoices are grouped by
customer.
lEach invoice is a document resulting from the execution of a PlanetPress Design
document over one or more datapages, which results in zero or more physical pages
being output.
Page 39
A single JOB can be composed of GROUPS of DOCUMENTS, which themselves are
composed of physical PAGES produced by executing a PlanetPress Design document on one
or more DATAPAGES.
Metadata elements
Each metadata node (i.e. Job, Group, Document, etc.) is described with a series of elements,
that is, system-defined attributes or user-defined fields holding static or dynamic information
about the node they are attached to. Each element has a name and a value. More specifically,
here is a definition of these 2 types of elements:
lAttribute: A read-only, system-defined element which holds a certain information about a
certain node in the Metadata structure. This information can be static (e.g. the size of a
physical page) or evaluated on-the-fly (e.g. the number of documents in a group).
Attributes are non-repetitive (i.e. name is unique) and do not persist through metadata
recreation.
lField: A read-write, user-defined element which holds custom information about a certain
node in the metadata structure. Fields are repetitive (i.e. the same field may appear
multiple times) and persist through metadata recreation.
Page 40
In addition to attributes and fields, each node of type group, document or datapage has a
Boolean property called 'selected' that indicates whether or not to produce the pages under that
node. By default, this property is set to true for all nodes.
Metadata attributes reference
The Metadata attributes are categorized as either Production, Finishing or Index/Count.
Production attributes describe the production of the job and/or metadata (e.g. path and name
of the datafile, date at which metadata was created, etc.)
Finishing attributes describe the finishing intent (e.g. page dimensions, page orientation,
duplex mode, etc.).
Note
The presence of some finishing attributes depends on the PlanetPress Design document and target
device used when producing the job.
Index/Count attributes are not part of the original metadata file. They are evaluated live based
on the content of the metadata.
Note
Metadata Index/Count values are one-based when viewed in the user interface: the first element in
any collection has an index of 1 and the last element's index corresponds to the collection's length.
However, in the API and in metadata selections, they are zero-based: the first element in any
collection has an index of 0 and the last element's index corresponds to the collection's length minus
1. This means the zero-based value has to be used when retrieving metadata (see also: "Metadata
selections" on page30 and Rule Interface).
In the following table, the last 5 columns indicate at which level the corresponding attribute is
available. This also depends on the type of job, however. In the metadata file created for an OL
Connect job, only three levels are filled with actual data about the job: Job, Group and
Document.
Page 41
Attribute Description Categor
y
J
o
b
Gro
up
Docum
ent
Datap
age
Pa
ge
DataEncoding (optional)
Name of the
character
encoding.
Producti
on
X X X
DataFile (optional) Path
and name of
the data file
used by the
PlanetPress
Design
Document.
Producti
on
X X X
Date Date the
metadata was
created in ISO
format.
Producti
on
X X X
Time Time the
metadata was
created in ISO
format.
Producti
on
X X X
Title Title of the
source
document.
Producti
on
X X X
Producer Name of the
software that
created the
metadata.
Producti
on
X X X
Page 42
Attribute Description Categor
y
J
o
b
Gro
up
Docum
ent
Datap
age
Pa
ge
Creator Name of the
software that
created the
source of the
metadata.
Producti
on
X X X
TargetDevice Name of the
device for
which the
metadata and
associated
data is
intended.
Producti
on
X X X
Dimension Two floats
separated by a
colon
indicating the
media size in
typographical
points (ex:
612:792).
Finishin
g
X X X X X
Orientation "Rotate0",
"Rotate90",
"Rotate180" or
"Rotate270",
indicating
respectively
portrait,
landscape,
rotated portrait
Finishin
g
X X X X X
Page 43
Attribute Description Categor
y
J
o
b
Gro
up
Docum
ent
Datap
age
Pa
ge
and rotated
landscape.
Side "Front" or
"Back";
indicates
whether the
page is on the
front or the
back of the
paper sheet.
This attribute
is a "best
effort" and is
device-
dependent.
Finishin
g
X
Duplex "None",
"DuplexTumbl
e" or
"DuplexNoTu
mble";
indicates a
change of the
duplex status.
Finishin
g
X X X X X
InputSlot Device-
dependent
identifier of the
media source.
Finishin
g
X X X X X
OutputBin Device- Finishin X X X X X
Page 44
Attribute Description Categor
y
J
o
b
Gro
up
Docum
ent
Datap
age
Pa
ge
dependent
identifier of the
media
destination.
g
Weight Device-
dependent
weight of the
media.
Finishin
g
X X X X X
MediaColor Device-
depedent
color of the
media.
Finishin
g
X X X X X
MediaType Device-
dependent
type of the
media.
Finishin
g
X X X X X
Index Index/C
ount
X X X X
IndexInDocument Returns the
Absolute
index of the
node within all
the nodes
under the
parent
Document.
Index/C
ount
X X
Page 45
Attribute Description Categor
y
J
o
b
Gro
up
Docum
ent
Datap
age
Pa
ge
IndexInGroup Returns the
Absolute
index of the
node within all
the nodes
under the
parent Group.
Index/C
ount
X X X
IndexInJob Returns the
Absolute
index of the
node within all
the nodes
under the
parent Job.
Index/C
ount
X X X X
Count Index/C
ount
X X X X
DocumentCount Index/C
ount
X
DatapageCount Index/C
ount
X X
PageCount Index/C
ount
X X X
SelectedCount Index/C
ount
X X X X
SelectedDocument Index/C X
Page 46
Attribute Description Categor
y
J
o
b
Gro
up
Docum
ent
Datap
age
Pa
ge
Count ount
SelectedDatapage
Count
Index/C
ount
X X
SelectedPageCoun
t
Index/C
ount
X X X
SelectedIndexInDo
cument
Returns the
Absolute
index of the
node within all
the selected
nodes under
the parent
Document.
Index/C
ount
X X
SelectedIndexInGr
oup
Returns the
Absolute
index of the
node within all
the selected
nodes under
the parent
Group.
Index/C
ount
X X X
SelectedIndexInJo
b
Returns the
Absolute
index of the
node within all
the selected
nodes under
Index/C
ount
X X X X
Page 47
Attribute Description Categor
y
J
o
b
Gro
up
Docum
ent
Datap
age
Pa
ge
the parent Job.
NumCopies Indicates how
many times
the job is set
to execute, as
set when
printing using
a Windows
driver.
Index/C
ount
X
Author Name of the
user who
printed the job
initially, as
available in
the spool file,
and as the first
job info of the
Windows
capture input.
Producti
on
X
Metadata tasks
A set of special Workflow plugins allows to edit the metadata during a Workflow process. See
"Metadata Tasks" on page509.
Metadata Tools in PlanetPress Design
PlanetPress Design includes a complete set of metadata-related functionality, which can be
referred to as Metadata Tools. These tools can be used to generate metadata, retrieve or define
metadata elements, and build the metadata structure.
Using PlanetPress Design, one can:
Page 48
lGenerate metadata for any given sample datafile.
lGraphically retrieve the value of a metadata attribute or field for use in any design object.
lDefine documents and groups using any condition.
lDefine custom metadata fields.
lManipulate Metadata with PlanetPress Talk commands.
Following is a description of the Metadata tools which allow to perform the above tasks:
Metadata Generation using Data Capture with PlanetPress Printer
The Objectif Lune Printer Driver (PS) allows end-users to print directly to PlanetPress Design
from any Windows application, by using the familiar File|Print option. At the other end,
PlanetPress Design can capture the incoming stream and convert it internally into a PDF file
along with its metadata. By default, capturing a document input using a PlanetPress Printer will
generate a PDF along with its metadata.
Metadata Generation and Refresh without using PlanetPressPrinter
It is possible to generate or refresh metadata for any given sample datafile by using the Refresh
Metadata option available when right-clicking on the Metadata Fields folder found in the
Document Structure Window. For example, metadata can be generated this way for a Line
Printer sample datafile captured using an LPD Queue Input.
Metadata Selector
PlanetPress Design's Data Selector window allows to view and select metadata elements. It is
accessible by double clicking inside the Sample Data window or by clicking on the Open
Active Data button available in the ribbon. The Data Selector is equipped with a new tab
labeled Metadata.
Firstly, two buttons at the top right corner of this tab allows to load or save a metadata file
generated for the current sample datafile.
Secondly, the metadata tab graphically displays all elements (i.e. attributes and fields)
available at the current level (i.e. Page, Datapage, Document, etc.). More importantly, these
elements are graphically selectable, like any other part of the sample datafile when using the
'Select Data' option inside a Text object, for example.
Page 49
Metadata in document properties
Page 50
The Metadata tab in the properties of a PlanetPress Design document allows to easily define
documents or groups.
Metadata fields
The Metadata Fields in the structure of a PlanetPress Design document allow to easily define
documents or groups, by dragging and dropping data from the Sample Data directly onto the
document's Metadata Fields.
Data Repository
The Data Repository is a permanent structure to store data that can then be reused, modified or
augmented at a later time, by different processes.
This feature was introduced in version 8.5.
The Data Repository is especially useful in situations where data needs to be kept in between
processes. A few examples:
lAn HTTP-based authentication process, once it has validated user credentials, could
store session information (unique ID, user name, session starting time) into the repository.
All other related processes could then look into the repository to determine if a new
Page 51
request is received from an already authenticated user, if the session has expired, what
the user name is, etc.
lData comes in and is merged into a Capture OnTheGo template and stored in the Data
Repository. The end-user augments the data (using the COTG as a data-entry system).
The process that receives the augmented data could look into the Data Repository to
retrieve the original data (or the ID of the original data records) in order to augment,
modify or delete it.
Structure
As can be seen in the "Data Repository Manager" on page721, the Data Repository consists of
Groups, Keys and KeySets.
Feature Name Description Equivalent Database Terminology
Group A Group is defined by its Keys
(columns), and may contain 0 or
more KeySets (rows)within it.
Table
Key A Key is defined only by its name.
The Data Repository only supports
STRING values and any data
inserted into it is converted to
string automatically. The maximum
size of a single key is 1 billion
bytes.
Column/Field
KeySet Agroup may contain as many
KeySets (rows), which contain
variable data, as necessary. A
KeySet is inserted using the "Push
to Repository" on page331 task.
Row/Record
Lookup A method of retrieving one or more
KeySets from a group in the data
repository.
Query
Page 52
Accessing the Data Repository
Via plugins
Storing data in the Data Repository
Data can be stored in the Data Repository using the Push to Repository task (see "Push to
Repository" on page331).
Retrieving data from the Data Repository
In any Workflow task where variable data is allowed (recognisable by the maroon field labels),
information can be retrieved from the Data Repository using a Lookup function. Right-click a
field with a maroon label and select Get Repository Location. This will bring up the "Data
Repository Manager" on page721. Select a Group, Key and KeySet entry to determine which
value or values should be retrieved at runtime; then click OK. The Lookup Function Syntax,
displayed at the bottom left of the Data Repository Manager, will be copied into the field.
The syntax is of the Lookup function is:
Lookup(Group_Name, Key_To_Retrieve, Key_To_Match, Value_To_Match)
This function may also be used anywhere else where the contextual menu gives access to it.
You could, for example, use it on the General tab of the Create File task, to fill in the value of a
key/value pair in a JSON string.
Tip
The Data Repository Manager displays, at the bottom left, the syntax used for accessing a specific
value.
Scripts
In a script you can access the Data Repository using the "Data Repository API" on page121.
For a quick start, turn to this How-to: Interacting with the Data Repository API.
Data Repository Manager
At design-time, the Data Repository Manager may be used to insert or remove Groups, Keys
and KeySets; see "Data Repository Manager" on page721.
Page 53
Where to find the Data Repository
In case the Repository contains valuable information that must not be lost in case of a hardware
failure, create a backup of the repository.
The Data Repository is located in the following folder:
%ProgramData%\Objectif Lune\PlanetPress Workflow 8\PlanetPress Watch\Repository.
About Documents
A Document is a file sent to PlanetPress Workflow by PlanetPress Design and is used to
produce an output when merged with data. ADocument can be an invoice, a report, a receipt or
anything else, but by itself it is empty and without any variable data.
Document are typically selected in Output Tasks, but can also appear in other tasks that
produce formatted data such as the Digital Action task and the Add Document task.
Documents contain static data such as logos, addresses and graphic formatting, as well as
placeholders for data. Documents can also contain conditions and programming logic. For
more information about PlanetPress Design documents, please see the PlanetPress Design
User Guide.
Import Documents
This procedure describes how to import variable content documents created in PlanetPress
Design. Importing documents can be useful when transferring configurations between
PlanetPress Workflow installations.
To import documents into PlanetPress Workflow:
1. Choose File | Import Documents. The Import PlanetPress Design Document dialog
box appears.
2. In the File type box, select the desired file type.
3. Navigate to the document you want to import, select it and click Open.
Page 54
The document is imported and displayed in the Configuration Components pane. This
physically installs the documents to the Documents folder relative to the install folder of
PlanetPress Workflow.
Import PrintShop Mail Documents
This procedure describes how to import variable content documents created in PrintShop Mail.
Importing documents can be useful when transferring configurations between PlanetPress
Workflow installations.
To import documents into PlanetPress Workflow:
1. Click the PlanetPress Workflow button. The Import PrintShop Mail Document dialog
box appears.
2. Choose Import, then PrintShop Mail Documents.
3. Navigate to the document you want to import, select it and click Open. The document is
imported and displayed in the Configuration Components pane. This physically installs
the documents to the Documents folder relative to the install folder of PlanetPress
Workflow.
Debugging and Error Handling
This chapter touches on two subjects that are intrinsically linked, though their use is different.
Debugging is the act of running through your process, either step by step or as a whole, directly
from the PlanetPress Workflow Configuration Tool, in order to detect and resolve issues with
your process.
Error Handling, on the other hand, occurs when your configuration has been sent to
PlanetPress Workflow services, and are running in "production"mode. On one hand the
manual task is critical when creating a process, on the other the automated handling of errors
within your processes will have a large impact on recovering from errors as they happen during
production.
About Error Handling
When your process is running, or during debugging, it may happen that the task that is currently
running causes an error, and the task fails. For example, when trying to save to a folder that
Page 55
does not exist, or printing to a printer that cannot be found.
When such an error occurs, in most cases you would want to be aware of it and to take certain
actions in order to correct or report the error. This is where our error handling features come in
handy.
Most of the tasks, branches and conditions included in your process can have their own error
handling behavior, with the exception of Comments, the Input Error bin task, and older legacy
tasks from previous versions of PlanetPress Workflow that did not have error handling.
By default, when an error occurs, the task is skipped and the unmodified job file is passed on to
the next task. You can overwrite this behavior by changing the options of the On Error tab of
the task.
Using the On Error tab
Whenever an error is triggered either during debugging or when a process runs in production,
the settings specified in the On Error tab of the task that generated the error will be used to
determine a course of action.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
Page 56
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Creating and Using Error Processes
An Error Process is a special type of process that never runs on its own, and cannot be called
using the GoSub or Send to Process tasks. It can only be used in the On Error tab of a task in
Page 57
your process, and will be triggered if the Send to Process option is checked in that tab and an
error process is selected in the drop-down list.
To create an error process, simply replace the initial input task by the InputErrorBin input task,
and that process automatically becomes able to handle error jobs sent to it. It is up to you,
however, to decide how that error job will be handled.
For example, you could place the job file in a specific folder, then send an email to a supervisor
indicating that a job has failed. Or you could update a database with an error status so that it
appears on a customer's online order. You could also zip the order up and send it to an
administrator, while simultaneously advising the person that sent the job that it failed.
You can have as many error processes as you can normal processes - that is, you are limited to
512 processes, subprocesses, startup processes and error processes combined.
The following information is available from within your information process when it is
triggered:
lJob Information variables (%1 to %9)
lThe data file as it was before starting the task
lGlobal variables (which are, of course, available anywhere)
lAseries of variables containing information about the error, the task that triggered it and
the process that contained it. See "Standard Variables" on page646
Note
Local variables in the process are not sent to error processes, even if the error process has a variable
of the same name.
Accessing the Logs
If your process is running live in PlanetPress Workflow service, you have two ways of seeing
what is happening, now or in the past.
Page 58
To view what processes are running and processing data as it happens:
1. In the PlanetPress Workflow Ribbon, click on the Tools tab, then select Service Console
in the Services group. The PlanetPress Workflow Service Console opens.
2. Click on the service you want to check, including:
lPlanetPress Workflow
lLPDServer
lTelnet Capture
lSerial Capture
lHTTP/SOAP Server
lLPRClient
lFTPClient
lPlanetPress Image
lPlanetPress Fax
lPlanetPress Messenger
3. When any job or file is processed by the selected service, the processing logs will be
displayed in the window on the right.
Note
The information that is displayed here is the same as in PlanetPress Workflow logs and
depends on the logging level that you set in the "General and logging preferences" on
page751.
To view logs for jobs that have already processed
By default, the logs are available in the following folder:
C:\Documents and Settings\All Users\Application Data\Objectif Lune\PlanetPress
7\PlanetPress Watch\Log
You can access this folder more quickly by using this procedure:
Page 59
1. From PlanetPress Workflow Configuration software, press CTRL+SHIFT+ALT+F4
simultaneously. The PlanetPress Workflow working folders are opened.
2. Double-click on the folder called Log.
3. There are multiple logs displayed here, including:
lppwYYYYMMDD.log - PlanetPress Workflow logs, including the year, month and
day of the log (from midnight to midnight).
lFTP, LPD, LPR, ??? (to be verified)
Note
The PlanetPress Image and PlanetPress Fax logs are available in different folders. From
the Watch folder, go up one level then go in either folders, under which you will find the
Log folder for that specific software within the suite.
Resubmit Backed Up Input Files to a Process
Each input task includes an option that lets you back up input files. This options is not selected
by default, since it has the potential to generate a very large number of back up files. To turn on
the backup option of an input task, simply open its properties, go to the Other tab and check the
Backup input files option, then type in a unique file name for the backup file (this should be
variable).
But if, for a given input task, you did select this option and something goes wrong and an
original input file is lost or corrupted, you will have the option to use the Resubmit Job
command to pull the backed up input file into the process.
Granted that you have back up copies of the files polled by an input task, you may resubmit
them as required. The PlanetPress Workflow Configuration gives you the option to resubmit
them as they were submitted originally (polled by the initial input task) or to submit them to
those tasks located on the index you select.
Page 60
The numbers on the left indicate the task index, the folder capture being level 1 and the Text
condition being on level 4.
To resubmit backed up input data files:
1. In the PlanetPress Workflow Ribbon, go to the Tools tab then click Resubmit Job in the
Services group. The File Resubmission dialog box is displayed.
2. From the Process box, select the process for which you want to resubmit the backed up
input files.
3. From the Task index box, select the index level to which you want the data to be sent.
The index is the position in the process where you want to submit the job file.
4. In the list of backed up input files, select the file you want to resubmit.
5. Using the From page and To page boxes, select the data pages that you want to
resubmit. If you want to resubmit all the data pages from the selected input file, enter 0 in
both boxes.
6. Click Send to resubmit the data.
7. To resubmit backed up input files for the same process or for a different one, repeat step 2
to step 6.
8. To close the File Resubmission dialog box, click Close.
Page 61
Warning
The From page and To page boxes are only useful for printer queue (or printer
capture)inputs. They will not function for other types of inputs. In these cases, the
complete backup job is submitted.
Knowing What to Resubmit
When something goes wrong with an output job, a print job for instance, and printouts are lost,
you usually need to know the following information in order to resubmit the input:
lThe name of the job. This refers to the name used internally by PlanetPress Workflow.
This name is generated by the input task using parameters defined within the task. To
simplify file identification, you should consider using names that include both the name of
the original input file (if any) plus some details such as the current date and time.
lThe number of each failed page. If a job contains 1000 pages and if pages 1 to 950 were
printed correctly, you need not resubmit the entire job, but only the 50 last pages.
But finding this information often poses a problem. A good way to find this information easily is
to print it using small characters at the bottom of every page. To do this, you have to do the
following.
In PlanetPress Design:
1. Use a Set Job Info action task and associate a variable with the job’s name.
2. In the output task, make sure to select the option that adds the job information to the
document.
In PlanetPress Connect:
lSomewhere at the bottom of each document page, add a Data Selection object defined
as a custom data selection that contains a reference to the job info variable sent from
PlanetPress Workflow and a current page marker.
You can use, for example, =&watch.jobinfos[6]+'-'+intostr(&current.datapage)'
Page 62
Debugging your PlanetPress Workflow Process
Debugging a process is separated in two parts. The first part is designing the process, which is
to add the different tasks, branches and conditions to the process and configuring them. The
second step is testing whether or not the process and configuration actually work.
Before debugging begins, the following prerequisites must be completed:
lThere must not be any Unknown Tasks in the process.
lAsample data file must be selected.
To choose a sample data file, click the Select button in the PlanetPress Workflow
Ribbon's Debug tab and browse to a valid sample data file.
Alternatively, if a document present in the configuration contains the necessary data file, it
can be attached to the process easily. For example to use a sample data file included in a
Connect data mapper configuration: select Connect Resources > Data Mapping
Configurations > [your data mapping configuration], right-click a data file and choose
Set as sample data file.
How to do this with Planet Press Suite Design Documents is explained here: Use Data
and Metadata Files Attached to Documents.
When debugging your process, it is important to keep in mind that:
lThe Initial Input task is never executed. The sample data file is used instead of the initial
run. This is to prevent "live"data from being retrieved by the initial input task while
debugging is being done. If, however, the initial task is critical to the process, it can be
executed by copying the initial input task and pasting it as a secondary input task (the first
action task to actually run in the process). Do not forget, however, to remove this duplicate
task before saving the configuration!
lSince the initial input task is not performed, there is no actual job information to be added
at the beginning of a data file. Note that you can use the Object Inspector on your
process to enter sample job information as required.
lIf any task makes an operation on the system (for example, capturing files, sending data,
printing, etc), it is actually executed, not simulated.
lAny task is executed with the permissions of the user that is currently running the
PlanetPress Workflow Configuration Tool. When running in service mode, the user
configured in the Configure Services dialog is used instead and this may lead to
unexpected behaviors. Please See "Workflow Services" on page702 for more details.
Page 63
Note
The sample job file should generally be the exact same format as the data that you will
receive when PlanetPress Workflow is processing the job at run-time. For more
information on how to capture your sample data file properly, please refer to the
PlanetPress Trigger and Data Capture Guide.
Debugging can be run in different ways:
lFrom the Debug tab, click on Step. This executes only the first task in the process and
waits for further action.
lFrom the Debug tab, click on Run. This executes the complete process, step by step,
until it is completed.
lRight-click on any task in the process and click Run from Here or Step from Here.
These actions are the same as using the debug Step and Run buttons, but will execute
the process only starting from that task forward.
While stepping through a process (using Step, not Run):
lDouble-click on any task to change its properties. If you change the properties of a task
before you step through it, those new properties will be used when the task is executed.
Note that you cannot modify the process itself while in debug mode (you cannot add,
delete or move tasks, change branches and conditions, etc).
lClick on Skip to ignore the next task or branch and go to the next one. The job file is not
modified in any way.
lClick on View as Text in the Data group of the Debug tab to view the current job file
using a text editor (Notepad by default).
lClick on View as PDFto view the current job file in Adobe Acrobat if it is present (this will
work only for PDFjob files).
lClick on View Metadata to open the data selector and see the current state of the
process' Metadata.
lClick on View as Hex to view the current job file in the internal Hex editor.
lClick on the Stop button to stop the debugging process. If you use Run,Step or Skip
after stopping the process, debugging starts over from the top.
Page 64
lUse the Set Breakpoint button to tag the currently selected task, branch or condition as a
breakpoint. When you click Run in your process, the process will execute every task until
it reaches a breakpoint and will stop just before the task that is set as a breakpoint.
lUse the Ignore button to disable the task, branch or condition that is currently selected. If
you disable a branch or condition, all tasks inside that branch or condition are ignored
including the output. Note that if you set a task, branch or condition to be ignored, it will
also be ignored at run-time, providing you sent the configuration to the service.
lLook at the Messages Area pane to see any message generated by the tasks that run
(See " The Message Area Pane" on page726).
lUse the Debug Information pane to see the current value of any variable in your process
or globally, or to evaluate custom expression. See "The Debug Information Pane" on
page725.
Debugging and Emulation changes
One of the most useful case where debugging is crucial is whenever the job file is converted to
another type of emulation, or if a new data file of a different emulation is used within the
process. For example, if a process starts with a Line Printer data file and the converts it into a
PDF, it is not possible to do any data selection on the PDFbecause the Line Printer emulation
is active by default. The debugging features can easily resolve this limitation.
The first method is used if your process has all the required tasks, but data selections after an
emulation change are necessary.
lStep through the process until you have reached the point after the emulation or data
change.
lAny data selection used in task properties after this point will use the new emulation.
lContinue stepping through each task until the end of the process to debug it.
This method does not allow you to add, remove or move tasks, however. The second method
can be used when that is required.
lStep through the process in debug mode until you reach the emulation or data change.
lClick on View as Text (or View as PDFif your data is PDF at this point) in the Data group
of the Debug tab.
lIn the viewer that appears, save the file to a location on your hard drive.
lStop the process, and select the file you saved as your process' data file.
Page 65
lIf you need to continue debugging your process after the emulation change, you can still
do it by using Skip on all the tasks until the emulation change, inclusively. Then use Step
or Run to continue debugging.
Lastly, PlanetPress Workflow 7.4 and higher also has an option that can be used in conjunction
with the previous to avoid skipping through large processes:
lStep through the process until the emulation or data change, as in the first method.
lSave the data file locally and then select it as your sample data file, as with the second
method.
lInstead of skipping through each task, use the Run from here or Step from here options,
either from the Debug tab or by right-clicking on the task where you want to start the
process.
Once you have created and fully debugged all your processes, you will be ready to send it to
PlanetPress Workflow service. See "Saving and Sending" on page656.
The Plug-in Bar
PlanetPress Workflow offers a constantly increasing number of plugins, while always allowing
third party plugins to be installed and set up to be used by PlanetPress Workflow. The
PlanetPress Workflow Plug-in Bar lists all plugins available in PlanetPress Workflow, and is
divided into categories, which users can customize at will.
Most of the PlanetPress plugins are installed by default, but other plugins may be added.
Because the plugins are always expected to execute some sort of task, they are always
referred to, in this documentation, as tasks, except in the specific case of importing a new
plugin or customizing the Plug-in Bar.
Categories
The default categories list plugins according to what type of task they achieve. When first
starting your PlanetPress Workflow program, the following categories are used:
Page 66
lInputs
lActions
lData splitters
lProcess logic
lConnectors
lPlanetPress Capture
lMetadata Related
lOL Connect Send
lOL Connect
lOutputs
Note
An Uncategorized category is dynamically created if your PlanetPress Workflow finds any plugin
that would not be part of the existing Plug-in Bar. User-defined plugins and third party application
plugins falls into such a category.
Settings & Customization
The Plug-in Bar can be customized according to your needs and the plugins you most
frequently used.
You can use the horizontal dark blue bar separating the plugin area and the list of categories to
change how many plugin categories are displayed as the full-width bar with the title, and how
much are displayed as icon only. Move the bar up to display more full-width categories, or
down to display them more as icons.
Furthermore, the Plug-in Bar can be customized using the popup indicator control ( ).
Customizing the Plug-in Bar is mostly used for third party or legacy plugins.
Using the contextual menu displayed by the popup indicator, you can:
lInsert, delete and rename custom categories.
lMove categories up or down.
lImport third party or legacy plugins.
Page 67
lMove plugins from one custom category to another (that you cannot move default plugins
from the default categories, you can only copy them)
lCopy plugins from one custom category to another by holding the CTRL key.
lDelete plugins from any custom category by using the Delete key.
lRevert to the default Plug-in Bar by selecting Reset to default.
To import a plugin:
1. Click on the popup control ( ).
2. Click on Import Plugin.
3. Browse to the location of the plugin DLLfile.
4. Click on Open.
5. New plugins appear in the Uncategorized category.
About Printing
To print a document using PlanetPress Workflow, you can either use the Print using a Windows
Driver output task, or use a combination of a printer queue and a Printer Queue output task.
These tasks are created and defined using PlanetPress Workflow Configuration program.
The following types of printer outputs are available in PlanetPress Workflow Configuration
program:
lLocal printing:
lWindows output queues let you send jobs to a local printer. See "Windows Output
Printer Queue" on page72.
lSend to Folder output queues let you save jobs to a local or network folder from
which they can be picked up and printed. See "Send to Folder Printer Queue" on
page76.
lRemote printing:
lFTP output queues let you upload jobs to an FTP site from which they can be
picked up and printed. See "FTP Output Printer Queue" on page74.
lLPR output queues let you send print jobs to remote printers via TCP/IP using the
LPR/LPD protocol. See "LPR Output Printer Queue" on page73.
Page 68
lWindows Driver Printing:
lThe Print using a Windows Driver output task lets you send a job to any printer
installed on the computer, using its own drivers. In this particular case, the printer
does not need to be a PostScript printer. See "Print Using a Windows Driver" on
page629.
PlanetPress Workflow provides you with three main printing scenarios:
lSend output data to be printed as is: PlanetPress Workflow sends a file containing only
the data to the selected queue.
lSend output data to be merged with a document on the printer: PlanetPress
Workflow sends one of two things:
lA file that contains only the data to the selected printer queue. The document with
which the data must be merged must be present on the printers hard disk,
otherwise printing will fail.
lA file that contains the data and the document to the selected printer queue. Since
the data and the document with which it must be merged are both sent to the printer,
printing should never fail.
lIn both cases, the document+data merging process takes place inside the printer.
lSend output data already merged with a document:PlanetPress Workflow sends a file
that contains the document already merged with the data to the selected printer queue.
The document+data merging process therefore never takes place inside the printer.
Technical
In PlanetPress Workflow Configuration, you may associate a single Printer Queue
output task with multiple Printer Queues. If you do so, you have the option of using load
balancing or not (See "Load Balancing" on page77).
PlanetPress Workflow Printer Queues
The printer queues displayed in the Configuration Components pane of the PlanetPress
Workflow Configuration program are not to be confused with Windows printer queues. When
you start building a PlanetPress Workflow configuration it contains no printer queues so you
have to create queues and set each one’s properties.
The PlanetPress Workflow Configuration program lets you create four types of printer queues:
Page 69
lWindows Output printer queues are used to send print jobs to local or network printers.
See "Windows Output Printer Queue" on page72.
lLPR Output printer queues are used to send print jobs to printers via the LPR/LPD
protocol. See "LPR Output Printer Queue" on page73.
lFTP Output printer queues are typically used to send print jobs to FTP sites. See "FTP
Output Printer Queue" on page74.
lSend to Folder printer queues are typically used to send print jobs to local or network
folders. See "Send to Folder Printer Queue" on page76.
The properties associated with each queue will differ depending on the queue type. In the case
of an FTP Output printer queue, for example, the properties include the IP address of the FTP
server. In the case of a Windows Output printer queue, on the other hand, you will find the name
of a local or shared Windows printer queue.
To send print jobs to any of those PlanetPress Workflow printer queues, you must use a Printer
Queue output task. Note that with a single task, you can send print jobs to multiple printer
queues, regardless queue types.
Shared Printer Queue Properties
A printer queue’s advanced properties includes the printers speed and any special pre- or
post-job commands required for printer specific reasons. Pre-job commands are added right
before the data in the data file, while post-job commands are placed at the end of the data file.
Properties
Advanced tab
lPrint speed: Enter the speed, in pages per minute (PPM), of the printer associated with
the printer queue. This value is used to determine how to divide jobs when you use the
Queue Balancing option for load balancing.
lCommands: The list of available commands appears in this box. Select either Pre-job
commands or Post-job commands in the Selected box, and double-click a command
from this list to add it to the appropriate list.
lSelected: Select either Pre-job commands or Post-job commands to add new
commands to the appropriate list and to see those commands that have already selected.
Double-click a command to remove it from the selected list.
Page 70
lAdd: Click to add a new command to the list displayed in the Commands box. You must
then edit the new command’s description and value. Note that new commands are shared
by all printer queues.
lDelete: Click to remove a command from the Commands box.
lCommand description: Use this box to edit the description of the command currently
selected in the Commands box.
lCommand value: Use this box to edit the code of the command currently selected in the
Commands box. Use the right-click menu for a list of standard printer control characters.
Frequently Used Printer Control Characters
Character name: Character
code:
Typical use in printing context:
End-Of-Job \004 Indicates the end of a print job
Backspace \b Moves a character space backwards
Horizontal Tab \t Adds a horizontal tab
Line Feed \012 Moves to the next line
Form Feed \f Moves to the next page
Carriage Return \r Moves to the beginning of the current line
DOS End-Of-File \032 Indicates the end of a print job in a DOS
environment
Escape \033 Adds an escape character
New Line
(CRLF)
\n Goes to a new line
Page 71
Windows Output Printer Queue
Windows output printer queues send print jobs to local or network printer queues set up in the
Windows session in which PlanetPress Workflow is running. The corresponding Windows
printer driver is used in the printing process.
This type of printer queue does not support the transparency and duo-tone features, so you
should not use it with PlanetPress Design documents that use those features.
Properties
General tab
lPrinter queue: Select the Windows printer queue to which you want to send print jobs.
lJob name: Enter the job’s file name. By default, the variable %f (Job File Name) is used.
You may use a different variable, but you may not use a data selection. This information
may be used for the printers banner page.
lJob owner name: Enter the job owner name. You may use a PlanetPress Workflow
variable.The field is empty by default, which is equivalent to use the default print job
owner name, i.e. the current logged in user name.
Advanced tab
lPrint speed: Enter the speed, in pages per minute (PPM), of the printer associated with
the printer queue. This value is used to determine how to divide jobs when you use the
Queue Balancing option for load balancing.
lCommands: The list of available commands appears in this box. Select either Pre-job
commands or Post-job commands in the Selected box, and double-click a command
from this list to add it to the appropriate list.
lSelected: Select either Pre-job commands or Post-job commands to add new
commands to the appropriate list and to see those commands that have already selected.
Double-click a command to remove it from the selected list.
lAdd: Click to add a new command to the list displayed in the Commands box. You must
then edit the new command’s description and value. Note that new commands are shared
by all printer queues.
lDelete: Click to remove a command from the Commands box.
Page 72
lCommand description: Use this box to edit the description of the command currently
selected in the Commands box.
lCommand value: Use this box to edit the code of the command currently selected in the
Commands box. Use the right-click menu for a list of standard printer control characters.
LPR Output Printer Queue
LPR output printer queues send print jobs to LPD-compatible printers using the LPD/LPR
protocol. Note that most of the settings associated with LPR output are configured via the
PlanetPress Workflow user options (See "LPR Output preferences" on page767).
Properties
General tab
lPrinter address: Enter the IP address or host name of the printer receiving LPR jobs.
lQueue name: Enter the printer queue name. Based on printer and network requirements,
this property may not be required.
lData type: Select the proper data type. Select (l) Binary data if the job file is a standard
binary file. Select (f) Formatted text to interpret the first character of each line of text as a
standard FORTRAN carriage control character. Select (d) DVI file if the job file contains
data in the TeX DVI format. Select (o) PostScript file if the job file is a PostScript file.
Select (n) Ditroff format if the job file contains data in device independent troff. Select (t)
Troff format if the job file contains data in troff. Select (v) Sun raster file if the job file
contains raster images. This ensures that the printer uses the correct filter to interpret the
data.
lJob name: Enter the job’s file name. By default, the variable %f (Job File Name) is used.
You may use a different variable, but you may not use a data selection. This information
may be used for the printers banner page.
lJob owner name: Enter the job owner name. You may use a PlanetPress Workflow
variable.
Advanced tab
lPrint speed: Enter the speed, in pages per minute (PPM), of the printer associated with
the printer queue. This value is used to determine how to divide jobs when you use the
Queue Balancing option for load balancing.
Page 73
lCommands: The list of available commands appears in this box. Select either Pre-job
commands or Post-job commands in the Selected box, and double-click a command
from this list to add it to the appropriate list.
lSelected: Select either Pre-job commands or Post-job commands to add new
commands to the appropriate list and to see those commands that have already selected.
Double-click a command to remove it from the selected list.
lAdd: Click to add a new command to the list displayed in the Commands box. You must
then edit the new command’s description and value. Note that new commands are shared
by all printer queues.
lDelete: Click to remove a command from the Commands box.
lCommand description: Use this box to edit the description of the command currently
selected in the Commands box.
lCommand value: Use this box to edit the code of the command currently selected in the
Commands box. Use the right-click menu for a list of standard printer control characters.
Note
If you plan to use an LPR output printer queue to send PlanetPress Design documents generated
using the Optimized PostScript Stream option, you should not enter data selections in the Printer
address and Queue name variable property boxes. If you do need to use information stored in the
data to configure the LPR output printer queue, you should first use Job info variables to store the
information, and then use these variables in the Printer address and Queue name variable property
boxes.
FTP Output Printer Queue
Unlike FTP output tasks, which are typically used to send data files to FTP sites, FTP output
printer queues are mostly used to send print jobs to FTP sites.
FTP output printer queue properties are as follows:
General tab
lFTP Server: Enter the IP address or host name of the FTP server.
lUser name: Enter an FTP server user name.
Page 74
lPassword: Enter a password associated with the FTP server user name entered above.
lUse FTPClient default port number:Forces the FTPconnection on port 21, the default
FTPport.
lFTP Port:Enter the FTPport to use. This option is disabled if Use FTPClient default port
number is checked. The port should always correspond with the server's port number.
lDirectory: Enter the directory to which the print jobs are to be uploaded. If you leave this
box empty, the job files are sent to the root directory of the FTP server.
lFile name: Enter the name under which the print jobs will be saved. Consider using a
dynamic name, since if you use a static name every new file will overwrite the previous
one.
lConnection mode group
lActive: Select to prompt the ftp client to use the active mode when sending files to
the FTP server.
lPassive: Select to prompt the ftp client to use the passive mode when sending files
to the FTP server.
Advanced tab
lPrint speed: Enter the speed, in pages per minute (PPM), of the printer associated with
the printer queue. This value is used to determine how to divide jobs when you use the
Queue Balancing option for load balancing.
lCommands: The list of available commands appears in this box. Select either Pre-job
commands or Post-job commands in the Selected box, and double-click a command
from this list to add it to the appropriate list.
lSelected: Select either Pre-job commands or Post-job commands to add new
commands to the appropriate list and to see those commands that have already selected.
Double-click a command to remove it from the selected list.
lAdd: Click to add a new command to the list displayed in the Commands box. You must
then edit the new command’s description and value. Note that new commands are shared
by all printer queues.
lDelete: Click to remove a command from the Commands box.
lCommand description: Use this box to edit the description of the command currently
selected in the Commands box.
lCommand value: Use this box to edit the code of the command currently selected in the
Commands box. Use the right-click menu for a list of standard printer control characters.
Page 75
Send to Folder Printer Queue
Unlike Send to Folder output tasks, which are typically used to send data files to local or
network folders, Send to Folder output printer queues are mostly used to send print jobs. The
files generated will always be PostScript files.
Properties
General tab
lFolder: Enter the path of the folder to which the print jobs are to be saved.
lFile name: Enter the name of the print jobs sent to this queue. To prevent each new file
from overwriting the previous one, you should use variable names. This variable property
box lets you use a combination of text, variables and data selections.
lConcatenate files: If this option is selected, when PlanetPress Workflow tries to save the
print job under an existing name, it appends the content of the new print job file to that of
the existing file, instead of overwriting it.
lSeparator string: This option is used to add a separator string between the content of
each file when the Concatenate files option is selected.
Advanced tab
lPrint speed: Enter the speed, in pages per minute (PPM), of the printer associated with
the printer queue. This value is used to determine how to divide jobs when you use the
Queue Balancing option for load balancing.
lCommands: The list of available commands appears in this box. Select either Pre-job
commands or Post-job commands in the Selected box, and double-click a command
from this list to add it to the appropriate list.
lSelected: Select either Pre-job commands or Post-job commands to add new
commands to the appropriate list and to see those commands that have already selected.
Double-click a command to remove it from the selected list.
lAdd: Click to add a new command to the list displayed in the Commands box. You must
then edit the new command’s description and value. Note that new commands are shared
by all printer queues.
lDelete: Click to remove a command from the Commands box.
Page 76
lCommand description: Use this box to edit the description of the command currently
selected in the Commands box.
lCommand value: Use this box to edit the code of the command currently selected in the
Commands box. Use the right-click menu for a list of standard printer control characters.
Triggers
In PlanetPress Workflow, a trigger is typically a two line piece of PostScript code placed just
before the data. Triggers tell the printer to turn on PostScript mode and specify which document
should be used in the merging process (PlanetPress Design document+data).
Triggers are used in two situations:
lWhen the server running PlanetPress Workflow sends a PlanetPress Design document
along with the data to the printer, it adds a trigger before the document
(trigger+document+data).
lWhen the server running PlanetPress Workflow only sends the data to the printer,
because the document is already present on the printer, it adds a trigger before the data
(trigger+data).
PlanetPress Workflow adds the trigger code automatically, but you may want to use custom
triggers. You would do this, for example, to use special printer functions. For more on custom
triggers, see the Data Capture and Trigger Implementation Guide as well as the PlanetPress
Design User Guide.
Load Balancing
PlanetPress Workflow offers various load balancing options to distribute the printing load and
to make the process faster and more efficient. Print jobs may, for example, be split equally
among several printers, or they may be split according to each printer’s capacity and speed.
Load balancing can only be used for jobs sent to Printer Queue output tasks and it only
applies when multiple queues are selected.
In the General tab of the Printer Queue Output Properties dialog box, you may select multiple
printers, and in the Advanced tab, you can set the load balancing options for the selected
printers.
Page 77
Objectif Lune Printer Driver (PS)
Introduction
The Objectif Lune Printer Driver (PS) allows end-users to print directly to PlanetPress Workflow
from any Windows application, by using the familiar File|Print option. At the other end,
PlanetPress Workflow specifically can capture the incoming stream and convert it internally into
a PDF file along with its metadata.
Although it is available with every PlanetPress Workflow, this feature becomes even more
useful in environments where the Document Input emulation is available (with PlanetPress
Workflow).
Install a Objectif Lune Printer Driver (PS)
The Objectif Lune Printer Driver (PS) is automatically installed during the PlanetPress
Workflow setup, along with a default Windows Printer Queue called PlanetPress Printer.
Install a Windows Printer Queue using the Objectif Lune Printer Driver (PS)
A Windows Printer Queue using the Objectif Lune Printer Driver (PS) can be installed from
PlanetPress Workflow WinQueue Input plugin properties.
Creating a new Windows printer queue from any PlanetPress Workflow:
1. Start your PlanetPress Workflow Configuration program.
2. Insert a WinQueue Input plugin.
3. In the WinQueue Input plugin properties, click New.
4. Enter a Name for the printer queue.
5. Click OK.
Every new Windows printer queue using the Objectif Lune Printer Driver (PS) is shared by
default. Once such a shared queue is created, end-users can install it on their own computer by
going through the same steps they would when installing a new remote printer in their
Operating System. By default, connecting to a shared printer will automatically result in the
Objectif Lune Printer Driver being downloaded to the connecting host.
Page 78
Printer Properties setup
PlanetPress Workflow WinQueue Input task can be configured to set a Windows printer queue
using Objectif Lune Printer Driver (PS) to produce one of 3 different types of data files: EMF,
PostScript, or PDF. Note that PlanetPress Workflow can only produce EMF or PostScript files.
Possible printer properties settings, along with the data file type it will produce:
Spool Print Jobs in EMF Format:
lThis will create an EMF data file.
lThis format is usually reserved for use with the Windows Print Converter action plugin.
lThis format can be obtained using PlanetPress Workflow.
Spool Print Jobs in RAW Format:
lThis will create a PostScript data file when the option Create Composed Document
Stream (with Medatada) is unchecked.
lThis format can be obtained using PlanetPress Workflow.
lThis will create a PDF data file when the option Create Composed Document Stream
(with Medatada) is checked.
lThis format can be obtained using PlanetPress Workflow.
By default, the Create Composed Document Stream option is:
lChecked if the incoming stream has been produced with the Objectif Lune Printer Driver.
lUnchecked if the incoming stream comes from some other PostScript Driver.
lGrayed out and unchecked if the incoming stream is not PostScript.
Data Capture from PlanetPress Workflow
Once a shared Windows printer queue using Objectif Lune Printer Driver (PS) is installed on
both the server and the client sides, data capture can be achieved the same way as with any
other Windows printer queues.
1. Open your PlanetPress Workflow Configuration program.
2. Insert a new process.
3. Select WinQueue Input from the Plugin Bar and insert it in the new process.
Page 79
4. In the WinQueue Input properties, select a Windows print queue using the Objectif Lune
Printer Driver (PS) from the drop-down list.
5. Click OK.
6. Send the configuration and start your PlanetPress Workflow service.
7. Start the windows application from which you want to capture data.
8. Open your selected document.
9. Click File | Print.
10. Choose the same Windows print queue as in step 4.
Note
Steps 6-8 can be performed at any time, even if PlanetPress Workflow is not yet started. This is
because every Windows printer queue using Objectif Lune Printer Driver (PS) is paused by default.
Once the service has started, it captures every queued job.
PDF Creation Parameters
PDF files retrieved from a Windows print queue using Objectif Lune Printer Driver (PS)
have the following properties:
lPDF 1.4
lOptimized PDF (subject to change)
lNo down-sampling of images
These settings are pre-configured and cannot be changed by the user.
About Metadata
Metadata files are files containing information on the job itself rather than containing the job per
se. A job sent to the Objectif Lune Printer Driver (PS) creates its own metadata, allowing users
to retrieve relevant information, such as, for instance, the time and date the print request was
sent. For more on this, see the Metadata documentation pages.
Page 80
About Processes and Subprocesses
Processes
Aprocess is a single workflow within the configuration. Aprocess begins with a single input
task, contains one or more tasks and/or branches, and terminates with one or more output
tasks. In its simplest form, a process can simply retrieve data from a given folder and save it in a
different folder. In most cases, though, processes are more elaborate and configurations, which
may include many processes, can be extremely complex.
The available processes in your PlanetPress Workflow Configuration are listed in the "The
Configuration Components Pane" on page674. Processes in a configuration will always run
concurrently. You can schedule processes to run only at certain times or intervals (see "
Process Properties" on page704).
There are three types of processes available to you:
lANormal process will run as soon as an input file is available through its input task or, if
it is scheduled not to run at that time, will start processing as soon as the schedule
permits it.
lStartup processes are processes that run only once before every other process in a
given configuration. They can be used to perform operations that need to be completed
once before the configuration can actually be run, such as to map network drives. You
may only have one single startup process in your configuration.
lSubprocesses are processes which can be called by any other process from any action
task. They can be used to perform and reuse redundant operations that may need to be
executed numerous times.
Regular and startup processes can be set to be Active (process runs normally)or Inactive
(process will not run at all). An inactive process will display in the Configuration components as
red and strike-through. Inactive processes can be useful for designing new processes in a live
configuration, since the process does not execute there is no danger is submitting it to a
PlanetPress Workflow Service.
Subprocesses
Subprocesses are special processes that can be called by any other process. These act
exactly as subroutines in programming languages, allowing users to reuse existing processes
Page 81
by sharing them to the whole configuration file. They can thus be used to perform redundant
operations that may need to be executed numerous times; for instance, archiving a copy of a
zipped file received as the input job file, then decompressing it before sending the unzipped
version of it back to the calling process .
Whenever a process calls a subprocess, the main process (the caller) will wait for the called
subprocess to finish its execution before carrying on with its own. This means the subprocess
feature is synchronous with the main process. This also means the calling process actually
appends the subprocess to its own workflow.
Process Properties
To have access to the properties of a process or subprocess:
lRight-Click on the Process in the Configuration Components Area.
lSelect Properties.
You can also double-click on the process to show its options.
Note
Subprocesses do not have the "General Tab" which is only used for scheduling, but they
do have the Information Tab.
Options
General tab
lActive: Select to make the process active. Clear to prevent this process from running
when you send the configuration to PlanetPress Workflow.
lStartup process: Select to make this process a startup process.
lSelf-Replicating Process:Check this if you want the process to replicate itself in the
background when multiple input files are received simultaneously. When this is checked,
the input task polls its source once, determines the number of files to process, then
replicates itself up to the maximum allowed and treats the files simultaneously. The initial
process runs again once it has completed itself and replicates again as necessary, until
all files have been processed.
Page 82
lMax percentage of threading (%):Determines how many processes you may have
running at the same time. This is a percentage of the maximum number of threads
specified in the "Messenger plugin preferences" on page752. For example if the
maximum number of thread is 10 and you specify 50%here, a maximum of 5 replications
will occur (the original process +4 copies).
lAs soon as possible: Select to have the process run continuously. Clear to enable the
Time Grid to fine-tune the schedule of the process.
lDay(s) to keep backup: Indicate the number of days to keep backups of jobs processed
by input tasks. Note that backups will only be kept for those input tasks that have the
Keep backup file option selected and that they are required to resubmit input files.
lPolling interval: Enter the frequency (in seconds)at which the process should verify if
there are new jobs to process. The polling interval also applies to scheduled tasks that
only run on certain times. For example, if your process polls every 30 seconds on a task
that's only scheduled to run one hour per week, it will capture the input 120 times during
that period. Note that the polling interval is ignored when multiple files are present in the
input and will be used only when there are no longer any files to process.
lMonth: Select the month of the year when the process should be run or select All months
to have the process run all year long. This option is disabled when "As soon as
possible"is checked.
lWeek of month / by date: Select the desired option for the time grid. Note that any
selection you make in this box will be interpreted based on the selection made in the
Month box. If you chose All months in the Month box and Last in the Week of month / by
date box, then the process will run on the last week of every month. If you chose January
in the Month box and First in the Week of month / by date box, then the process will run
only on the first week of January.
lSelect Date to display dates on the grids top ruler.
lSelect any of the other options to display days on the top ruler.
lSelect All weeks to have the process run every week.
lSelect First, Second, Third or Fourth to have the process run on the first, second,
third or fourth week.
lSelect Last to have the process run only on the last week.
lTime division: Select the duration of each daily segment in the time grid. If you select
00:15, each segment will represent only 15 minutes and each day will be made up of 96
blocks (4 blocks per hour times 24 hours). If you select 24:00, each segment will
represent an entire day.
Page 83
lPoll once per activity period: Select to perform this process’ initial input task no more
than once for each set of contiguous blocks (blocks that are on the top of one another).
Choosing this option overrides the polling interval option. By default since the Time Grid
blocks are divided by hours, this option will make your polling happen once every hour.
The Time Grid
The PlanetPress Workflow Process Options dialog box includes a time grid that lets you set
exactly when you want a process to run. The grid is composed of blocks that represent time
periods on a given day. To activate the Time Grid, the "As soon as possible"option must be
unchecked.
In the Time Grid, a blue block will indicate that the process is active within that time block.
While blocks mean the process will not be active.
Page 84
lClick on any block to select / deselect it.
lClick and drag from one block to another to toggle all blocks between the two.
lShift-click on any block to toggle all blocks from the top-left corner of the grid to the block
you click.
Page 85
lTo select all of the time segments for a given day or date, click the day or date on the top
grid ruler. To deselect all of the time segments for a given day or date, CTRL+click the
day or date on the top grid ruler.
lTo select all the days or dates for a given time segment, click the time segment on the left
grid ruler. To deselect all the days or dates for a given time segment, CTRL+click the time
segment on the left grid ruler.
lTo select the entire grid, use the Select All button located below the grid. To deselect the
entire grid, use the Clear All button located below the grid.
Note
"Toggle" means turn on when it's off and vice-versa, when selecting multiple blocks in
one command. This means if you select a certain number of blocks in the Time Grid and
then use the shift+click or drag method, blocks that are on will turn off.
Technical
Changes made to the system time can have adverse effects on the processes managed
by PlanetPress Workflow. When changing from daylight saving time to standard time, for
example, if PlanetPress Workflow starts a given process at 2:00 AM, and if the system
time is then taken back to 1:00AM, the application will start a new instance of the same
process when the system time reaches 2:00 AM for a second time. So, when you
manually change the system time, be aware that it may have an effect on PlanetPress
Workflow and its processes. And for those cases when you know the system time will
change automatically, you may consider creating special schedules.
Information Tab
The Information tab lets you enter information that is not critical to your process but may help
others (or yourself in the future)to understand what the process does. It offers two boxes:
lDescription: Aone-line box to give a title or short description to your process.
lComments:A multi-line box to give more detailed information, for example the file format
expected, explanation of the system in general.
Page 86
Activate or Deactivate a Process
All processes are Active by default, but you may make any PlanetPress Workflow process
Inactive as required. Because making a process active or inactive is a change in the
configuration, to make the change effective you will have to send the edited configuration to
your PlanetPress Workflow service (See "Send your Configuration" on page17).
To activate or deactivate a process:
1. Right-click the process in question in the Configuration Components pane
2. Click Active to disable or enable the process.
3. Send your configuration.
Note
If you try to send a configuration that contains only inactive processes, the PlanetPress
Workflow Configuration program will ask you to confirm the operation (this can be
changed in the Notification User Options).
Convert a Branch to a Subprocess
To allow for maximum flexibility and backward compatibility with the subprocess feature, the
Convert to subprocess option lets users transform existing processes easily. This option is
available whenever a Branch task is selected; right-clicking on it will display the contextual
menu, which holds the Convert to subprocess option.
Selecting this option automatically creates a new subprocess, takes the branch and all of its
children tasks and inserts it in the new subprocess, including the branch task itself. In the main
process, the branch is removed and replaced with a GoSub action task referring to the newly
created subprocess.
Note
The Branch tasks options Backup job file, Backup job information and Backup emulation, are
also automatically passed to the subprocess, which means that, if the subprocess needs to use a
different emulation than the calling process, a Change Emulation task is required.
Page 87
If any task converted into a subprocess was previously using local variables, these variables
must be removed or transferred to global variables or job information to be usable in the newly
created subprocess.
Import Processes from Another Configuration File
You can import individual processes or groups of processes from a PlanetPress Workflow
configuration file without having to import the contents of the entire configuration file.
PlanetPress Workflow Configuration imports everything necessary to run the processes,
including configured tasks and configuration components.
To import components from another configuration file:
1. From the PlanetPress Workflow Button, choose Import | Configuration Components.
The Import dialog appears.
2. Navigate to the PlanetPress Workflow configuration file containing the processes or
groups of processes you want to import.
3. Select the file, then click Open. The Import Configuration dialog appears displaying all
the processes and/or process groups, as well as the Subprocesses, Global Variables,
PlanetPress Design documents and Printer Queues in the selected configuration file.
4. In the list, select the components you want to import. The PlanetPress Workflow
Configuration program lets you open and import any of the following:
lComplete PlanetPress Watch 4 to 6 configurations, as well as PlanetPress
Workflow 7 configurations.
lSpecific processes from Version 6 and 7 configurations, including their local
variables.
lSpecific subprocesses from any PlanetPress Workflow 7 Tools configurations.
lSpecific global variables from PlanetPress Workflow 7 Tools configurations.
lSpecific PlanetPress or PrintShop Mail documents.
lSpecific Printer Queues.
5. Check "Overwrite existing components with same name" if you want processes with
existing names to be overwritten by those in the imported configuration, or uncheck it to
duplicate those processes under a new dynamic name.
6. Click OK to start the import.
PlanetPress Workflow Configuration imports the selected objects and automatically
renames duplicate items in the imported configuration. If the current and imported
Page 88
configurations both include a startup process, the one in the imported configuration will
become a standard process.
Important considerations
lWhen importing a PlanetPress Workflow configuration file, your PlanetPress Design and
PrintShop Mail document are not physically imported as they are not part of the
configuration file itself. In order for the documents to be available, you will need to send
each document from PlanetPress Design and PrintShop Mail (see their respective
documentation for details).
lIf you import a PlanetPress Workflow configuration that contains a PlanetPress Fax
output task, you must update the task’s properties and refresh the host name. Otherwise,
when PlanetPress Workflow will attempt to output the file, an error will be generated.
Toggle the Run on Desktop Property
Since PlanetPress Workflow configurations are typically meant to run without user interaction,
all of their processes are set to run in the background by default. In some cases, such as when
a dialog box must appear or user input is required, you may make any process run on your
desktop instead of as a service.
Generally this will happen only when calling a third-party software using the Run External
Program plugin, but is also valid if using a Script that generates a dialog that someone must
click or interact with.
Note
The term "Desktop"is defined as the desktop of the user logged on to the computer
where PlanetPress Workflow is installed. These dialogs cannot be displayed on any
other computer.
To toggle a process’ Run on Desktop property:
1. Select an active process in the Configuration Components pane.
2. In the Object Inspector Pane, change the Run on desktop property from False to True,
or vice versa.
Page 89
Using Scripts
Scripts can be used to perform various operations, such as to manipulate data, for example.
PlanetPress Workflow can perform scripts written in four different scripting languages and also
provides an interface for editing scripts.
Warning
While this chapter provides some very useful and detailed information about scripting
within PlanetPress Workflow, its focus is to inform you about the features, variables and
functions unique to this environment. This chapter assumes that you have a working
knowledge of the scripting language you wish to use and does not purport to teaching
you anything about this language that you don't already know. Learning any of these
language is beyond the scope of this documentation.
Languages
There are four scripting languages available through the Run Script task: JavaScript, VBScript,
Python and Perl. Each language has its own strengths and weaknesses which we will not
cover in this documentation. While VBScript is the most used language at the moment, the
examples provided in this chapter are presented in all supported languages.
By default, the Run Script task expects VBScript. You can select another language via the
Language menu in the Script Editor that opens when you add the Run Script task to a process.
You can also set another language as the default for the Run Script task, in the Workflow
preferences (go to Behavior > Default Configuration).
Note
While JavaScript and VBScript are natively available on Windows operating systems.
Python and Perl require third-party tools to be functional. For Perl, ActivePerl can be
installed. For Python ActivePython (version 2.7.13 ) can be installed.
Page 91
Condition or Action
When using the Run Script as a condition, you need a way to tell your process whether the
result is true or false. The condition result is returned by the "Script.ReturnValue" on page119
variable. If the return value is zero (the default), the condition is false. Otherwise, it is true.
When using the Run Script as an action task, the job file going out of the Run Script action
task will be the same as the one coming in, unless you have specifically changed it within your
script by writing to the file that is the target of the "Watch.GetJobFileName" on page110
function. The same goes for any job info, local or global variables, unless you use the
"Watch.SetJobInfo" on page114 or "Watch.SetVariable" on page116 functions to modify them.
APIs
Multiple APIs (methods of communicating with PlanetPress Workflow scripting tools) are
available through the scripting engine, in all languages.
lThe Watch object is used to communicate with your current process and configuration.
See "The Watch Object" on page105.
lThe PlanetPress Connect REST API consists of many services that expose access to a
number of areas including Workflow, data entity management and file store operations.
See PlanetPress Connect REST API Cookbook.
lYou can manipulate PDFfiles using the PlanetPress Alambic API. See AlambicEdit
Library Reference. Note that the PlanetPress Alambic API is part of the PDFTools.
lYou can manipulate the metadata in your process using the Metadata API. See Metadata
API Reference.
lYou can communicate with a SOAPserver using the SOAPAPI. See "SOAP Server API
Reference" on page98.
lYou can communicate with the PlanetPress Capture Database using the Capture API.
See Capture API Reference.
lYou can communicate the with the Data Repository using the Data Repository API. See:
"Data Repository API" on page121.
The Script Editor and XSLT Editor
How can I edit scripts and XSLT code?
Scripts can be edited in the Script Editor and the XSLT Editor. Both editors are visually
identical and share almost exactly the same commands. They let you import and export scripts,
Page 92
perform common editing function, such as search and replace, and feature syntax highlighting
and formatting.
You can use the Script Editor to edit scripts written in VBScript, JavaScript, Perl and Python
(note that the corresponding interpreter must be locally available). You can use the XSLT Editor
to edit scripts written in XSLT 1.0 and 2.0.
For information on how to use both editors, or for a complete description of the Script or XSLT
Editor user options, refer to the Reference Help (English only).
Use the Editor
The Script Editor and XSLT Editor share most of the same commands and functions. You can
open the Script Editor using the Open Editor button both from the Run Script Properties
dialog box and from the Open XSLT Properties dialog box. When you do so, the script
currently displayed in the dialog box is pasted to the editor’s scripting box.
For information on the available editor options, refer to "Editor Options" on page769.
Import and Export Scripts
Both the Script Editor and XSLT Editor let you import and export scripts.
Note
When you import a script, it replaces any script currently displayed in the editor.
To import a script:
1. In the editor, choose File | Import. The Open dialog box appears.
2. To import a script that uses a different scripting language or that was saved under a
different file format, make a selection in the Files of type drop-down list.
3. Navigate to the script you want to import and select it.
4. Click OK. The script is imported, displayed and formatted according to the syntax of the
language selected in the editor. If the imported file had the extension of a recognized
scripting language (.vbs or .js, for example), the editor language is automatically changed.
Page 93
To export a script:
1. In the editor, choose File | Export. The Save As dialog box appears.
2. To save the script using a different scripting language or under a different file format,
make a selection in the Save as type drop-down list.
3. Navigate to the location where you want to save the exported script.
4. Enter the name of the script in the File name box.
5. To save the script using a different scripting language or under a different file format,
make a selection in the Save as type drop-down list.
6. Click OK.
Find Strings in a Script
The Find Text dialog box allows you to search for text strings in the editor. The available
options help you limit the search, making searches quicker and easier.
To find strings in a script:
Note
If you only want to search a particular section of the script, you should select it before performing
the following procedure.
1. Choose Search | Find, or press CTRL+F. The Find Text dialog box appears. The last
used string is displayed in the Text to find drop-down list box.
2. Set the search settings and options.
lText to find: Enter a new search string or select a previous search from the drop-
down list.
lCase sensitive: Select to limit the search to instances of text with the same case as
the text in the Text to find box.
lWhole words only: Select to limit the search to complete words matching the text in
the Text to find box. Whole words are defined as strings that have a space or
punctuation before and after the word.
Page 94
lRegular expressions: Select to treat the regular expressions of the scripting
language as text to search. If you clear this option, the regular expressions of the
language are not included in the search.
lGlobal: Select to search the entire content of the script.
lSelected text: Select to find matching text within the text block you select. A portion
of text must be selected before you run the search.
lForward: Select to search the script forward, from the location of the cursor or from
the beginning of the script, depending on what you choose as the origin (From
cursor begins where the cursor is currently located in the script, Entire scope begins
from the beginning of the script or beginning of script selection). If you limit the
scope to selected text, you move forward only within the selection. When the search
reaches the end of the script or script selection, the search finishes. It does not loop
back to the beginning.
lBackward: Select to search the script backward, from the location of the cursor or
from the end of the script, depending on what you choose for the origin (From cursor
begins where the cursor is currently located in the script, Entire scope begins from
the beginning of the script or beginning of script selection). If you limit the scope to
selected text, you move backward only within the script selection. When the search
reaches the beginning of the script or script selection, the search finishes. It does
not loop back to the beginning.
lFrom cursor: Select to start the search from the position of the cursor.
lEntire scope: Select to search the entire script or a script selection. The scope
croplands to a script selection if you make a selection before executing the Find.
3. Click OK. The first matching string is highlighted in the script.
4. To find the next matching string, choose Search | Find Again or press F3.
Find and Replace Strings in a Script
The Replace With dialog box lets you search for and replace text strings in the editor. The
available options help you limit the search, making replacements quicker and easier.
To find and replace strings in a script:
1. Choose Search | Replace, or press CTRL+R. The Replace With dialog box appears.
The last used strings are displayed in the Text to find and Replace with boxes.
2. Set the replacement settings and options.
Page 95
lText to find: Enter a new search string or select a previous search from the drop-
down list.
lReplace with: Enter the string that will replace the string displayed in the Text to
find box.
lCase sensitive: Select to limit the search to instances of text with the same case as
the text in the Text to find box.
lWhole words only: Select to limit the search to complete words that match the text
in the Text to find box. Whole words are defined as strings that have a space or
punctuation before and after the word.
lRegular expressions: Select to treat the regular expressions of the scripting
language as text. If you clear this option, the regular expressions of the language
are blocked from the search.
lPrompt on replace: Select to have PlanetPress Workflow display a prompt before it
replaces text. When you use the Replace All function, you are prompted each time
matching text is found. The prompt includes an All button for replacing all matching
text. This suppresses any further prompting.
lGlobal: Select to search the entire content of the script.
lSelected text: Select to find matching text only within a text block you select. The
text must be selected before you run the search.
lForward: Select to search the script forward, from the location of the cursor or from
the beginning of the script, depending on what you choose as the origin (From
cursor begins where the cursor is currently located in the script, Entire scope begins
from the beginning of the script or beginning of script selection). If you limit the
scope to selected text, you move forward only within the selection. When the search
reaches the end of the script or script selection, the search finishes. It does not loop
back to the beginning.
lBackward: Select to search the script backward, from the location of the cursor or
from the end of the script, depending on what you choose for the origin (From cursor
begins where the cursor is currently located in the script, Entire scope begins from
the beginning of the script or beginning of script selection). If you limit the scope to
selected text, you move backward only within the script selection. When the search
reaches the beginning of the script or script selection, the search finishes. It does
not loop back to the beginning.
lFrom cursor: Select to start the search from the position of the cursor.
Page 96
lEntire scope: Select to search either the entire script, or a script selection. The
scope corresponds to a script selection if you make a selection before executing the
Find.
3. Do one of the following:
lClick OK to replace the first string encountered. If you selected Prompt on replace,
a dialog box opens to ask you whether to proceed with the replacement. You can
OK to replace the first string only, or you can click All to replace that string as well
as every other string that matches the replacement settings.
lClick Replace All to replace all the strings that match the replacement settings.
4. To find and replace the next matching string, choose Search | Find Again or press F3.
Once again, if you selected Prompt on replace, a dialog box opens to ask you whether
to proceed with the replacement. You can OK to replace that string only, or you can click
All to replace that string as well as every other string that matches the replacement
settings.
Go to a Line in a Script
The Go To Line dialog box lets you jump to a specific line within your script. It works whether
or not the line number are displayed on the left side of the editor window (to know how to toggle
the line number display settings, See "Editor Options" on page769).
To go to a line in a script:
1. Click anywhere in the Script Editor, then choose Search | Go To Line, or press Alt+G.
The Go To Line dialog box appears. The last used line numbers are displayed in the
Enter new line number drop-down list box.
2. Enter a new line number in the Enter new line number box or select one from drop-down
list.
3. Click OK.
Toggle Bookmarks
Bookmarks help you identify and jump to specific places within your script (see "Jump to
Bookmarks" on the next page).
Bookmarks are displayed in the editors gutter, so you will not be able to see them unless the
gutter is both visible and sufficiently wide. If line numbers are also displayed in the gutter,
Page 97
bookmarks may be harder to see. To control line number and gutter display, see "Editor
Options" on page769.
Note
Bookmarks are not preserved when you close the editor.
To toggle bookmarks:
lPlace the cursor on a line in your script and, from the editors pop-up menu, choose
Toggle Bookmark and a given bookmark number.
If the bookmark you selected was not displayed on any line, it is added to the line where you
placed the cursor. If the bookmark you selected was displayed on the line where you placed the
cursor, it is removed. If the bookmark you selected was displayed on a different line, it is moved
to the line where you placed the cursor.
Jump to Bookmarks
Before you can jump to bookmarks, you must add bookmarks to specific lines in your script
(See "Toggle Bookmarks" on the previous page).
To jump to a bookmark:
lFrom the editor’s pop-up menu, choose Go To Bookmark and a given bookmark
number.
If the bookmark you selected was displayed on a line, the cursor jumps to that line.
SOAP Server API Reference
PlanetPress Workflow offers a SOAP server API Reference allowing jobs to be submitted from
third party application using the SOAP protocol. Remember that SOAP stands for Simple
Object Access Protocol.
While there are multiple possibilities for solutions using a SOAP server implementation, the
SOAP Server API Reference is specifically for submitting jobs from a SOAP client. It
Page 98
implements five methods that will allow SOAP clients to submit jobs and get information from
PlanetPress Workflow executing them.
Note
PlanetPress Workflow already come with a SOAP Client plugin, which can be used as an input,
action or output; this task was renamed Legacy SOAP Client.
Since the SOAP Server API Reference is primarily targeted at programmers or systems
engineers, it is rather technical.
SOAP API - SubmitJob
Syntax
SubmitJob (File, SubmitJobInfStruc , ReturnJobFile, user name,
Password) : SubmitJobResult
Description
The SubmitJob method allows users to remotely submit files to their PlanetPress Workflow from
a SOAP client. The SOAP client has the option to wait for a response file from PlanetPress
Workflow SOAP server.
Arguments
lFile – base64Binary. This is an array of byte base64 encoded (see
http://en.wikipedia.org/wiki/Base64).
lSubmitJobInfStruc – Structure containing any required information to prepare the file for
a valid insertion into a PlanetPress Workflow process.
lReturnJobFile – Boolean value. When true, PlanetPress Workflow SOAP server returns
the job file. When false, there no file is returned to the SOAP client. (For example: when
submitting a job for print, there is no need to return a file)
luser name – String containing the user name.
lPassword – String containing the password. This value is case sensitive.
Page 99
Return Value
lSubmitJobResult - Structure containing the following information:
lSuccess – Integer indicating the Success/Error level of the operation. A result of 0 means
the operation was successful.
lMessage – String containing text information about the Success/Failure status.
lSubmitJobInfStruc – See point SubmitJobInfStruc for details.
lResultFile – base64Binary. If Success is different than 0 or the ReturnJobFile was set to
False in the initial call, no file is returned. Otherwise, ResultFile contains the job file, as it
existed at the completion of the PlanetPress Workflow process (for instance, if the
process creates a PDF and sets it as the current job file, the PDF is the file that gets
returned to the calling SOAP client).
Note
The SubmitJob method only returns a file if the PlanetPress Workflow process contains a SOAP
Input task.
Note
If ReturnJobFile is set to true, the schedule options of the process should be set to a pooling lower
than four seconds, so the client application gets a timely response.
Note
To return the file, the process must be completed before the timeout of the server occurs. The
Timeout option can be set in your PlanetPress Workflow preferences.
SOAP API - PostJob
Syntax
PostJob (File, PostJobInfStruc , user name, Password) :
PostJobResult
Page 100
Description
The PostJob method allows users to remotely submit files to PlanetPress Workflow by using
the Resubmit from here feature. The main advantage of this feature is that it allows a user to
specify a starting task index from which the File is to be processed.
Parameters
lFile – base64Binary. This is an array of byte base64 encoded (see
http://en.wikipedia.org/wiki/Base64).
lPostJobInfStruc – Structure containing any required information to prepare the file for
resubmission into a PlanetPress Workflow process.
luser name – String containing the user name.
lPassword – String containing the password. This value is case sensitive.
Return Value
lPostjobResult - Structure containing the following information:
lSuccess – Integer indicating the Success/Error level of the operation. A result of 0 means
that the operation was successful.
lMessage – String containing text information about the Success status.
lPostjobInfStruc See point PostJobInfoStruct for details.
Note
The task index can be retrieved by using the GetProcessTaskList method. See point
GetProcessTaskList for details.
Note
The PostJob method can never return a file to the calling application.
Page 101
SOAP API - GetProcessList
Syntax
GetProcessList (user name, Password) : GetProcessListResult
Description
The GetProcessList function allows SOAP clients to request the list of available PlanetPress
Workflow processes, based on their authentication credentials.
Parameters
luser name – String containing the user name.
lPassword – String containing the password. This value is case sensitive.
Return Value
lGetProcessListResult - Structure containing the following information:
lSuccess – Integer indicating the system-defined Success/Error level of the operation. A
result of 0 means that the operation was successful.
lMessage – String containing text information about the Success status.
lProcessList – Structure containing the following information details.
lProcessName – String containing the process name
lActive – Boolean value specifying whether the process is currently active.
Note
To obtain access to the complete list of processes for all users, the end-user must have administrator
privileges.
SOAP API - GetProcessTaskList
Syntax
GetProcessTaskList (ProcessName, user name, Password) :
GetProcessTaskListResult
Page 102
Description
The GetProcessTaskList function will allow a user to remotely request the tasks list of a
process. This will be useful with the PostJob API since it needs a TaskIndex.
Parameters
lProcessName – The Name of the PlanetPress Workflow process.
luser name – String containing the user name.
lPassword – String containing the password. This is case sensitive.
Return Value
lGetProcessTaskListResult – Structure containing the following information:
lSuccess – Integer indicating the system-defined Success/Error level of the operation. A
result of 0 means that the operation was successful.
lMessage – String containing text information about the Success status.
lTaskNames – Structure containing the following information details.
lTaskName – String containing the name of the task
lTaskIndex – Integer : 1 based index of the task.
lTaskDepth – Integer : 1 based depth of the task.
Note
The TaskNames array will be sorted by the execution order of the process with the primary input of
the process having an index of 1.
SOAP API - GetSOAPProcessList
Syntax
GetSOAPProcessList (user name, Password) : GetSOAPProcessListResult
Page 103
Description
The GetSOAPProcessList function will allow users to request the list of PlanetPress Workflow
processes that contain a SOAP Input plugin with the SOAP action name. This is useful when
working with the SubmitJob API since it requires a SOAPActionName.
Parameters
luser name – String containing the user name.
lPassword – String containing the password. This is case sensitive.
Return Value
lGetSOAPProcessListResult – Structure containing the following information:
lSuccess – Integer indicating the system-defined Success/Error level of the operation. A
result of 0 means that the operation was successful.
lMessage – String containing text information about the Success status.
lProcessList – Structure containing the following information details.
lSOAPActionName – String containing the name of the process as seen in your
PlanetPress Workflow.
lActive – Boolean value indicating if the process is active in your PlanetPress Workflow.
Note
If a user has administrator privilege, he will have access to all processes and therefore he will see all
the processes.
SOAP API - PostJobInfoStruc
PostJobInfStruc
Structure containing any required information to prepare the file for resubmission into a
PlanetPress Workflow process.
lVariableList – Array of complex type, containing pairs of variable names and variables
value. The list also contains the JobInfo variables.
Page 104
lVariableName – String
lVariableValue – String
lProcessName – String - Name of the PlanetPress Workflow process.
lTaskIndex – Integer - 1 based index of the task where the resubmission should start.
lFirstPage – Integer - First page of data to process.
lLastPage – Integer - Last page of data to process.
Note
If both FirstPage and LastPage are set to 0, the entire data file is used.
SOAP API - SubmitJobInfStruc
SubmitJobInfStruc
Structure containing any required information to prepare the file for a valid insertion into a
PlanetPress Workflow process.
lVariableList – Array of complex type, containing pairs of variable name and variable
value. The list also contains the JobInfo variables
lVariableName – String
lVariableValue – String
lOAPActionName – String containing the name of the Input SOAP task’s action name.
The Watch Object
PlanetPress Workflow scripting offers a number of methods of communicating with your
process by means of PlanetPress 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 VBScript.
Note
While the functions here are in mixed case to simplify reading, it's important to note that
Page 105
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 VBScript, you can click on any
variable name to open a page to see examples for each supported language.
Variable Name Description
Example Usage (VBScript)
"Watch.GetJobFileName" on
page110
Retrieves a string containing the job path and file
name located in the job spool folder.
Example Usage: str = Watch.getjobfilename
"Watch.GetOriginalFileName" on
page111
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: str = Watch.getoriginalfilename
"Watch.GetMetadataFilename"
on page112
Retrieves a string containing the job's metadata path
and filename. This is useful when using the Metadata
API in your script.
Example Usage: str = Watch.getmetadatafilename
"Watch.GetJobInfo" on page113 Retrieves the content of a numbered job info (%1 to
%9).
Example Usage: str = Watch.getjobinfo(9)
"Watch.GetVariable" on page115 Retrieves the content of a local or global variable by
name.
Page 106
Variable Name Description
Example Usage (VBScript)
Example Usage: str = Watch.getvariable("Varname")
"Watch.ExpandString" on
page116
Retrieves the content of any Workflow string,
containing any variable available to Watch, including
data selections.
Example Usage: watchDate = Watch.expandstring("%y-%m-%d")
"Watch.Log" on page117 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!",1
"Watch.ShowMessage" on the
next page
Displays a popup dialog box to the user (user has to
be logged on).
Example Usage: Watch.showmessage("Hello, World!")
"Watch.InputBox" on page112 Prompts the user for a string and returns the value(will
not work when running as a service)
Example Usage: str = Watch.inputbox
("Caption","Message","default")
"Watch.SetJobInfo" on page114 Writes the value of a string to a numbered job info.
Example Usage: Watch.setjobinfo 9, "String"
"Watch.SetVariable" on page116 Writes the value of a string to a local or global variable
by name.
Example Usage: Watch.setvariable "global.GlobalVar", "Hello
Page 107
Variable Name Description
Example Usage (VBScript)
World!"
"Watch.Sleep" on page119 Pauses all processing for X milliseconds.
Example Usage: Watch.sleep(1000)
"Watch.ExecuteExternalProgram"
on the facing page
Calls and executes an external program in the
command line.
Example Usage: Watch.executeexternalprogram "del *.ps" "c:\" 0
true
"Script.ReturnValue" on
page119
Returns a boolean True or False value to a Workflow
scripted condition
Example Usage: Script.returnvalue = 1
Watch.GetPDFEditObject Is used to manipulate PDF files using the AlambicEdit
API.
See the AlambicEdit API for more information.
Watch.ShowMessage
Displays a message to the user. This method is the same as PW_ShowMessage. Use this
method to show the current message displayed whether or not a user is logged in. Note that for
this method to work, the "Run on Desktop"option must be enabled and you must be logged on
as the same user as the PlanetPress Watch Service.
Examples
In the following example, showmessage() displays a dialog box saying “test message”.
Page 108
VBScript
Watch.ShowMessage("test message")
JavaScript
Watch.ShowMessage("test message");
Python
Watch.ShowMessage("test message")
Perl
$Watch->ShowMessage("test message");
Watch.ExecuteExternalProgram
Calls and executes an external program through a specified command line. The program's
execution will be directed by the appropriate flags specified as this method's parameters.
Syntax
Watch.ExecuteExternalProgram const CommandLine: WideString; const WorkingDir:
WideString; ShowFlags: Integer;
WaitForTerminate: WordBool: integer;
const CommandLine: The command line to execute as a widestring.
const WorkingDir: The working directory for the execution of the command line as a
widestring.
ShowFlags: Integer value representing the flag to use during the execution of the command
line. These flags have an effect on the execution window opened by the
ExecuteExternalProgram procedure.
Flag Effect
0 Hide the execution window.
1 Display the window normally.
Page 109
Flag Effect
2 Display the window minimized.
3 Display the window maximized.
4 Makes the window visible and brings it to the top, but does not make it the active
window.
WaitForTerminate : A Boolean value that, if true, pauses the script until the command line has
been fully executed.
Examples
VBScript
Watch.ExecuteExternalProgram "lpr -S 192.168.100.001 -P auto
c:\myfile.ps", "c:\", 0, true
JavaScript
Watch.ExecuteExternalProgram("lpr -S 192.168.100.001 -P auto
c:\\myfile.ps", "c:\\", 0, true);
Python
Watch.ExecuteExternalProgram("lpr -S 192.168.100.001 -P auto
c:\\myfile.ps", "c:\\", 0, True)
Perl
$Watch->ExecuteExternalProgram("lpr -S 192.168.100.001 -P auto
c:\myfile.ps", "c:\", 0, true);
Watch.GetJobFileName
Returns the complete path and file name of the job. This method is the same as PW_
GetJobFileName. getjobfilename() obtains the file name of a PlanetPress Workflow process.
This is useful for manipulating the job file, for example to replace data within it. If your script
writes to this file, the modified contents will be used by the next plugin in your process.
Page 110
Example
In the following example, GetJobFileName() retrieves the name of the job file, which is then
logged using "Watch.Log" on page117.
VBScript
Dim s
s = Watch.GetJobFileName
Watch.Log "The job filename is: " + s, 3
JavaScript
var s;
s = Watch.GetJobFilename();
Watch.Log("The job filename is: " + s, 3);
Python
s = Watch.GetJobFileName()
Watch.Log("The job filename is: " + s, 3)
Perl
$s = $Watch->GetJobFileName;
$Watch->Log("The job filename is: " + $s, 3);
Watch.GetOriginalFileName
Returns the original name of the file, when it was captured. This method is the same as PW_
GetOriginalFileName.
Example
VBScript
Watch.GetOriginalFileName
JavaScript
Watch.GetOriginalFileName();
Python
Watch.GetOriginalFileName()
Page 111
Perl
$Watch->GetOriginalFileName();
Watch.GetMetadataFilename
Returns the complete path and file name of the metadata file associated with the current job file.
Example
VBScript
Watch.GetMetadataFileName
JavaScript
Watch.GetMetadataFileName();
Python
Watch.GetMetadataFileName()
Perl
$Watch->GetMetadataFileName();
Watch.InputBox
Warning
Starting version 7.0, the Watch.InputBox function is deprecated and may no longer work
due to changes in the way in which the Watch Service functions. This function is
completely disabled in PlanetPress Workflow 7.3 and higher.
Prompts the user to enter a string. The string is displayed as the window caption. You can
specify a message that is displayed above the text box. This method is the same as PW_
InputBox.
Clicking OK returns the value entered by the user. If no value was entered the default value is
returned. Clicking Cancel returns the default value.
Page 112
You must enable the “Run on desktop” option for the PlanetPress Workflow process whose
script calls Watch.InputBox. Otherwise PlanetPress Workflow application may stop working
and require a reboot.
Example
s = watch.inputbox("caption", "message", "default")
watch.showmessage(s)
Examples
In the following example,Watch.InputBoxrequires the user to enter a line of text. The script the
displays a pop-up of the message contents using "Watch.ShowMessage" on page108.
VBScript
s = Watch.InputBox("Your Name", "Please enter your name", "John
Doe")
Watch.ShowMessage("Will the real " + s + " please stand up?")
JavaScript
s = Watch.InputBox("Your Name", "Please enter your name", "John
Doe");
Watch.ShowMessage("Will the real " + s + " please stand up?");
Python
s = Watch.InputBox("Your Name", "Please enter your name", "John
Doe")
Watch.ShowMessage("Will the real " + s + " please stand up?")
Perl
s = Watch->InputBox("Your Name", "Please enter your name", "John
Doe");
Watch->ShowMessage("Will the real " + $s + " please stand up?");
Watch.GetJobInfo
Returns job information corresponding to the specified index. Index is an integer from 1 to 9.
Page 113
Syntax
Watch.GetJobInfo(Index: integer): string
Example
VBScript
Dim s
s = Watch.GetJobInfo(3)
Watch.Log "Jobinfo 3's value is: " + s, 2
JavaScript
var s;
s = Watch.GetJobInfo(3);
Watch.Log("Jobinfo 3's value is: " + s, 2);
Python
s = Watch.GetJobInfo(3)
Watch.Log("Jobinfo 3's value is: " + s, 2)
Perl
$s = $Watch->GetJobInfo(3);
$Watch->ShowMessage("Jobinfo 3's value is: " . $s, 2);
Watch.SetJobInfo
Sets the job information index to a specified string value.
Syntax
Watch.SetJobInfo(Index: Integer; Value: String)
Example
VBScript
Watch.SetJobInfo 3, "Job info 3 Value"
JavaScript
Watch.SetJobInfo(3, "Job info 3 Value");
Page 114
Python
Watch.SetJobInfo(3, "Job info 3 Value")
Perl
$Watch->SetJobInfo(3, "Job info 3 Value");
Watch.GetVariable
Returns the string value of the corresponding variable name. Note that if an undeclared
variable is called using this method, an error will be generated.
Syntax
Watch.GetVariable(Name: String): String
Example
VBScript
Dim s
s = Watch.GetVariable("MyVariable")
Watch.Log "MyVariable's value is: " + s, 2
s = Watch.GetVariable("global.MyVariable")
Watch.Log "global.MyVariable's value is: " + s, 2
JavaScript
var s;
s = Watch.GetVariable("MyVariable");
Watch.Log("MyVariable's value is: " + s, 2);
s = Watch.GetVariable("global.MyVariable");
Watch.Log("Jobinfo 3's value is: " + s, 2);
Python
s = Watch.GetVariable("MyVariable")
Watch.Log("global.MyVariable's value is: " + s, 2)
Perl
$s = $Watch->GetJobInfo(3);
$Watch->ShowMessage("global.MyVariable's value is: " . $s, 2);
Page 115
Watch.SetVariable
Sets the variable to a specified string value. Note that if an undeclared variable is called using
this method, an error will be generated.
Syntax
Watch.SetVariable Name: String; Value: String
Example
VBScript
Watch.SetVariable "MyVariable", "Desired value"
Watch.SetVariable "global.MyVariable", "Desired value"/
JavaScript
Watch.SetVariable("MyVariable", "Desired value");
Watch.SetVariable("global.MyVariable", "Desired value");
Python
Watch.SetVariable("MyVariable", "Desired value")
Watch.SetVariable("global.MyVariable", "Desired value")
Perl
$Watch->SetVariable("MyVariable", "Desired value");
$Watch->SetVariable("global.MyVariable", "Desired value");
Watch.ExpandString
Provides access to the emulated job file and to all variables. This function returns a string that
is the expanded version of the input string.
Syntax
Watch.ExpandString(StringToExpand) -> string
Arguments
StringToExpand —A regular parseable string that may contain system variables (%u, %f), user
variables (%1 to %9), octal codes, and data selections.
Page 116
Example
This example results in expanding the string of the variables to the date value in the following
format: “YYYY-MM-DD”.
VBScript
Dim s
s= Watch.ExpandString("%y-%m-%d")
Watch.Log "Current Date is: " + s, 2
JavaScript
var s;
s= Watch.ExpandString("%y-%m-%d");
Watch.Log("Current Date is: " + s, 2);
Python
s= Watch.ExpandString("%y-%m-%d")
Watch.Log("Current Date is: " + s, 2)
Perl
$s = $Watch->ExpandString("%y-%m-%d");
$Watch->Log("Current Date is: " . $s,2);
Watch.Log
Creates messages that are added to PlanetPress Workflowwatch.log file. PlanetPress
Workflow watch.log file is located in ...\Program Files\PlanetPress Workflow 7\PlanetPress
Watch\Log\ppw[log date].log.
View error messages in the Services Console while PlanetPress Workflow is in Run mode by
choosing Tools | Services | Service Console. In the Service Console, error messages appear
with colors that correspond to the message level.
Level Type Text Color in Service Console
1 Error Red
2 Warning Orange
Page 117
Level Type Text Color in Service Console
3 Information Black
4 Debug Grey
Arguments
Message—A string representing the message that is logged in the log file. Note that the text of
the message must use the locale encoding of the system where the PlanetPress Workflow
software will be running, otherwise it will be unreadable.
Level—An integer between 1 and 4, specifying the severity level of the error message. Set
message levels as follows:
Level Description
1 The message is logged as an Error in the log file.
2 The message is logged as a Warning in the log file.
3 The message is logged as Information in the log file.
4 The message only appears when the application runs in Debug mode.
Examples
In the following example, log() will write an information entry in the watch log that says "this is a
log"
VBScript
Watch.Log "this is a log", 3
JavaScript
Watch.Log("this is a log", 3);
Page 118
Python
Watch.Log("this is a log",3)
Perl
$Watch->Log("this is a log",3);
Watch.Sleep
Pauses the process for the specified number of milliseconds. This can be used while waiting
for something else to happen when the delay is known.
Syntax
Watch.Sleep Milliseconds: integer
Example
In the following example, sleep()pauses the process for 1 second (1000 milliseconds)
VBScript
Watch.Sleep 1000
JavaScript
Watch.Sleep(1000);
Python
Watch.Sleep(1000)
Perl
$Watch->Sleep(1000);
Script.ReturnValue
Set this variable to 1 (true) or 0 (false) in order to return a true or false status to PlanetPress
Workflow, when using your script as a conditional branch. This variable will have no effect if the
script is run as an action.
Page 119
Example
This example will always return true, as the condition is static. It is, after all, simply an example.
You get the idea.
VBScript
Dim everythingOK
everythingOK = true
if (everythingOK = true) then
Script.ReturnValue = 1
else
Script.ReturnValue = 0
end if
JavaScript
var everythingOK;
everythingOK = true;
if(everythingOK = true){
Script.ReturnValue = 1;
} else {
Script.ReturnValue = 0
}
Python
everythingOK = True
if everythingOK == True:
Script.ReturnValue = 1
else:
Script.ReturnValue = 0
Perl
$everythingOK = true;
if (everythingOK = true) {
$Script->{ReturnValue} = 1;
} else {
$Script->{ReturnValue} = 0;
}
Page 120
Data Repository API
The Data Repository is a permanent structure to store data that can then be reused, modified or
augmented at a later time, by different processes.
The Data Repository can be accessed at runtime by the Push To Repository plugin and other
tasks (see "Data Repository" on page51) and at design time via the "Data Repository
Manager" on page721.
This topic explains how to access the Data Repository in script.
For a quick start, turn to this How-to: Interacting with the Data Repository API.
Warning
All operations on the Repository must be performed through this API - rather than directly
accessing the physical file - since the Repository's underlying file structure may change over time.
This API is guaranteed to remain compatible with future versions of the Data Repository. It is used
by all Workflow tasks dealing with the Repository.
Data repository structure
The table below lists the different levels in the repository and what their names corresponds to:
The term ... ... is the same as an Excel ... ... is the same as a Database ...
Group Sheet Table
Key Column Field
KeySet Row Record
Note
Group and key names are case-insensitive.
Page 121
API Reference
Obtaining an instance of the Repository Object
The Data Repository is accessed via a COM object that exposes methods to store and retrieve
data within the Repository.
JavaScript
var repoObject = new ActiveXObject
("RepositoryLib.WorkflowRepository");
VB Script
set repoObject = CreateObject("RepositoryLib.WorkflowRepository")
In each example in this documentation, the object repoObject is deemed having been obtained
through the above call to the COM object.
Using a JSON parameter or return value
Whenever a parameter or return value is defined as a JSONStringArray type, that JSON array
is itself a string. Since a JSON array internally defines double quotes as the delimiter for each
element, you must enclose the entire string in single quotes. Alternatively, you can escape the
double quotes inside the JSON Array.
For instance, the following calls to AddGroup() are correct:
RepoObject.AddGroup("MyGroup",'["FirstKey", "SecondKey"]');
RepoObject.AddGroup("MyGroup","[\"FirstKey\", \"SecondKey\"]");
But the following is incorrect:
RepoObject.AddGroup("MyGroup","['FirstKey', 'SecondKey']");
Many methods require using the JSONStringArray type but JSON is not natively supported in
VB Script. Therefore, for those methods, only JavaScript sample code is provided. There are
many resources on the Web that propose ways of implementing JSON parsing in VB Script so
you can implement whichever you see fit. However, using JavaScript is highly recommended.
Page 122
Group methods
Name Description
AddGroup Creates a group named GroupName and optionally creates
keys listed in keyNames. The keyNames parameter may be
empty.
RemoveGroup Deletes the group named GroupName, along with all its
keysets and keys.
ListGroups Retrieves the list of all group names in the Repository,
stored in a JSONStringArray..
RenameGroup Renames group oldName to newName. While this
operation has no impact on the data stored in the specified
group, it does require any plugin and/or script that uses
oldName to be modified to refer to newName.
Key Methods
Name Description
AddKey Adds key KeyName to group GroupName.KeyName must
not already exist in the specified group. Note that this method
only adds a key name to the group, not a key value. See
AddValue() for information on how to set a value for a key.
RemoveKey Removes existing key KeyName from group GroupName.
The key to remove must exist in the group, otherwise an error
is raised. All values for the key, in all keysets for the group,
are removed. Note that when the Group contains a large
number of KeySets, this operation may take a while.
ListKeys Retrieves the list of all Key names and data types in Group
GroupName, stored in a JSONStringObject. You should use
Page 123
Name Description
JSON.Parse() to convert the string into an actual JavaScript
object. You can then use the for…in construct to list the
different properties for that object (i.e. the keys in the group).
RenameKey Renames key oldName to newName in group GroupName.
While this operation has no impact on the data stored in that
Group, it does require any plugin and/or script that uses
oldName to be modified to refer to newName.
Value Methods
Name Description
GetValue Performs a lookup in group GroupName and retrieves the
first value for key KeyName that matches Condition. The
condition is specified using basic SQL WHERE syntax. The
Condition may be left empty in which case the very first
value found for the specified KeyName is returned.
AddValue Creates a new KeySet by assigning Value to the key
KeyName in Group GroupName. Note that KeyName must
exist in GroupName, otherwise an error is raised. See
AddKey() for information on adding a key to a group. Upon
successful completion, the method returns the ID of the
newly created KeySet.
SetValue Updates multiple keysets in group GroupName by setting
the key KeyName to Value for all keysets that match
Condition. The condition is specified using basic SQL
WHERE syntax. The Condition may be left empty in which
case all keysets in GroupName are updated. Note that
KeyName must exist in GroupName, otherwise an error is
raised. The method returns an array of the keyset ID's that
were updated ([1,2] ), or an empty array ([] ) if no keysets
Page 124
Name Description
were updated.
SetValueByID Updates KeyName with Value in group GroupName, where
the keyset's ID matches the ID parameter. KeyName must
exist in GroupName, otherwise an error is raised. The
method returns the ID of the keyset that was updated or -1 if
the keyset was not updated.
Note that this method is functionally equivalent to using
SetValue() with its Condition parameter set to "ID=ID".
KeySet methods
Name Description
GetKeySets Retrieves Keys values in GroupName for keysets that
match Condition. When Keys is left empty, all keys are
retrieved. When Condition is left empty, all keysets are
retrieved.
AddKeySets Inserts a new keyset inside GroupName and assigns
values to keys as specified in KeyValues. Every key
specified in KeyValues must exist otherwise an error is
raised. However, it is not required to specify all
available keys in KeyValues. Only the keys specified
are updated in GroupName while unspecified keys are
set to an empty string.
RemoveKeySets Deletes all keysets in GroupName that match
Condition. The condition is specified using basic SQL
WHERE syntax. Condition may be left empty, in which
case all keysets in GroupName are deleted. The
method returns the number of keysets that were deleted.
Page 125
Name Description
RemoveKeySetByID Deletes the keyset whose ID equals ID from
GroupName. Returns 1 if successful, 0 otherwise.
Note that this method is functionally equivalent to using
RemoveKeySets() with its Condition parameter set to
"ID=ID".
Repository management methods
Name Description
ClearRepository Deletes all groups, keys and keysets from the repository,
returning it to a blank state. Use with caution!
ClearGroupData Deletes all keysets inside GroupName while retaining the
existing key structure.
ClearAllData Delete all keysets in all groups, while retaining the
existing key structure.
CheckRepository Verifies the integrity of the repository and recovers unused
space left by deleted keysets. Similar to packing a
database, the operation is non-destructive but it does
require exclusive access to the Repository. You should
therefore only perform this operation when you know for
sure no other process is accessing the Data Repository.
Version Returns the version of the DLL library used by the
Repository.
AddGroup
Creates a group named GroupName and optionally creates keys listed in keyNames. The
keyNames parameter may be empty.
Page 126
Syntax
AddGroup(GroupName: string, keyNames: JSONStringArray)
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
repoObject.AddGroup("Users", '["FirstName", "LastName"]');
repoObject.AddGroup("Users", '');
VB Script
repoObject.AddGroup "Users", "[""FirstName"", ""LastName""]"
repoObject.AddGroup "Users", ""
AddKey
Adds key KeyName to group GroupName.KeyName must not already exist in the specified
group. Note that this method only adds a key name to the group, not a key value. See
AddValue() for information on how to set a value for a key.
Syntax
AddKey(GroupName: string, KeyName: string)
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
repoObject.AddKey("Users", "email");
VB Script
repoObject.AddKey "Users", "email"
Page 127
AddKeySets
Inserts a new keyset inside GroupName and assigns values to keys as specified in
KeyValues. Every key specified in KeyValues must exist otherwise an error is raised.
However, it is not required to specify all available keys in KeyValues. Only the keys specified
are updated in GroupName while unspecified keys are set to an empty string.
Syntax
AddKeySets(GroupName: string, KeyValues: JSONObjectArray):
JSONIntegerArray
Examples
Basic examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
repoObject.AddKeySets("Users", '[{"FirstName": "John","LastName":
"Smith"},{"FirstName": "Richard", "LastName": "Doe"}]');
VB Script
repoObject.AddKeySets "Users","
[{""FirstName"":""John"",""LastName"":""Smith""},
{""FirstName"":""Richard"",""LastName"": ""Doe""}]"
Inserting a row
In most cases, you won't need to insert or update a row in a script, as this can be easily done
through the the Push to Repository action task. However, in some cases you might want to
script it for simplicity's sake.
This JavaScript example inserts 2 different rows into the Users group.
var Repo = new ActiveXObject("RepositoryLib.WorkflowRepository");
Repo.AddKeySets("customers", '[{"CustomerID": "CUJS123456",
"FirstName": "John","LastName": "Smith"},
{"CustomerID": "CURD654321", "FirstName": "Richard", "LastName":
"Doe"}]');
Page 128
Tip: to update a row instead of adding it, use the GetValue() function to get the KeySet ID; then
update each individual value using SetValueByID() (see "GetValue" on page132 and
"SetValueByID" on page139).
Sample return value
The method returns a JSONIntegerArray containing the ID's of all keysets inserted into
GroupName:
'[131,132]'
AddValue
Creates a new KeySet by assigning Value to the key KeyName in Group GroupName. Note
that KeyName must exist in GroupName, otherwise an error is raised. See AddKey() for
information on adding a key to a group. Upon successful completion, the method returns the ID
of the newly created KeySet.
Syntax
AddValue(GroupName: string, KeyName: string, Value: string):
integer64
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
repoObject.AddValue("Users", "LastName", "Smith");
VB Script
repoObject.AddValue "Users", "LastName", "Smith"
CheckRepository
Verifies the integrity of the repository and recovers unused space left by deleted keysets.
Similar to packing a database, the operation is non-destructive but it does require exclusive
Page 129
access to the Repository. You should therefore only perform this operation when you know for
sure no other process is accessing the Data Repository.
Syntax
CheckRepository()
ClearAllData
Delete all keysets in all groups, while retaining the existing key structure.
Syntax
ClearAllData()
ClearGroupData
Deletes all keysets inside GroupName while retaining the existing key structure.
Syntax
ClearGroupData(GroupName: string)
ClearRepository
Deletes all groups, keys and keysets from the repository, returning it to a blank state. Use with
caution!
Syntax
ClearRepository()
GetKeySets
Retrieves Keys values in GroupName for keysets that match Condition. When Keys is left
empty, all keys are retrieved. When Condition is left empty, all keysets are retrieved, which is
useful for reports, cleanup, or custom filters based on more complex conditions.
Syntax
GetKeySets(GroupName: string, Keys: JSONStringArray, Condition:
string): JSONStringArray
Page 130
Examples
Basic examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
repoObject.GetKeySets("Users", '["FirstName","LastName"]',
"Gender='M'");
VB Script
myKeySet = repoObject.GetKeySets("Users", "
[""FirstName"",""LastName""]", "Gender='M'")
Querying a single row
This JavaScript example shows how to get one or more rows from the repository and use them
in the process. The script gets 3 fields ("firstname", "lastname" and "email") from the
CustomerID field. It assumes there's a local variable called %{CustomerID} set in the workflow
process.
var CustomerID = Watch.GetVariable("CustomerID");
var Repo = new ActiveXObject("RepositoryLib.WorkflowRepository");
var customer = Repo.GetKeySets("customers",'
["firstname","lastname", "customerID"]',"customerID = '" +
CustomerID + "'");
Watch.SetJobInfo(9,customer);
By omitting the last option from GetKeySets (the filter on CustomerID) you can get all the rows
from the data repository.
Return value: JSONStringArray
The method returns a JSONStringArray of key-value pairs, for example:
'[{"FirstName": "John","LastName": "Smith"},{"FirstName":
"Richard", "LastName": "Doe"}]'
Page 131
The return value (saved for example in the %9 JobInfo variable, as the above example does)
can be used in a number of ways:
lIt can be returned to a web page that's making an HTTP request to Workflow. JSON is the
simplest way to transfer information between any system that supports JavaScript.
lIt can be passed to Designer and loaded up directly as an object in a script there.
lThe JSON can be converted to XML, which makes it useable in the DataMapper module.
This can be easily done in a preprocessor script in the DataMapper (see DataMapper
online help).
GetValue
Performs a lookup in group GroupName and retrieves the first value for key KeyName that
matches Condition. The condition is specified using basic SQL WHERE syntax. The
Condition may be left empty in which case the very first value found for the specified
KeyName is returned.
Syntax
GetValue(GroupName: string, KeyName: string, Condition: string)
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
var myValue = repoObject.GetValue("Users", "email", "
LastName='Smith' AND FirstName='John' ");/* retrieves email for
John Smith */
var myValue = repoObject.GetValue("Users", "email", "
LastName='Smith' "); /* retrieves email for first user named Smith
*/
var myValue = repoObject.GetValue("Users", "email", ""); /*
retrieves email for first user */
VB Script
myValue = repoObject.GetValue("Users", "email", "
LastName=""Smith"" AND FirstName=""John"" ") /* retrieves email for
Page 132
John Smith */
myValue = repoObject.GetValue("Users", "email", "
LastName=""Smith"" ") /* retrieves email for first user named Smith
*/
myValue = repoObject.GetValue("Users", "email", "") /* retrieves
email for first user */
Retrieving a KeySet ID
This JavaScript example retrieves the KeySet ID, which is then used to update values in the
row.
/* Get KeySet ID */
var Repo = new ActiveXObject("RepositoryLib.WorkflowRepository");
var keySetID = Repo.GetValue("customers", "ID",
"CustomerID='CURD654321'");
/* Update Values */
Repo.SetValueByID("customers", "FormOfAddress", "Mr.", keySetID);
Repo.SetValueByID("customers", "Country", "US", keySetID);
Repo.SetValueByID("customers", "Language", "EN", keySetID);
ListGroups
Retrieves the list of all group names in the Repository, stored in a JSONStringArray.
Syntax
ListGroups(): JSONStringArray
Example
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
var repoObject = new ActiveXObject
("RepositoryLib.WorkflowRepository");
var myList = JSON.parse(repoObject.ListGroups());
for (var i=0; i<myList.length; i++) {
/* Log all group names to the console */
Watch.Log(myList[i],2);
}
Page 133
Sample return value
'["Users","Cart","Orders"]'
ListKeys
Retrieves the list of all Key names and data types in Group GroupName, stored in a
JSONStringObject. You should use JSON.Parse() to convert the string into an actual
JavaScript object. You can then use the for…in construct to list the different properties for that
object (i.e. the keys in the group).
Syntax
ListKeys(GroupName: string):JSONStringArray
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
var repoObject = new ActiveXObject
("RepositoryLib.WorkflowRepository");
var myList = JSON.parse(repoObject.ListKeys("Internal"));
for (var Property in myList) {
/* Log all key names for group Users to the console */
Watch.Log(Property,2);
}
Sample return value
'{"ID": "meta", "FirstName": "string", "LastName": "string", "email": "string", "DateC": "meta",
"DateM": "meta"}'
As shown in the sample, the value associated with each key name is actually the data type for
that key. Only two values are currently possible: string and meta, where meta denotes an
internally generated key.
RemoveGroup
Deletes the group named GroupName, along with all its keysets and keys.
Page 134
Syntax
RemoveGroup(GroupName: string)
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
repoObject.RemoveGroup("Users");
VB Script
repoObject.RemoveGroup "Users"
RemoveKey
Removes existing key KeyName from group GroupName. The key to remove must exist in the
group, otherwise an error is raised. All values for the key, in all keysets for the group, are
removed. Note that when the Group contains a large number of KeySets, this operation may
take a while.
Syntax
RemoveKey(GroupName: string, KeyName: string)
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
repoObject.RemoveKey("Users", "email");
VB Script
repoObject.RemoveKey "Users", "email"
Page 135
RemoveKeySetByID
Deletes the keyset whose ID equals ID from GroupName. Returns 1 if successful, 0 otherwise.
Note
This method is functionally equivalent to using "RemoveKeySets" below with its Condition
parameter set to "ID=ID".
Syntax
RemoveKeySetByID(GroupName: string, ID: integer): integer
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
/* both methods perform the same task */
repoObject.RemoveKeySetByID("Users", 10);
repoObject.RemoveKeySets("Users", "ID=10");
VB Script
/* both methods perform the same task */
repoObject.RemoveKeySetByID "Users", 10
repoObject.RemoveKeySets "Users", "ID=10"
RemoveKeySets
Deletes all keysets in GroupName that match Condition. The condition is specified using
basic SQL WHERE syntax. The method returns the number of keysets that were deleted.
When passing 'ID' as the Condition, all keysets in GroupName will be deleted.
Syntax
RemoveKeySets(GroupName: string, Condition: string): integer
Page 136
Examples
Basic examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
repoObject.RemoveKeySets("Users", 'Gender="M"');
VB Script
repoObject.RemoveKeySets "Users", "Gender='M'"
Deleting a row
This script attempts to delete a client from the rows, then returns "true" or "false" in JobInfo
variable %9 as a response.
var CustomerID = Watch.GetVariable("CustomerID");
var Repo = new ActiveXObject("RepositoryLib.WorkflowRepository");
var deletedCount = JSON.parse(Repo.RemoveKeySets
("customers","customerID = '" + CustomerID + "'"));
var answer = (deletedCount > 0) ? "true" : "false";
Watch.SetJobInfo(9, answer);
RenameGroup
Renames group oldName to newName. While this operation has no impact on the data stored
in the specified group, it does require any plugin and/or script that uses oldName to be
modified to refer to newName.
Syntax
RenameGroup(oldName, newName: string)
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
Page 137
JavaScript
repoObject.RenameGroup("Users", "Customers");
VB Script
repoObject.RenameGroup "Users", "Customers"
RenameKey
Renames key oldName to newName in group GroupName. While this operation has no
impact on the data stored in that Group, it does require any plugin and/or script that uses
oldName to be modified to refer to newName.
Syntax
RenameKey(GroupName: string, oldName: string, newName: string)
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
repoObject.RenameKey("Users", "LastName", "SurName");
VB Script
repoObject.RenameGroup "Users", "LastName", "SurName"
SetValue
Updates multiple keysets in group GroupName by setting the key KeyName to Value for all
keysets that match Condition. The condition is specified using basic SQL WHERE syntax. The
Condition may be left empty in which case all keysets in GroupName are updated. Note that
KeyName must exist in GroupName, otherwise an error is raised. The method returns an array
of the keyset ID's that were updated ([1,2] ), or an empty array ([] ) if no keysets were updated.
Syntax
SetValue(GroupName: string, KeyName: string, Value: string,
Condition: string): string
Page 138
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
repoObject.SetValue("Users", "FormOfAddress", "Mr.", "Gender='M'"
);
repoObject.SetValue("Users", "FormOfAddress", "Ms.", "Gender='F'
AND MaritalStatus='Married'" );
repoObject.SetValue("Users", "FormOfAddress", "Miss", "Gender='F'
AND MaritalStatus=''" );
VB Script
repoObject.SetValue "Users", "FormOfAddress", "Mr.", "
Gender=""M"" "
repoObject.SetValue "Users", "FormOfAddress", "Ms.", "
Gender=""F"" AND MaritalStatus=""Married"" "
repoObject.SetValue "Users", "FormOfAddress", "Miss", "
Gender=""F"" AND MaritalStatus="""" "
SetValueByID
Updates KeyName with Value in group GroupName, where the KeySet's ID matches the ID
parameter. KeyName must exist in GroupName, otherwise an error is raised. The method
returns the ID of the keyset that was updated or -1 if the keyset was not updated.
The KeySet ID can be retrieved with GetValue() ("GetValue" on page132).
Syntax
SetValueByID(GroupName: string, KeyName: string, Value: string, ID:
integer): integer64
Note
This method is functionally equivalent to using "SetValue" on the previous page with its Condition
parameter set to "ID=ID".
Page 139
Examples
In each of these examples, the object repoObject is deemed having been obtained through a
call to the COM object "RepositoryLib.WorkflowRepository" (see "Obtaining an instance of the
Repository Object" on page122).
JavaScript
/* both methods perform the same task */
repoObject.SetValueByID("Users", "FormOfAddress", "Mr.", 10);
repoObject.SetValue("Users", "FormOfAddress", "Mr.", "ID=10" );
VB Script
/* both methods perform the same task */
repoObject.SetValueByID "Users", "FormOfAddress", "Mr.", 10
repoObject.SetValue "Users", "FormOfAddress", "Mr.", "ID=10"
Updating a row
There is currently no 'update' feature in the API for a whole KeySet. This JavaScript example
retrieves the KeySet ID, which is then used to update values in the row.
/* Get KeySet ID */
var Repo = new ActiveXObject("RepositoryLib.WorkflowRepository");
var keySetID = Repo.GetValue("customers", "ID",
"CustomerID='CURD654321'");
/* Update Values */
Repo.SetValueByID("customers", "FormOfAddress", "Mr.", keySetID);
Repo.SetValueByID("customers", "Country", "US", keySetID);
Repo.SetValueByID("customers", "Language", "EN", keySetID);
Version
Returns the version of the DLL library used by the Repository.
Syntax
Version(): string
Page 140
Stopping Execution
When using a script, you may come to a point where you'd like the task to fail (raise an
error)and trigger your On Error tab under certain conditions. This can be done by using the
scripting language's built-in error features, described here.
Note that the value or description of the error will not be available to your error process if one is
used. However, when available, a description of the error message will be logged in the Watch
log.
VBScript
In VBSCript, the Err.Raise method will halt the execution of the script and trigger the On Error
tab. When using On Error Resume Next, raising an error will not stop execution. See MSDN for
the Raise method properties and this page for a list of available errors to raise. In the case of
VBScript, the error number used will determine the message shown in the log.
Dim s
s = Watch.GetJobInfo(9)
If (s = "") Then
Err.Raise 449 ' Raises Error #449: "Argument is not optional"
Else
' Do somethign with Job Info 9!
Watch.Log "Job Info 9's value is: " + s, 4
End If
JavaScript
JavaScript uses the throw statement within try to create an exception which, if not caught
using catch() , will cause the script execution to stop and the On Error tab to be triggered. See
this page on W3Schools.
var s;
s = Watch.GetJobInfo(9);
if (s == "") {
throw "Value Cannot be empty";
} else {
// Do something with Job Info 9!
Watch.Log("Job Info 9's value is: " + s,4);
}
Page 141
Python
In Python, the raise statement is similar to JavaScript and will stop processing unless an
except statement is used. See the python documentation.
s = Watch.GetJobInfo(9)
if not s:
raise NameError('Value cannot be empty')
else:
# Do something with Job Info 9!
Watch.Log("Job Info 9's value is: " + s,5)
Perl
In PERL, die() raises an exception and triggers the On Error tab, unless the unless command
is used. See the perl documentation.
$s = $Watch->GetJobInfo(9);
if (s = "") {
die "Value cannot be empty";
} else {
# Do something with Job Info 9!
$Watch->Log("Job Info 9's value is: " . $s,4);
}
Special Workflow Types
PlanetPress Workflow supports multiple input and output types, in so many different
combinations that it would be hard to give example processes for each possibility. However,
some types of processes like PDF, HTTPand SOAP are important enough to pay some
attention to them.
This chapter will describe each of these special workflow types and give at least one example
of an implementation that uses them.
Special Workflows
PDFWorkflow
APDFworkflow uses a PDFas it's job file and manipulations are generally made in the
Metadata instead of the PDFitself, since PDFfiles are much larger than most other data files
Page 142
compatible with PlanetPress Suite. The Metadata Tools are extensively used in the example
presented, which is a weekly sales report sent to all the sales associates of a particular
company branch. See the "PDF Workflow" on page186 for more details.
PlanetPress Capture Workflow
A Capture workflow is divided in two steps:Creating an output of documents containing the
PlanetPress Capture Fields, and retrieving the information from the Anoto Digital Pen to merge
it with the original documents. See "PlanetPress Capture Workflow" below for more details.
HTTPServer workflow
An HTTPworkflow receives requests from a client via a GETor POSTrequest, sometimes only
with information, sometimes with attached files. An HTTPworkflow is basically an
XMLworkflow since that is the type of file created by the HTTPServer Input action task. See
the "HTTP Server Workflow" on page179 page for more details.
SOAPWorkflow
As SOAPcan be either a client or a server, two workflows will be presented. The SOAPClient
workflow presents PlanetPress Workflow as the client and will explore how to retrieve
WSDLinformation and how to make a SOAPrequest as a client. The SOAPServer workflow
will show how to create a process that responds to SOAPrequests, and where our own
WSDLis located.
PlanetPress Capture Workflow
PlanetPress Capture, introduced in PlanetPress 7.2 and enhanced ever since, is a set of tools
that is used to simplify digital archiving processes by capturing information from a special pen
which records everything it writes on paper, as long as this paper contains special Anoto
Patterns.
Warning
There are important considerations to keep in mind when dealing with PlanetPress
Capture. Please review them in "PlanetPress Capture Implementation Restrictions" on
page161.
Page 143
In order to properly build a PlanetPress Capture workflow, it is very important to understand the
terminology, implications and limitations of the technology. This is the first part of this section:
l"Capture Information" on page146
l"Database Considerations (ODBC)" on page150
l"Security Considerations" on page152
l"20,000 Patterns" on page153
l"PlanetPress Capture Implementation Restrictions" on page161
There are also 2 external tools that are used to communicate the pen's data to PlanetPress
Workflow:
l"Anoto penDirector" on page159
l"PlanetPress Mobile Application" on page160
Creating a Capture-Ready document
This is done when creating your PlanetPress Design document. Adding one or more
PlanetPress Capture fields to a PlanetPress Design document creates a capture-ready
document, which can be used in the workflow. For more information, see the PlanetPress
Design User Guide.
Generating the Capture Patterns
Once your document is created, the Capture Fields Generator action task is used to apply the
capture patterns to each of your documents and send them to the printer. This printing process
will consist of:
lRetrieving your data file.
lCreating metadata (See "Create Metadata" on page509).
lSeparating each individual document in the metadata (this can be done in your Design
document or through the "Metadata Level Creation" on page524 action task).
lUsing the "Capture Fields Generator" on page482 action task to generate the capture
patterns
lPrinting your documents.
Page 144
Capturing and Archiving
After the printed documents have been inked with the Anoto Digital Pen, the PGCfiles from the
pen must be processed and merged with the appropriate documents in the PlanetPress
Capture Database. Aworkflow process that receives PGCfiles and reads them in turn consists
of the following actions:
lAn "HTTP Server Input" on page228 task or "Folder Capture" on page213 task that
receives the PGC.
lThe "Capture Fields Processor" on page486, which converts each PGCin an EPSlayer,
adds this layer to the PDFin the database, releases patterns and closes documents.
lOptionally, a "Capture Condition" on page476 task to do post-processing using the
Capture Fields data.
lA"Get Capture Document" on page502 action task to retrieve each document in the
database and output a PDFfile
lAny existing output such as Output to Folder, email, ftp, etc.
Technical
Because of timeout limitations, it is generally a good idea to use the Send immediate
response to clientoption of the HTTPServer Input task, especially when processing a
large amount of documents from the pen. Additionally, HTTPServer Processes should
always be self-replicating and have a short polling interval set in their properties.
Managing and Post-Processing
There are a couple of things that can be done even after documents have been inked. As long
as a document remains open, it is still present in the Capture database and be used in a
process:
lThe "Find Capture Documents" on page497 input task is used to retrieve a list of
documents under specific criteria.
lThe Capture Condition and Get Capture Document tasks are used to effect post-
processing and retrieve document from the Capture database.
Page 145
Error Handling
Whenever an error occurs during the Capture Field Processor phase, it is of course important to
be able to handles these errors. For this purpose, the "PGC to PDF Converter" on page506
task was added with PlanetPress 7.4, adding the ability to quickly and directly convert a
PGCfile to a blank PDFfile containing the ink data as an EPSlayer. This is useful when, for
example, data is received for a document that's already been closed.
lThe "Input Error Bin" on page233 input task is triggered when the process sends data to
the error process.
lA"PGC to PDF Converter" on page506 task converts the PGCto a PDF
lAny existing output is used here, for example an email notification.
The Examples
l"Basic Functional Capture Workflow" on page173
l"Capture Post Processing Workflow" on page174
l"Capture Web Manager Workflow" on page178
Capture Information
PlanetPress Capture Glossary
This topic describes the specific terms used in the PlanetPress Capture set of tools within
PlanetPress Workflow.
Anoto Digital Pen
A digital pen compatible with the Anoto system. These pens contain a camera, processor and
memory chip which record each stroke of the pen on a printed Anoto Pattern, and are able to
send this information back to PlanetPress Workflow. This document specifically refers to the
Anoto DP-201 Digital Pen, not other equipment has been tested.
Anoto Functionality Statement
Statement ('Paper featuring Anoto functionnality') that is automatically placed on the page when
a PlanetPress Capture field is present. The statement can also include the Trace Code
Page 146
Anoto Pattern
A series of dots placed in a pattern that is unique to each page where the pattern is printed. The
Anoto Digital Pen identifies this pattern and its location on the page. PlanetPress Capture
contains 20,000 patterns (8 in demo mode, See "PlanetPress Capture License Management"
on page747)which can be used to generate documents.
Capture Condition
PlanetPress Workflow task that is used for post-processing of documents after they have been
processed by the Capture Fields Processor. Conditions can be made on the document status
or the presence (or absence) of ink on any of the Capture Fields on the document.
Capture-Ready Document
A PlanetPress Connect document (*.pp7) that contains at least one Capture Field on at least
one page.
Capture Document Manager
A tool that lets a user search through the available documents in the Capture Database. The
documents can be search through a few different criteria and can be displayed as PDF files,
individually or as a group. Documents can also be closed or deleted from this interface.
Capture Field
The PlanetPress Connect object that acts as a placeholder for the Anoto Pattern. The pattern is
only applied when using the Capture Field Generator in Workflow.
Client/Server Architecture
A multi-server setup where more then one PlanetPress Workflow server are connected as
clients to a single PlanetPress Workflow server which has a Capture Database. In this
architecture, the Server contains the licenses for the pens, however the Client contains the
database of documents and patterns. The Clients communicate with the server to authenticate
pens. This architecture is only provided to simplify pen licensing for users with a large number
of pens.
Page 147
Closed Document
A document still within the PlanetPress Capture Database of which all the required fields have
been filled by the Capture Field Processor from a PGC. A closed document will only remain in
the database until it is retrieved with the Get Capture Document task, after which it is deleted.
Contamination
The act of writing on a "wrong" document, aka one that has a Pattern Sequence different that
the one for which it was produced.. This can happen in architectures with more than one
sequence being used such as when a pen is docked in the wrong location or if two pens are
swapped.
ICR(Intelligent Character Recognition)
Recognizing text that has been hand-written with the Anoto Digital Pen. This feature is currently
not implemented in PlanetPress Capture, but will be in the (near) future.
Ink Data
The pen stroke information contained within the PGC file. This is the actual data applied to the
document (lines, signatures, text, etc).
Open Document
A document in the Capture Database that does not yet have any ink data on it, or of which not
all mandatory fields (or final field) have ink present on them. Such a document is waiting for a
new PGC file to complete it so it can be closed.
Pattern ID
The IDof the Anoto pattern. Represents the pattern on the page. Can be used to retrace the
document to which the pattern belong.
Pattern Sequence
Pattern Sequences enable the multiplication of the number of available pattern by adding an
extra identification to the document. A Pattern Sequence is also attributed to each Anoto Digital
Pen, such as an incoming PGC file will contain the Pattern, on which the Pattern Sequence is
added from the pen database. The pattern and pattern sequence refer to a specific document in
the database. Signing a document with a pen of which the Pattern Sequence does not match
Page 148
that of the document causes Contamination, which can cause errors or ink to be placed on the
wrong document.
Pen ID
The serial number of the Anoto Digital Pen. It is registered in the PlanetPress Capture
database and is present in each PGC file.
PGCFile
Pen Generated Coordinates; PGC File containing all ink processed while the pen was
undocked along with the Pen ID. It is possible that a single document requires multiple PGC,
just as it is possible that a single PGC have multiple documents.
Pidget
Type of PlanetPress Capture object. Page element used to give instructions to the Anoto pen,
as opposed to recording ink.
PlanetPress Capture Database
A database containing the list of patterns, sequences, registered pens and documents. The
Capture Database can be used by a single server, or by multiple servers in a Client/Server
architecture.
Session
The time spent by the pen between events that trigger a new session. Generally a session
refers to any ink in a single page containing a Capture Pattern. Asession can contain ink from
multiple fields in any order. A new session starts whenever a PGCis sent for processing (which
erases the data from the pen).
General Considerations
Here are some general considerations in regards to PlanetPress Capture, its environment, the
hardware and the software that interacts with it. Please review these considerations carefully as
they may impact PlanetPress Capture and its functionality.
Page 149
Warning
PlanetPress Capture Fields cannot simply be inserted into an existing document as-is
and expected to work properly, efficiently or consistently. In order to design a document
with Capture Fields, you must review and understand the Critical PlanetPress Capture
Implementation Restrictions.
Database Considerations (ODBC)
Technical
On 64-bit operating systems, the ODBCData Sources created by the Data Source
(ODBC)icon in the Administrative Tools will not appear here, as PlanetPress Suite is 32-
bit and cannot access the 64-bit data sources. In order to create an ODBCconnection
visible by PlanetPress, you will need to access the 32-bit version of the ODBCmanager,
available in C:\Windows\SysWOW64\odbcad32.exe .
The following considerations should be kept in mind while working with ODBCDatabases in
PlanetPress Suite.
lAll databases
lUser Rights:During normal operation, Read/Write to tables should be sufficient.
However, during the initial setup, the Create/Drop tables rights is necessary.
lMinimum 100MBof database size is required as a minimum, but the space
requirement depends on the implementation. The more active documents in the
database, the more space is used - note that this progression is rather linear.
lRegular database maintenance is required, such as database compacting, is
required by a system administrator.
lIt is recommended to create an ITprocess that backs up the database regularly.
lThe recommended ideal setup is a dedicated SQLServer PC, accessed by
PlanetPress Workflow through an ODBCconnection on the local network.
lMicrosoft Access
lDatabase file (mdb)must be local to the PlanetPress Workflow computer. It cannot
be located on a network drive or another server.
Page 150
lTotal database size is limited to 4GBof data.
lTotal size of a single table is 2GB.
lMay be unstable in large implementations.
lMySQL
lDatabase can be in any location, but performance will depend on the speed of the
connection between PlanetPress and the MySQLserver.
lMySQL's performance has been slower than SQLServer and SQLServer Express
during our tests.
lBy default, MySQLis configured not to allow any SQLrequest larger than 16 megs.
lIn the event where 2 requests are made simultaneously on the same record,
MySQLwill queue one of the requests and execute it once the first one is done. In
extremely rare cases this may cause a timeout on very large requests.
lMSSQL(Microsoft SQLServer)
lAll versions of the SQLServer are supported, including all Express versions.
lDatabase can be in any location, but performance will depend on the speed of the
connection between PlanetPress Production and the SQLserver.
lIn the event where 2 requests are made simultaneously on the same record,
SQLServer will drop the most complex request. Resubmitting the PGCfor
processing should resolve this issue. This, however, should happen only rarely.
lWhen configuring the ODBCconnection, your must use the Microsoft version of the
driver, and not the Native SQLversion of the driver. This is due to a technical
limitation of the native driver that interferes with the PlanetPress Suite database
requests.
Specifically for PlanetPress Capture, these considerations mean the following:
lIn Microsoft Access, the total size of stored document cannot be larger than 2GB and
this database will be very unstable in implementation with more than a few thousand
pattern sequences being used simultaneously. It is only suggested for small
implementation with less than 10 pens, or for demos.
lIn MySQL, the 16 megs packet size limit can be an issue if the PDFs created by Capture
are larger than this size; An error saying "MySQLServer has gone away" would appear in
this case. This can be fixed by configuring the max_allowed_packet setting in the
MySQLConfiguration(Reference).
lAlso in MySQL, if a timeout occurs on simultaneous record access, resubmitting the
PGCfor processing should resolve the issue.
Page 151
lIn SQLServer, if one of your requests is dropped because of simultaneous accesses,
resubmitting the PGCshould resolve the issue.
Security Considerations
PlanetPress Capture introduces new and efficient methods for digitally capturing the contents
of ink laded out on physical paper. However, because of its nature, some end users may voice
concerns about security and privacy. Are signatures secure? Could their transmission be
intercepted? How can the contents of the Anoto digital pen be protected from malicious users?
Before addressing these concerns, it must be pointed out that these security issues are not
introduced by this new technology. In fact, they are essentially the same concerns that arise
with plain pen and paper: if the signed document can be scanned, then any markings on the
page can be extracted and reused by anyone with even limited technical skills. In addition, the
signed document has, by definition, a longer life span than the temporary storage location of the
digital pen. Consequently, it is still the most vulnerable piece of the workflow and as such, it
should be the first objective of any security effort.
In other words, as long as the physical piece of paper bearing markings is accessible to
malicious users, no amount of security protocols can protect the signed contents. It is only after
the paper trail has been secured that the security and privacy issues specific to PlanetPress
Capture should be addressed.
Because PlanetPress Capture relies on external data and communication and because it may
be used to process sensitive and legal information, it is important to understand the security
implications of any PlanetPress Capture implementation. Most of the security concerns
regarding Capture are external to it. This means the security that is implemented both on your
network and physical premises are critical to the security of your PlanetPress Workflow
implementation.
Here are a few notable points with the security of PlanetPress Capture on a network:
lPGC Files, while not written in plain text, are not encrypted and are readable through
either PlanetPress Workflow (even a server that did not generate the document
associated with it), or through third-party applications using the Anoto SDK. This means if
someone gains access to your PGC storage folder, they may be able to read the
signatures, checkmarks and other information contained in it and reproduce them on a
document of their choice. It is always better to secure this folder properly. You could also
use third-party encryption software to secure the files, and decrypt them as necessary for
reprocessing.
Page 152
lThe transfer between the Anoto penDirector and PlanetPress Workflow is not encrypted
due to a limitation of penDirector which does not support SSL connections. This means
someone located anywhere between penDirector and PlanetPress Workflow could use
software such as a packet sniffer to retrieve its parts and recreate the PGC files. This may
be resolvable by create a secure VPN tunnel for each location where penDirector is
installed instead of going through regular remote HTTP server.
lThe PlanetPress Capture database, since it can be external to PlanetPress Workflow
such as on a MySQL server, will be dependent on your own database security.
lThe Anoto Digital Pens, since they may contain critical information, are just like physical
sheets of signed paper and must be kept secured. This is best done through training
employees handling the pens to be aware of its value and contents and act accordingly.
This means that the security of the pen is just as important as the security of any existing
physical documents you may handle at the moment.
lThe same rules apply to PDF files as with PGC files, especially when they contain a
signature from the pen. If you are already securing digital scanned copies of signed
documents, the PDFs should be secured in similar ways.
However, remember that as with most security concerns, in order to be a “threat”, someone
would have to have a high level or working knowledge of either the Anoto SDK (which is not
easily obtainable) or PlanetPress Workflow and PlanetPress Capture. In some situations this
may be enough (security through obscurity) but we always recommend having the same level
of security for Capture files and documents as you would the rest of your sensitive information.
In most cases, the procedures in place are enough for this purpose.
20,000 Patterns
When reading or learning about PlanetPress Capture, you may have seen a number pop up
here and there: "20,000 Patterns". In order to better understand what this number means and
what it entails for you, the user, this document will first present an overview of a typical
PlanetPress Capture implementation and then explain how the 20,000 patterns limitation can
be circumvented in some cases. We will also touch upon the potential pitfalls of these
workarounds as they are used.
The Numbers
First and foremost, the 20,000 patterns is a fixed number - PlanetPress can only generate
20,000 unique patterns as this is the number of patterns that we license through Anoto.
The 20,000 patterns are, however, not all available when generating documents. There are 8
"demo"patterns that are used to generate documents when PlanetPress Capture is in demo
Page 153
mode (no license activated), and react the same way that the bulk of the 20,000 patterns.
Another single pattern is used to register pens in the database, and one last single pattern is
used when printing a "Preview"from PlanetPress Design. So in reality, the number of available
patterns for document generation is 19990, but for simplicity's sake this FAQuses the round
number "20,000".
In a typical PlanetPress Capture implementation, a process in PlanetPress Workflow generates
output (generally, this output is directly printed) and, at the same time, will "lock" one pattern for
each page that it generates, if that page contains a pattern. PlanetPress Workflow also stores a
copy of each document in the Capture Database, in PDF format.
While a document is printed, and while this printed document has not received any ink or
signature, the document is deemed "open", the pattern it uses remains locked in the database
and cannot be re-used. Then, when someone writes on the document and sends the pen data
to PlanetPress Workflow (through a docking station or through Bluetooth), if the required
conditions have been met, the document will be "closed", its pattern released and available to
be used immediately.
An open document can also be called a "live" document, in the sense that it is only active
between the time where it is printed and the time where ink from the Anoto Digital Pen is
processed and the document is closed. This duration is called "time to live" or "TTL", and it is
the second very important number: how long is the pattern actually needed.
The third important number is based on your actual output needs. In other words, how many
documents do you intend to print on a regular basis that will contain a pattern?
These three numbers, together, represent an easy way to determine if the 20,000 patterns are
actually enough for you. Basically, if you generate X documents within a specific time frame but
N of these documents are closed through regular process (writing on them with a pen and
docking it) during that period, does the difference between both ever reach 20,000?
Example
Say you print 19,000 pages containing a pattern, every day. You may think you'll "run out of
patterns" after a single day. But if 18,900 of these documents are being written to and
processed within the day, at the end of the day you only have a 100 page difference, possibly
due to mistakes, lost pages, or errors during processing. In this specific example, you would run
out of patterns only after 10 days, assuming the numbers remained completely static. Since
there are easy ways to deal with these remainders (a simple automated process that, once a
day, closes any document that is older than 48 hours, for example), a correct implementation
Page 154
like this one would be perfectly functional and not be affected by the 20,000 page limit.
Remember however that this means that 19,000 physical sheets of paper are printed every day,
and those 19,000 documents are written on using one or more Anoto Digital Pens, which are
then processed back into the system.
The example above actually uses numbers that are much higher than our typical PlanetPress
Capture user. That is to say, a vast majority of our users will never have to worry about reaching
the pattern limitation, unless their implementation is missing important parts, such as the
"cleanup" process. But this also means a smaller minority of our users may require more than
20,000 patterns, so let's deal with this now.
Extending
There are actually 2 ways of dealing with extending the number of patterns using the currently
available tools, each with its own advantages and disadvantages.
Using separate PlanetPress Workflow servers and licenses.
In a scenario where there are multiple locations that use PlanetPress Capture and where
neither pen nor paper has any risk of being moved from one location to another, the easiest (but
costlier) solution is to have a separate installation of PlanetPress Workflow in each location.
Each installation would be responsible for its own documents and pens. The limitation here is
that it would not be directly possible to send a page with an existing pattern to another location
(either via email in PDF or via courier), sign it there and send it back - this would cause errors
that would be hard to prevent and correct. In this scenario however, it's possible to centralize
the activation of pen licenses to one server, while keeping the pattern generation systems
separate.
Using Pattern Sequences
In the event where a single location generates all the patterns and this output *can* be split into
multiple logical zones, Pattern Sequences can be used. A Pattern Sequence is basically a
"tag" that is added after the pattern's identification (Pattern ID). When a Pattern Sequence is
used, each Pattern Sequence can re-use each of the 20,000 available patterns. "Zones", in this
case, could refer to a specific region within a city, or a whole city or a province, whatever fits
your needs.
Pattern Sequences can be handled in 2 different ways: by attaching a Pattern Sequence to a
specific pen, or by attaching it to a specific PlanetPress Workflow process. Here is an example
Page 155
for each cases, using a typical situation of a shipping company that uses PlanetPress Capture
to simplify the archiving of the client's signature on a "Confirmation of Reception" slip.
lPen-Based Sequences: In this case, each pen is attributed a specific pattern sequence.
When documents are printed, they are set to attribute a pattern sequence to each
document in relation to which pen it will be signed on. For example, the shipping
company may have decided to print each "route" using the route number as a pattern
sequence, and each pen is tagged (with a label) as being for use with a specific pattern
sequence also. Each morning, as drivers are attributed a route, they pick up the correct
pen and stack of paper that belong to their route before leaving.
Note
It's very important to note here that the Anoto Digital Pen has absolutely no concept of Pattern
Sequences. When "attributing" a sequence to a pen, this is fully on the PlanetPress Workflow side,
in the Capture Database. This means that if a pen is mislabeled or someone picks up the wrong pen,
this pen has absolutely no way to know that it is writing on the wrong paper. more about this in the
Contamination section below.
lProcess-Based Sequences: In this case, while documents are still printed and their
route number attributed to their pattern sequence, the pens do not have this distinction.
However, the docking station where the pens are placed at the end of the day are set to
send the pen's data to a specific process which will only handle processing for that
specific route number. In this case, one physical computer (and, presumably, printer) is
used for each route, and the driver must dock the pen in the proper docking station which
corresponds to his router number, at the end of the day.
As you may have figured out by now, we are still not actually printing more than 20,000
patterns. The only distinction here is that we are re-using patterns in separate "zones" (or, well,
sequences) and as long as pens and pages using capture patterns are not exchanged between
these zones, they act independently with their own 20,000 pattern limitation.
Note
The mobile phone application, "PlanetPress Mobile", which uses Bluetooth communication to
receive pen data and transmit it to PlanetPress Workflow, can still be used with both pattern
sequence methods, as it is the equivalent of a docking station on the web. PlanetPress Mobile was
Page 156
added to PlanetPress Capture in version 7.4.
Contamination
The single but critical danger with any implementation that deals with PlanetPress Capture is
"Contamination". Basically, contamination happens when an Anoto Digital Pen writes on a
"wrong" document or is docked in the wrong location. This can happen any number of ways
and in different situations, and can have devastating effects in some of those cases so please
pay special attention to this section.
First, contamination is not limited to implementations that extend their patterns through
methods 1) and 2) above. Any time that a pen writes on a "wrong" document, it is considered
contamination. A simple example in a basic implementation would be to print a document with
a pattern on it, put this paper aside (or lose it on a desk somewhere) and forget about it.
Assuming proper processes were put in place, this document would eventually be closed by a
manual or automatic procedure. However, the physical document with the pattern still exists
even if it is closed in regards to the PlanetPress Capture database. Contamination would
happen if a new document is printed with the same pattern, but somehow the "old" document
re-surfaces and someone writes ink on it and docks the pen. When this happens, neither the
pen nor PlanetPress Workflow can understand that the data does not belong on that document
and will happily update the "current" document, possibly closing it. Because the "old" document
relates (presumably) to a different client, this means the "current" document has invalid
information.
This can be prevented through simple methods such as printing a date on each sheet and
ensuring that users never sign a document that is older than a certain time, for example 48
hours. These sheets should simply be destroyed.
Second, contamination can happen in method 1) above if a pen or paper is moved from one
location to another. Similarly to the previous contamination example, if there exists a document
in the Capture Database where the "wrong" data is processed, it will update a document where
it does not belong. Again, neither the pen nor PlanetPress Workflow have any idea that this
causes an error until it's too late.
Third, contamination (the most common one) can happen if pattern sequences get mixed up, if
pens or paper gets swapped between users, etc. For example, again using a shipping
company (with example 2-A), if two of the drivers were to meet for a coffee and exchange their
Page 157
pens inadvertently (we hope, anyways), the pens would be signing the "wrong" documents all
day and, when docked, would update the wrong documents in the database.
In all of these cases, the errors often do not appear when the wrong document is updated - it
actually occurs when the "right" data is processed. This happens precisely because the Pen
and Production have no idea that the wrong data is received and will generally close the
document after that "wrong" data has been processed - this often works with no error. However,
when the "right" data is processed, then it tries to update a document that has already been
closed by the "wrong" data, and thus fails.
Safeguards
There are certain safeguards against contamination:
lPlanetPress Capture checks for pattern size and placement. If the data contains ink for a
specific pattern but the ink location does not correspond to the Capture Fields of the
document it's updating, it will fail.
lErrors can be set to stop and revert the whole current batch. If a single error occurs during
the pen data processing, it is possible for this processing to be stopped and all changes
the Capture Database reverted. In implementations where the pen signs high number of
documents, this can especially be an easy way to do this, as chances are the data will not
match in at least one case.
Conclusion
lPlanetPress Workflow can only generate 20,000 unique patterns
lOne pattern is used (locked) for each page containing a pattern.
lProcessing the ink data from a pen and closing the document releases the pattern
lMost implementations will not need more than 20,000 patterns
lWhen necessary, patterns can be extended using multiple servers or Pattern Sequences
(as long as these are used in separate physical locations).
lIt is extremely critical that contamination be avoided at all costs.
lWhenever possible, always avoid using pattern sequences unless it is absolutely
necessary to do so.
Page 158
Anoto penDirector
The Anoto penDirector is a software driver provided as a download by Objectif Lune Inc. The
penDirector creates a bridge between the Anoto Digital Pen and a PlanetPress Capture
workflow in PlanetPress Workflow.
In order to use penDirector, it needs to be downloaded from the Objectif Lune website, on this
page. This software must be installed after PlanetPress Workflow. The setup will install a pre-
configured version of penDirector which can be immediately used with PlanetPress Capture.
The communication between penDirector and PlanetPress Workflow is either through a folder
transfer or HTTPPost communication.
To configure this communication:
1. Open penDirector setup by right-clicking on its icon in the Windows System Tray, and
selecting penDispatcher.
2. Double-click on the PlanetPress Capture entry.
3. Change the PGCStorage folder or PGCPOST URLsettings to your liking.
4. Click OK, then OKagain.
The PGCPOSTURLshould correspond to your server name or IP, Port and the HTTPAction
task of your HTTPInput, if that is what you are using.
Example:http://127.0.0.1:8080/ProcessPGC
Bluetooth Connectivity
The Anoto penDirector program can also connect directly to the pen via wireless Bluetooth and
receive PGCfiles directly through the Bluetooth link, without needing to dock the pen.
To pair penDirector with an Anoto Digital Pen:
1. Make sure that a Bluetooth dongle is present and enabled on the computer where
penDirector is installed.
2. Note down the PINof the Anoto Digital Pen, by docking the pen and going in the Pen
settings tab of penDirector and looking at the Pen access group at the bottom of the
dialog. The default PINis 0000.
Page 159
3. Undock the pen, or remove its protective cap if it is not docked. Make sure the power light
on the pen is turned on and green in color.
4. Go in the Bluetooth tab of penDirector and click on Add Pen.
5. Click on Search while the cap is off on the pen.
6. When the pen is found, click on it and then click Add.
7. When asked for the PIN, enter the one noted above.
8. Click OKto save the settings.
The settings for Bluetooth PGChandling are separate from the ones used when docking.
Through Bluetooth, only a single storage and PGCPost URLlocation can be set for all PGCs.
Warning
Because the Bluetooth configuration only handles a single route, it is not possible to use
the Design preview patter, or the special registration pattern, using Bluetooth
connectivity. To use the preview Pattern in PlanetPress Design or use the special
registration pattern, the pen's docking station must be used.
To specify where to send the PGC files received through Bluetooth:
1. Open penDirector.
2. Go to the Bluetooth tab
3. Click on the paired pen that you want to configure
4. Specify a PGCStorage folder
5. Check the PGCPOSTURLoption
6. Enter the URLof your PGChandling process in the box
7. Click OKto save.
PlanetPress Mobile Application
The PlanetPress Mobile application can be installed on some mobile phones and enable fast
and direct connectivity between the Anoto Digital Pen and PlanetPress Workflow. The
connectivity between the pen and the mobile phone is done through Bluetooth, while the
connectivity between the mobile phone and PlanetPress Workflow is through the currently
active data plan (either wifi or the cell phone company's data plan, such as 3G).
Page 160
PlanetPress Capture Implementation Restrictions
This document describes the limitations of the Anoto Digital Pen &Paper Technology,
especially in regards to using it within a PlanetPress Workflow implementation. Note that these
limitations apply to any Anoto technology implementation and not just our own.
Printer limitations
Any document printed with Capture Fields (aka Anoto Patterns)must be sent through a Laser
printer. Bubble jet printers are not supported and will most likely cause reading errors with
Anoto Digital Pens. Thermal printers will not work either due to the low quality printout and the
absence of actual blank ink on the paper.
Black ink close to patterns
Because the Anoto Pen &Paper technology relies on infrared to read pure-black dots on the
paper, it is imperative that no other black ink interfere with this reading. Though it is possible to
print Capture documents on a black &white laser printer as long as there is no other ink on top
of, or close to, the patterns, this is not recommended. Acolor laser printer should be used, and
any elements placed close to, or on top of, the Capture Patterns should be printed in color.
Black ink can be simulated using composite colors, but should never be pure black.
Page 161
Paper quality
The PlanetPress Capture technology, when generating the Anoto Pattern, already accounts for
ink dispersion on laser printers and on general-use laser paper. Therefore, using paper that is
not of the same quality (for example, one where the dispersion rate is much higher) or the same
type (reflective paper)may not permit the pen's camera to read the pattern properly.
Pattern sizes
The absolute minimum required for an Anoto Digital Pen to read the pattern and know it's
position on the page is 7mm (1/4"). Any pattern smaller than this will not be readable. However,
at 7mm width and height, the pen can only recognize a single dot within that pattern, at the top
of the field.
Page 162
This is because the pen's camera (which captures the position of the pen)is located under the
pen tip and must fully see the pattern. The following image illustrates how the pen reads its
position:
Page 163
Knowing this, the best practice when creating fields is that they have, at the very least, a 7mm
margin on each size of the actual area you want to capture from. For example, an effective
30mm wide pattern will actually be 44mm wide using these margins. The margin should be for
both the vertical size and the horizontal size.
Distance between patterns
In implementations where a lot of patterns need to be close together (a questionnaire, multiple
choice question, checkmarks, etc) it is important to understand the risk of then pen writing
across multiple fields on the paper. People using the pen may, for example, make a very broad
checkmark which would bleed over to the next field. This can cause PlanetPress Capture to
detect the ink as being present, and thus trigger whatever that field does.
Page 164
PlanetPress Capture ICR
The term "ICR", which means "IntelligentCharacter Recognition"is an evolution on the
popularly-known "OCR", which is "Optical Character Recognition". The difference between the
two is easily explained:While OCRcan only recognize characters using the finished shape (for
example, in scanned documents and pictures), ICRrelies on much more data which is provided
by the Anoto Digital Pen:the path that the pen takes, the exact timing of this path, start and stop
points, etc. This extra information boosts the recognition rates of characters by a wide margin.
It's important to note that both OCRand ICRare relatively loose terms - that is to say, they can
have different specific meanings depending on the technology used, but in their general sense
mean the same thing. When using the term ICR, we use the above definition for convenience.
Note
The PlanetPress Capture ICRengine is only available with PlanetPress Workflow
version 7.5 and higher.
An ICRWorkflow
The ICRengine in PlanetPress Workflow is used in conjunction with PlanetPress Capture,
translating the ink from the Anoto Digital Pen into separate characters, or text, that is readable
by the suite. Multiple components are required in order for the ICRto work:
lIn PlanetPress Design, a Capture Field Object must be added and the Perform
ICRoption must be activated (See the Capture Field page in the PlanetPress Design
Page 165
User Guide). This must be either a Multi-Area Field or a Text Field.
lThe Capture Fields Processor must have the Perform ICRRecognition option checked,
and language needs to be selected.
lOnce the ICRdata is available, do something with it. This is done by reading the ICRdata
that is available in the metadata generated by the Get Capture Document task.
lThe metadata is also readable by the Capture Condition task, including the captured text
and the reliability of this text.
The Workflow as such is the following:
lA Capture field is setup for ICR in a PlanetPress Design document.
lThe document is sent to PlanetPress Production
lThe Capture Field Generator is used to produce one or more print-outs using this
document.
lThe physical sheets are written on using an Anoto Digital Pen
lThe pen is docked and the data is sent to PlanetPress Production
lThe pen data goes through the Capture Field Processor, where the Capture Field ink is
sent through the ICRengine.
lThe captured ICRdata is retrieved with the document using the Get Capture Document
task.
lConditions are applied if necessary with the Capture Condition task.
Warning
ICR, just like OCR, has its limitations. Please refer to the PlanetPress Capture ICR Best
Practices page for more information.
Terminology and Definitions
In regards to our ICRtechnology specifically, the following terminology applies:
lICR:"Intelligent Character Recognition", or the engine that will read the pen data and
attempt to recognize the text written using the pen itself. The ICRengine uses the path of
the pen, its movement speed as well as the overall shape of each character to determine
which character was written.
Page 166
lICRValue:The alpha, numeric or alphanumeric value that was determined by the
ICRengine.
lICRConfidence:Apercentage value that the ICRengine gives to any specific value,
when comparing the pen data with it's character database.
lICRResemblance:Apercentage value that defines how closely the value resembles the
"average"character shape. Both the Confidence and Resemblance can be used together
to make an informed decision on the contents received by ICR.
PlanetPress Capture ICR Best Practices
From Workflow 7.5 onwards, PlanetPress Capture supports Intelligent Character Recognition
(ICR). However, this technology comes with certain limitations. A successful integration of ICR
within a business requires the application of best practices by all parties involved: Form
designer, Workflow designer and User.
Here we present a list of recommended best practices. Each of these guidelines aim at
maximizing the likelihood that the characters are recognized; and minimize the risk of errors
due to an incorrect analysis.
You will find the following information, when applicable, for each best practice:
lTarget: The targeted audience. There are 3 possibilities: Form designer, Workflow
designer and User.
lWhat: A brief description of the best practice. This could include an explanation of the
concepts that are addressed.
lWhy: A brief explanation of the reasoning behind the relevance of this guideline.
lHow: How to apply this best practice.
This section describes a list of the best practices to implement. They are listed in no particular
order of importance. Pay attention to the targeted audience to know if this rule applies to you.
Using the Most Restrictive Mask
lTarget: Form designer.
lWhat: In the Capture Options tab of a Capture object, the mask type indicates the type of
character to be recognized. There are 3 possible selections: numeric, alphabet and
alphanumeric. The alphabetic mask type allows you to select the letter case.
Page 167
The following guidelines are applicable when configuring a PlanetPress Capture object
that utilizes ICR:
lThe collected data is expected to be a number, therefore the numeric mask type must be
selected, or
lThe collected data is expected to be a letter, therefore the alphabet mask type must be
selected,
lIf upper case letters are expected, select Upper case in the Case option menu. The
captured characters would be immediately converted to capital letter i.e. the ICR engine
will recognize a lower case a but will display it in upper case.
lIf lower case letters are expected, select Lower case in the Case option menu. Same as
for upper case letters, the captured characters would be converted to lower case and
displayed as such.
lIf proper names or nouns are expected (i.e. only the first letter must be a capital letter),
select Capitalization in the Case option menu. Only the first letter would be converted to
a capital letter.
lIf no specific format is expected, select None in the Case option menu. The letters will be
interpreted as written, no conversion will be done i.e. characters in lower case will be
displayed as such.
lThe collected data is expected to be a combination of numbers and letters, therefore the
alphanumeric mask type must be selected.
Why: Reducing the number of expected characters increases the probability that the correct
one is matched. This allows us to avoid that the letter l (a lowercase L) is not recognized as the
numeric value 1 (one) and vice versa. Or, if the mask type is identified as alphanumeric, there’s
a possibility that the letter a is recognized as 2; since Capture will also interpret how the
movement was traced.
How: Use the following options from the Capture options tab under Mask Type and Case
option to filter the expected data.
Page 168
The following diagram illustrates the available mask types. It is recommended to select the
mask type that is the closest to the desired result. An alphanumeric field should be used as a
last resort.
Guidelines for Capture-Ready Fields
lTarget: Form designer
lWhat: Only one character per Capture field can be recognized. When expecting multiple
characters making up a word or phrase, you must make sure that the user only writes one
character per field. In order to do so, you must make sure that the fields are big enough
and have enough space between each one. The best practice is to make sure that there
is a boundary surrounding the field where ink marks are to be written.
Page 169
Why: To avoid any ink marks that would spill over from one field to another. If both fields A and
B are to close in proximity and the ink marks from field A spill over to field B, then the marks
captured on field B would be considered as being part of a character written on field B. For
example, if a number spills over and is written over two fields like numbers 9, 1 or 7; then the
bottom tip of these numbers could be considered as number 1 in the second field. (Refer to the
example below)
Page 170
How: Make sure there’s enough space between each field. You must re-design the document if
that’s the case. There’s no minimum value that is required as the distance between 2 fields,
except for the 7mm border that is required in order for the Anoto digital pen to recognize the
pattern being used.
Writing in a Legible Way
lTarget: User.
lWhat: It is important to write in a legible way i.e. applying yourself by writing well defined
numbers and letter that are easily interpreted.
Warning
You must write on a flat and smooth surface i.e. a delivery person should use a clipboard.
Why: Some numbers can create some confusion, like numbers 7 and 1. 7 can be interpreted as
a 1 and vice versa. The letter i, where the dot on top is a circle, can possibly cause a conflict
because the dot can be considered as an o.
How:
lWrite an additional line under the number 1.
lWrite an additional line across the number 7.
lThe ICR functionality of PlanetPress Capture cannot recognize dotted letters where there
are circles instead of dots (like i , j). This would be analyzed as an i AND o. Therefore,
dots should be as such and not circles.
lIn French, the ç is somewhat sensitive. You must apply yourself and draw the letter
carefully. In most cases, it is recognized, but attention must be paid.
lNumber 8 is also sensitive. It is recommended that the number is traced as one
movement instead of drawing 2 circles on top of each other.
Selecting the Correct Language When Using the Capture Field Processor Task
lTarget: Workflow designer.
lWhat: It is crucial that the correct language is selected when using the ICR recognition
option. This will affect how the captured data is interpreted.
Page 171
Why: The available filters to interpret the ink marks done with the Anoto digital pen, allow you
to select the engine language to be used. Doing so will give you results that are the closest
match to the captured data. Multiple cultural characters can be interpreted with ICR once the
correct language is selected such as û, à, é, etc.
How: This option is available from the Capture Fields Processor task.
Page 172
Possibility of Interpretation Error in an Automated Process
lTarget: Workflow designer
lWhat: We cannot be 100% sure that a character would be recognized by PlanetPress
Capture as it should. Therefore, the analysis of a value interpreted with ICR should only
occur if the level of confidence is superior to a determined level.
Why: An automated process can treat the characters incorrectly due to an incorrect
interpretation of a value. This occurrence should be minimized as much as possible.
How: Allow for a special process (possibly manual handling) in the case the automated
process didn’t reach a high confidence level in its analysis of the ink marks. Use the plugin
Capture condition that includes the ICRContent option. This can be configured to be a true
condition if the confidence level is greater than a certain value.
Basic Functional Capture Workflow
This workflow is the most basic and simple workflow that you can use with PlanetPress
Capture. In small implementations with only one simple document, this may be the only thing
required for a functional workflow since, even in this simple state, it can be enough to automate
the archive of your digital documents.
Generator Process
The workflow requires two separate processes that will be triggered at different times. The first
process, the generator process,produces printable output by merging a data file with a
Capture-Ready PlanetPress Design document. For each document page produced, an Anoto
Pattern is assigned to the document and locked, and a page is produced in the output.
Depending on the setup used, this may produce on or more print jobs or PDFs as an output.
Page 173
lAny input task
l"Create Metadata" on page509
l"Capture Fields Generator" on page482
lPrint output
PGCHandling Process
The second process is the PGCHandling process.It receives data from the Anoto Digital pen,
updates the Capture database and releases patterns as appropriate.
l"HTTP Server Input" on page228 or "Folder Capture" on page213 input task
l"Capture Fields Processor" on page486
l"Get Capture Document" on page502
lArchive or Print output
Capture Post Processing Workflow
Though the "Basic Functional Capture Workflow" on the previous page is minimal functional
one, it will most likely not be enough for most actual implementations. The goal with
PlanetPress Capture (and PlanetPress Workflow in general)being to automate as much as
possible, there are some tools within the PlanetPress Capture tasks that can greatly help with
this goal.
There are two places where post-processing can happen:after the "Capture Fields Processor"
on page486 while handling incoming ink data, or after the "Find Capture Documents" on
page497 task that is part of an automated process or after a user request.
Page 174
Post-Processing is generally done using the "Capture Condition" on page476 task, which
verifies the presence or state of the ink on the document or on specific fields.
After PGCHandling
Here is an example of a process that receives ink data, updates the database, and then verifies
whether or not a field that indicates manager attention is required (for example, a box noting the
wrong number of items in a delivery slip). If attention is required, the document is sent via email
to the manager. Otherwise, the document is simply archived.
Task Breakdown:
lThe HTTP Server Input receives a POSTrequest sent either by the Anoto penDirector or
the PlanetPress Mobile Application. This requests contains information sent by the pen
as well as a PGCfile as an attachment. Because we're only concerned about the PGC,
the task is configured to ignore the XMLenvelope as well as loop through each
attachments (of which there is only one). So, the output of the task is the PGCfile alone.
Page 175
lThe Capture Fields Processor then uses the PGCfile to update any documents in the
database that the pen wrote on, and closes those documents in the database when they
are complete.
lCapture Condition is where we can check whether a specific field (a
"RequireManager"field) has ink contained in it, and if it does, the branch on the right is
triggered.
lIn the branch, Get Capture Document retrieves a PDFversion of the document and
sends it as an attachment to an email sent directly to a manager using Send Email.
lOtherwise, Get Capture Document is used again, but this time the PDF is stored in a
SharePoint Server using the Output to SharePoint connector.
After Retrieving Information from the Capture Database
There are two basic ways in which the Find Capture Document task can be used. First, in an
automated process that runs at specified intervals. For example, the following process which
sends a daily report of all incomplete and "in error"documents to an agent who would
presumably take action on each document through the document manager.
Page 176
Task Breakdown
lThe Find Capture Documents task queries the Capture database for documents that
correspond to certain specific conditions. For example, here we would look for all
documents that are either in an "Error"or a "Partial"state, which means they received ink
but are not completed correctly. To do this, the "Content Status"filter and setting it "Equal
Page 177
to" those states. Two conditions are necessary, and the "Condition is true when"is set to
"all items are met".
lWith this list of documents in the metadata, we Branch off. This is done because we need
to build a report that will be sent to an administrator, and only one email should be sent.
lTo build the report, inside of the branch we use the Metadata Sequencer to create
one sequence for each document, by splitting at the Document level, by 1
occurrence of the level for each sequence.
lThe Capture Condition task then
Capture Web Manager Workflow
This example is both a more involved workflow for Capture, and an interesting implementation
of an HTTPWorkflow. Before looking at this example, it would be best to become familiar with
both "PlanetPress Capture Workflow" on page143 and "HTTP Server Workflow" on the facing
page.
The example is too complex to display as images in this guide, so it is rather available for
download. It infers two different files:
lCapture Web Manager Workflow Configuration (PW7)
lCapture Web Manager PlanetPress Design Document (PP7)
Technical
This example is compatible with PlanetPress Workflow 7.4 and higher and will not work
in older versions.
Installation
1. Download both resource files
2. Create a folder on your disk called c:\PlanetPress
3. Open the invoice.pp7 document and send it towards your local PlanetPress Workflow
server (localhost or 127.0.0.1)
4. Open the configuration file CaptureExampleProcess.pw7
5. Click the PlanetPress Workflow button (File menu) and go in Preferences.
6. In the HTTP Server Input 2 section, check the Serve HTTP resources option, change
Page 178
the Resource action name box to static , and the Resource folder to
c:\PlanetPress\http . Then, click OK.
7. Send the configuration to your local PlanetPress Workflow server.
8. Start PlanetPress Workflow services (see "Start and Stop PlanetPress Workflow Service"
on page660).
9. Open your browser and point it to http://127.0.0.1:8080/documentlist , assuming you have
not changed the default HTTP port in the HTTP Server Input 2 section.
Explanation
You can follow along the process by looking at the comments available in each process of the
workflow file. Each comment explains both what the following plugins do, but also how it
integrates into the workflow in general and what to keep in mind when doing an actual
implementation of such a process.
Considerations
lThe workflow itself is a standalone system that does not interact with any third-party
systems, which of course does not correspond to real customer implementation. A client
will most likely need to communicate with both an ERP system that generates documents
as well as an archive software to store completed documents.
lThe HTML, CSS and data file are generated whenever the process starts, in a specified
location, in order to avoid having to distribute multiple static files which would need to be
extracted and moved to a specific folder. In an actual implementation, these files would
probably be edited externally and loaded from a location on the hard drive. However, the
method of using a template to generate output is not so alien to PlanetPress Workflow so
it is not condemned to do so.
lThe example doesn't use any advanced coding such as JavaScript, Ajax and caching. It's
easier to follow, but is less optimized in its use than a complex workflow that would use
such features.
HTTP Server Workflow
An HTTPServer workflow is one that has one or more processes that always start with the
HTTPServer Input task and returns something to a client using a web browser. Each process
would have a specific task referred to as an "action", called from the browser itself.
HTTP Server Input tasks are typically used in one of the two following situations:
Page 179
lHTML Form Action: An HTMLForm in the browser that may contain text and attached
files can be filled and sent to a process with the HTTPServer Input task.
lHTTP Data Submission: A custom application or a server sends the request to
PlanetPress Workflow using either a POST or GET command. The application or server
then waits for a response from PlanetPress WorkflowTools.
PlanetPress Workflow can serve both static and dynamic resources to a web browser, however
it is not meant to be used as a fully featured web server, as it is not built for responsiveness nor
guaranteed uptime. It is much better to have a common web server (for example, IISor
Apache)to serve your contents and to have PlanetPress Workflow available only to process
things only it can do.
Note
You can control access to the PlanetPress Workflow Tools HTTP Server via the Access
Manager.
Important Configuration, Setup and Options
Before starting to work with HTTPworkflows, there are few key points to keep in mind in terms
of configuration. First of all, the following options are available in PlanetPress Workflow
Preference screen, under the HTTPServer Input 1 and HTTPServer Input 2 sections:
lPort (default value:8080 recommended):The port number is the one in which a
browser needs to make a request to PlanetPress Workflow. By default in most web
server, port 80 is used and, when this is the case, it is not necessary to include it. For
example, if Itype http://www.objectiflune.com/ in my browser, it is actually accessing the
address http://www.objectiflune.com:80/ , but port 80 is always hidden. The reason port
8080 is used by default is to prevent any interference with existing web servers installed
or activated on the same server as PlanetPress Workflow.
lTime-out(seconds):This determines how long the HTTPServer service will wait for the
process to finish, before returning a time out error back to the client browser. This means
that if a process takes more than 120 seconds (by default)to complete, the browser will
time out. While you can change this value, it is recommended to always keep your
processing to a minimum, since both browsers and users generally frown upon being
stopped for more than a minute, unless they are well aware of this processing time (and
even then...)
Page 180
lEnable server for SSLrequests:This enables secure communication between the
browser and the server via HTTPS. By enabling this option, you will need to provide for
the proper certificates, key and password. While this configuration is beyond the scope of
this document, there are plenty of resources on the Internet to explain these systems.
lServe HTTPresources:This is where you enable static resources in PlanetPress
Workflow. When enabling this option, the HTTPserver will always look in the Resource
Folder for files requested inside of the Resource action name as a folder. This means
that, if your Resource folder is c:\PlanetPress\http and your Resource action
name is static, pointing your browser to
http://127.0.0.1:8080/static/css/style.css will immediately load and
return the file c:\PlanetPress\http\css\style.css . This does not require any
process to work - everything is handled directly by the HTTPServer Input and files are
returned immediately. This feature is very useful when dealing with stylesheets, images,
browser JavaScript, or static html files that do not require any processing.
Technical
As of PlanetPress Workflow 8.1, it is now possible to serve a default HTMLfile when no
action is specified, for example http://localhost:8080/ . This is done by creating an
index.html file in the Resource Folder defined above. However, resources called by
this index.html must still use the Resource action name, for example a stylesheet
would still point to http://127.0.0.1:8080/static/css/style.css or more simply
static/css/style.css.
You also need to take into consideration the options inside each of your processes that start
with the HTTPServer Input task, as they will greatly impact how this process responds. In the
process' properties, the following options will modify HTTPbehavior:
lSelf-Replicating Process:This option is critically important when dealing with
HTTPprocesses, so check it now. Basically, this means that when HTTPrequests are
received, the process will duplicate itself up to the specified maximum number, in order to
simultaneously (and asynchronously)handle multiple requests. See " Process
Properties" on page704 for more details.
lAs soon as possible:This option needs to be checked, otherwise requests will not be
handled as they come in (this option is meant to be used on scheduled processes that run
at intervals).
lPolling Interval (sec):This option determines how much time the HTTPServer Input
waits between the moment it finishes processing a request and the moment it picks up a
Page 181
new request. This should be put at 0 in order to process requests as soon as possible,
meaning immediately.
And finally, the HTTPServer Input task properties. While these are described in the "HTTP
Server Input" on page228 task properties page, here are a few considerations to keep in mind
when using this task:
lThe HTTPAction corresponds precisely to the name immediately following the first slash
of your address. That is to say, placing the action myaction here means the process
would be triggered by opening http://127.0.0.1:8080/myaction in your
browser.
lThe HTTPservice accepts both POSTand GETrequests. Other than the presence of file
attachments, there is little difference in how these are handled. This means that visiting
/myaction?id=12345&q=test would be the same as having a form with two <input>
fields named, respectively, id and q, and submitting them with the information
"12345"and "test". In both cases, this information is located in the XMLenvelope that is
the original input file.
lWhen doing POSTrequests and uploading files, always make sure to include the
"multipart"option in the <form>tag:
<form action="http://127.0.0.1:8080/myaction" method="POST"
enctype="multipart/form-data">
Otherwise, file attachments will not be received, only their file names.
lThe Mime Type option is better left at Auto-Detect unless the process requires it to be
forced to a specific type. This means that if a process can either return a PDF when
successful or an HTMLpage with an error message, it will not attempt to send an HTML
with a PDFmime type (which, obviously, would cause confusion).
lThere is no HTTPServer Output task (see below on how to end your process)
Request/Process/Response cycle
Once a process using the HTTPServer Input task is created, it is important to understand the
cycle that is triggered when such a process runs. Note that this is the process when the default
HTTPServer Input task options are used (more on how that behavior changes later):
1. A request is received by the HTTPservice.
2. This request is converted into an XMLrequest file along with one or more attachments
when present.
Page 182
3. The XMLrequest file and attachments are saved in a local folder, if the HTTPAction is a
valid one (otherwise, the files are deleted).
4. The HTTPservice keeps the request from the client open (it does not yet respond ot it),
and waits.
5. The HTTPprocess corresponding to the HTTPAction captures the XMLfile and
attachments and the process begins.
6. The process runs its course just like any other process would (including subprocesses,
send to process, etc).
7. The very last file that is active when the process finishes is then returned to the
HTTPservice.
8. The HTTPservice returns the file to the client and then closes the connection.
9. If, during this time, the timeout has expired (if the process takes more than 120 seconds),
the HTTPservice returns a "timeout"to the client, but the process stills finishes on its
own. When the process finishes, the return file is ignored by the HTTPservice.
Point 7 is critical to understand, as it has an impact on what the client receives. If a process
receives a file that is split into multiple parts and each of these parts generates and output, the
last split's output will be sent to the client. If the last output task generates a PostScript file for
printing, this PostScript is returned to the client.
In most cases, what is returned is what remains after the last task, but only if this task's
processing is done in PlanetPress Workflow. For example, if the data file is a text file and this
file is sent to PlanetPress Image using the Image connector, it is a text file that is returned, not
the output of the Imaging. Similarly, ending a process with the Delete task does not return an
empty file, it returns the actual data file.
This is actually the most used way of returning a response:Generate an HTMLfile using either
Create File or Load External File, then delete the file as a last output. The HTMLis thus
returned to the client.
Example HTTPWorkflows
l"HTTP PDF Invoice Request" on the next page (GET)
l"HTTP Brochure Request" on page185 (Customer Information+POST)
l"Capture Web Manager Workflow" on page178 (Capture +HTTP)
Page 183
HTTP PDF Invoice Request
This straightforward workflow simply receives a GETrequest from a browser, loads an existing
PDFinvoice from a folder on the hard drive, and returns it to the browser. To do this, a client (or
a web service)would request the following page:
http://ppworkflowserver:8080/getinvoice?in=INV999999
Breakdown of this URL:
lhttp:// :transfer protocol. This could be HTTPS if the SSLcertificates are activated in the
preferences.
lppworkflowserver :name of the machine. This could also be an IP (192.168.1.123) or a
full domain name (www.myserver.com), depending on the connectivity between the client
and PlanetPress Workflow Server.
l:8080 :The default PlanetPress Workflow HTTPPort, set in the preferences.
l/getinvoice :The HTTPAction Name, as set in the HTTPServer Input task.
l?in=INV999999 :AGETVariable, specifying that the variable named invoicenum
(invoice number)would have a value of INV999999 , or any other "valid"invoice number.
Process Illustration
Page 184
Task Breakdown
lThe HTTP Server Input task receives a request through the /getinvoice HTTPAction.
Because this task either returns an HTMLpage with an error message or a PDF, the
MIMEtype isAuto-Detect.
lIt checks whether the invoice request exists by checking if the size of the file is less than
1kb using "File Size Condition" on page402. The condition returns "true"if the file is not
found:
c:\PlanetPress\archives\pdf\invoices\xmlget('/request[1]/values[1]/invoicenum
[1]',Value,KeepCase,NoTrim).pdf
Here, the xmlget()function grabs the invoicenum variable from the GET request, which
would be INV999999.pdf in the specified folder.
lIf the file is not found, then a simple, basic HTMLpage is created indicating the invoice
was not found. For this, a "Create File" on page205 task will suffice, followed by the
Delete output task. As we've already mentioned in "HTTP Server Workflow" on page179,
deleting the data file only means you are not doing anything with it locally - it is still
returned to the client.
lIf, however, the file is found, then it is loaded with the "Load External File" on page325
task, and then deleted (for the same reasons).
HTTP Brochure Request
This workflow builds on the knowledge acquired in "HTTP PDF Invoice Request" on the
previous page and uses a single process, but in this case it also uses a PlanetPress Design
document which merges the data received from a browser form with the document to generate
a PDFbrochure, which is sent via email.
Resources
lHTTPBrochureRequest.pw7 (PlanetPress Workflow Configuration)
lInformationBrochure.pp7 (PlanetPress Design Document)
Installation
lDownload both files
lOpen InformationBrochure.pp7 and send it to PlanetPress Workflow.
Page 185
lOpen HTTPBrochureRequest.pw7 and send the configuration to your local PlanetPress
Workflow service.
lOpen your browser to http://localhost:8080/generatebrochure
Task Breakdown
lThe HTTPServer Input receives the initial request from the browser.
lBecause this is a demonstration, a backup is made of the XMLrequest. It's not suggested
to do this every time, especially on servers receiving a large number of requests, as these
files do take some amount of space for each request.
lAcondition checks whether the form has been submitted, by verifying that one of the
required fields is empty. If it is, it means this is the initial request, so the condition
becomes true.
lIf this is the initial request, an HTMLpage is created which contains a form asking
the client for a required full name and email, and optional company name. A
checkmark also offers to subscribe to a newsletter (it is unchecked by default!). The
form submits back to the same URL, meaning it is handled by the same process.
lThe file is renamed with the .html extension, so that both the HTTP service and the
browser will recognize it as an HTMLpage. And then, as usual, it is deleted (but still
returned to the browser).
lWhen the condition is false, it means that there is something in the Full Name field. In this
case, we know that the form was filled and submitted back to the process, and we handle
the request as such.
lFirst, we add the full name, email and company information to job informations, in order
for them to be available for the rest of the process.
lThen, we have a small condition that verifies if the user checked the "Newsletter"box. If
so, the conditional branch is triggered. Note that this condition is put inside its own branch
because otherwise, the rest of the process would not run when the newsletter is selected.
Since we want both to happen, the branch is there with a "stub"if the condition is false.
PDF Workflow
A PDFworkflow, in essence, is one that does not contain any PlanetPress Design document
and only uses PDFfiles as data files. In most cases, this also implies the use of Metadata, as
Metadata is used to establish boundaries between document, sort and sequence (split)the
PDF data into different parts.
Page 186
The idea is that a PDFfile, because it is a formatted document in and of itself, doesn't
absolutely need to go through PlanetPress Design to be processed and printed. Additionally,
because of the PDFtools in PlanetPress Workflow, you can easily merge, split, print and take
parts of the PDFfile as required.
Because we are using Metadata, however, here are a few ground rules to keep in mind while
working with such workflows (these rules also apply to Metadata use in general):
lModifying Metadata does not immediately modify the data. This is one of the benefits
of Metadata because you can sort it, filter it, sequence it, add data to it, without ever
modifying the data file itself. This is important because if you, for instance, filter out certain
data pages from the metadata and then save your data file with the Send to Folder task,
the full data file is saved, not the filtered one. This is resolved through different methods,
used in the different examples below.
lModifying data does not immediately modify the Metadata. So, if you have a PDFfile
with metadata and you use a PDFsplitter, the metadata information would still reflect the
original data, not the split. This can generally be resolved by using the Create Metadata
plugin again.
lBranches, Loops and Conditions do not reset the metadata. This is important in
some cases because the metadata does affect your output (see next point)and can cause
confusion if not handled properly. For example, if you were to split a data file and, under a
specific condition, create metadata on the file and generate a PDF, other wise print the
file, you would run into this issue. When the metadata is created in the condition, it stays
"active"even on the next split. If that split actually prints, it's using the metadata from the
previous split, and will attempt to print the number of pages specified in the metadata. So,
it may print 3 pages instead of 40, or 25 pages, the last 5 of which would be blank. The
only way to get around this is to either regenerate your metadata when possible, or to use
the "Metadata File Management" on page519 to delete the active metadata file. When
doing this, metadata is ignored so the data file itself properly determines the number of
pages to print.
lAs a general rule, only input tasks and Metadata related tasks modify Metadata. There
are, however, a few notable exceptions:
l"Create PDF" on page293 has the option to reset your metadata according to the
new PDFfile. In reality, Create PDF is one of the most useful tasks in PDF
workflows, since it is the easiest way to make your PDFfile conform to the metadata
without using a PlanetPress Design document. See the "Create PDF" on page293
page for more information.
Page 187
l"Run Script" on page409 tasks can also modify metadata using the Metadata API
(See "Using Scripts" on page91).
lThe "Barcode Scan" on page279 task can add information to the existing metadata,
and creates it if there is none.
lThe "Capture Fields Generator" on page482, "Capture Fields Processor" on
page486, "Get Capture Document" on page502 and "Find Capture Documents" on
page497 tasks generate their own metadata.
lThe "Lookup in Microsoft® Excel® Documents" on page440 enhances metadata
fields with information from an Excel spreadsheet, but does not otherwise change its
structure.
Examples
l"Daily Sales Report from PDF Files" below
Daily Sales Report from PDF Files
This workflow makes heavy use of both PDFTools and Metadata, and assume that you are
using PlanetPress Workflow version 7.3 or higher.
This single process workflow generates a daily sales report for any sales rep inside of a
company which made at least one sale. It does this by capturing the invoices generated within
a specific day, putting all the invoices for each sales rep in a single PDFand then sending it to
the sales rep.It does this using several specific metadata tasks as well as a quick lookup in an
external Excel spreadsheet.
Resources
lPDF-DailySalesReport-Workflow.zip
Task Breakdown
lThe initial input is the "Merge PDF Files" on page243, which retrieves and merges all the
PDFfiles inside of the specified folder. Once a single PDFis created, the task also
optimizes the PDF(to avoid duplicating images and font definitions for each page)as well
as generates a basic Metadata structure containing a single document with one Data
Page per captured PDF.
Page 188
lThe "Metadata Level Creation" on page524 creates the Document level of the metadata
by placing each PDFdata file in its own Document level. It does this by detecting when
the Address in the document changes.
lThen, the "Metadata Fields Management" on page515 adds a few fields at the Document
level in order to properly tag each document with the appropriate information, in this case
the CustomerID, Country and Rep ID. These fields are identical to ones that would have
been added in PlanetPress Design, and are used for the following metadata tasks.
lThe "Metadata Filter" on page521 follows by removing any invoice that is not in the US.
Note that the Metadata filter is an *inclusive*filter, meaning that the filter includes the
parts of the metadata where the result of the filter is true, and filters out anything else.
lThe "Metadata Sorter" on page530 then re-orders the metadata documents by Rep ID, so
that all of the invoices for any particular sales representative are all together.
l"Lookup in Microsoft® Excel® Documents" on page440 then uses the Rep IDfield to
retrieve each sales rep's email from a specific Excel spreadsheet.
lThe "Metadata Sequencer" on page528 acts like a splitter, where the separation
happens whenever the Rep ID changes. Since documents are sorted with that field, each
sequence can contain one or more document, but they will all be for the same Rep ID.
l"Create PDF" on page293 is then used to generate a single PDFfor each sales rep.
Because Create PDFworks in conjunction with Metadata and because it can be used in
pass-through mode, in this instance it will only take the relevant PDFpages from the
original data file in order to create a single PDF file. Other than the extraction of these
pages, the original concatenated data file is untouched.
lFinally, the output is done using a "Send to Folder" on page641 in this case. Obviously,
this should be a "Send Email" on page636 output, but since we don't want to spam
anyone, instead we place the PDFin a folder with the rep id's email as a folder name.
Workflow processes in a Connect Send solution
OL Connect Send needs one Workflow process to handle the job transfer, and in licensed
mode it needs at least one other process to interact with the user. Reports about the use of OL
Connect Send might be produced in yet another Workflow process.
Each OLConnect Send solution will require the Workflow processes to be configured
differently, but certain plugins will always be part of the solution.
Job transfer process
The Workflow process that handles the job transfer starts with an HTTP Input task. The action
name of this HTTP Input task must match the last part of the URL for print job submission set in
Page 189
the printer driver installer (by default: olcs_transfer).
The Job Processor plugin is the only other task in this Workflow process (see "Job Processor"
on page549).
Interactive process
When a job is received in licensed mode, an interactive process is started. This process, which
may consist of several Workflow processes, serves web pages to the customer and handles the
customer's response, changing (settings for) the print job.
A few of the key components in this process are:
lThe HTTP Server Input plugin. The interactive process start with this plugin. The action
name of this HTTP Input task must match the HTTP action for interaction given in the
Connect Send Printer Driver installer (by default: olcs_interaction). (See HTTP Server
Input.)
lThe Get Job Data plugin. Creating interactive processes for incoming print jobs requires
that the relevant information about the respective job is available and can be used in
Workflow. This is what the OL Connect Send Get Job Data plugin is made for. (See "Get
Job Data" on page544.)
lThe Create Web Content plugin. Each web page served by an interaction process is
generated by this plugin. (See Create Web Content.)
lThe Create Preview PDF plugin generates a PDF preview for a single record as fast as
possible. It is typically used for previews embedded in web pages. (See Create Preview
PDF.)
Production report process
The key plugin in a process that produces reports about jobs received with OL Connect Send is
the Get Data plugin. It allows to query the OL Connect Send database. (See "Get Data" on
page538.)
Sample project
The Ad Hoc Mail Consolidation sample project may help you understand the Workflow
processes for OL Connect Send and configure your own.
lWatch the sample in action on demo.objectiflune.com. Under Ad Hoc Mail
Consolidation, click Demo and follow the instructions. (If you have already installed the
printer driver, you don't have to do that again.) Add a Connect Send printer with the given
Page 190
settings and print the provided Word file to that printer. The printer will trigger an
interactive process on demo.objectiflune.com.
lDownload the sample files from OL's Resource Center:
http://help.objectiflune.com/en/#csend.
The basic processes involved in the Capture OnTheGo
Workflow
PlanetPress® or PReS® Connect is an extremely flexible solution that lets you do almost
anything you want with your data. So although the three basic processes explained in this
section are required to enable a Capture OnTheGo solution, you may add as many plugins and
processes as you like to customize a solution that perfectly suits your needs.
The three basic processes are:
lThe process that makes a document available to COTG users, see "The process that
publishes a document" below.
lThe process that authenticates and replies to document requests from COTG users, see
"The process that replies to document requests from Capture OnTheGo users" on
page194.
lThe process that receives data from COTG users, see "The Process that Receives Data
from Capture OnTheGo Users" on page193.
The process that publishes a document
The process that publishes a document is not necessarily the first process in your complete
COTG Workflow configuration. Depending on your specific needs, your data or business
processes may require pre-treatment, and this may be done easier using other processes. But a
process like the one presented below must be included in your Workflow configuration.
The example below was designed to be as simple as possible on purpose, to show what this
kind of a process can resemble when only the bare bones are present.
Page 191
This process watches a certain folder. When a file enters that folder, a data mapping is
performed on it. Then an HTML file is created and saved to another folder. The Output to
PlanetPress Workflow plugin sends a ticket (not the actual HTML file) to the Capture OnTheGo
Server, so that when the intended user logs in, the name of the HTML file will appear in the
App's Repository, signaling to the user that the file is available for download.
The Output to PlanetPress Workflow plugin is on the Connectors tab in Workflow. When you
add the plugin to a Workflow process, the corresponding dialog box is automatically displayed
to let you configure the plugin (see below). Note that you may enter variables in those boxes
that have a maroon label.
The Create Web Content task and the Execute Data Mapping task are found on the OL
Connect tab in Workflow. You may, of course, add other plugins and conditions to this process
as required. For more information on how to add and configure tasks, refer to the PlanetPress®
or PReS® Connect Workflow documentation on http://help.objectiflune.com/.
Page 192
The Process that Receives Data from Capture OnTheGo Users
HTML documents that were downloaded can be used to collect information. This information
can be extremely varied, ranging from a simple signature confirming the reception of a parcel,
to a complete report including numbers, notes, pictures, etc. Once they have finished collecting
information on a given delivery or client, Capture OnTheGo App users simply need to tap the
Submit button on their intelligent device to send all this information to their organization via the
internet. Note that only the data is sent. Once on the receiving end, the data may be merged
with the same HTML document, but it may also be processed in a variety of ways, as required.
For this to happen, one last process is needed. This process also includes an HTTP Server
Input task, but in this case, the task is used to reply to POST requests, rather than GET
requests. When a Capture OnTheGo App user taps the Submit button, a POST request is sent
to a PlanetPress or PreS HTTP Server. The server replies by collecting the information, which
is passed down to other tasks. The process may include multiple branches and a large variety
of tasks. Some or all of the collected information may be used, as required, in a variety of ways.
lIt may be passed on to other systems.
lIt may be merged with the same form used by the Capture OnTheGo App user, or with a
different one, and then used to generate a PDF for archiving.
lIt may be used to generate an email.
Page 193
Since this part of the processing is handled by PlanetPress or PreS Workflow, you can use its
renowned feature set to do virtually anything.
For detailed information on how to use and configure the HTTP Server Input task to reply to
POST requests, refer to PlanetPress Workflow documentation. Also refer to the same
documentation to know how to add those tasks that will let you send or process the received
data as required.
The process that replies to document requests from Capture OnTheGo users
The previous process informed the Capture OnTheGo Server that a new document was now
available. So Capture OnTheGo App users that have access to this document can now see it
and download it from a PlanetPress HTTP Server or a regular Web server. Based on the
document’s Capture OnTheGo settings (for more information on this, refer to "The process that
publishes a document" on page191), the document is either automatically downloaded, or it
can be manually downloaded. The actual download of this document is done via a PlanetPress
Workflow process that includes an HTTP Server Input task.
The example below is divided into three parts: receiving the request, fetching the document and
sending the document.
Receiving the request
To begin with, the HTTP Server Input task waits for requests. When a request is received and
authenticated, the next task down stores the request’s parameters in a variable. The variable’s
content is then processed to remove any malicious code. The following task completes the
document’s path by adding the location of the server where the document is actually stored.
Page 194
Note: To make sure that documents are served only to users of the COTG app, the Input task
authenticates download requests, using the authentication key of the COTG repository. This
key can be found in the Parameters section of the COTG Web Administration Panel.
Enter the key in the HTTP Server Input 2 User Options in the Workflow preferences (see HTTP
Server Input 2 User Options (PreS) or HTTP Server Input 2 User Options (PlanetPress)).
For further information on how to use and configure the HTTP Server Input task to serve
documents over the internet, refer to the Workflow documentation.
Finding the document
The next part of the process checks whether the requested document can be found or not. If the
requested document is less than zero kilobytes in size, it is assumed to be non-existent. When
this is the case, a File Not Found document is created, sent to the requesting client, and then
deleted from the server.
Sending the document
If the requested document is more than zero kilobytes in size, then we know it does exist. In the
third part of our process, the document is actually sent to the requesting client. The document is
first loaded, renamed to the original name included in the request (the full path is reduced to the
file name), and sent to the client. Finally, the document is deleted from the server.
Page 195
Downloaded PDF documents can then be opened for viewing, and HTML documents can be
used to collect information that can then be sent back for processing.
About Tasks
A task is a plugin or a block that is used to build PlanetPress Workflow processes. Tasks can
do multiple things depending on the type of task and where they are placed. You can add as
many tasks as you like to your processes and order them in any way you can.
There are different types of tasks:
lInput Task:Will either capture data from a specific location, or wait for input from a
service or other computer to start processing.
lAction Task:Will manipulate the data in any number of ways. An action task is any task
that is not an input or output task or a branch or condition.
lOutput Task:Will output data to a specific location or send to a different service or
computer.
Page 196
Some tasks have a multipurpose and can be used as either an input, action or output task or
any combination. These multipurpose tasks are indicated as such in the task description and
can be found in the most relevant section of the available tasks.
For more information on the tasks available to you in PlanetPress Workflow, see the following
pages:
l"Input Tasks" on page203
l"Action Tasks" on page268
l"Data Splitters" on page368
l"Process Logic Tasks" on page396
l"Connector Tasks" on page426
l"PlanetPress Capture" on page475
l"Metadata Tasks" on page509
l"Output Tasks" on page619
lAbout Fax
lAbout Image
Note
Completely empty files (0 bytes) cannot be processed by Workflow.
Task Properties
Any task you add to your PlanetPress Workflowprocess must be configured using its properties
dialog box. Each task's Properties dialog will give you the options to configure that specific,
individual task. Properties of one task do not directly affect the properties of another task,
however there are some software preferences that may affect tasks in one way or another (See
"Preferences" on page730)
Variable Properties
When you edit tasks, you may notice that some of the properties that you can modify have a red
(or more precisely, a maroon) title. This means that the property can be dynamically determined
whenever your process runs, that is to say it will not remain static. This can be extremely useful
Page 197
when, for example, you want to determine how many copies you will print out depending on
your data, or what document will be used in the printout depending on the department it came
from.
Variable properties may include:
lStatic data.
lStandard Variables. See "Standard Variables" on page646.
lLocal and Global Variables. See "Manipulate Local Variables" on page683.
lJob Infos. See "Job Info Variables" on page645.
lData and Metadata Selections. See "Data selections" on page26.
lPrinter Control Characters. See "Shared Printer Queue Properties" on page70. These
are normally only used in printer outputs.
Variable propertiescan also be used in these special locations:
lIn the Set Job Infos and Variables Action Task. See "Set Job Infos and Variables" on
page350.
lIn Scripts. See the chapter on "Using Scripts" on page91.
lIn the Create File Input Task. See "Create File" on page205.
lWithin a PlanetPress Design Document, using the ExpandString()function.See the
PlanetPress Design User Guide and PlanetPress Talk Reference Guide.
Variable properties can also be mixed, meaning you can combine, within a single variable
property box, any number and order of variable types. You can, for example, do the following for
an output file name: %O_@(1,1,1,30, KeepCase,Trim)_%y-%m-%d.txt. This would translate in
the original file name, followed by part of the first line of a text data file, then the current date.
Contextual Menu
In any variable properties box, you may use the contextual (right-click) menu to add variables
and control characters, as well as to get data and make data selections. The lower part of the
contextual menu is divided into 4 items that provide variable properties:
Page 198
lVariables
lSystem: Contains system variables, also called "Standard Variables" on page646.
lJob Info: Contains Job Info variables from %1 to %9
lLocal Variables: Contains a list of local variables in this process. If no local
variables exist, this item is disabled.
lGlobal Variables:Contains a list of global variables in this configuration. If no
global variables exist, this item is disabled.
lControl Characters:Contains a list of control characters that can be used in printers.
lGet Data Value: Brings up the Data Selector, retrieves the value you select and places it
in the variable properties box. This information becomes static and does not change
between each datapage and job file.
lGet Data Location:Brings up the Data Selector and records your selection. The data
selection is dynamic, meaning it will get the data located in the area you choose, every
time a new data file passes through it. This is indicated by a data selection (see "Data
selections" on page26).
lGet Metadata Value:Brings up the Data Selector with only the Metadata tab visible and
lets you select the value (contents)of a Metadata attribute or field. The result is static and
does not change between jobs.
lGet Metadata Location:Brings up the Data Selector with only the Metadata tab visible
and lets you select the location of the data. The result is variable and changes between
jobs.
lGet Repository Value:Brings up the "Data Repository Manager" on page721 dialog to
select the value (contents)of a specific key. The result of the lookup is static.
lGet Repository Location:Brings up the DataRepository Manager dialog to select the
location of the key to lookup every time this task is executed.
You can quickly identify variable information that is already present in your variable properties
as such:
lA percentage sign identifies standard variables, as well as standard and custom job info
variables — %f, for example.
lA backslash indicates a control character — \004, for example.
lAn at sign (@) indicates a data selection for emulations other than database — @
(1,1,1,1,17,KeepCase,Trim), for example.
Page 199
lField indicates a data selection for a database emulation — field(1,0,0,'Billing_
Email',KeepCase,NoTrim), for example.
lThe lookup()function indicates a lookup in the "Data Repository Manager" on page721.
Unknown Tasks
An unknown task is a task location that is not linked to any existing known task. Unknown tasks
can have multiple causes:
lCutting an input or output task will replace it with an unknown task. See Cutting, Copying
and Pasting Tasks and Branches
lCreating a new branch will create an unknown output task in that branch. See Adding
Branches.
lUsing Branch From Here... will create an unknown output task below that branch. See
Adding Branches.
lOpening a configuration that contains additional plugins that are not installed on that
system will cause these plugins to be replaced by unknown tasks. Installing the additional
plugins and re-opening the configuration will restore the plugins and their properties.
lOpening a configuration that contains plugins only available in PlanetPress Workflow
(such as Create PDF) from a PlanetPress Watch installation will cause these plugins to
be replaced by unknown tasks. Opening the configuration in a PlanetPress Production or
Office installation up upgrading PlanetPress Watch to PlanetPress Production or Office
and re-opening the configuration will restore the plugins and their properties.
Masks
A file name that includes characters meant to be replaced at run-time is referred to as a mask.
Masks can be used in many edit boxes and can be used, for instance, to select multiple files.
File selection is typically limited by fixed characters or special wildcard characters. If you create
aFolder Capture input task and enter *.* in the Masks box, the input task will grab all the files
that are put in the source folder. If you enter *.mdb instead, the task will only take the those
database files that have an mdb extension. You can use any standard wildcard character in
PlanetPress Workflow.
Technical
Masks are case-insensitive, since the Windows platform does not support case-sensitive
Page 200
file names (yes, you can have mixed case in a file name but that's visual fluff - the
OSitself does not care).
Mask Format
Here are the different mask formats available:
lLiteral characters:Any alphanumerical character is considered literal character and
must appear. For example, a mask of "trigger.txt"will not capture any other files than that
name.
lWildcards:Two wildcards are available in masks.
lAsterisk (*):Supports any number of characters. *.txt would pick up any text file,
file*.txt would pick up any file starting with file and any characters:file1.txt,
filetest.txt.
lQuestion Mark (?):Supports a single character. file?.txt would pick up File1.txt or
filea.txt , but not file13.txt or filetest.txt.
lBrackets:Specifies a set of supported characters, or range of characters. Only one
character from the range is accepted, making this a subset of the ? wildcard.
lSets:[13ab] defines support for one of these 4 characters. file[13ab].txt would pick
up file1.txt ,filea.txt , but not file13.txt or filea3.txt.
lNegative Sets:[!13ab] indicates the character should NOTbe part of the set. file
[!13ab].txt would pick up file2.txt and filec.txt but not file1.txt or fileb.txt (nor would
it pick up file13.txt or filea3.txt).
lRanges:[1-5] , [a-d] define ranges between the characters. file[1-5].txt would pick
up file1.txt and file4.txt but not file6.txt or file13.txt.
lNegative Ranges:Negative ranges such as [!2-4] are also possible.
Technical
Filename containing brackets can be a hassle when attempting to capture them with a
mask and using sets or ranges. You can capture a set that contains an opening bracket (
[[] ) , but not a closing bracket as the closing bracket always ends the set or range. There
is no escape character available in masks.
Page 201
Date and Time Format
To simplify things and to prevent errors, date and time formats have been standardized.
lDate are entered and displayed as yyyy/MM/dd (2007/06/13, for example).
lTimes are entered and displayed using the 24 hour format as HH:mm:ss (3:38:54 PM, for
example, is entered and displayed as 15:38:54).
Page 202
Input Tasks
Input tasks are the starting point to any process and determine what file this process will being
with. Each process must begin with an input tasks, and although a given process may have
multiple input tasks, no task can have more than one initial input task.
Initial Input Tasks
Initial input tasks are always at the beginning of a process and are always triggered when the
process starts. The process itself may start on a schedule or poll at regular intervals, which
means the initial input task only runs whenever the process is set to run. For more information
about what happens outside of the process scheduled times and to learn how to set the
schedule, See " Process Properties" on page704.
Note
If an error occurs during an initial input task, the On Error tab is never triggered. See
"Using the On Error tab" on page56.
Input tasks may either poll a specific location, or await for jobs to be sent to a specific
PlanetPress Workflow Service. It is not recommended to have two initial input tasks capturing
the same input location, for the following reasons:
lIt is a "hit and miss"to know which of the two tasks will pick up the file. This is an issue if
the two processes are different.
lOne of the processes may process a file quicker than another and finish first, which may
be an issue if the processing relies on FIFO(First In, First Out).
lOne process may error out as it's trying to capture an input that's currently being read by
another one. This causes issues if the process is on a schedule and only runs once per
period.
It is important to note that initial input tasks processes files one at a time, and will return to the
input task once the current file has finished processing. Each time it returns to the input task, it
again only captures one single file. It does this until there are no more files in the folder and will
also capture any new file that were added during the time it processed other files. Once no
more files are found, it stops processing until it is scheduled to run again.
Page 203
This is an important consideration when scheduling a task, as the Folder Capture will keep
capturing files as long as new files are added, even if it means continuing to capture and
process outside its scheduled time. It is also important that while the Folder Capture input task
is processing files it keeps a copy of each file in a temporary folder, and will not delete any of
these files until it has finished processing all of them. This may cause issues with running out of
disk space.
Secondary Input Tasks
Secondary input tasks are placed in the process like an action task would and will replace the
job file in the process with the file they retrieve. Since they are part of the process, they can use
data from previous tasks to pull data from a variable location. Secondary inputs do not follow a
separate schedule from the process - they are automatically run when the process triggers
them.
Secondary Input Task Considerations:
lIf your initial input task does not start, either because there is no data to capture or
because the process is out of its schedule, any secondary input task will not run either.
lSecondary input tasks replace both the job file and the job info variables. They do not
change local and global variables.
lIf your secondary input task creates a job file using a different emulation, you will need to
use a "Change Emulation" on page287 task after the secondary input task to correctly
change to that emulation.
Properties common to all input tasks
The Othertab is common to all input tasks and are available in the Properties of all input tasks.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
Page 204
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Create File
Create File input tasks are different from other input tasks in that they do not pull in data from a
source location. The data that this task passes along to other task is its own: text or values from
variables entered when the task was created or last edited.
Since Create File input tasks are not dependent on data from external sources, they are
performed at every polling interval and the process is thus started every time.
Input
Create File does not capture any file and, if it is a secondary input task, discards the current
data file.
Processing
Create File generates a job file with the contents of it's text. If variables and control characters
are present, they are evaluated at run-time when the task is executed.
Output
The output is the job file. No metadata is generated by the task itself, however if metadata is
present in the job and it is not deleted (in the "Other" tab), it will remain active.
Properties
General Tab
lCreate File: Enter the text to use as the data. The Create File box is a Variables
Properties box, so you can use any of the variables, control characters or data selections
as noted in Variable Properties.
Page 205
lAdd CRLF after last line: Check if you want the plugin to automatically add a new line at
the end of the file. Remove the checkmark to leave the file as-is, useful in the creation of
CSV files for example.
lDelete Metadata: Check to delete any metadata attached to your data file.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
lThis task does not generate any job information.
Examples &Use Cases
This task is put into effect in the following use cases and example processes:
lHTTP PDF Invoice Request
lHTTP Brochure Request
lCapture Web Manager Workflow
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
Page 206
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
Page 207
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Email Input
Email Input retrieves email data through a Microsoft Outlook or POP3 connection.
Note
If Microsoft Outlook connection is used, Microsoft Outlook 2000 or higher must be
installed on the computer where PlanetPress Workflow is located.
Input
Email Input captures all emails and their attachments from the selected inbox, when those
emails correspond to the rules defined in the General tab. If no rule is defined, all emails in the
inbox are retrieved. Emails retrieved using POP3 are deleted from the server, emails retrieved
from an Outlook inbox are moved to the Deleted Items folder by default.
Processing
Depending on the options selected below, each email is converted into a text-only data file, and
each attachment is separated from the email.
Page 208
Output
Depending on the options, each email is sent as a data file, followed by each of its attachments
sequentially.
Technical
If you use Email input tasks to capture data encoded using a Double-Byte character set
(such as those used for Japanese or Chinese, for instance), it is preferable to use
attachments rather than the email body to carry the data from its source to the input task,
as data corruption is less likely to occur using this method.
Properties
General tab
lData Location group
lMessage body: Select to use the data found in the body of the email.
lAttached file: Select to use the data found in the emails attachment. If both the
Message body and Attached files options are selected, the message’s body and the
message’s attachment are treated as separate data files and processed one after
the other.
lUnzip attached file: Select to unzip the attached files.
lZip password: Enter the password required to unzip the attached files (if any).
Note that you can use variables and data selections.
lConditions group
l“Subject” contains: Select to limit those messages used by this task to those with
a specific subject. The subject you enter in the box below can include variables.
Note
Since characters '?' and '*' are considered valid to define the subject of an
email, their use as wildcards is not supported .
Page 209
lNothing: Select to limit those messages used by this task to those that do not
specify any subject.
l“From” contains: Select to limit those messages used by this task to those that are
sent from a specific address. The address you enter in the box below can include
variables.
l“To” contains: Select to limit those messages used by this task to those that are
sent to a specific address. The address you enter in the box below can include
variables.
Login Tab
lUse Microsoft Outlook: Select to use the Microsoft Outlook email account of the current
user to receive emails. The current user is the one defined in PlanetPress Workflow
Service Logon.
lMove message after processing to folder: Enter the name of an Outlook Folder to
keep copies of the emails taken by this email input task. You should enter only the
name of the folder as it appears in Outlook’s Folder List area, regardless of whether
it is a child of another folder. For example, if you want to use a folder named Bills
that is listed under another folder named PassedDue, only enter Bills in the text box.
Make sure no two folders have the same name, even if they are under different
parent folders, as this could generate errors. Consider creating a special folder in
Outlook (perhaps a child of the Deleted Items folder named Watch) and then using
that folder as your backup folder.
lUse POP3 mail group
lSelect this option to use a POP3 mail server and to activate this group. Note that
emails retrieved via POP3 are always deleted from the server.
lIncoming mail (POP3): Enter the address of the incoming POP3 mail server. This
box is only enabled when the Use POP3 mail option is selected.
lAccount name: Enter the email account name on the POP3 mail server. This box is
only enabled when the Use POP3 mail option is selected.
lPassword: Enter the password required to unlock the selected account on the
POP3 mail server. This box is only enabled when the Use POP3 mail option is
selected.
Page 210
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1- Date received. Contains the date of the reception of the email (and not the date of
retrieval by PlanetPress Workflow). The format is YYYY/MM/DD HH:MM:SS.
l%2- Sender's name:Contains the name of the sender as defined by the sender himself
(or, if the sender is using Exchange, by the name defined in his Exchange server).
l%3 - Sender's address:Contains the email address of the sender as defined by the
sender himself.
l%4 - Subject:Contains the subject of the received email (may be blank).
l%5 - Recipients:Contains a list of the names of all the recipients of the email, separated
by a semicolon (;).
Technical
Because of the way Microsoft Exchange works, when receiving an email from a user on
the same local Exchange server, the email address may not be available. See FAQ-1509
in the Knowledge Base for details.
Page 211
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
Page 212
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Folder Capture
Folder Capture input tasks retrieve files corresponding to a specified file mask, from a
specified folder.
Input
Folder Capture retrieves all files corresponding to the specified mask. These files may be of
any format, even formats that are not readable by PlanetPress Workflow.
Processing
Each file capture by the input is sent down through the process, one at a time. When the file is
finished, the process goes back to the input which feeds another file down, as long as there are
Page 213
files in the queue. Once all the files are gone, the task polls the input folder again to see if new
files are present and, if so, the process continues with these files. Otherwise, the process ends.
Output
The output to this task is a series of individual files, one after the other. These files are not
modified in any way from when they are captured from the source folder.
Note
As with any task that can refer to network resources, it is important to understand the
considerations involved with paths and permissions of these resources. Please refer to
the Network Considerations page in the Advanced Configuration and Options chapter
(Reference Guide, in English only).
Warning
If you create a Folder Capture input task that takes any file it finds in the root folder of
one of your hard disks, then PlanetPress Workflow will try to remove all the files located
in that folder, including all the system and hidden files. So when using a Folder Capture,
be aware of where you are capturing.
General Tab
lFolder list: Enter the full path of the folder from which the input files are to be taken.
lMasks: Enter a single or multiple file names or use file name masks. See Masks.
lTreat as regular expressions: When ticked, the contents of the Mask field are
deemed to be a regular expression . You can specify multiple masks based on
regular expressions, separating the regular expressions by a semicolon.
The checkbox is not ticked by default. Please refer to Regular Expressions for more
information.
Page 214
Note
No Variable Data can be used inside this field if the Treat as regular expressions
option is ticked. The percent sign, the curly brackets and the period are all key
elements of the RegEx syntax, therefore they cannot be mixed and matched with
Workflow variable data syntax (e.g. %1, ${global.myvar}, etc.). Also, there is no
validation of the RegEx being specified.
lSort files by: Select a given sorting method to prompt PlanetPress Workflow to sort the
files in the source folder before taking them (and thus to take them in a specific order).
Select None to let PlanetPress Workflow take the files without sorting them first.
lSort order: If you selected a sorting method in the Sort files by box, select the order in
which you want the files to be sorted.
lUse archive attribute: Select to turn on the archive attribute of the data files found in the
source folder and to leave them in their original location (i.e. to take copies of the source
files). Note that PlanetPress Workflow never takes source files that have their archive
attribute turned on (so the source files will not be taken again and again). When this
option is turned off, PlanetPress Workflow removes data files from the source location.
lCapture files in subfolders: Select to capture files from child folders of the source folder
as well.
lSort directories first: If you selected a sorting method in the Sort files by box, and if you
want the folders present in the source folder to be sorted first, select this option. When this
option is selected, the chosen Sort order is applied to each separate folder, not across
folders. The subfolders themselves are always processed in alphabetical order,
regardless of the sort order.
lInclude hidden files: Select if you want any hidden folders or files present in the source
folder to be taken as well.
lInclude empty files: Select if you want any empty folders or files present in the source
folder to be taken as well.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
Page 215
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1- Source File Name. Contains the file name (excluding path but including
extension)of the file name that is captured. Equivalent to using the %o system variable.
l%2- Folder:Contains the folder from which the data was captured.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
Page 216
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Page 217
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Folder Listing
Folder Listing input tasks list the files present in a selected folder and gives you the option to
use filename masks, to sort files by name or date, and to list the files present in the selected
folder’s subfolders. The lists it generates are in XML format.
Input
Folder Listing captures nothing, however it does read the input folders (and, if selected,
subfolders) and gathers information about each file in that folder.
Processing
Folder Listing loops through the files and, for each file, generates an XMLnode with information
about the file.
Output
The output is an XMLfile containing information about each file. If the Sub-directories option
was checked, the structure of the XMLalso contains the folder structure as it is present on the
drive.
Here is a sample of the XMLthat is generated:
<?xml version="1.0" encoding="windows-1252"?>
<files count="3" filemask="*.*">
<folder>C:\Samples\<file>
<filename>invoice.pdf</filename>
<path>C:\Samples\</path>
<time>2012/06/01 16:14:40</time>
<size>81452</size>
</file>
<file>
<filename>test1.pdf</filename>
<path>C:\Samples\</path>
<time>2013/01/17 09:13:50</time>
<size>20197</size>
</file>
</folder>
Page 218
<folder>C:\Samples\manuals\<file>
<filename>usermanual.pdf</filename>
<path>C:\Samples\manuals\</path>
<time>1999/10/06 09:52:04</time>
<size>644037</size>
</file>
</folder>
</files>
Note
The <time> tag is independent of the OSlocale, language or settings. The format is always
YYYY/MM/DD 23:59:59.
Properties
General Tab
lInput folder: Enter the path of the folder that contains the files you want listed.
lSorted by: Select either Name or Modified date, depending on how you want the list top
be sorted.
lFile mask: Edit the default file name mask (*.*) if you want only some of the files present
in the folder to appear in the list.
lList files in sub-directories also: Select this option if you want the task to list any files
present in subfolders of the selected input folder.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
Page 219
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1- Folder:Contains the full path of the base folder from which the files are listed.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
Page 220
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
FTP Input
FTP Input tasks retrieve files from FTP sites using the FTP protocol. Masks are typically used
to select multiple files to be retrieved from the server.
Page 221
Input
FTPInput connects to the specified FTPserver and path, and retrieves all files corresponding
to the specified mask. These files may be of any format, even formats that are not readable by
PlanetPress Workflow.
Processing
Each file capture by the input is sent down through the process, one at a time. When the file is
finished, the process goes back to the input which feeds another file down, as long as there are
files in the queue. Once all the files are gone, the task polls the FTPfolder again to see if new
files are present and, if so, the process continues with these files. Otherwise, the process ends.
Output
The output to this task is a series of individual files, one after the other. These files are not
modified in any way from when they are captured from the source FTPserver.
Properties
General tab
lFTP Server: Enter the IP address or host name of the FTP server to poll.
lUser name: Enter the name of a user account on the FTP server.
lPassword: If account named in the User name box is password protected, enter the
password here.
lPort number: Set to use a specific port number. Note: There is no validation to ensure
the port is available. It is the user's responsibility to ensure the selected port is available
and not being monitored by another application or another PlanetPress Workflow task.
lDirectory: Enter the path of the folder to poll on the FTP server. If this box is left empty,
PlanetPress Workflow will poll the root directory.
lMasks: Enter a single file name mask. Multiple entries are not allowed in this box.
lConnection mode group
lActive: Select to prompt the ftp client to use the active mode when retrieving files
from the FTP server.
lPassive: Select to prompt the ftp client to use the passive mode when retrieving
files from the FTP server.
Page 222
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1- User name:Contains the user name that was used to connect to the FTPserver.
This is useful if this task is used as a secondary input and the information is defined
dynamically.
l%2 - FTPServer:Contains the FTP address of the server from which the files were
retrieved.
l%3 - Source file name:Contains the name of the current file that was retrieved from the
server.
l%4 - Folder:Contains the FTPfolder from which the current file was retrieved.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
Page 223
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Page 224
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
HTTP Client Input
HTTP Client Input tasks use the HTTP protocol to issue HTTP GET commands (queries) to
HTTP servers. Replies received from the HTTP servers are used as jobfiles and are thus
passed on to following tasks.
Input
This initial input task retrieves a single file as specified in the URLoption. This file may be of
any format, even formats that are not readable by PlanetPress Workflow.
Processing
No processing is done by this task. The file retrieved is not changed in any way.
Output
HTTPClient Input will output a single file which was retrieved from the web. Metadata is not
generated by this task.
HTTP Client Input task properties are as follows:
Page 225
General tab
lURL: Enter the URL of the HTTP server from which the file must be downloaded. Since
this is a variable property box, variables may be used, as well as the Get Data and Select
Data commands. Note that when PlanetPress Workflow connects to a secure page, an
SSL (Secure Socket Layer) connection is automatically used.
lServer requires authentication: Check this option if the HTTP server requires user
authentication. This enables the following options.
luser name: A user name known to the Web server.
lPassword: The password associated with the user name entered above.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1- URLaddress:Contains the full URL that was requested by the task. This includes
any GETvariables in the URL.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
Page 226
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
Page 227
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
HTTP Server Input
HTTP Server Input tasks are used to receive HTTP requests made via GET or POST
commands and to send replies to the servers from which the requests were made. The HTTP
server supports both http and e. For HTTPSSupport information, see HTTP Server Input User
Options.
Note
While you can insert the HTTPServer Input task anywhere in your process as a
secondary input task, in reality the HTTPServer Input task will only function when used
as the initial input, as it is triggered when PlanetPress Workflow HTTPServer receives a
request and passes it on to the correct task.
Warning
It is highly recommended to make all processes using the HTTP Server Input task self-
replicating and to reduce their polling interval in the Process Properties.
Page 228
Input
The HTTPServer Input task does not, by itself, capture any files. Neither does it directly wait
for requests to be received. Actually, it is the HTTPservice that receives the requests and
places them in a specific location on the drive. When a request is received, the HTTPServer
Input polls that location and finds the requests and all attachments. It will always pick up the
"oldest"request received.
The request can contain one or more files, one being an XMLfile containing the request
information as well as any GETor POSTvariables that were received within this request. Other
files are POSTattachments.
Note
By default, the request XMLalso contains a CDATAsection which contains the raw input
data, effectively doubling the size of the incoming file. Due to technical restrictions, the
incoming XMLfile cannot be more than 400MB, which because of CDATA is reduced to
around 200MB. To help in this situation, you may elect to omit CDATA from the
attachment, which can be changed in HTTP Server Input User Options. Please note that
incoming binary files (sent through file upload in a form) can never be larger than 400MB.
Processing
Depending on the options chosen in the HTTPServer Input task properties, the task may
choose to ignore some of the files. For example, using the "Do not include
XMLenvelope"means that only the POSTattachments will be used in the process, the
XMLfile will be discarded. Attachments are always saved on disk in a specific location, which
is accessible either directly in the XML or directly as a data file through the "Loop each
attachment as data file"option.
Output
First, the output inside the process itself is, depending on the selected options, an XMLrequest
files, POSTAttachments files, either one or both.
If the Send Immediate Response to clientoption is selected, the response file is sent back
right away and the involvement of the input task ends then. However, if this option is not
checked, it means there is a second output that comes out of the HTTPServer Input task:The
Page 229
last output generated by PlanetPress Workflow is sent back to the initial input, which is returned
back to the client.
Note
Starting in version 7.2 of PlanetPress Workflow, you can now serve static resources
through PlanetPress, which is especially useful for images, CSSand JavaScript files.
See "HTTPServer Input 2 plugin preferences" on page756.
HTTP Server input task properties are as follows:
lHTTP action: Enter the name of the action requested of PlanetPress Workflow by the
client. This name corresponds to the URLthat the client will be accessing. For example, if
you enter "MakePDF" here, you could trigger the process by accessing
http://127.0.0.1:8080/MakePDF . This is also what your HTMLForm's action should be.
lMIME Type: Select the MIME type of the file that will be returned by the plugin.
lLoop each attachment as a data file: When receiving attachments through a
POSTrequest (HTMLForm), this option will make the HTTPServer Input task loop
through each attachment. Each data file is an XMLwith the accompanied file.
lDo not include XMLenvelope:Only active when the previous Loop option is
checked. When checked, the XMLfile containing the request data will not be
available. Only the attachment itself is sent as a data file.
lRespond on error: Enter a message to be sent to the client as the output file if the
process encounters an error and is unable to send a reply that includes the actual output
file. The information can be in any desired format such as HTMLor plain text, but most
browsers will interpret it as plain text.
lSend immediate response to client:Do not wait for the process to finish and send a
static HTMLor Text file back to the client instead. This prevents any timeout from
occurring. When checking this option, the field under the option is used to select which
file to return.
lUse custom HTTPserver response code:When the process ends and a response is
sent to the requesting client, a custom response code can be specified depending on how
the process goes. While in previous versions the "200 OK"code was always used, this
option overrides it to, for example, "404 Not Found"or "401 Unauthorized".
lVariable containing the response code:The contents of the job information or
local variable selected in this drop-down, presumed to be a valid response code,
Page 230
will be returned in the response header. This is the value that is present at the end
of the process, not the beginning.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1- Client IPaddress:Contains the IPaddress of the HTTPclient requesting a
response.
l%2 - Request header:Contains the headers of the request, which can contain
information such as the Browser and Operating System, languages, etc.
l%3 - Filename:Contains the local file name of the job file created by this task (and
XMLfile). This is equivalent to %o.
Examples &Use Cases
This task is put into effect in the following use cases and example processes:
lHTTP PDF Invoice Request
lHTTP Brochure Request
lCapture Web Manager Workflow
Page 231
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
Page 232
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Input Error Bin
The Input Error Bin Task is used specifically and only to create error management processes.
These processes do not run on their own but are rather triggered by the On Errortab of tasks in
other processes, when that task fails.
Input
This task receives a data file from a task that generated an error. Accompanying this data file is
the current Job Infos of the process that triggered the error. This means that this input does not
generate its own job infos!
No Metadata is received by this task, and none is generated.
Page 233
The following error information is generated by the Input Error Bin starting version 7.5, and is
accessible throughout the process:
l%{error.process}:the process name where the error occurred.
l%{error.tasktype}:the type of the failed task, can be Action, Input, Output, Printer,
Comment and Branch.
l%{error.taskname}: the name of the plugin (the Display Name as seen in the plugin bar).
l%{error.taskindex}:the index of the task in the process (its position in the process).
l%{error.errormsg}: the "Message"specified on the OnError tab of the failed task.
l%{error.errorid}:the error "ID" specified on the OnError tab of the failed task.
Processing
No processing is done by this task.
Output
The output of this task is the same as the input - a data file and job infos that are sent from a
task that generated an error.
General Tab
lThe Input Error Bin task does not have any specific properties unique to it, since it only
receives input directly from tasks in other processes when an error is generated. For more
information, see the chapter on "Debugging and Error Handling" on page55.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
Page 234
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
lThis task does not generate any job information.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
Page 235
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Input SOAP
The Input SOAP task is used to answer calls from a remote SOAPclient and to return a
response to that request. It is similar in functionality to the "HTTP Server Input" on page228
task.
Page 236
Input
This task does not poll any location by itself. It sits there waiting for requests coming in through
WSDL(SOAPcommunication)and, when it receives a request, runs the process and returns
the last output generated by the process to the client.
Processing
No processing is done. The request that is received by this task is XML and it is maintained as
such.
Output
As with the HTTPServer Input, this task has a dual-output purpose. First, when the initial input
task is run, the XMLrequest is output onto the process. Then, when the process is finished, the
last job file generated by the process is returned to the requesting client.
Technical
SOAPcommunication is non-trivial and requires a certain understanding of XMLand the
SOAPprotocol. Using the SOAPtasks pre-supposes this knowledge and this
documentation does not attempt to provide it.
The Input SOAP Task only responds to a single SOAPaction by the client:SubmitJob. Within
this request however, a secondary action (SubmitSOAPActionName)can be specified - this is
what the SOAPAction corresponds to in this task's properties.
General Tab
lSOAP Action: The SOAP action is used with the SubmitJob action. It’s the equivalent of
the process name. The difference is that more than one processes can share the same
SOAP action. That way more than 1 CPU can be used to process all the incoming
requests however this means that all process sharing the same SOAP action must be
identical because there is no way to decide the execution order of all the process.
Page 237
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
lThis task does not generate any job information.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
Page 238
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Page 239
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
LPD Input
LPD (Line Printer Daemon) input tasks retrieve data in the form of print files sent from remote
computers using the LPD/LPR protocol. ThePlanetPress Workflow LPD server starts
automatically when a configuration that includes at least one active LPD Input task is started.
To prevent conflicts between competing LPD servers, you must not run any other LPD server
than the PlanetPress Workflow LPD server on PlanetPress Workflow workstation.
LPD tasks are configured primarily through user options (See "LPD Input plugin preferences"
on page757). The only LDP information you enter in each LPD task is the queue name.
Input
This task does not poll an input, it sits there and waits for a job file to be sent through the
LPRport.
Processing
When the job is received through LPR, it is saved as a job file. No further processing is done on
the file.
Output
The task outputs the job file as is, with no evaluation or modification.
Page 240
Properties
General tab
lLPD queue name: Enter the queue name specified in the printer queue on the remote
computer or computers.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1- User name:Contains the user name of the user who sent the job to the printer, or
the user for which a software sending the job was logged in under.
l%2 - Host computer:Contains the name of the computer from which the job was sent.
l%3 - Job name:Contains the name of the job as specified by the software that sent the
job.
l%4 - Source file name:Contains the name of the job file as specified by the software that
sent the job.
l%5 - Sender's IPaddress:Contains the IPaddress from which the job was sent.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
Page 241
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
Page 242
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Merge PDF Files
The Merge PDF Files input task (previously named "Concatenate PDFFiles")captures all
PDF files in a given folder and merges them into a single PDFfile.
Note
This feature is part of the PDFTools, which is only available in PlanetPress Workflow.
Input
This task captures all of the PDF files present in a specific folder, in one operation.
The Merge PDF Files input task performs just like any other input: once the process has
completed, control is transferred back to the input one last time to check if new files meeting the
mask have come in. This means that the merging of PDF files that are not all present at the start
of the process may take several passes, which may have an adverse effect on the overall
performance and the size of the resulting PDF.
Page 243
Processing
Once all PDF files are captured, their original copies are deleted from the input folder (or
tagged as Archive if this option is selected) and they are merged into a single PDF. This is
done in a single operation, not incrementally, meaning the file is built once and, if the option is
chosen, optimized once.
Output
Asingle PDFcontaining as many pages as all the combined input PDFs is generated. If the
option is selected, this PDFis optimized. An optional metadata file is also created, containing
information about the PDFs. This metadata is divided such that each PDFfile is its own
document, which can contain multiple data pages.
General tab
lFolder: Enter the full path of the folder from which the input files are to be taken.
lMasks: Enter a single or multiple file names or use file name masks. See Masks. Since
this task only supports PDFfiles, make sure your extension remains .PDF for all your
masks.
lSort files by: Select a given sorting method to prompt PlanetPress Workflow to sort the
files in the source folder before taking them (and thus to take them in a specific order).
Select None to let PlanetPress Workflow take the files without sorting them first.
lSort order: If you selected a sorting method in the Sort files by box, select the order in
which you want the files to be sorted.
lUse archive attribute: Select to turn on the archive attribute of the data files found in the
source folder and to leave them in their original location (i.e. to take copies of the source
files). Note that PlanetPress Workflow never takes source files that have their archive
attribute turned on (so the source files will not be taken again and again). When this
option is turned off, PlanetPress Workflow removes data files from the source location.
lCapture files in sub-directories also: Select to capture files from child folders of the
source folder as well. When this option is selected, the chosen Sort order is applied to
each separate folder, not across folders. The subfolders themselves are always
processed in alphabetical order, regardless of the sort order.
lSort directories first: If you selected a sorting method in the Sort files by box, and if you
want the folders present in the source folder to be sorted first, select this option.
Page 244
lOptimize resulting PDF: Select to specify whether the resulting PDF should be
optimized. Optimization can lead to a significant reduction in the size of the PDF, but it
may also add a certain amount of time to the process. This option should only be
unchecked if the timing of the process is critical and needs to be done quickly, but keep in
mind that the resulting PDFmay be much larger than it should be and may even be too
large for PlanetPress Workflow to handle.
lCreate Metadata:Select to specify that a basic metadata structure should be created for
the resulting PDF file. The metadata structure created will contain a single Job separated
by one Document per captured PDFfile. Within each Document, one Data Page
containing a single Page is created for each page of the PDF file.
Note
Metadata can be manipulated with the Metadata Tasks, See "Metadata Tasks" on
page509.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1- PDFDirectory:Contains the folder from which the data was captured.
Page 245
Examples &Use Cases
This task is put into effect in the following use cases and example processes:
lDaily Sales Report from PDF Files
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
Page 246
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Serial Input
Serial Input tasks receive files sent to a serial port on the computer running PlanetPress
Workflow. All the Serial Input tasks in aPlanetPress Workflow configuration share the same
general properties, which are configured through user options (see "Serial Input plugin
preferences" on page758). Only the properties set in the Other and Error tabs are specific to
individual tasks.
Page 247
Input
This task does not poll an input, it sits there and waits for a job file to be sent through the Serial
connection.
Processing
When the job is received through the Serial connection, it is saved as a job file. No further
processing is done on the file.
Output
The task outputs the job file as is, with no evaluation or modification.
General Tab
lSince Serial Input tasks have no specific task configurable properties, this section
contains no property information.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1 - Source file name:Contains the name of the job file as specified by the software that
sent the job.
Page 248
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
Page 249
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
SFTP Input
The SFTP Input task retrieves files from a secure FTP site through an encrypted connection.
Masks are typically used to select multiple files to be retrieved from the server.
Input
The SFTPInput connects to the specified FTPserver and path, and retrieves a list of all files
corresponding to the specified mask. These files may be of any format, even formats that are
not readable by PlanetPress Workflow. The files are not deleted from the server when they are
downloaded. They are added to a list of processed files for this server. These lists are located
under C:\ProgramData\Objectif Lune\.
Page 250
Processing
Each file capture by the input is sent down through the process, one at a time. When the file is
finished, the process goes back to the input which feeds another file down, as long as there are
files in the queue. Once all the files are gone, the task polls the FTPfolder again to see if new
files are present and, if so, the process continues with these files. Otherwise, the process ends.
Output
The output to this task is a series of individual files, one after the other. These files are not
modified in any way from when they are captured from the source FTPserver.
Properties
General tab
lServer Settings group
lFTP Server: Enter the IP address or host name of the FTP server to poll.
lUser name: Enter the name of a user account on the FTP server.
lPassword: If account named in the User name box is password protected, enter the
password here.
lProtocol group
lSFTP: Select if the FTPserver uses SFTP(SSH).
lFTPS:Select if the FTPserver uses FTPS(SSL/TSL)
lPort Number Group
lUse default port:Check to use the default port used by the protocol selected
above.
lPort number: Set to use a specific port number. Note: There is no validation to
ensure the port is available. It is the user's responsibility to ensure the selected port
is available and not being monitored by another application or another PlanetPress
Workflow task.
lFile Options group
lDirectory: Enter the path of the folder to poll on the FTP server. If this box is left
empty, PlanetPress Workflow will poll the root directory.
Page 251
Note
The given directory will be looked up from the user's home directory. Such a home
directory is usually under the server main user directory and generally includes the
user’s name. For example, if "/tmp/temp/copy_pending" is entered, it does not point
to the "/tmp/temp/copy_pending" directory but to the "/users/support/tmp/temp/copy_
pending" directory.
lMasks: Enter a single file name mask. Multiple entries are not allowed in this box.
lDelete remote file:Check this option to delete the file after it has been retrieved by
Workflow.
lConnection mode group:This group is only relevant to the FTPSprotocol and appears
when it is selected. SFTPuses a single connection to download all files.
lActive: Select to prompt the ftp client to use the active mode when retrieving files
from the FTP server.
lPassive: Select to prompt the ftp client to use the passive mode when retrieving
files from the FTP server.
lReset Download List:
Security Tab
This tab defines the certificates used to connect to the secured FTPservers.
lAccept all certificates:Check this option to automatically accept the certificates returned
by the FTPserver. Otherwise, in order for a connection to work, you have to establish a
connection first and then accept a certificate from the List of known servers up to the
Approved server list.
lApproved Server list:Displays a list of servers that were approved for connection:
lServer:The name of the server the certificate belongs to.
lFingerprint:The RSAfingerprint of the server.
lRemove:Click to remove the server from the approved list.
lList of known servers:Displays a list of servers that were connected to, whether they
are approved or not.
lServer:The name of the server the certificate belongs to.
lFingerprint:The RSAfingerprint of the server.
Page 252
lApprove:Click to add the server to the list of approved servers.
lRefresh:Click to refresh the list of known servers
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1- User name:Contains the user name that was used to connect to the FTPserver.
This is useful if this task is used as a secondary input and the information is defined
dynamically.
l%2 - FTPServer:Contains the FTP address of the server from which the files were
retrieved.
l%3 - Source file name:Contains the name of the current file that was retrieved from the
server.
l%4 - Folder:Contains the FTPfolder from which the current file was retrieved.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
Page 253
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Page 254
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
SMTP Input
SMTPinput tasks are used to receive SMTP requests made by any email client or other
SMTPcommands and can act as an SMTPproxy, processing emails before they are sent to
another SMTPserver. In order for this task to receive files, the SMTPServer (also called
"Outgoing Email Server")in the email client must point to PlanetPress Workflow server's IPor
hostname.
Warning
Emails received through this task will not reach their intended destination if the process
does not end with a Send Email Output Task, or contain the PlanetPress Connect
"Create Email Content" on page562 task.
Input
The SMTPInput task does not, by itself, capture any files. Neither does it directly wait for
requests to be received. Actually, it is the SMTPServer service that receives the requests and
places them in a specific location on the drive. When a request is received, the SMTP Input
polls that location and finds the requests and all attachments. It will always pick up the
"oldest"request received.
Page 255
Warning
In its initial implementation, the SMTPInput task will NOTreceive the BCCaddresses
from most emails sent to it. This is due to a technical limitation that will be resolved in a
future version.
Processing
The task reads the incoming SMTPrequest and provides the data within its body.
Output
Depending on the Data Location option, the output is different:
lEnvelope: The request file in XMLformat, including all email fields (from, to, cc, bcc,
subject, body) as well as additional header fields (email client information, attachments,
etc). The message body and attachments are available through specific XMLattributes.
These files do not have the full path, but you can use the %t%O variable to get the current
temporary folder where they are located.
Tip
Suppose we have two files named in the XML file under /ppemail[1]/@rawemail and
/ppemail[1]/body[1]/@html respectively.
With %t%O\xmlget('/ppemail[1]/body[1]/@html',Value,KeepCase,NoTrim)
and %t%O\xmlget('/ppemail[1]/@rawemail',Value,KeepCase,NoTrim)
We get both the body and the whole raw email.
lAttachments:The input task loops through each attachment and sends them down
through the process. While the Envelope is not available, the Job Infos contain pretty
much all of the information you would get from it.
SMTPInput task properties are as follows:
Page 256
lData location:Determines what files are sent into the process:
lEnvelope:Only the request envelope is sent to the process (see above).
lAttachments: Each attachment is sent down the process (see above).
lUnzip attached file: Select to unzip the attached files.
lZip password: Enter the password required to unzip the attached files (if any). Note
that you can use variables and data selections.
lConditions:Defines a filter on capturing files from the SMTPService's hot folder. When a
condition is added, only files that match this filter are captured, the rest remain untouched.
l“Subject” contains: Select to limit those messages used by this task to those with
a specific subject. The subject you enter in the box below can include variables and
wildcards.
lNothing: Select to limit those messages used by this task to those that do not
specify any subject.
l“From” contains: Select to limit those messages used by this task to those that are
sent from a specific address. The address you enter in the box below can include
variables and wildcards.
l“To” contains: Select to limit those messages used by this task to those that are
sent to a specific address. The address you enter in the box below can include
variables and wildcards.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Page 257
Job Information definitions
l%1- Date Received:Contains the date and time at which the email was received.
l%2 - Originator Name:Contains the Name of the sender (in the from field).
l%3 - Originator Address:Contains the Email address of the sender (in the from field).
l%4 - Recipients:Contains the recipient(s)of the email (in the to field).
l%5 - CC:Contains the Carbon Copy recipient if there is one (in the cc field).
l%6 - BCC:Contains the Blind Carbon Copy recipient if there is one (in the bcc field).
l%7 - Subject:Contains the subject line of the email.
l%8 - Header:Contains the headers of the message (in multiple lines separated by a line
return).
l%9 - Body:Contains the body text of the message.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
Page 258
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Page 259
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Example
In this example, the SMTP Input plugin is used to capture incoming emails data that must meet
certain conditions as the subject that contains "Work to do" and the sender that contains
"client@company.com ". The process then redirects the content of those emails to an extraction
and finally to a PDF printing.
Page 260
Telnet Input
The Telnet Input Task (also known as the Raw Socket Printing Input)receives files sent to a
specific port. If you want PlanetPress Workflow to receive data using multiple ports, you must
Page 261
use multiple Telnet input tasks. To turn on or off the Telnet logging option, see the user options
(see "Telnet Input plugin preferences" on page759).
Input
This task does not poll an input, it sits there and waits for a job file to be sent through the Telnet
port.
Processing
When the job is received through Telnet, it is saved as a job file. No further processing is done
on the file.
Output
The task outputs the job file as is, with no evaluation or modification.
Properties
General tab
lPort: Enter the number of the port on which PlanetPress Workflow is to listen for Raw
Socket communications. The default port number is 9100. Bear in mind that no two input
tasks, whatever their type (Telnet, serial, LDP, etc.), should be listening to the same port.
lDescription: PlanetPress Workflow displays the name of the service or process assigned
to the port number entered in the Port box. Note that these are standard Internet Assigned
Numbers Authority (IANA) descriptions.
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
Page 262
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
lThis task does not generate any job information.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
Page 263
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
WinQueue Input
WinQueue input tasks capture print jobs received by a Windows printer queue.
Page 264
Note
Before you go through the following procedure, on the computer running PlanetPress
Workflow you will need to create a local printer queue that will be used to receive data
files in the form of print jobs. This queue can be shared, so as to be able to receive jobs
sent from local as well as remote users.
To ensure that the spooled files created by PlanetPress Workflow queue remain in the spool
folder, the printer queue must be paused.
Input
The WinQueue input regularly polls the selected printer queue for new jobs. When a new job is
available, it is captured automatically by this task.
Processing
The print job, by default, is in EMFformat. If this option is selected, no action is taken on the
data file. However, if the RAWformat is selected, the job is converted to RAW. Furthermore, if
the Create PDFoption is selected, the file is converted to a PDF, including metadata.
Output
Either one of 3 formats is output from this task:
lAn EMFjob format
lA RAWjob format
lA PDF with attached metadata.
Properties
General tab
lPrinter queue: Select the PlanetPress Workflow printer queue (the one to which data
files are going to be sent).
Page 265
lPrinter properties group
lSpool Print Job ins EMFFormat (Advanced printing features): Select to create
EMF files for Windows Print Converter action tasks (see "Windows Print Converter"
on page362). Note that this option must not be selected when capturing generic text
type data.
lSpool Print Jobs in RAWFormat: Select to output in RAW format, which is the
exactly the data that the computer receives (and is not converted in any way).
lCreate PDF(With Metadata): Select to output a PDF which can be used by
the Document Input (PDFInput)feature in PlanetPress Workflow.
lOptimize Resulting PDF:The resulting PDF is optimized for size and
caching options are enabled. This reduces the size of the PDFs
(depending on some factors), but may take more time to output the PDF.
lInclude empty files:Check to process empty incoming jobs. The output will be empty,
the job is deleted from the print queue, and the job information is available in the process
(sending computer and user name, etc).
"Other" Tab
lJob Information group
lInformation elements:indicates what job infos are automatically created by the
input task.
lAdd lines before first data page:Using the arrows keys you can add any job
information directly at the beginning of your data file.
lBackup input files:Check this to save a copy of each data file that is captured by your
input. These files are saved in the PlanetPress Suite Workflow Tools working folders
under the "Backup"folder.
lBackup filename:Enter the filename that you wish the input data file backup to be saved
under.
lDelete Existing Metadata:Check to remove any metadata from memory. This option is
disabled on initial input tasks, and is checked by default on secondary input tasks.
Job Information definitions
l%1- User name:Contains the user name of the user who sent the job to the printer, or
the user un which a software sending the job was logged in under.
l%2 - Host computer:Contains the name of the computer from which the job was sent.
Page 266
l%3 - Printer name:Contains the name of the printer in which the job was received. Is the
same for all jobs received on any given printer.
l%4 - Document name:Contains the name of the job as seen in the printer queue from
which it is captured. This name is defined by the software that creates the print job.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
Page 267
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Action Tasks
Use action tasks in PlanetPress Workflow to perform a wide variety of operations. PlanetPress
Workflow includes more action tasks then input and output tasks combined. Action tasks can
even be used to input data and to output data.
The difference between an action task and an input task is that an action task can never be the
first task of a process. In the same fashion, the difference between an action task and an output
Page 268
task, is that an action task can never appear at the end of a process. In other words, action
tasks are always placed between other tasks.
This section covers all the action tasks available in PlanetPress Workflow.
Available Action tasks
l"Add Document" on the next page
l"Add/Remove Text" on page272
l"Advanced Search and Replace" on page275
l"Barcode Scan" on page279
l"Change Emulation" on page287
l"Create PDF" on page293
l"Database Query" on page299
l"Decompress File(s)" on page306
l"Digital Action" on page309
l"Download to Printer" on page318
l"External Program" on page321
l"Load External File" on page325
l"Mathematical Operations" on page328
l"Open XSLT" on page329
l"Push to Repository" on page331
l"Rename" on page334
l"Run Script" on page409
l"Search and Replace" on page341
l"Send Images to Printer" on page343
l"Send to Folder" on page347
l"Set Job Infos and Variables" on page350
l"SOAP Client plugin" on page625
l"Standard Filter" on page356
l"Translator" on page359
Page 269
l"Windows Print Converter" on page362
l"XML/JSON Conversion" on page365
Add Document
The Add Document action task prepares a printer-centric PostScript job by adding a
PostScript version of a selected PlanetPress Connect document and the trigger to execute it
before the active data file.
Input
This task can support files in any emulation, however, the actual file that should be used is one
that is compatible with the selected PlanetPress Design document.
Processing
This task takes the PostScript version of the document (.ps7), ads the trigger and then the
active data file to it. If metadata is present, the output is based on this metadata (unselected
data pages will not generate output, the sort order will be respected, etc). Otherwise the
complete data file is merged.
Output
The output is an PostScript job that can be sent to any output task in "passthrough"mode, for
example Create PDF, PlanetPress Image, etc. Metadata is not generated by this task.
Properties
General tab
lDocuments: Select a specific PlanetPress Design document if you want all the jobs to be
merged with that document.
lAdd job information to the document: Select to prompt your PlanetPress Workflow to
add the available job information elements in the header of the generated file. Note that
this option is only enabled if a document was selected.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
Page 270
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
Page 271
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Add/Remove Text
Add/Remove Text action tasks can be used to perform the following actions on the data file
they receive:
lTo add or remove characters.
lTo add or remove lines of data.
lTo add the content of a text file.
Note that the content must be located at the beginning or the end of the data file.
Input
Any text-based file can be used in this task, even formats that are not directly compatible with
PlanetPress. As long as the text is visible in a text-based editor (such as Notepad), it is
readable and supported by this task.
Processing
The selected operation (adding or removing lines, text or pages)is made on the data file.
Page 272
Output
The modified data file is output from this task. Metadata is not modified in any way if it is
present.
Task Properties
General tab
lAction group
lAdd: Select if you want the task to add content to the job file.
lRemove: Select if you want the task to remove content from the job file.
lContent: Select what the task will actually add or remove. Select Text file to add the
whole content of a text file to the beginning or end of the job file. Select Characters to add
the string of characters entered in the Characters box to the beginning or end of the job
file, or to remove a given number of characters from the beginning or end of the job file.
Select Lines to add the lines of text entered in the Lines box to the beginning or end of the
job file, or to remove a given number of lines from the beginning or end of the job file.
lPosition: Select whether you want the task to add or remove content from the beginning
or end of the job file.
lAdd CRLF after last line: Select if you want to add a CRLF (carriage return/line feed)
character after the last line of text added to the job file. This option is only available when
you choose to add lines of text to the job file.
lASCII file: Enter the path and name of the text file to be added to the job file, or use the
Browse button to navigate to this file. This box is only displayed when the Text file option
is selected in the Content box.
lCharacters: Enter the string of characters to be added to the job file. This box is only
displayed when the Characters option is selected in the Content box.
lLines: Enter the lines of text to be added to the job file. This box is only displayed when
the Lines option is selected in the Content box.
lRemove: Enter the number of characters or lines to be removed from the job file. This box
is only displayed when Remove is selected in the Action group and when the Characters
or Lines option is selected in the Content box.
Page 273
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
Page 274
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Advanced Search and Replace
Advanced Search and Replace action tasks are used to locate and replace strings of data
within the job file and to replace them with other strings of data. Contrary to Search and
Replace action tasks, they allow the use of regular expressions.
Using regular expressions, it is possible to search for patterns rather than specific strings. For
instance, a pattern can be specified to find all valid email addresses or phone numbers within
the data stream.
Input
Any text-based file can be used in this task, even formats that are not directly compatible with
PlanetPress Workflow. As long as the text is visible in a text-based editor (such as Notepad), it
is readable and supported by this task.
Page 275
Processing
The appropriate changes are made to the data file (replacing text).
Output
The modified data file is output from this task. Metadata is not modified in any way if it is
present.
Task Properties
General tab
lSearch mode group:Select your chosen search mode within this group.
lSearch line by line: Select if you want each line in the data stream to be searched
separately. When this option is selected, PlanetPress Workflow considers each line
as an individual data stream (lines are separated by Line Feed characters). It
minimizes memory requirements but may also limit hits, since lines are considered
separately. Note that it is not possible to use search expressions that specify
multiple data lines when this option is selected.
lSearch whole file: Select if you want the entire data stream to be searched as if it
were a single string of text. When this option is selected, PlanetPress Workflow
loads the entire file in memory. It offers more flexibility, since search expressions
may span across multiple lines and may result in more successful hits. Note that
since this option uses more memory, it may affect performance.
lString to search: Enter your search string or regular expression in this variable
property box. To enter multiple strings or expressions, press Enter after each one
(note that only one string can be entered in the Replace with box).
lTreat as regular expression: Select to specify that the string or strings entered above
are to be interpreted as regular expressions rather than ordinary text strings. This option
disables all position options as well as the Whole words only option.
lSearch options group
lCase sensitive: Select to force the plugin to match the character casing of the
search string above with the characters found in the file. If this option is selected,
“DAY” and “Day” will not be considered as matching the search string “day”.
lWhole word only: Select force the plugin to search only for strings that match the
search string from beginning to end (cannot be used with regular expressions). If
Page 276
this option is selected, “DAY” and “DAYS” will not be considered as matching
strings.
lPosition options group:Specify the location where the string must be found using this
group. Note that this whole group is disabled when the Treat as regular expression
option is selected.
lAnywhere on the line: Select to indicate that the search string can be anywhere on
the line.
lAt the beginning of a line: Select to indicate that the search string must be the first
string on the line.
lAt the end of a line: Select to indicate that the search string must be the last string
on the line.
lAt column: Select to indicate that the search string must be in a specific column.
Specify the column number (the value must be greater then 0) in the Column value
box below.
lBetween specific words: Select to indicate that the search string must be between
specific words. Specify these words in the Word before and Word after boxes
below.
lOccurrence related: Select to indicate that the search string must be found a
specific number of times before a string replacement is performed. If the Search line
by line option is selected in the Search mode group, the search counter is reset for
every line. If the Search whole file option is selected in the Search mode group,
the search counter is not reset before the end of the file. Select one of the
occurrence options (described below) in the list box below and enter a value in the
Occurrence value box besides it.
lAt occurrence: The replacement will take place only when the specified
number of occurrences has been reached. Specifying 2 occurrences, for
instance, means that only the second occurrence will be replaced.
lAt every specified occurrence: The replacement will take place every time
the specified number of occurrences is reached. Specifying 2 occurrences, for
instance, means that the second, the fourth and the sixth (and so on)
occurrence will be replaced.
lAll after occurrence: All occurrences of the search string will be replaced
once the specified number of occurrences has been reached. Specifying 2
occurrences, for instance, means that all occurrences after the second one will
be replaced.
Page 277
lAll before occurrence: All occurrences of the search string will be replaced
until the specified number of occurrences has been reached. Specifying 5
occurrences, for instance, means that the four first occurrences will be
replaced.
lReplace with: Enter the string that must be used as the replacement sting when a match
is found.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
Page 278
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Barcode Scan
TheBarcode Scan task is used to convert barcode data from multiple image formats into text-
readable information. This information is placed in the metadata and can be used by the rest of
the process.
Page 279
Input
Image formats supported by the Barcode Scan task are:
lTag Image File Format (TIFF)
lPortable Document Format (PDF)
lJoint Photographic Experts Group (JPEG and JPG)
lPortable Network Graphics (PNG)
lBitmap (BMP)
Processing
The task reads the image and detects the presence of the selected supported barcode types.
When a barcode is detected, the data it contains is read and added to the Data Page level of
the metadata.
Technical
This task does not recognize more than one level of the metadata Document. This means
that if you are intending to define separate documents, you should use the Metadata
Level Creation task after the Barcode Scan.
Output
This task outputs the original data file but with modified (or created)metadata. The format
should be the same as the input.
Supported Barcode Types
The following types of barcodes are supported:
Barcode
types
Description
EAN13 EAN13 symbology. Used with consumer products internationally, 13
characters.
Page 280
Barcode
types
Description
EAN8 EAN8 symbology. Short version of EAN-13, 8 characters.
UPCA UPCA symbology. Used with consumer products in U.S., 12 characters.
UPCE UPCE symbology. Short version of UPC symbol, 6 characters.
Code11 Code 11 symbology. Used to identify telecommunications equipment
Code39 Code 39 symbology. U.S. Government and military use, required for DoD
applications
Code93 Code 93 symbology. Compressed form of Code 39.
Code128 Code128 symbology. Very dense code, used extensively worldwide.
Codabar Codabar symbology. Used in libraries and blood banks.
Inter2of5 Interleaved 2 of 5 symbology. Used in warehouse, industrial applications.
Add2 2 additional digits code for UPC-based symbologies. Used to indicate
magazines and newspaper issue numbers.
Add5 5 additional digits code for UPC-based symbologies. Used to mark suggested
retail price of books.
PDF417 Portable Data File is a 2-dimensional barcode (also known as matrix code)
used in a variety of applications, including Transport, Identification cards, and
Inventory management. It is best suited for cases where information needs to
move with an item or document.
DataMatrix DataMatrix is a two-dimensional barcode which can store from 1 to about
2,000 characters. DataMatrix is being used to encode product and serial
number information on electrical rating plates; to mark of surgical instruments
in Japan; to identify lenses, circuit boards, and other items during
manufacturing.
QRCode The QR Code (Quick Response Code) is a 2-dimensional matrix code. It can
Page 281
Barcode
types
Description
encode up to 2509 numeric or 1520 alphanumeric characters.
PostNet PostNet symbology. Used by the United States Postal Service to assist in
directing mail.
RM4SCC RM4SCC symbology. Used by the Royal Mail.
Note
The fewer barcode types are selected, the faster the plugin performs. Selecting only the
expected barcodes is therefore a good practice.
Barcode Orientations
Barcode orientations represent a barcode orientation on an image. For example,when the left-
to-right optionis checked, the task will try to read the barcode value assuming that the barcode
data should be read in a left-to-right fashion.
Note
The fewer orientations are selected, the faster the task performs.
Settings
lForce checksum validation: Select to define whether the checksum validation is
required for symbologies in which a checksum character is optional. The goal of
checksum is to detect accidental modification such as corruption to stored data or errors
in a barcode values. By default it is set to false. Note: If barcodes using symbologies with
optional checksum do not show the checksum and the option Force checksum validation
is checked, no barcode will be detected on the page
Page 282
lProcess by: Select to define whether to process the image by page orby file:
lProcess by Page: The task is able to handle single or multiple page files (Tiff and
PDF) and act as a loop to process each page independently and sequentially. The
metadata file will be created separately for each page if it does not exist or will be
enhanced with the values on processed Datapage level if it already exists. All
supported images will be converted to tiff format.
lProcess by File: The task will process the file once and will insert the barcode
information in one metadata file. Metadata will be created if it does not exist or will
be enhanced with the values if it already exists.
lReplace non-printable character with: Enter a character that will be used as a
replacement for all non-printable characters read from the barcode.Some barcode types
like Data Matrix can store non-printable characters that metadata does not support.
TheBarcode Scan taskcharacter replacement option will allow successful barcode
reading of all non-printable characters in a given barcode. The value specified in the
Replace non-printable character with option will be foundin place of any non-printable
character in the BarcodeValue and Barcode_x_Value metadata fields, while the original
barcode value (i.e. with non-printable characters)will beavailable in the
BarcodeBase64_x_value metadata field. This option allows only one printable
replacement character. By default, this character is an empty space.Note: Non-printable
characters are the first 32 characters in ASCII character table (Ex.: form-feed, newline,
carriage return characters)
lScan Interval: Set a scan interval in pixels of image scanning. This property directly
affects the performance and quality of the recognition. A greater interval value means
better performance, but a lower recognition confidence level, and vice versa. For
example, a value of 1 means that every image line will be scanned. By default, the Scan
Interval is set to 1.
lThreshold level [0..255]: Set to represent the color threshold level in order to distinguish
foreground pixels from background pixels in color or gray scale images. Value can be
between 0 and 255, corresponding to the pixel intensity value, from 0 (black) to 255
(white). Therefore, defining a threshold value of 128 means that the pixels with an
intensity greater than 128 will be considered as white, while those less than 128 will be
considered black. The value 0 means that the color threshold level will be calculated
automatically depending on the image. By default Threshold level [0..255] is 0. This
parameter is ignored with binary images (black and white images).
Page 283
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
Page 284
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Metadata Implementation
The Barcode Scan task reads each scanned file and outputs the values read from barcode(s)
on the page(s) into metadata depending of the selected Process by option:
lIf the selected option is process by page, then the metadata file is created and overwritten
for each new scanned page.
lIf the selected option is process by file, thenonly one metadata file will be created(or
updated).
Page 285
Note
If metadata was created previously in the process, the task only adds new fields to the existing
metadata at the datapage level.
Metadata Fields
The barcode valuesare stored at the datapage level of the metadata. In the following
defintions, the first 2 metadata fields are for standard use,while the next 8 fields contain '_1_' in
their name. This number represents the barcode index on the page. If there is more than one
barcode on the same page, these metadata fields will be defined as many times as there are
barcodes on the page, except that the middle number (..._X_...) will increment according to the
barcode index (e.g. Barcode_2_Value, Barcode_3_Value, etc.).
lBarcodeValue: Metadata field representing the value of the barcode. When multiple
barcodes are present on the page, this field is present multiple times.
lBarcodeCount:: Metadata field representing the number of barcodes on the page.
lBarcode_1_Value: Metadata field representing the value of the first barcode on the
page.Note that thisfield (Barcode_1_Value) contains the same value as the first
occurrence of BarcodeValue.
lBarcodeBase64_1_Value: Metadata field containing the value of the first barcode,
encoded in Base64.
lBarcode_1_Type: Metadata field containing the type of the first barcode (ex. EAN13,
UPCA …).
lBarcode_1_Orientation: Metadata field containing the orientation of the first barcode.
lBarcode_1_Top: Metadata field providing the distance (in pixels)from the top of the
page to the top of the first barcode.
lBarcode_1_Bottom: Metadata field providing the distance (in pixels) from the top of the
page to the bottom of the first barcode.
lBarcode_1_Left: Metadata field providing the distance (in pixels) from the left of the page
to the left side part of the first barcode.
lBarcode_1_Right: Metadata field providing the distance (in pixels) from the left of the
page to the right side part of the first barcode.
Page 286
Accessing Barcode Value From a Workflow Tool
One method is to use a VBScriptwith the Open Script task, using the Watch.ExpandString
command with a metadata command as its input parameter, in between double quotes. For
example, the following script line gives the value of the first BarcodeValue metadata field of the
first datapage:
watch.expandstring("GetMeta(BarcodeValue[0],0,Job.Group[0].Document[0].Datapage[0])")
Another method is to use a Set Job Infos and Variables task to copy a metadata field into a
Workflow variable.
Limitations
lSome barcodes created with PlanetPress 5 could not be read by the Barcode Scan task,
so please use PlanetPress version 6 or 7 to create barcoded documents.
lWhen using a secondary input, a known issue of the Workflow Tool can cause some
unexpected behavior, like having the same metadata file reused instead of a new one
being created for each data file captured. To work around this issue, simply add a
Rename action taskto set a unique file name (Ex. %u) to each new file before the
Barcode Scan task, after each secondary input.
Change Emulation
Change Emulation action tasks are used to tell the tasks that follow them to use a different
emulation to format the data they receive. So these tasks do not perform any operation as such
on the data, but rather they modify the way subsequent tasks process the data they receive.
Change Emulation action tasks are typically used when a secondary input task brings new
data that is not structured like the initial data into the process. By default, every task included in
a process uses the emulation associated with the sample data file to structure the data before it
processes it. Any task that must use a different emulation must be preceded by a Change
Emulation action task. All the tasks that follow on the same branch will use the emulation
chosen in the Change Emulation task.
Input
Any data file.
Page 287
Processing
The emulation for the following tasks is changed to the selected emulation.
Output
The original data file, metadata and job infos are not modified. Only the emulation is changed.
Properties
lThe options of this task are basically the same as the Data Selector in PlanetPress
Design; see PlanetPress Design User Guide.
General Tab
Add/remove characters: Enter the number of characters to add to, or remove from, the head of
the data stream, or use the spin buttons to increment or decrement the value. Positive values
add characters; negative values remove characters. This is useful when one or more characters
of input data precede the start of the first data page. Note that certain control characters can be
problematic. For example, the NUL character (hexadecimal 00) cannot be removed from the
head of the data stream, and a backspace (hexadecimal 08) can cause unpredictable behavior.
The Hex Viewer can be useful in helping determine the control characters that appear at the
head of the data stream. (To open the Hex Viewer, select Debug > View as Hex, in the menu.)
Note that you cannot add characters in either a CSV or user defined emulation.
Further note that if you remove characters in a CSV emulation, you should ensure that you do
not inadvertently remove field or text delimiters.
Add/remove lines: Enter the number of lines to add to, or remove from, the head of the data
stream, or use the spin buttons to increment or decrement the value. Positive values add lines;
negative values remove lines. This is useful when one or more lines of input data precede the
start of the first data page. Note that you cannot add lines in either a CSV or user defined
emulation.
Lines per page: Enter the number of lines each data page contains, or use the spin buttons to
increment or decrement the value.
Pages in buffer: Enter the number of data pages you want the data page buffer to contain, or
use the spin buttons to increment or decrement the value.
Page 288
Read in binary mode: Select to read the sample data file in binary mode. You select this if you
intend to run the document on a printer that is set to binary mode. In binary mode, the printer
reads the end of line characters (CR, LF, and CRLF) as they appear in the data stream and
does not perform any substitution. A printer that does not support binary mode or is not running
in binary mode replaces any CR, LF, or CRLF that appears at the end of a line of data with a
LF. Note, however, that it replaces a line feed followed by a carriage return (LFCR) with two
LFs. Binary mode is the recommended printer mode when you use an ASCII emulation.
Cut on FF character: Select to have the document start a new data page when it encounters a
form feed character in the data stream. If you select Cut on FF character, you have two
conditions that signal the end of a data page: the form feed character and the number of lines
set in the Lines per page box.
View Selector: Click to go to the Data Selector to set the properties of this task.
Emulation. The available emulations are:
lLine printer. (Nothing to configure.)
lASCII.
lTab on CR: Select to have the document insert a tab after each carriage return
character it encounters. Set the number of spaces in the tab using the Number of
spaces in the tab box. This option is available only if you selected Read in binary
mode. If you cleared Read in binary mode, the printer replaces any end of line
characters (CR, LF, or CRLF) it encounters with a LF.
lNumber of spaces per tab: Enter the number of spaces you want the document to
use for a tab, or use the spin buttons to adjust the value.
lRemove HP PCL escapes: Select to have the document remove any Hewlett
Packard Printer Control Language (HP PCL) escape sequences it encounters.
lCSV (comma separated values).
lText delimiter: Enter the character that starts and ends the data in each field of the
record. If you do not set a text delimiter and the data in a field contains the character
you set as the delimiter, the document splits that data into two fields. If you want to
use a backslash character (\) as a delimiter, you must precede it with another
backslash character (thus you would enter \\). You can also specify an ASCII
character using its octal value preceded by a backslash (for example, \041 is the
exclamation mark character [!]).
Page 289
lForce one record per page: Select to force a single record per data page. If you
clear the selection, the document fills the data page completely, splitting a record
across data pages if necessary. If you want to avoid splitting a record across data
pages, yet have several records in the buffer, select Force one record per page,
and, when you stabilize your data, set Pages in buffer to the number of records you
want the buffer to hold.
lDelimiter: Enter the character that separates the fields of each record in the input
data. If you want to use a tab as a delimiter, select Set tab as field delimiter. If you
want to use a backslash character (\) as a delimiter, you must precede it with
another backslash character (thus you would enter \\). You can also specify an
ASCII character using its octal value preceded by a backslash (for example, \041 is
the exclamation mark character [!]).
lSet tab as field delimiter: Select to define a tab as the character that separates the
fields of each record in the input data. Clear to use the Delimiter box to define that
character.
lChannel skip.
lSkip page: Enter the channel skip code that, in your data, signals the start of a new
data page. In standard channel skip emulation, a 1 (one) signals the start of a new
data page. If a 1 appears in the first column of your data, it is likely the channel skip
codes are standard, and that only minor adjustments to the other codes, if any, will
be necessary.
lNo line feed: Enter the channel skip code that tells the document to ignore any line
feed character (LF) that appears at the end of the line. This causes the next line to
print over the current line, and is a technique impact printers use to print a line, or
elements of a line, in bold or with underlining. For example, the input data for an
impact printer might underline text by placing the text to underline on one line, and
the underscore characters of the underline on the following line. The first character
of the line with the text is a code that tells the printer to ignore the LF at the end of
that line. The result is underlined text.
It is important to understand what happens when you tell the channel skip emulation
in PlanetPress Design to ignore the LF at the end of a line. Recall that the emulation
stores each line of data in the data page buffer, and that each cell of the data page
buffer can contain at most a single character. If the emulation ignores the LF at the
end of a line, it must determine whether to overwrite the cells of the last line of data it
stored. In this case, it compares the character in each cell in the line with the one in
the new line destined for that cell. If the character in the cell is a space or an
Page 290
underscore, it overwrites that character with the one from the new line. If the
character in the cell is not a space or an underscore, it leaves it intact.
lSkip x lines: Use these boxes to enter any channel skip codes in your data that tell
the document to skip a specific number of lines. If you want to enter a backslash
character (\) as a code, you must precede it with another backslash character (thus
you would enter \\). You can also specify an ASCII character as a code using its
octal value preceded by a backslash (for example, \041 is the exclamation mark
character [!]).
lChar, Skip to line: Use these boxes to enter any channel skip codes in your data
that tell the document to skip to a specific line. Enter the code in the Char box; enter
the line number in the Skip to line box or use the spin buttons to adjust its value. If
you want to use a backslash character (\) as a code, you must precede it with
another backslash character (thus you would enter \\). You can also specify an
ASCII character as a code using its octal value preceded by a backslash (for
example, \041 is the exclamation mark character [!]).
lGo to column: Use this to enter the channel skip code in your data that tells the
document to advance to a specific column. Enter the code in the Char box to the left
of the Go to column label, and use the box on the right of the Go to column label to
set the column number. This is useful when your data contains redundant lines that
were originally created to bold a line on a line printer. By entering a Go to column
value that is greater than the width of the data page, you can remove the second
line by shifting the contents of the second line outside the data page.
lDatabase. (Nothing to configure.)
lXML.
lCache XML data: When this option is selected, PlanetPress Watch/Server only
reloads the data if the size or modified date of the XML file changes. When this
option is not selected, the XML data will be reloaded into memory every time that a
plugin works on the data file. Caching the XML data will make subsequent tasks run
faster (as loading an XML file can take a long time) but will also use up more
memory since that memory isn't released in between tasks. For single runs the
performance gain is less noticeable than in loops (either through a splitter, a Loop
task or a metadata filter) where the XML file would be loaded repeatedly.
lPDF. (Nothing to configure.)
Page 291
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
Page 292
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Create PDF
The Create PDF action task allows users running PlanetPress Workflow to create native PDF
outputs without an active PlanetPress Image license. It is very similar to the Digital Action task
(see "Digital Action" on page309) but is more limited. It does not contain the advanced
PDFoptions that are offered by the PlanetPress Image solution, but is useful for creating
simple PDFfiles using the default quality.
Note
This feature is part of the PDFTools, which is only available in PlanetPress Workflow.
Page 293
PDFs created with the new Create PDF action task will effectively replace the current data file
in any given process using such a task.
Input
Any data file supported by PlanetPress Workflow.
Processing
In the case of regular data files, these files will need to be merged with a PlanetPress Design
document.
In the case of a PDFdata file, two things can happen. The PDFcan be used as a data file for a
Design document, or it can be part of a straight PDFworkflow. When this is the case, this task
will rather apply the active metadata to the PDFdata file (see "PDF Workflow" on page186 for
more information on this).
Output
The output of this task is always, exclusively, a PDFfile, optionally optimized and optionally
with fresh metadata.
General tab
lDocuments: Select a specific PlanetPress Design document if you want all the jobs to be
generated with that document. The None option is available to create or update a PDF
without using a PlanetPress Design document, in a Metadata-based workflow.
lRun mode group
lPrinter centric: Select to send the document along with the trigger and data to the
PDFRIP.
lOptimized PostScript Stream: Select to merge the selected document with the
data received by this task before sending it to the PDFRIP. Note that some features,
such as the Time and Date require that this option be selected.
lOptions group
lAdd job information to the document: Select to add the available job info
variables in the “header” of the generated output file.
Page 294
lOptimize resulting PDF: Select to specify whether the resulting PDF should be
optimized. Optimization can lead to a significant reduction in the size of the PDF,
but it may also add a certain amount of time to the process. This option should only
be unchecked if the timing of the process is critical and needs to be done quickly,
but keep in mind that the resulting PDFmay be much larger than it should be and
may even be too large for PlanetPress Workflow to handle.
lReset Metadata according to new PDF: The metadata is updated to included only
the selected nodes from the current metadata, and sequential indexes are re-
created.
ll Security group
lSet document permissions: Select to enter the Permissions password.
lPermissions password: Enter a password in this box only if you want to
prevent users who does not have this password from changing the security
options of the generated PDF files.
lAllow printing: Select to let users print the generated PDF files.
lAllow changing the document: Select to let users edit the generated PDF files.
lAllow content copying: Select to let users copy content from the generated PDF
files.
lAllow form filling: Select to let users enter information in the form fields included in
the generated PDF files.
ll PDF open password: Enter a password in this box only if you want to prevent
users who does not have this password from opening the generated PDF files.
lSecurity Level: The password protection for PDF can be encrypted using one of
the available encryption methods (RC4, AES-256 and AES-128). It gives the task
the ability to take an existing PDF in input and apply the selected password to the
PDF without any change to the quality level of the original PDF.
lFont group
lEmbed all: Select to embed the entire font of all fonts used in the variable content
document within the generated PDFs. Using this option may result in large PDFs,
especially if many fonts are used. Note that those fonts installed by default with the
Adobe Acrobat and Adobe Reader are never embedded. If a font is not embedded
in your PDF, opening it on another computer or printing it may cause it to be
substituted by another default font.
Page 295
lSubset: Select to embed only a subset of the Type 1 and TrueType fonts used in
the document. A font subset is in fact composed of only those characters that are
actually used in the document. This option can only be used if the Embed all fonts
option is selected. Note that if more than 35% of the characters included in a font are
used in the document, the entire font is embedded. This option often produces
smaller PDF files and ensures proper PDF display.
lInitial view group
lZoom factor: Select the magnification at which you want Adobe Acrobat or Adobe
Reader (or other PDF viewer) to open the generated PDF. Choose the Fit in
window option to display the entire page using the available screen space, or
choose a percentage of the actual document size.
lShow: Select the information you want Adobe Acrobat or Adobe Reader (or other
PDF viewer) to display with the generated PDF. Select Page only to leave the tabs
area to the left of the PDF pages empty. Select Bookmarks and page to display the
contents of the Bookmarks tab (you use data selection objects to create bookmarks
in PlanetPress) alongside the PDF pages. Select Page tab and Page to display the
content of the Pages tab (thumbnails of each PDF pages) alongside the PDF
pages. Select Full screen to hide all screen contents except the PDF page, and
expand the PDF page to the maximum size it can occupy onscreen.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
Page 296
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Page 297
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Other Notes
Here's a list of the hard-coded PDF values for files generated with this new plugin. Basically,
these settings correspond to Digital Action and PlanetPress Image settings for Standard
Quality:
lPDF version :1.4
lJob option :Standard quality
lGeneral:
lCompress text and line art
lAuto-rotate pages
lOptimize for fast web view
lAuthor: PlanetPress
lKeywords: PlanetPress; Create PDF plugin
lMonochrome images :
lCompression: CCITT
lPixels per inch: 1200
lGrayscale images :
lCompression: Auto
ldown sampling : Bicubic
lPixels per inch: 300
lColor images :
lCompression: Auto
ldown sampling : Bicubic
Page 298
lPixels per inch: 150
lSecurity :
lAllow printing
lAllow changing the document
lAllow content copying
lAllow form filling
lFont :
lEmbed all fonts
lSubset embedded fonts
lOpen options :
lZoom factor: Fit in window
lDefault view: Page only
Database Query
Database Query action task retrieves data from various databases to use as input data. The
data received by the task may be kept as is or converted to the CSV, Fixed Length Columns or
XML format.
Database Query action tasks are not considered input tasks as such, because they cannot be
used to start a process. Although they cannot be used to get the process’ initial input, they can
be used to gather secondary input (see "Input Tasks" on page203). In cases where all your
data comes from databases, you can use a Create File input task as a dummy task at the
beginning of your process, and then use a PlanetPress Workflow Database action task to
gather your actual data.
Technical
Database Query action tasks require version 2.5 or higher of the Microsoft Data Access
Components (MDAC), including JET 4.0.
When adding a Database Query action task, you have two options:
Page 299
lYou can use static properties (properties that will remain the same regardless of the data
processed at run-time). This option lets you use an Open DataBase Connectivity (ODCB)
compliant data source. You can also edit the SQL statement that assembles the database
table. Note that you can import a database connection configuration that you previously
exported from PlanetPress Design (when you created a document) or from PlanetPress
Workflow (when you set up a sample data file for a process).
lYou can use dynamic properties (properties that include variables or data available at
run-time). This option lets you create a dynamic database connection string as well as an
SQL statement that changes based on the data processed by PlanetPress Workflow.
Note that this option will not let you test the query performed by this task before it is
performed with actual data.
Input
Any data file. The data file will be discarded by the task.
Processing
Aconnection to the selected database is made, the data is retrieved, and an output in the
selected emulation format is generated.
Output
The result of the query is output in the selected data format. The current emulation is changed
to the selected format. Metadata and jobinfos are not modified in any way.
Properties
Database Connection tab
lDatabase group
lLocation: Enter either the path and name of the database or a database connection
string in this box. You may click to navigate to the database and paste the database
path and name automatically to this box. You may also click create an ODBC
connection string to the data source and paste the string automatically to this box. If
a login name and password are required to connect to the database, a dialog box is
displayed and the information you enter is saved in the configuration of the
PlanetPress Workflow Database action task.
Page 300
lTable/Query: Select the table or query containing the information you need as your
input data.
lRange group
lAll: Select this option use all the records included in the database.
lRecords: Select this option use only some of the records in the database. Indicate
the range by entering the number of the first record followed by a dash and the
number of the last record. To use records 50 to 75, for example, enter 50-75. Note
that this option is intended mostly for testing purposes, since in real life scenarios,
you typically want to use all the records stored in a database.
lEmulation group:Use options from this group to customize the data file generated by the
PlanetPress Workflow Database action task.
lOutput file emulation: Select the emulation corresponding to the type of output file
you want the PlanetPress Workflow Database action task to generate.
lCR-LF replacement: If you want CR-LF (Carriage Return-Line Feed) characters
within the data file to be replaced by another character, use this box to indicate
which character to use. You may select the replacement character from the list or
type your own.
lEmulation options group:Options from this group change based on the selected
output file emulation.
lPlanetPress Workflow Database Emulation:If you selected PlanetPress
Workflow Database in the Output file emulation box, the following options are
available:
lCreate data pages as follows: Select the option that will be used to generate
the data pages. Each data page created using the table or query selected
above (Table/Query box) can contain a single record, a fixed number of
records, or a variable number of records. To choose the last option, select one
of the When [field name] changes listed in this box.
lSort on conditional field: Select this option if you want the table to be sorted
using the field selected in the Create data pages as follows box before the
data page creation process is started.
lMaximum number of records per page: For data pages that contain multiple
records (a fixed or variable number of records), enter a maximum number of
records per page in this box. Note that this value cannot exceed 4,000.
lCSV Emulation: If you selected CSV in the Output file emulation box, the following
options are available:
Page 301
lSort on field: If you want the table to be sorted before the data page creation
process is started, select the sort field from this box.
lText delimiter: Select the text delimiter to be used in the generated file.
lField separator: Select the field separator to be used in the generated file.
lAdd a header record with field names: Select this option if you want the
generated file to have a header record (a record that includes the field names
only).
lFixed Length Columns Emulation:If you selected Fixed length columns in the
Output file emulation box, the following options are available:
lSort on field: If you want the table to be sorted before the data page creation
process is started, select the sort field from this box.
lDefault width: This box is used to set the default width for all fields. It is set to
60 by default, but can be set to any value between 1 and 65535. This value is
applied to all the fields in the generated file. To set different widths for each
field, use the Configure Width button. Doing this disables the Default width
box.
lConfigure Width: Click to set the width of each field in the generated file. The
displayed Configure Width dialog box lists all the fields in the file that will be
generated and indicates their widths. To change the indicated widths, simply
click the values displayed in the Width column and enter new values. Click
OK when you are done to close the dialog box. You will then no longer be
able to use the Default width box.
lXML Emulation:If you selected XML in the Output file emulation box, the following
options are available:
lCreate data pages as follows: Select the option used to generate the data
pages. Each data page created using the table or query selected above
(Table/Query box) can contain a single record, a fixed number of records, or a
variable number of records. To choose the last option, select one of the When
[field name] changes listed in this box.
lSort on conditional field: Select this option if you want the table to be sorted
using the field selected in the Create data pages as follows box before the
data page creation process is started.
lData encoding: Select the encoding used in the generated XML file. By
default, this option is set to the default encoding of the computer used to create
Page 302
or edit the configuration. You may choose any encoding listed in the drop-
down list or enter your own.
lMaximum records per page: Select this option if you want to limit the number
of records per page. This option is only available if you indicated that you
wanted each data page to contain several records in the Create data pages as
follows box.
lXMLfor PrintShop Mail:This emulation is specifically for use with merging your
data with a PrintShop Mail document, using the PrintShop Mail task (see PrintShop
Mail). No options are offered, as this format is static and should not be modified.
lAlternate syntax: Select to prevent automatically enclosing the names of any database
tables and fields that appear in the SQL query in square brackets when it exits the
Advanced SQL Statement dialog box. The alternate syntax may be required for some
database types.
lEdit SQL: Click to create and test an advanced SQL query.
lImport Config: If you previously created and exported a PlanetPress Workflow Database
Connection configuration, click this button to import it. This saves you the trouble of
configuring the connection every time.
lClient-side Cursor:When this option is enabled, the complete result set is downloaded
before processing starts, and changing records is done by PlanetPress Workflow. This is
generally faster for queries returning a small number of results ; otherwise the start of the
record processing can be delayed since the whole record set must be downloaded.
Note
MySQL, using ODBC 5.0, must be set to use a client-side cursor.
Microsoft Access will always work better when using a Server-Side cursor.
lInclude password in config: Select to save an encrypted version of the database
password (if any) within the exported configuration.
lExport Config: Click to export the currently displayed properties of the PlanetPress
Workflow action task. The exported configuration can then be reused on other
PlanetPress Workflow workstations.
Page 303
Dynamic SQL tab
lUse dynamic values at run-time: Select to use a dynamic database connection string
and / or SQL statement at run-time. Check this box to enable the options included in this
group (this disables the corresponding options in the General tab).
lParse normally: Select to interpret any backslashes included in the database
connection string as backslashes. If this option is not selected, any backslash that is
not doubled will be disregarded.
lExpect record set:Check if you are expecting a result from the database after
executing the SQLquery. If the query is expecting a record set in return and does
not return one, the task will trigger an error.
lDatabase connection string: Enter a variable connection string in this box. To do
this you may begin by clicking to create an ODBC connection string to the data
source and paste the string automatically to this box. Note that if a login name and
password are required to connect to the database, a dialog box is displayed and the
information you enter is saved in the configuration of the PlanetPress Workflow
Database action task. Another option, if a database connection string (not a
database path and name) was already entered in the Database Connection tab, is ti
simply copy and paste it to this box. Bear in mind that if the Parse normally option is
not selected, any backslashes included in the connection string that is not doubled
will be disregarded. Once your connection string is displayed in this box, you can
edit it by adding variables or data selections.
lSQL statement: Enter your SQL statement. Remember that you may use variables
and data selections in your statement.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
Page 304
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Page 305
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Decompress File(s)
Decompress file action tasks decompress zipped job files (files compressed as zip files).
Input
This task only accepts ZIPFiles, however it is not necessary that the job file be the ZIP, since
this file path and name can be specified in the task itself.
Processing
Every file in the ZIPis extracted to the specified location. If a folder structure exists in the ZIP, it
is respected in the output folder.
Output
This task outputs the data file it received with no modification. Metadata and job files are not
touched either.
Page 306
Properties
General Tab
lZip file name: Enter the name of the zipped file. In this variable property box, you may
enter static characters, variables, job information elements, data selections, or any
combination of these.
lOutput folder: Enter the name of the folder in which you want the decompressed files to
be stored.
lFile mask: Enter a file name mask to specify which files must be decompressed. Leave
the default value of *.* to decompress all the files found within the zip.
lPassword: Enter a password if the zip file is password protected.
lRestore path structure: Select if you want the complete file structure to be rebuilt from
the output folder to the decompressed files.
lForce directories: Select if you want to allow the system to create new folders when
required. If this option is not select and the Decompress file action task tries to save a file
to a folder that does not exist, the task will fail.
lOverwrite existing files: Select if you want decompressed files that have the same name
as existing files to overwrite the existing files.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
Page 307
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Page 308
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Digital Action
Digital Action action tasks generates the same types of documents generated by PlanetPress
Image output tasks. Since Digital Action tasks are not output tasks, the documents they create
are typically passed on to the following task. The image files they generate are always saved,
along with their index files (if any), to an archive folder.
Technical
The Digital Action task requires a PlanetPress Image license to be present on the same
IPSubnet as PlanetPress Workflow, either on the same server or a different one with
PlanetPress Image installed and activated.
Differences between Digital Action and Image tasks:
lDigital Action is an action task and cannot be the last task in a branch or process. Image
is an output task, and has to be placed at the end of a process or branch.
lIn PlanetPress Workflow 7.2.4 and older, Digital Action does not update the PlanetPress
Search Database, even if a PDIis generated and even if the option is checked in the
preferences. This behavior was changed starting in PlanetPress Workflow 7.3.
lDigital Action can accept PostScript (.ps)files as an input, even if they are not generated
by any PlanetPress Workflow tools.
Page 309
Task Properties
General tab
lHost: Select the IP address of the PlanetPress Image host to which you want the request
to be sent.
lRefresh: Click to update the list of IP addresses displayed in the Host drop-down list box.
lDocuments: Select a specific PlanetPress Design document if you want all the jobs to be
generated with that document. To use a document chosen at run-time for each job, enter a
dynamic document name using a combination of text, variables and data selections. To
enable the dynamic document name box, click inside it. To disable it, press Enter. Note
that in the later case, you must be certain that the documents that will be chosen at run-
time will in fact be available locally or at the selected host.
Note
While the Do not use a document (passthrough)is visible in this list, it is not
compatible with the PlanetPress Image output if the PostScript was not generated
by merging a design document with data in PlanetPress Workflow. In order to
generate an image in passthrough mode with external PostScript, please use the
Digital Action task.
lList only documents using VDXcompilation:Check to ensure that only documents
that are compatible with the VDXcompilation method are shown in the list, if producing
VDXoutput.
lRun mode group
lPrinter centric: Select to send the document along with the trigger and data to
PlanetPress Image.
lOptimized PostScript Stream: Select to merge the selected document with the
data received by this task before sending it to PlanetPress Image. Note that some
features, such as the Time and Date require that this option be selected.
lAdd job information to the document: Select to add the available job info variables in
the “header of the generated output file.
Page 310
lOutput type: Select the output file type that you want.
lPDF:The output will be a PDFfile. If you select PDF, the DPI and Color Depth
options (see below) are disabled and the options available in the PDF tab are
enabled.
lJPEG:The output will be a JPEGfile. JPEGis a lossy compression image format
that creates small files, compressing continuous tone images (such as scanned
photographs) well.
lTIFF:The output will be a TIFFfile. TIFF is a higher quality format that is one of the
standards for document exchange, useful for eventual printing or archiving. You
have a choice of the following compressed TIFF formats: TIFF Group 3, TIFF Group
4, and TIFF Packed bits. You can also use the uncompressed TIFF format, which
produces the largest files with the highest quality. TIFF is a versatile and platform-
independent format. It is used in many digitizing projects as the format of choice for
the digital masters. The TIFF Group 3 and Group 4 formats are efficient for
document storage.
lThe AutoStore,DocAccel and KYOcapture formats also generate TIFF files along
with special XMLthat are meant for these specialized systems.
lDPI: Enter the dots per inch (dpi) resolution of the output image. This property is enabled
for all output types except PDF.
lColor depth: Enter the color depth of the output image in bits per pixel (bpp). The color
depth is measured in bits, because each pixel of the output image can be described with
a varied number of bits. A higher bit number allows for more colors. It also increases the
image file size. A 1-bit color depth produces monochrome images. 8-bits produce
grayscale images (in PlanetPress Design you can have 8-bit color images, but these are
reduced to grayscale if you select 8-bit here), while 24-bits produce full color images. For
JPEG output, you cannot select a monochrome (1 bpp) color depth. For TIFF G3 and
TIFF G4, monochrome (1 bpp) is the only Color depth option you can select. This property
is enabled for all output types except PDF.
lMulti-page: Select to generate a single file containing multiple pages. When this option is
not selected, PlanetPress Image creates a file for each page included in the output file.
This property is enabled for all output types except PDF and JPEG.
Add page number: Select to put a page number on each page included in the output file.
This option goes with the Multiple TIFF option and is only visible if either the AutoStore,
DocAccel or KYOcapture format is selected.
Page 311
lData Stream group: Determines what is output by the Digital Action task:
lUse Digital as new data stream: Use the file generated by the task for the rest of
the process.
lUse original data stream (without document): Use the same data file as what
was input to this task.
lUse original data stream (with document): Uses the PostScript data generated
before image is created.
lSave a copy:Optional when the "Use Digital as the new data stream"option is checked,
otherwise is always checked. Keeps a copy of the digital output onto the specified folder.
lFolder and filename: Enter the path of the folder to which output files generated by this
task are to be archived. PDF index files (PDI and XML) are also put in this folder. This edit
box is enabled when the Save a copy option is selected. To prevent each new file from
overwriting the previous one, you should use variable names. As with any variable
property box, you can use any combination of text, variables and data selections. When
multiple files are generated for a single job (such as for multiple TIFFs), each file name
includes a sequence number, such as in Invoice0, Invoice1, Invoice2. If you use file name
masks that include dots, such as Statement.%y.@(1,1,1,1,25,KeepCase,Trim) or Job.%f,
for example, you must add quotation marks at the beginning and end of the file name
(“Statement.%y.%m.@(1,1,1,1,25,KeepCase,Trim) or ”Job.%f”). Otherwise, when the file
is saved, anything appearing after the last dot is replaced by the file’s extension
characters (and the file name thus becomes Statement.2005.pdf instead of
Statement.2005.255842.pdf, or Job.tif instead of Job.544872.tif). Failing to add the
quotation marks may result in files being overwritten.
lAutomatically Add Extension:Check if you want the correct extension for the image
type to be appended to the filename automatically, rather than having to add it in the
Filename box. The Output Type determines the extension to be used.
lAdd PDFto PlanetPress Search database:Check to update the PlanetPress Search
database with each new PDFgenerated.
lIndex group: This group lets you specify which type of index must be created for each
document generated by this task. PDIfiles are used by PlanetPress Search as indexing
information.
lNone: Select if you do not want this task to add an index file to the generated
document.
lPDI: Select if you want this task to add a PDI index file to the generated document.
Page 312
lXML and PDI: Select if you want this task to add both an XML and a PDI index file
to the generated document.
Job Options tab
If you chose PDF as the output type in the General tab, use this tab to choose the appropriate
PDF options. Note that all the options available in this tab are only used with PDF files.
lJob options: Select the PDF output option that best describes your needs. This loads all
the standard settings for the selected usage scenario. These settings can be changed as
required. Note that if you make changes and then select a different output option, your
changes will be lost. PlanetPress Image supports numerous PDF standards: Standard,
High Quality, Custom, and a variety of PDF/VT, PDF/A and PDF/X formats.
lGeneral group
lASCII format: Select to create the PDF file using ASCII characters (instead of the
usual 8-bit binary format). This option produces a file suitable for transmission over
a 7-bit ASCII link. This option is useful if the PDFs need to be opened in a text
editor, sent across networks, or sent via email using a program that does not support
binary files. This option also generates smaller files.
lCompress text and line art: Select to compress the text and line work in the file
using the Flate compression filter. Flate is a compression method that works well on
elements with large areas of single colors or repeating patterns, as well as on black-
and-white elements that contain repeating patterns.
lAuto-rotate pages: Select to automatically rotate pages based on the orientation of
the text or DSC comments.
lOptimize for fast web view: Select to minimize file size and facilitate page
downloading.
lTitle: Enter a title for the document. If you leave this box empty, the documents
name will be used as the document’s title. Since this is a variable property box, you
may use variables and data selections and let PlanetPress Workflow interpret this
information at run-time.
lAuthor: You may enter the name of the author of the document. Since this is a
variable property box, you may use variables and data selections and let
PlanetPress Workflow interpret this information at run-time.
lSubject: You may enter the subject of the document. Since this is a variable
property box, you may use variables and data selections and letPlanetPress
Workflow interpret this information at run-time. Note that if you use a data selection
Page 313
in this box, you must be sure that the data that will be selected at run-time will not
contain any parentheses, as this would cause the task to fail. If you suspect that the
data may contain parentheses, you should use a Run script action task (see Run
Script Action Task Property) with a Strip() function to strip them out.
lKeywords: You may enter keywords for the document. Since this is a variable
property box, you may use variables and data selections and let PlanetPress
Workflow interpret this information at run-time.
lMonochrome images group
lMonochrome compression: Select the compression to use for the monochrome
images. Flate compression is lossless, so no data is lost during compression. Flate
Mono works well on images with large areas of solid shades or repeating patterns,
such as screen shots and simple images created with paint or drawing programs.
CCITT typically yields the best compression of monochrome images. It is the
compression method developed for fax transmissions. Note that configurations that
were created with an earlier version of PlanetPress Workflow and that included
tasks set not to use any compression will by default be set to use the Flat
compression method.
lMonochrome resolution: Select the resolution to use for monochrome images.
lGrayscale images group
lGrayscale compression: Select the compression to use for the grayscale images.
Flate is a lossless compression method, so no data is lost in the process. It works
well on images with large areas of single shades or repeating patterns, such as
screen shots and simple images created with paint or drawing programs. JPEG
removes image data and may reduce image quality, but may be suitable for
continuous-tone photographs containing more detail than can be reproduced
onscreen or in print. Since JPEG eliminates data, it can achieve much smaller file
sizes than Flate compression. Select Auto to let the application choose the best
compression method automatically. Note that configurations that were created with
an earlier version of PlanetPress Workflow and that included tasks set not to use
any compression will by default be set to use the Flate compression method.
lGrayscale down sampling: Select the down sampling option. down sampling
reduces image size by breaking images down into small areas in which multiple
pixels are replaced by single pixels. The Grayscale resolution you enter in the
following box is used to control the down sampling process. Select None to prevent
grayscale down sampling . Select Average to average pixel shades in each sample
area and to replace the entire area with a pixel of the average shade. Select
Page 314
Subsample to use a pixel in the center of the sample area and replace the entire
area with that pixel value. This method is significantly faster, but results in images
that are less smooth. Select Bicubic to use a weighted average to determine pixel
shades. This method is the slowest but most precise and results in the smoothest
tonal gradations.
lGrayscale resolution: Select the resolution to use for grayscale images. Note that
this setting has an impact on the grayscale down sampling process.
lColor images group
lColor compression: Select the compression to use for the color images. Flate is a
lossless compression method, so no data is lost in the process. It works well on
images with large areas of single shades or repeating patterns, such as screen
shots and simple images created with paint or drawing programs. JPEG removes
image data and may reduce image quality, but may be suitable for continuous-tone
photographs containing more detail than can be reproduced onscreen or in print.
Since JPEG eliminates data, it can achieve much smaller file sizes than Flate
compression. Select Auto to let the application choose the best compression
method automatically. Note that configurations that were created with an earlier
version of PlanetPress Workflow and that included tasks set not to use any
compression will by default be set to use the Flate compression method.
lColor down sampling: Select the down sampling option. down sampling reduces
image size by breaking images down into small areas in which multiple pixels are
replaced by single pixels. The Color resolution you enter in the following box is
used to control the down sampling process. Select None to prevent grayscale down
sampling. Select Average to average pixel color in each sample area and to replace
the entire area with a pixel of the average color. Select Subsample to use a pixel in
the center of the sample area and replace the entire area with that pixel value. This
method is significantly faster, but results in images that are less smooth. Select
Bicubic to use a weighted average to determine pixel shades. This method is the
slowest but most precise and results in the smoothest tonal gradations.
lColor resolution: Select the resolution to use for color images. Note that this setting
has an impact on the color down sampling process.
ll Security group
lSet document permissions: Select to enter the Permissions password.
lPermissions password: Enter a password in this box only if you want to
prevent users who does not have this password from changing the security
Page 315
options of the generated PDF files.
lAllow printing: Select to let users print the generated PDF files.
lAllow changing the document: Select to let users edit the generated PDF files.
lAllow content copying: Select to let users copy content from the generated PDF
files.
lAllow form filling: Select to let users enter information in the form fields included in
the generated PDF files.
ll PDF open password: Enter a password in this box only if you want to prevent
users who does not have this password from opening the generated PDF files.
lSecurity Level: The password protection for PDF can be encrypted using one of
the available encryption methods (RC4, AES-256 and AES-128). It gives the task
the ability to take an existing PDF in input and apply the selected password to the
PDF without any change to the quality level of the original PDF.
lFont group
lEmbed all: Select to embed the entire font of all fonts used in the variable content
document within the generated PDFs. Using this option may result in large PDFs,
especially if many fonts are used. Note that those fonts installed by default with the
Adobe Acrobat and Adobe Reader are never embedded. If a font is not embedded
in your PDF, opening it on another computer or printing it may cause it to be
substituted by another default font.
lSubset: Select to embed only a subset of the Type 1 and TrueType fonts used in
the document. A font subset is in fact composed of only those characters that are
actually used in the document. This option can only be used if the Embed all fonts
option is selected. Note that if more than 35% of the characters included in a font are
used in the document, the entire font is embedded. This option often produces
smaller PDF files and ensures proper PDF display.
lInitial view group
lZoom factor: Select the magnification at which you want Adobe Acrobat or Adobe
Reader (or other PDF viewer) to open the generated PDF. Choose the Fit in
window option to display the entire page using the available screen space, or
choose a percentage of the actual document size.
lShow: Select the information you want Adobe Acrobat or Adobe Reader (or other
PDF viewer) to display with the generated PDF. Select Page only to leave the tabs
area to the left of the PDF pages empty. Select Bookmarks and page to display the
Page 316
contents of the Bookmarks tab (you use data selection objects to create bookmarks
in PlanetPress) alongside the PDF pages. Select Page tab and Page to display the
content of the Pages tab (thumbnails of each PDF pages) alongside the PDF
pages. Select Full screen to hide all screen contents except the PDF page, and
expand the PDF page to the maximum size it can occupy onscreen.
lFont group
lEmbed all: Select to embed the entire font of all fonts used in the variable content
document within the generated PDFs. Using this option may result in large PDFs,
especially if many fonts are used. Note that those fonts installed by default with the
Adobe Acrobat and Adobe Reader are never embedded. If a font is not embedded
in your PDF, opening it on another computer or printing it may cause it to be
substituted by another default font.
lSubset: Select to embed only a subset of the Type 1 and TrueType fonts used in
the document. A font subset is in fact composed of only those characters that are
actually used in the document. This option can only be used if the Embed all fonts
option is selected. Note that if more than 35% of the characters included in a font are
used in the document, the entire font is embedded. This option often produces
smaller PDF files and ensures proper PDF display.
lInitial view group
lZoom factor: Select the magnification at which you want Adobe Acrobat or Adobe
Reader (or other PDF viewer) to open the generated PDF. Choose the Fit in
window option to display the entire page using the available screen space, or
choose a percentage of the actual document size.
lShow: Select the information you want Adobe Acrobat or Adobe Reader (or other
PDF viewer) to display with the generated PDF. Select Page only to leave the tabs
area to the left of the PDF pages empty. Select Bookmarks and page to display the
contents of the Bookmarks tab (you use data selection objects to create bookmarks
in PlanetPress) alongside the PDF pages. Select Page tab and Page to display the
content of the Pages tab (thumbnails of each PDF pages) alongside the PDF
pages. Select Full screen to hide all screen contents except the PDF page, and
expand the PDF page to the maximum size it can occupy onscreen.
PlanetPress Search Database tab
If PlanetPress Workflow is configured to automatically update a PlanetPress Search database
(See "PlanetPress Image preferences" on page764), this tab can be used to override the
global settings so that the task updates a different database than the one set in that global
Page 317
configuration. In order for the settings to work, the Add PDF to PlanetPress Search database
must be checked. However, you can override which database will be updating using the option
in this window, Override global PlanetPress Search Database settings. The database options
then activate.
lDatabase type: Select the type of the database in which you want to create a table
(Access, or SQL Server).
lConnection time-out: Enter the time, in seconds, that the connection to the database is
maintained while no action is taking place before the connection is severed.
lDatabase directory: Enter the path of the directory in which the Access database is
located, or use the Browse button to navigate to, and select, the directory. This option is
available only when you select Access database in the Database type box.
lData source name: Enter the name of the computer on which the database runs. This
option is available only when you select SQL Server database or Oracle database in the
Database type box.
lUse default database: Select to use the default database associated with your user
profile on that SQL Server or Oracle database. Clear to enter the name of the database in
the box that appears.
lUse Windows NT Integrated security: Select to use your Windows user name and
password to log onto the SQL database.
lUser ID: Enter the user id required to access the database to which you are adding new
PDI files from the generated PDF files. If you are using an SQL database, enter the login
name you chose when you configured the SQL database (refer to the “Using
PlanetPressSearch with an SQL Server Database” section of the PlanetPress Search
User Guide).
lPassword: Enter the password required to access the database.
lTest Connection: Click to verify that PlanetPressImage can connect to the specified
database.
lEnforce global table creation: Select this option, as it ensures that all database users
are granted access to the database. This option is available only when you select SQL
database in the Database type box.
Download to Printer
Download to Printer action tasks are used to warn printers that the files that will be sent to
them are to be stored to a specific location rather than printed. Note that each Download to
Page 318
Printer action task must be followed by a Printer Queue output task set to "pass-through", in
order for it to be sent to the printer and not merged with a document.
You can use Download to Printer action tasks to send various types of files, such as
attachments, documents and fonts that are used in PlanetPress Design documents that are
executed directly on the printers.
For images you should rather use Send Images to Printer action tasks (See "Send Images to
Printer" on page343), as they provide image quality and conversion options.
Input
Any file that you wish to upload to the printer. Note that this task does not attempt to verify that
the type of file being sent is compatible with the printer, or is in a supported file format.
Processing
The currently active data file is converted into postscript.
Output
A postscript file containing the necessary code to save the data file on the hard drive.
Properties
General tab
lHard disk name and path (as required): Enter the name and path of the hard disk to
which the file is to be saved (enter “%disk0%/PPFiles/Resources”, for example, to save
the file to the folder [ROOT]/PPFiles/Resources located on a hard disk identified internally
as “disk0”). Leave blank to save the printers default hard disk and path.
lFile name: Enter the name under which you want the file to be saved. By default, this
property is set to “%o”, so the file is saved under its original name (this is often the best
choice, for items such as font files, for instance).
lFile name case:
lDo not modify: keeps the character casing of the file name as is.
lAll uppercase: changes all characters to upper case (README.TXT, for example).
lAll lower case: changes all characters to lowercase (readme.txt, for example).
Page 319
lKeep file extension: Select to use extensions when saving files. When this option is
selected, if the task receives a file with the “txt” extension, for example, it will keep this
extension even if it renames the file (as specified in the File name box).
lPrint confirmation page: Select to print the Variable content document download
confirmation page when the download is successful.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
Page 320
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
External Program
External Program action tasks are used to launch and execute other programs, which can be
useful when you wish to process your job file in a way that is not possible with the standard
PlanetPress Workflow tasks.
Page 321
Note
As with any task that can refer to network resources, it is important to understand the
considerations involved with paths and permissions of these resources. Please refer to
the Network Considerations page in the Advanced Configuration and Options chapter
(Reference Guide, in English only).
There are some important things to consider when using the External Program task:
lThe executable file must accept so-called "command-line options" and be able to run
without any sort of user interaction. Only certain programs are able to do this and may
refer to it as "command-line"or "automation"features.
lThe process will always wait for the executable file to finish before it continues to the next
task, and does not have any timeout setting. This mean that if your program fails to exit for
any reason, your process will hang.
Input
Any active data file, in any format.
Processing
The external program is executed using the parameters provided. Note that the current data file
is not "sent"to the executable file, however you can refer to the full path of the data file using
%F.
Output
If the external program modifies the job file using the full path, the modified file is the output of
this software. Otherwise, the output is the same as the input. Metadata is not modified in any
way. Job Infos may be modified, depending on the options set in the task's properties.
Page 322
Properties
General tab
lProgram group
lExecutable file: Enter the name and path of an executable file (exe or com
extension), batch file (bat extension), or command script (cmd extension) that can
run in command mode. Note that the program will be run without user interaction.
Although it may display progress information, it is better if the application has no
user interface.
lParameters: Enter parameters that will be passed to the external program when it is
launched. Each parameter should be enclosed in quotation marks and separated by
a space ("Param1""Param2" "Param3") except command line options (such as -f,
/n). The exact parameters accepted are unique to the executable and defined in its
documentation if it exists.
lStart in: Enter the folder in which the external program is to run. This is important,
for example, if the program is to generate files that are to be picked up in a specific
location for further processing, or if it requires resources that are located in a specific
folder. Leave blank to run the program in the folder of the executable file.
lRun minimized: Select to prevent a window (a DOS box, for instance) from being
displayed on the desktop. When selected, the program runs in a background
window.
lProgram output capture group
lLog the program output: Check to store the program output (messages generated
by the execution of the external program)inside of a job info or variable.
lStore the program output in variable: Use the drop-down to select which variable
or job info to will be used to store the program output.
lExit Code group
lStore the exit code in job info:Use the drop-down to select which variable or job
info will be used to store the program's exit code. The exit code is a numerical value
generated by the program which will indicate whether its execution was a success
or if errors were encountered.
lVerify return value: Check to enable the group and react whenever specific exit
codes are returned by the software.
lIf exit code is:Use the drop-down to select how to compare to the exit code. This
numerical comparison is either equal, greater than or lower than.
Page 323
lValue:The numerical exit code that will be verified.
lReturn:Use the drop-down to select whether this exit code should define a success
or a failure of the external program. If "Failure"is chosen, exit codes that match the
condition set will cause the On Error tab to be triggered and any other exit code will
be considered a success. Inversily, if Success is chosen, exit codes that match the
condition set will cause be considered a success and any other exit code will cause
the On Error tab to be triggered.
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
Page 324
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the message.
lStore the message in variable:Select in which jobinfo, local or global variable you
want to store the message content.
lID:Enter an error ID. This IDwill be visible in the Windows Event Viewer. However, the
IDis not visible in the PlanetPress Workflow log file.
lStore the IDin variable:Select in which jobinfo, local or global variable you want to
store the error ID.
lReset to defaults:Resets all options in this tab to their default values.
When storing the message or ID, if they are stored in a jobinfo they will be available in any
error handling process where errors are being forwarded. If your process continues after the
error, the contents of the variables selected in this window will be available to the rest of your
process, or as long as they are not overwritten.
Common Errors
Though some error messages are specific to a task in particular, others may apply to any and
all tasks because they are related more to the system than to PlanetPress itself. Some
examples would be W3813,W3830,W3991,W4005. These correspond to issues such as not
having any space to write files, permission errors on folders or files, etc.
Comments Tab
The Comments tab is common to all tasks. It contains a text area (Task comments)that lets
you write comments about the task. These comments are saved when the dialog is closed with
the OKbutton, and are displayed in the Task Comments Pane.
Check the option Use as step description to display the text next to the icon of the plugin in
the Process area.
Load External File
Load External File action tasks are used to replace the current job file by the designated text
file. Loading an external file does not delete the original file or modify it in any way.
Page 325
Input
The current data file in the process will be discarded.
Processing
The external file specified in the task's properties is loaded and replaces the current data file.
Output
The loaded file is output. Metadata is not modified in any way, neither are job infos.
Properties
General tab
lExternal file: The path to the file you want the job file to be replaced with. You may
browse to the file using the browse button on the right of the field.
Examples &Use Cases
This task is put into effect in the following use cases and example processes:
lHTTP PDF Invoice Request
On Error Tab
The On Error tab is common to all tasks. Details can be found in the" Task Properties Dialog"
on page777.
By default, any action task, branch, splitter or condition that generates an error will simply be
ignored, and the task just under it (not within a branch)will be given control of the job file
without any modification. Any initial input task that generates an error will stop the process from
running as a whole, and output tasks will not generate output. The On Error tab can be used to
overwrite the default behaviors.
lSend to Process: Check this option to send the job file to an error management process.
lError Process drop-down:Enabled only when the Send to Process option is checked.
Lists any process of which the initial input task is the Input Error Bin task.
Page 326
lAction:In the initial input tasks, this group is disabled and defaults to Stop Process. In
all other tasks where the On Error tab is present, the following options are available:
lDefault:By default, the task is ignored as if it did not exist and the error is logged
before continuing the branch or process; the job file is passed on to the next task in
the process. When an error occurs in a loop (or in a plugin that acts like a loop), the
loop may log the error, terminate the current iteration and proceed with the next
iteration.
lStop Branch:If the task is in a branch of the process, the branch is stopped and the
job file is returned to the process after the branch. The branch will not produce any
output. If the task is not on a branch, the entire process will be stopped.
lStop Process:The process is stopped and no more processing is done. No further
output is produced.
lLog Message:Check this option to enable logging a custom error message in the
PlanetPress Workflow log file and in the Windows Application Events.
lMessage:Enabled only when the Log Message option is checked. Enter a message that
will be logged in the PlanetPress Workflow log file. You can use any variables available
in PlanetPress Workflow to customize the m