Business Software: 303|905-4110
Bookkeeping Services: 303|905-6645
sales@cloudstreetportal.com

The records in the BPI.FORM.PHANTOM.CONTROL file/directory can be arranged as the user sees fit using a tag=value param file format.

Tag Names

Description

key

Key of phantom.  Usually a word to describe the thread (e.g., LOC1) to define the phantom for Location 1

order

This is a right justified numeric value that is used by the bpi.form.phantom.menu process to sort the phantom threads into right-justified ascending order when displayed in the menu.

status

Current status of the phantom (e.g. active)

description

A text description of the phantom

account

MultiValue account in which this phantom will run

 

 

queuePath

Path to the directory where queued documents will be placed by the app (directory to poll) and where this phantom thread should look for them

archivePath

Path where documents will be moved after processing.  If not specified, document will be deleted and not moved to archive.

ooServerAddress

hostname or ip address of the OpenOffice server to be used for this thread.

user

unix username to be used when phantom communicates with OpenOffice server to issue ssh directives.

remoteDefaultPrinter

printer name on the OpenOffice server to which print jobs from this thread will be sent.

remoteQueuePath

the path on the remote OpenOffice server where it will find the document to be printed (the mount point and path on the OpenOffice server).  Usually, this is a directory on the Linux OpenOffice Printer Server (LOOPS) under the /mnt directory.  To this directory is mounted a CIFS/SAMBA share exposed on the MultiValue host. 

killSignal

On release > 3.2 (Mar 2020)

Now, you can specify a full path to a record such as

/db/accts/BPIFORMS/BPI.CONTROL/KILL-FORMPHANTOM-%ident%

The last segment (KILL-FORMPHANTOM-%ident% will be the filename (record id) and the prior part of the path will be the filename where the record is stored.  Even if the filename is a hashed file, this syntax will work.

On all releases

Item ID of a record in the CONTROL file.  The phantom will check for the existence of this record during its polling cycle.  Phantom will terminate if this record ID is found in CONTROL.  (aka the Kill record)

phantomWait

If specified is the number of second the phantom will sleep when there are no records found in the queue before it will check the queue again.  Note, as long as records are present, the phantom will not sleep again until zero records are found in the queue directory.  Default is 5 seconds.

1/25/2018: on jBASE releases of BP Forms, you may optionally specify a unix/linux command to run instead of a numeric value for sleep.  For example, "sleep 2" and it will invoke the unix sleep command rather than using the jBASE JBC SLEEP function.   Using the *nix sleep command is preferred if your company routinely changes the system clock as it works more efficiently in these situations and prevents the phantom from sleeping for longer periods than specified.

postProcess

Implemented at release 4.2.1 (10/16/2025).  A command that will be issued after the document has rendered, and before it is moved or deleted.  You may use this to implement your own post processing hooks.  You make use the tokens %formId% and %verbose% within the command, and these will be expanded properly for the rendered document.

localTestPageDirective

A unix command to issued on the MultiValue host to place a test document into the queue directory.  Generally, you’ll copy a .odt file from the template directory to the queue directory and this will cause that document to print.

remote TestPageDirective

Not yet implemented

switches

-v{n} sets level of verbosity for log files where n is an optional integer indicating level of verbosity.

-f causes the BPI.PHANTOM.CONTROL definition record to be re-read each time the phantom reaches the top of its loop.  This allows the phantom to recognize changes made to the BPI.PHANTOM.CONTROL record while the phantom is running.  If this switch is not set, then the phantom must be stopped and restarted to cause the phantom to re-read its BPI.PHANTOM.CONTROL record.

 

Example BPI.FORM.PHANTOM.CONTROL record:

 

key=bpiform1
order=1
status=active
description=bpiform1 form print
account=MYACCOUNT
 
queuePath=/uddata/accts/BPIFORMS/bpi_forms/queue/bpiform1
archivePath=/uddata/accts/BPIFORMS/bpi_forms/archive/bpiform1/%filename%
ooServerAddress=192.168.001.001
user=bpiform1
remoteDefaultPrinter=Q0
remoteQueuePath=/mnt/prodserver.bpi_forms/queue/bpiform1
killSignal=/db/accts/BPIFORMS/BPI.CONTROL/KILL-FORMPHANTOM-%ident%
phantomWait=1

localTestPageDirective=!cp /uddata/accts/BPIFORMS/bpi_forms/templates/bluePrairieFormsTestPage.odt /uddata/accts/BPIFORMS/bpi_forms/queue/bpiform1/remotePrinter___bluePrairieFormsTestPage.odt

switches=-v1 -f

Note: Unless the -f switch is set, the phantom thread must be restarted (bounced) in order for changed parameters to take effect.