Plug-in Interfaces

Bank

Print Service

Print Group

MFD

SignUp Service

Billing
ChangePassword
ExternalLogon
Logon
Transfer
Alert
BillingName
CopyEndJob

CostJob
DeleteJob
FaxEndJob

ForwardJob
GetFaxJobCost
JobCostMethodSelection
JobInformation
MoveJob
PrintStartJob

PrintEndJob

PrintJob

PrintJobArrive

ScanEndJob

SelectPrinter
ShutDown
StartUp

Banner

GetMfdStatus

SelectEnvironment
SessionEnd

Descriptions of each Pharos plug-in are detailed below, both executable and scripted versions. The conventions are:

  • quotes delimit the argument and must be included. There cannot be any quotes in the argument itself
  • where angle brackets are used, data replaces both the enclosed words and the angle brackets. For example, "<pathname>" is replaced by "\\comp\drv\dir\file.type"
  • assume arguments are case sensitive where relevant, for example, billing type verb
  • monetary arguments are floating point values to four decimal places.
  • <sheet_count> arguments replace the <page_count> argument in versions of Uniprint earlier than 2.1, and are the number of sheets of paper a print job uses.
  • <page_count> arguments now give the number of pages (sides of paper) a print job uses.
  • <result_pathname> is taken as a first argument. This specifies a file to which results are written.

Result File

On termination the file specified by <result_pathname> should contain the following lines if successful:

  • OK; Plug-in success
  • <extra_return0> ; extra returns, if any
  • <extra_return1> ; extra returns, if any
  • ... ; etc

For example, a Billing Balance plug-in would return the following if everything was OK:

  • OK
  • 20.0 (being the balance)
  • Arrears (being the billing type)

If the operation failed, the file should contain the following lines:

  • FAIL ; Plug-in failure
  • <error_message> ; extra returns, if any

For example, a plug-in might return the following for an error :

  • FAIL
  • Guru meditation error (being reason for failure)

Pharos Script plug-in interface members are INPUT by default i.e. they are inputs to the script. When labeled OUTPUT they are to be set to meaningful values by the script. When labeled INPUT/OUTPUT they have meaningful default values that may be changed by the script.

Alert Plug-in

The Alert plug-in is called every time an entry is placed in the Alerts table of the Pharos database, immediately after the event is posted.

The executable is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file.
  • "<severity>" - integer; the severity of the problem. Info=10 Warning=20 Error=30 Fatal=40 . Fatal means that the current operation will be abandoned.
  • "<message>" - string; alert message. A message describing the problem.
  • "<operation>" - string; operation. The operation that was underway at the time the problem surfaced.
  • "<client_name>" - string; e.g. the Pharos Station or User PC that requested the operation which failed.
  • "<username>" - string; current/last job billee (or owner). The user who requested the operation that failed.
  • "<job_name>" - string; current/last job title e.g. 'untitled.txt'. The name of the print job that failed.

There are no extra returns and the plug-in returning failure has no effect.

One or more of these arguments may be blank if they are not relevant. For example, a purge queue request does not have an associated job name.

The "<client_name>" argument gives information about what caused the event. Each computer that connects to Pharos via a piece of Pharos software such as the Pharos Station, is given its own thread to manage all transactions. Any Alerts that are raised in that thread are labeled as owned by that workstation.

An example of the use of this is to use net send to forward any errors directly to the Administrator. The following batch file performs this:

------------alert.bat----------------

net send administrator %3

------------alert.bat----------------

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("Alert")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if Plug-in fails)
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.Severity int ; severity level: Info=10 Warning=20 Error=30 Fatal=40
  • PlugIn.Message string ; alert error message that will be logged to database
  • PlugIn.Operation string ; the operation attempted when the alert was raised
  • PlugIn.UserName string ; the user who initiated the operation (if any)
  • PlugIn.Item string ; operation relevant information (e.g. print job name)

Billing Plug-in

Billing plug-in programs are launched for passing billing transactions (Balance, Credit, Debit) to some external system. This plug-in is shared by multiple plug-in calls (Billing Balance, Billing Credit and Billing Debit).

The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file.
  • <billing_type_verb> - the Billing plug-in event type: the options are Credit, Balance or Debit.
  • ... - more arguments depending on the billing_type_verb

The billing_type_verb is case sensitive.

In situations where a Billing plug-in is being used by a Bank that is attached to a SignUp Server, if the Billing plug-in returns multiple subaccounts, the SignUp Server will display only the total, not the individual details.

A sample Billing script, Billing - Pharos Accounts Plus Online Accounts.txt, is available on the Pharos disk image at tools\plugins\scripts. This script works for Balance and Debit operations.

Billing Plug-in (Balance)

The Balance plug-in is called instead of internal database billing. The further arguments are:

  • Balance - string; billing transaction type verb.
  • "<username>" - string; the user whose balance is being checked.
  • "<client_desc>" - string; the External Name of the Pharos Station, e.g. its terminal ID code.

Extra returns:

  • <balance> - float; e.g. -0.0100.
  • <billing_option> - string; e.g. Arrears, Advance.
  • <balance_count> - int; e.g. 2 (optional)

If <balance_count> is greater than zero, then <balance_count> (e.g. 2) sections appears as below

  • <account_name_X> - string; e.g. Acct1 (optional)
  • <account_balance_X> - string; e.g. 0.0040 (optional)
  • <account_billing_option_X> - string; e.g. Arrears, Advance (optional)

If the plug-in returns failure the current operation may fail. The plug-in may facilitate an offline billing operation by returning:

  • FAIL
  • PHAROS_OFFLINE

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("Billing")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.ClientDesc string ; Pharos Station terminal ID code (i.e. its External Name)
  • PlugIn.EventType string ; billing event sub-type ("Balance")
  • PlugIn.Function string ; type of operation ("Any", "Print", "Computer", "Copy", "Custom", "Fax" or "Scan")
  • PlugIn.BillName string ; user account name
  • PlugIn.Balance float ; OUTPUT: set this to the account balance
  • PlugIn.BillingOption string ; OUTPUT: set this to "Arrears" (i.e. allow credit) or "Advance"
  • PlugIn.BalanceCount int; OUTPUT: the number of accounts in PlugIn.Accounts
  • PlugIn.Accounts string; OUTPUT: <name> <balance> <billing_option> fields occurring <PlugIn.BalanceCount> times (a newline is required between <name> and <balance>; <balance> and <billing_option> may be separated by a space)

Billing Plug-in (Credit)

The Credit plug-in is called instead of internal database billing. The further arguments are:

  • Credit - string; billing transaction type verb
  • "<username>" - string; the user whose account will be credited
  • <amount> - float; amount to credit e.g. 20.00
  • "<cashier_name>" - string; cashier doing transaction
  • "<datetime>" - string; either "NOW" or "YYYY/MM/DD-HH:MM:SS"

There are no extra returns and the current operation is aborted if plug-in returns failure. The plug-in may facilitate an offline billing operation by returning:

  • FAIL
  • PHAROS_OFFLINE

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("Billing")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.ClientDesc string ; Pharos Station terminal ID code (i.e. its External Name)
  • PlugIn.EventType string ; billing event sub-type ("Credit")
  • PlugIn.Function string ; type of operation ("Any", "Print", "Computer", "Copy", "Custom", "Fax" or "Scan")
  • PlugIn.BillName string ; user account name
  • PlugIn.Amount float ; amount to credit e.g. 20.00
  • PlugIn.StaffName string ; cashier etc doing credit
  • PlugIn.DateTime string ; either "NOW" (normal) or "YYYY/MM/DD-HH:MM:SS" (offline transaction)

Billing Plug-in (Debit)

The Debit plug-in is called instead of internal database billing and before internal print logging. The further arguments are:

  • Debit - string; billing transaction type verb
  • "<username>" - string; job billee if known, or null ("")
  • <amount> - float; amount to debit e.g. 0.1100
  • <usage_count_1> - int; PServer: job length in sheets; SServer: time in minutes
  • "<resource>" - string; PServer: destination printer; SServer: resource name
  • "<client_name>" - string; e.g. the Pharos Station, Pharos Remote Station or User PC that requested the operation
  • "<client_desc>" - string; the External Name of the Pharos Station, e.g. its terminal ID code.
  • <usage_count_2> - int; PServer: job length in pages; SServer: 0 (not used yet)
  • "<datetime>" - string; either "NOW" or "YYYY/MM/DD-HH:MM:SS"

There are no extra returns and the plug-in returning failure may fail the current operation. The plug-in may facilitate an offline billing operation by returning:

  • FAIL
  • PHAROS_OFFLINE

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("Billing")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.ClientDesc string ; Pharos Station terminal ID code (i.e. its External Name)
  • PlugIn.EventType string ; billing event sub-type ("Debit")
  • PlugIn.Function string ; type of operation ("Any", "Print", "Computer", "Copy", "Custom", "Fax" or "Scan")
  • PlugIn.Resource string ; PServer: destination printer; SServer: resource name
  • PlugIn.BillName string ; user account name
  • PlugIn.Usage1 int ; PServer: job length in sheets; SServer: time in minutes
  • PlugIn.Usage2 int ; PServer: job length in pages; SServer: 0 (not used yet)
  • PlugIn.Amount float ; amount to credit e.g. 20.0
  • PlugIn.DateTime string ; either "NOW" (normal) or "YYYY/MM/DD-HH:MM:SS" (offline transaction)
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobColorPages int ; number of color pages in job
  • PlugIn.JobSectionCount ; int, the number of different sections in the job
  • PlugIn.JobSections ; list, the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2...]],... Type is either "page" or sheet". Example: [2, "page", ["A5", "Mono"]], [2, "page", ["B5", "Mono"]], [1, "page", ["Letter", "Blank"]]
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobAttrs list ; list of job attribute strings e.g. ["A4", "PCL"]

BillingName Plug-in

The BillingName plug-in is called before the CostJob plug-in to allow the setting of a preferred person to pay for a print job. This plug-in is called only if internal billing is being used. The arguments are:

  • <result_pathname> - string; the pathname of the result file
  • <job_id> - int; job identifier
  • <sheet_count> - int; job length in sheets
  • "<queue>" - string; job spool queue name
  • "<printer>" - string; job destination printer
  • "<username>" - string; job billee
  • "<job_hostname>" - string; job source machine hostname
  • " <atr0,atr1...> " - string; space, job attributes (comma separated), space
  • "<job_pathname>" - string; job pathname
  • <page_count> - int; job length in pages

Extra returns:

  • "<username>" - string; new job billee

The print job is aborted if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("BillingName")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.Queue string ; job source queue
  • PlugIn.Printer string ; job destination printer
  • PlugIn.BillName string ; INPUT/OUTPUT: job billee - reset to change
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobPath string ; job spool file pathname
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobColorPages int ; number of color pages in job
  • PlugIn.JobSectionCount ; int, the number of different sections in the job
  • PlugIn.JobSections ; list, the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2...]],... Type is either "page" or sheet". Example: [2, "page", ["A5", "Mono"]], [2, "page", ["B5", "Mono"]], [1, "page", ["Letter", "Blank"]]
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobAttrs list ; list of job attribute strings e.g. ["A4", "PCL"]
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom).
  • PlugIn.Direct bool ; True if the job was printed to a queue in a Direct Printing print group

In order to use PlugIn.JobSections and PlugIn.JobSectionCount, you must create and configure the Page Stats registry value on the Page Counter.

A sample BillingName script, Billing Name - AddUser.txt, is available on the Pharos disk image at tools\plugins\scripts.

ChangePassword Plug-in

ChangePassword plug-in programs can be launched for changing passwords instead of using internal password changing. The ChangePassword plug-in allows an Administrator to configure their Pharos system to use external authentication such as Kerberos, UNIX or NT.

The ChangePassword plug-in is used to alter a User's password from within Pharos. It is called in two ways, depending on whether a User is changing their own password, or a Proctor is setting a User's password.

User Changing Own Password

When a User changes their own password (as can be done at a Pharos Station), the plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • "<username>" - string; account to change - the logon name of the user
  • "<old_password>" - string; old user password to check
  • "<new_password>" - string; new user password to set

There are no extra returns and the plug-in returning failure may affect the current operation.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("ChangePassword")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.EventType string ; change password sub-type ("User")
  • PlugIn.UserName string ; user account to change the password of
  • PlugIn.OldPassword string ; user's old password to verify
  • PlugIn.NewPassword string ; user's new password to set

Proctor Changing Users Password

When a user forgets their password, the Proctor (local Laboratory Administrator) can modify it on request. if the Pharos Administrator has allowed this type of operation.

The Proctor enters their own password (to ensure they have Proctor privileges) as well as the User's new password. If a plug-in is defined, it is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • proctor - string; password transaction type verb - case sensitive
  • "<staff_name>" - string; staff account
  • "<staff_password>" - string; staff account password to verify
  • "<username>" - string; account to change - logon name of user whose password is being set
  • "<new_password>" - string; new user password to set

There are no extra returns and the plug-in returning failure may affect the current operation.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("ChangePassword")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.EventType string ; change password event sub-type ("Staff")
  • PlugIn.UserName string ; user account to change the password of
  • PlugIn.NewPassword string ; user's new password to set
  • PlugIn.StaffName string ; staff account
  • PlugIn.StaffPassword string ; staff account password to verify

CopyEndJob Plug-in

CopyEndJob plug-in programs are launched when the debit transaction has been executed. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • "<error_message>" - string; message. A message describing the problem if an error occurred, " "
  • "<copier>" - string; Source of copied documents
  • "<username>" - string; job billee (or owner) - the owner of the job
  • <job_cost> - float; the job cost, calculated internally or by the CostJob plug-in, e.g. -0.2500
  • "<prints>" - int; job length in pages
  • "<jobtime>" - string ; time that the copy took place

There are no extra returns and an error is returned if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("CopyEndJob")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; INPUT/OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.ClientDesc string ; client description e.g. Pharos Station terminal ID code
  • PlugIn.Failed bool ; true if PrintJob failed (with error message in PlugIn.Error)
  • PlugIn.Direct bool ; true if job source queue is a direct queue
  • PlugIn.Copier string ; Source of copied documents
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.JobID int ; job identifier (always 0)
  • PlugIn.JobName string ; job title (always blank)
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobColorPages int ; number of color pages in job
  • PlugIn.JobSectionCount ; int, the number of different sections in the job
  • PlugIn.JobSections ; list, the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2...]],... Type is either "page" or sheet". Example: [2, "page", ["A5", "Mono"]], [2, "page", ["B5", "Mono"]], [1, "page", ["Letter", "Blank"]]
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobCost float ; cost of job
  • PlugIn.JobTime string ; time that the copy took place

CostJob Plug-in

This plug-in is called instead of the internal job costing scheme, before checking the User can afford the job, and before the PrintJob plug-in for a print job. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <job_id> - int; job identifier
  • <sheet_count> - int; job length in sheets
  • "<queue>" - string ; job source queue
  • "<username>" - string; job billee (or owner)
  • " <atr0,atr1...> " - string; space, job attributes (comma separated), space
  • "<job_name>" - string; job title e.g. untitled.txt
  • "<client_name>" - string; e.g. the Pharos Station, Pharos Remote Station or User PC that requested the operation
  • <page_count> - int; job length in pages
  • <cost> - float; default job cost (only needed when using an executable plug-in)
  • "<printgroup>" - string; job print group

Extra returns:

  • <job_cost> - float; e.g. -0.1100 (must be negative)

The print job is aborted if the plug-in returns failure.

Custom Charge jobs do not use the job costing model for print jobs. Costs for Custom Charge jobs are manually entered by an Operator or a Lab Admin in the Print Center. Therefore, JobInformation, JobCostMethodSelection, and CostJob plug-ins are not called for Custom Charge jobs. Release Stations (e.g. Terminal, PC Station) call the JCMSelection plug-in for custom charge jobs but ignore the results. For information on how plug-ins are called for custom charge jobs, refer to the About Plug-ins topic.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("CostJob")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.Queue string ; job source queue
  • PlugIn.PrintGroup string; job print group
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobName string ; job title e.g. "untitled.txt"
  • PlugIn.JobPath string ; job relative path
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobColorPages int ; number of color pages in job
  • PlugIn.JobSectionCount ; int, the number of different sections in the job
  • PlugIn.JobSections ; list, the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2...]],... Type is either "page" or sheet". Example: [2, "page", ["A5", "Mono"]], [2, "page", ["B5", "Mono"]], [1, "page", ["Letter", "Blank"]]
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobAttrs list ; list of job attribute strings e.g. ["A4", "PCL"]
  • PlugIn.JobCost float ; INPUT/OUTPUT: default job cost, as calculated by the Print Server
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom).
  • PlugIn.Direct bool ; True if the job was printed to a queue in a Direct Printing print group

In 8.2 and older versions, PlugIn.JobPath used to give information about the absolute path of the local spool file (e.g. C:\Windows\System32\spool\PRINTERS\0001.spl.. As of 8.3, it now gives the relative path to the Secure Release Service Job Store (e.g. user1\00000001-0000-0000-0000-000000000001.spl.).

In order to use PlugIn.JobSections and PlugIn.JobSectionCount, you must create and configure the Page Stats registry value on the Page Counter.

DeleteJob Plug-in

DeleteJob plug-in programs are launched just before a job is deleted. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <job_id> - int; job identifier
  • "<pathname>" - string; job pathname
  • "<queue>" - string; job spool queue

There are no extra returns and the delete is aborted if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("DeleteJob")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.Queue string ; job queue
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobPath string ; job spool file pathname
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom).
  • PlugIn.Direct bool ; True if the job was printed to a queue in a Direct Printing print group

ExternalLogon Plug-in

The ExternalLogon plug-in allows you to adjust certain user details based on what is received from an external source. For example, when a user logs in to Print Center through Single Sign-On(SSO) via a CAS system using their email address, their username may need to be adjusted to match the owning username on print jobs.

The ExternalLogon event is called by the Pharos API whenever a third-party system (e.g. CAS) authenticates a user, and returns a modified list of attributes to use for that user (e.g. to replace the email address with a regular username).

Pharos Script Plug-in Interface

  • PlugIn.UserDetails
  • PlugIn.MappedDetails

Pharos provides a default scripted plug-in PPC SSOAdjustUserInfoBeforeLogon.If the script is inadequate for your site, you can edit it at System > Scripts. This script enables Administrator, Cashier, and Proctor roles to have access to the administrative tabs and provides the ability to adjust the username of users who log in with an email address or with a UPN style login. The script is also available as a text file External Logon - Adjust user details before logging on to PrintCenter.txt on the Pharos disk image at tools\plugins\scripts.

FaxEndJob

FaxEndJob plug-in programs are launched when the transaction has been recorded. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • "<error_message>" - string; message. A message describing the problem if an error occurred, " "
  • "<terminalname>" - string; source of fax request
  • "<devicename>" - string; name of device
  • "<username>" - string; job billee (or owner) - the owner of the job
  • <job_cost> - float; the job cost, calculated internally or by the CostJob plug-in, e.g. -0.2500
  • "<pages>" - int; job length in pages
  • "<phonenumber>" - string;
  • "<receiver>" - string;
  • "<duration>" - int; time taken to send fax
  • "<jobtime>" - string ; time of copy took place

There are no extra returns and an error is returned if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("FaxEndJob")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; INPUT/OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.ClientDesc string ; client description e.g. Pharos Station terminal ID code
  • PlugIn.Failed bool ; true if PrintJob failed (with error message in PlugIn.Error)
  • PlugIn.TerminalName string ;
  • PlugIn.DeviceName string ;
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.FaxCost float ; cost of job
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.FaxNumber string ;
  • PlugIn.Receiver string ;
  • PlugIn.Duration int ;
  • PlugIn.JobTime string ; time that the fax job took place

ForwardJob Plug-in

ForwardJob plug-in programs are launched after the best printer has been selected for the job, and after Billing Debit is run but before PrintEndJob. The ForwardJob plug-in makes sure the header and the print job arrive at the printer together and sequentially, and no other print jobs arrive in between.

The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • "<client_name>" - string; e.g. the Pharos Station, Pharos Remote Station or User PC that requested the operation
  • "<queue>" - string; job spool queue
  • "<printer>" - string; destination printer - the printer selected to print the job
  • "<username>" - string; job billee (or owner) - the owner of the job
  • <job_id> - int; job identifier
  • "<pathname>" - string; job pathname
  • <banner_job_id> - int; banner job identifier (or '0' if none)
  • "<banner_pathname>" - string; banner job pathname (or " " if none)
  • "<job_name>" - string; job title e.g. 'untitled.txt'
  • <sheet_count> - int; job length in sheets
  • <page_count> - int; job length in pages
  • " <atr0,atr1...> " - string; space, job attributes (comma separated), space
  • <job_cost> - float; the job cost, calculated internally or by the CostJob plug-in, e.g. -0.2500

There are no extra returns and the print job is aborted if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("ForwardJob")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.ClientDesc string ; client description e.g. Pharos Station terminal ID code
  • PlugIn.Direct bool ; true if the job was printed to a queue in a Direct Printing print group
  • PlugIn.Queue string ; job source queue
  • PlugIn.Printer string ; job destination printer
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobName string ; job title e.g. "untitled.txt"
  • PlugIn.JobPath string ; job spool file pathname
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobColorPages int ; number of color pages in job
  • PlugIn.JobSectionCount ; int, the number of different sections in the job
  • PlugIn.JobSections ; list, the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2...]],... Type is either "page" or sheet". Example: [2, "page", ["A5", "Mono"]], [2, "page", ["B5", "Mono"]], [1, "page", ["Letter", "Blank"]]
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobAttrs list ; list of job attribute strings e.g. ["A4", "PCL"]
  • PlugIn.JobCost float ; job cost
  • PlugIn.BannerID int ; banner job identifier (in queue PlugIn.Printer)
  • PlugIn.BannerPath string ; banner job spool file pathname
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom).

In order to use PlugIn.JobSections and PlugIn.JobSectionCount, you must create and configure the Page Stats registry value on the Page Counter.

GetFaxJobCost Plug-in

The GetFaxJobCost Plug-in is currently only used by the Pharos EDI, when interfacing with external systems that count fax jobs. The Plug-in is called with the following arguments:

  • <terminal_name> - string; name of the device the fax is sent through
  • <user_id> - string; owner of the fax job
  • <code> - string; pipe-delimited list of cost center(s) to charge the job to
  • <pages> - int; number of pages in the fax job
  • <phone_number> - string; number of the fax machine sending the fax
  • <receiver> - string; identifier of the machine receiving the fax (usually a phone number)
  • <duration> - int; duration of the fax job in seconds

Extra returns:

  • <cost> - double; the cost of the fax job

Pharos Script Plug-in Interface

  • PlugIn.TerminalName string; name of the device the fax is sent through
  • PlugIn.UserName string; owner of the fax job
  • PlugIn.Code string; pipe-delimited list of cost center(s) to charge the job to
  • PlugIn.JobPages int; number of pages in the fax job
  • PlugIn.PhoneNumber string; number of the fax machine sending the fax
  • PlugIn.Receiver string; identifier of the machine receiving the fax
  • PlugIn.Duration int; duration of the fax job in seconds
  • PlugIn.JobCost double; OUTPUT: cost of job

GetMfdStatus Plug-in

GetMfdStatus plug-in programs are launched to detect the status of an MFD, specifically whether it is printing. This plug-in is attached to individual MFDs at Devices > MFD tab. Pharos provides a default GetMfdStatus scripted plug-in, GetMfdStatusUsingLPD. This script works for most MFDs; however, if the script is inadequate for MFDs on the site, it can be edited at System > Scripts. See MFD Troubleshooting for information on how to edit this script.

The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <mfd> - string; the name of the MFD whose status is required
  • <mfd_ip> - string; the IP address (or hostname) of the MFD whose status is required

Extra returns:

  • "<mfd_status_num>" - int; the status of the MFD, for example, -1 (error), 0 (idle), 1 (printing)

The MFD will be considered in an error state if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("GetMfdStatus")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.Mfd string ; the name of the MFD whose status is required
  • PlugIn.MfdIp string ; the IP address (or hostname) of the MFD whose status is required
  • PlugIn.Status int ; INPUT/OUTPUT: the status of the MFD, for example, -1 (error), 0 (idle), 1 (printing) (default is -1, i.e. error)

 

JobCostMethodSelection Plug-in

The JobCostMethodSelection plug-in allows overriding the internal Job Cost Method and the selection of Job Cost Method. This plug-in is called after SelectPrinter is run, but before CostJob plug-in.

The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file

Pharos Script Plug-in Interface

  • PlugIn.Queue string ; job source queue
  • PlugIn.PrintGroup
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.Printer string ; optional, available when releasing a job via a Print Station or during a costing call from Print Center
  • Plugin.PrintStation string ; optional, only available when releasing a job via a Print Station
  • Plugin.JobCostMethod ; INPUT/OUTPUT: alternative Job Cost Method if required
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobAttrs list ; list of job attribute strings, e.g. [A4, PCL]
  • PlugIn.JobSectionCount int ; the number of different sections in the job
  • PlugIn.JobSections list ; the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2, ...]], ... Type is either page or sheet. Example: [2, page, [A5, Mono]], [2, page, [B5, Mono]], [1, page, [Letter, Blank]]
  • PlugIn.JobColorPages int ; number of color pages in job
  • PlugIn.Direct bool ; True if the job was printed to a queue in a Direct Printing print group

The plugin should set Plugin.Result as true or false to indicate success or failure, on failure the Plugin.Error value is used as error response.

Custom Charge jobs do not use the job costing model for print jobs. Costs for Custom Charge jobs are manually entered by an Operator or a Lab Admin in the Print Center. Therefore, JobInformation, JobCostMethodSelection, and CostJob plug-ins are not called for Custom Charge jobs. Release Stations (e.g. Terminal, PC Station) call the JCMSelection plug-in for custom charge jobs but ignore the results. For information on how plug-ins are called for custom charge jobs, refer to the About Plug-ins topic.

JobInformation Plug-in

JobInformation programs are launched to display information about a job to the user. The JobInformation plug-in allows you to customize the operation of the Informed Print feature. If a JobInformation plug-in is in use, the Informed Print settings configured on the Uniprint Global Settings dialog will be ignored.

The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <job_id> - int; job identifier
  • <job_name> - string; job title, e.g. untitled.txt
  • <job_cost> - float; job cost
  • <queue> - string; job Spool Queue
  • <printer> - string; destination printer - the printer selected to print the job
  • <username> - string; job billee (or owner)
  • <user_group> - string; user group of the job billee
  • <user_balance> - float; current balance of the job billee
  • <sheet_count> - int; job length in sheets
  • <page_count> - int; job length in pages
  • <page_count_color> - int; number of color pages in job
  • <application_name> - string; name of application that printed the job, e.g. Word
  • <atr0, atr1, ...> - string; space, job attributes (comma separated), space

There are no extra returns and the print job is canceled if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name (JobInformation)
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobName string ; job title, e.g. untitled.txt
  • PlugIn.JobPath string ; job spool file pathname
  • PlugIn.JobCost float ; job cost
  • PlugIn.Queue string ; job source queue
  • PlugIn.Printer string ; destination printer the printer selected to print the job
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.UserGroup string ; user group of the job billee
  • PlugIn.UserBalance float ; current balance of the job billee
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobColorPages int ; number of color pages in job
  • PlugIn.ApplicationName string ; name of application that printed the job, e.g. Word
  • PlugIn.JobSectionCount int ; the number of different sections in the job
  • PlugIn.JobSections list ; the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2, ...]], ... Type is either page or sheet. Example: [2, page, [A5, Mono]], [2, page, [B5, Mono]], [1, page, [Letter, Blank]]
  • PlugIn.JobAttrs list ; list of job attribute strings, e.g. [A4, PCL]
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom).
  • PlugIn.Direct bool ; True if the job was printed to a queue in a Direct Printing print group

A sample JobInformation script, JobInformation - Notify User of Job Cost.txt, is available on the Pharos CD at tools\plugins\scripts.

Custom Charge jobs do not use the job costing model for print jobs. Costs for Custom Charge jobs are manually entered by an Operator or a Lab Admin in the Print Center. Therefore, JobInformation, JobCostMethodSelection, and CostJob plug-ins are not called for Custom Charge jobs. Release Stations (e.g. Terminal, PC Station) call the JCMSelection plug-in for custom charge jobs but ignore the results. For information on how plug-ins are called for custom charge jobs, refer to the About Plug-ins topic.

Logon Plug-in

Logon plug-in programs are launched to validate passwords, and replace internal database logon validation. The Logon plug-in allows an Administrator to configure their Pharos system to use external authentication such as Kerberos, UNIX or NT.

When using a Logon plug-in, the active/inactive account feature in the Users context of Pharos Administrator and Pharos Remote will not work. To lock a user out of the Pharos system, the account that the plug-in checks will need to be disabled, e.g. If the NT Logon plug-in is being used, the user's NT account must be disabled to stop them from using Pharos.

Five sample Logon scripts, Logon - Authenticate and Translate Users.txt, Logon - Generic Innovative.txt , Logon - Generic SIP2.txt , Logon - Print Center.txt, and Logon - SIRSI SIP2.txt are available on the Pharos disk image at tools\plugins\scripts.

The Logon plug-in program is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • "<level>" - string; the requested access level e.g. User, Proctor, Cashier, or Administrator. Access levels have been replaced with roles beginning with 8.2. However, this argument remains for backward compatibility.
  • "<username>" - string; account to check - logon name of the User
  • "<password>" - string; password to check
  • "<source>" - string; Source of the identity input. Potential values could be CardReader, Keyboard, Unknown (if the source cannot be identified), etc.

Extra returns:

  • "<new_username>" - string ; new account name for billing purposes

The extra return is optional, and if omitted the username does not change.

Pharos provides a default scripted plug-in PPC Authentication Logon script. This script is used to validate username, UPN style login, or guest accounts via Active Directory or LDAP. The script is also available as a text file Logon - Print Center.txt on the Pharos disk image at tools\plugins\scripts.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("Logon")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.UserName string ; INPUT/OUTPUT: user account to check (replacement account name, if changed)
  • PlugIn.Password string ; user's password to check
  • PlugIn.Level string ; e.g. "User", "Cashier", "Proctor" or "Administrator"
  • PlugIn.Source string; Source of the identity input, such as CardReader, Keyboard,Unknown (if the source cannot be identified), etc.
  • PlugIn.BankName string, the name of the Bank

MoveJob Plug-in

The MoveJob plug-in is called before a print job is moved. It is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <job_id> - int; job identifier
  • <sheet_count> - int; job length in sheets
  • "<job_pathname>" - string; job pathname
  • "<source_printgroup>" - string; source print group
  • "<dest_printgroup>" - string; destination print group
  • "<staff_name>" - string; staff doing move
  • "<username>" - string; job owner
  • " <atr0,atr1...> " - string; space, job attributes (comma separated), space
  • <page_count> - int; job length in pages

There are no extra returns and the MoveJob is aborted if the plug-in returns failure.

The sheet_count and <page_count> arguments will be 0 when moving a job to a queue that has no attributes (i.e. takes all jobs) because no page count occurs.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("MoveJob")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.ServerTo string ; the name of the server (always empty)
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.PrintGroupFrom string; job source print group
  • PlugIn.PrintGroupTo string; job destination print group
  • PlugIn.StaffName string ; staff doing move
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobName string ; job title e.g. "untitled.txt"
  • PlugIn.JobPath string ; job spool file pathname
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobColorPages int ; number of color pages in job
  • PlugIn.JobSectionCount ; int, the number of different sections in the job
  • PlugIn.JobSections ; list, the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2...]],... Type is either "page" or sheet". Example: [2, "page", ["A5", "Mono"]], [2, "page", ["B5", "Mono"]], [1, "page", ["Letter", "Blank"]]
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobAttrs list ; list of job attribute strings e.g. ["A4", "PCL"]
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom).

In order to use PlugIn.JobSections and PlugIn.JobSectionCount, you must create and configure the Page Stats registry value on the Page Counter.

PrintStartJob

PrintStartJob programs are launched at the start of a print operation before any other plug-in. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <job_id> - int; job identifier
  • "<pathname>" - string; job pathname
  • "<queue>" - string; job spool queue
  • "<username>" - string; job billee (or owner) - the owner of the job

There are no extra returns and the print job is aborted if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("PrintStartJob")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.Cancel bool ; INPUT/OUTPUT: true to silently abort print (default is false)
  • PlugIn.Direct bool ; true if the job was printed to a queue in a Direct Printing print group
  • PlugIn.Queue string ; job source queue
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobName string ; job title e.g. "untitled.txt"
  • PlugIn.JobPath string ; job spool file pathname
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom)

PrintEndJob

PrintEndJob plug-in programs are launched after the ForwardJob plug-in. This is the last event of a print job. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <direct> - int; '1' if a direct queue, '0' otherwise
  • "<error_message>" - string; message. A message describing the problem if an error occurred, " "
  • "<source_ip>" - string; IP Address of job source machine, or " "
  • "<queue>" - string; job spool queue
  • "<printer>" - string; destination printer - the printer selected to print the job
  • "<username>" - string; job billee (or owner) - the owner of the job
  • "<job_name>" - string; job title e.g. 'untitled.txt'
  • <job_cost> - float; the job cost, calculated internally or by the CostJob plug-in, e.g. -0.2500

There are no extra returns and an error is returned if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("PrintEndJob")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; INPUT/OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.ClientDesc string ; client description e.g. Pharos Station terminal ID code
  • PlugIn.Failed bool ; true if PrintJob failed (with error message in PlugIn.Error)
  • PlugIn.Direct bool ; true if the job was printed to a queue in a Direct Printing print group
  • PlugIn.Queue string ; job source queue
  • PlugIn.Printer string ; job destination printer (if any)
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobName string ; job title e.g. "untitled.txt"
  • PlugIn.JobPath string ; job spool file pathname
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobColorPages int ; number of color pages in job
  • PlugIn.JobSectionCount ; int, the number of different sections in the job
  • PlugIn.JobSections ; list, the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2...]],... Type is either "page" or sheet". Example: [2, "page", ["A5", "Mono"]], [2, "page", ["B5", "Mono"]], [1, "page", ["Letter", "Blank"]]
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobAttrs list ; list of job attribute strings e.g. ["A4", "PCL"]
  • PlugIn.JobCost float ; cost of job
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom).

A sample PrintEndJob script, PrintEndJob - Notify Users.txt, is available on the Pharos disk image at tools\plugins\scripts.

PrintJob Plug-in

PrintJob plug-in programs are launched just before a job prints and before the banner is printed. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <job_id> - int; job identifier
  • <sheet_count> - int; job length in sheets
  • <job_cost> - float; the job cost, calculated internally or by the CostJob plug-in, e.g. -0.2500
  • "<pathname>" - string; job pathname
  • "<queue>" - string; job spool queue
  • "<printer>" - string; destination printer - the printer selected to print the job
  • "<username>" - string; job billee (or owner) - the owner of the job
  • " <atr0,atr1...> " - string; space, job attributes (comma separated), space
  • <page_count> - int; job length in pages

There are no extra returns and the print job is aborted if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("PrintJob")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.ClientDesc string ; client description e.g. Pharos Station terminal ID code
  • PlugIn.Direct bool ; true if the job was printed to a queue in a Direct Printing print group
  • PlugIn.Queue string ; job source queue
  • PlugIn.Printer string ; job destination printer (if any)
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobName string ; job title e.g. "untitled.txt"
  • PlugIn.JobPath string ; job spool file pathname
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobSectionCount ; int, the number of different sections in the job
  • PlugIn.JobSections ; list, the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2...]],... Type is either "page" or sheet". Example: [2, "page", ["A5", "Mono"]], [2, "page", ["B5", "Mono"]], [1, "page", ["Letter", "Blank"]]
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobAttrs list ; list of job attribute strings e.g. ["A4", "PCL"]
  • PlugIn.JobCost float ; cost of job
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom).
  • PlugIn.JobColorPages int; number of color pages in job

Support for PrintJob.Copy() to copy MobilePrint jobs

Starting with Uniprint 9.1 SP3, MobilePrint jobs can be copied using the PrintJob.Copy() in scripts. The following shows an example script to copy MobilePrint jobs:

import "IO";
import "PrintJob";
new CopiedJobID = "";
if (PlugIn.JobType == "MobilePrint")
{
IO.PrintLine("MobilePrint job found: " + PlugIn.Queue + " ,JobId: " + PlugIn.JobID + " and UserName: " + PlugIn.UserName);
if (PlugIn.UserName == "xyz")
{
IO.PrintLine("Print job owner matches username so forward to direct queue QueueDirectPrint");
PrintJob.Copy(PlugIn.Queue, PlugIn.JobID, "QueueDirectPrint"); }
}

When copying MobilePrint jobs, specifying the destination queue determines the destination Print Group. The source queue is ignored but it appears in alert messages if the destination queue name is not an existing Queue.

In order to use PlugIn.JobSections and PlugIn.JobSectionCount, you must create and configure the Page Stats registry value on the Page Counter.

A sample PrintJob script, PrintJob - Fail Large Jobs.txt , is available on the Pharos CD at tools\plugins\scripts.

PrintJobArrive Plug-in

PrintJobArrive plug-ins are launched when a Spooled print job arrives at a Spool Queue. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <job_id> - int; job identifier
  • "<pathname>" - string; job pathname
  • "<queue>" - string; job spool queue
  • "<username>" - string; job billee (or owner) - the owner of the job

There are no extra returns and the print job is aborted if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("PrintJobArrive")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Cancel bool ; OUTPUT: if true then cancel the print job
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Computer string ; the name of the print server where the Secure Release Service runs
  • PlugIn.Queue string ; job source queue
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.JobPassword string ; Popup password for job
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobName string ; job title e.g. "untitled.txt"
  • PlugIn.JobPath string ; job spool file pathname
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom)
  • PlugIn.Direct bool ; True if the job was printed to a queue in a Direct Printing print group

ScanEndJob

ScanEndJob plug-in programs are launched when the transaction has been recorded. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • "<error_message>" - string; message. A message describing the problem if an error occurred, " "
  • "<terminalname>" - string; source of fax request
  • "<devicename>" - string; name of device
  • "<username>" - string; job billee (or owner) - the owner of the job
  • <job_cost> - float; the job cost, calculated internally or by the CostJob plug-in, e.g. -0.2500
  • "<pages>" - int; job length in pages
  • "<pagesize>" - string;
  • "<scantype>" - string;
  • "<jobtime>" - string ; time of copy took place

There are no extra returns and an error is returned if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("ScanEndJob")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; INPUT/OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.ClientDesc string ; client description e.g. Pharos Station terminal ID code
  • PlugIn.Failed bool ; true if PrintJob failed (with error message in PlugIn.Error)
  • PlugIn.TerminalName string ;
  • PlugIn.DeviceName string ;
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.ScanCost float ; cost of job
  • PlugIn.Pages int ; job length in pages
  • PlugIn.PageSize string ;
  • PlugIn.ScanType string ;
  • PlugIn.JobTime string ; time that the scan job took place

SelectEnvironment Plug-in

The SelectEnvironment plug-in is called before a patron is logged on to a SignUp Client, to determine the Environment that will be used to log the Patron on to the network. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <pc_name> - string; the network name of the SignUp Client the Patron is logging on to
  • "<logon_id>" - string; the Patron who is trying to log on to the SignUp Client

Extra returns:

  • "<environment>" - string; the name of the Environment to use

If the plug-in returns failure, or if it returns an Environment that does not exist, the Client will go into standalone mode, and the user will be logged on with the default Environment.

If you are using this plug-in, make sure that a default Environment that will work on all machines is available in case of failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("SelectEnvironment")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Client string ; the network name of the SignUp Client the Patron is logging on to
  • PlugIn.UserName string ; the Patron who is trying to log on to the SignUp Client
  • PlugIn.Environment string ; OUTPUT: the name of the Environment to use

SelectPrinter Plug-in

SelectPrinter plug-in programs are launched after the best printer has been internally selected for the job, and after PageCountJob is run but before BillingName. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <job_id> - int; job identifier
  • "<pathname>" - string; job pathname
  • <sheet_count> - int; job length in sheets
  • <page_count> - int; job length in pages
  • " <atr0,atr1...> " - string; space, job attributes (comma separated), space
  • "<client_name>" - string; e.g. the Pharos Station, Pharos Remote Station or User PC that requested the operation
  • "<queue>" - string; job spool queue
  • " <ptr0,ptr1...> " - string; space, comma separated printer list, space
  • "<best_printer>" - string; best internally selected printer, for example, 'p1'

Extra returns:

  • "<new_best_printer>" - string; replacement best printer, for example, 'p1'

The print job is aborted if the plug-in returns failure.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("SelectPrinter")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Operation string ; the operation attempted when the plug-in was executed
  • PlugIn.Server string ; the name of the server
  • PlugIn.Client string ; the name of the client (if any, e.g. Pharos Station)
  • PlugIn.ClientDesc string ; client description e.g. Pharos Station terminal ID code
  • PlugIn.Direct bool ; true if the job was printed to a queue in a Direct Printing print group
  • PlugIn.Queue string ; job source queue
  • PlugIn.LoadOption string ; "Fast" (choose fastest printer) or "Even"
  • PlugIn.Printer string ; INPUT/OUTPUT: job destination printer (if any) - reset to change
  • PlugIn.Printers list ; list of valid printers e.g. ["P1", "P2"]
  • PlugIn.UserName string ; job billee (or owner)
  • PlugIn.JobID int ; job identifier
  • PlugIn.JobName string ; job title e.g. "untitled.txt"
  • PlugIn.JobPath string ; job spool file pathname
  • PlugIn.JobPages int ; job length in pages
  • PlugIn.JobColorPages int ; number of color pages in job
  • PlugIn.JobSectionCount ; int, the number of different sections in the job
  • PlugIn.JobSections ; list, the details of the sections in the format [Pagecount, Type, [Attribute1, Attribute2...]],... Type is either "page" or sheet". Example: [2, "page", ["A5", "Mono"]], [2, "page", ["B5", "Mono"]], [1, "page", ["Letter", "Blank"]]
  • PlugIn.JobSheets int ; job length in sheets
  • PlugIn.JobAttrs list ; list of job attribute strings e.g. ["A4", "PCL"]
  • PlugIn.JobType; determines the type of job (e.g. Native, MobilePrint, or Custom)

In order to use PlugIn.JobSections and PlugIn.JobSectionCount, you must create and configure the Page Stats registry value on the Page Counter.

Two sample SelectPrinter scripts, SelectPrinter - Redirect Large Job.txt and SelectPrinter - Allow user to select a printer.txt, are available on the Pharos CD at tools\plugins\scripts.

SessionEnd Plug-in

SessionEnd plug-ins are launched when a session ends on a SignUp Client PC. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file
  • <pc_name> -string; the network name of the SignUp client machine
  • "<logon_id>" - string; the user 's logon ID
  • "<userverified>" - int; 1- user successfully authenticated
  • "<reservation_id>" - int; the ID of the reservation
  • "<start_time>" - string; the start time of the session in the format of  "%Y/%m/%d-%H:%M:%S"
  • "<duration>" -int; the duration in minutes of the reservation
  • "<reservation_type>" - int; the type of the reservation: ImmediateReservation = 1, QueuedReservation = 2, ScheduledReservation = 4, BlockReservation = 8
  • "<sessionend_type>" -int; the end type of the session; 0- the sesion is normally ended, 1- the session is timed out, 2- the session is hijacked by administrator, 3- the session is hijacked by librarian
  • "<is_express>" -int; 1- express session
  • "<is_stored>" -int; 1- a stored session

There are no extra returns.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("SessionEnd")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.PcName string; the network name of the SignUp client machine
  • PlugIn.LogonId string; the user 's logon ID
  • PlugIn.UserVerified bool; true - user successfully authenticated
  • PlugIn.ReservationId int; the ID of the reservation
  • PlugIn.StartTime string; the start time of the session in the format of  "%Y/%m/%d-%H:%M:%S"
  • PlugIn.Duration int; the duration in minutes of the reservation
  • PlugIn.ReservationType int; the type of the reservation; ImmediateReservation = 1,  QueuedReservation    = 2,  ScheduledReservation  = 4, BlockReservation  = 8
  • PlugIn.SessionEndType int; the end type of the session; 0- the sesion is normally ended, 1- the session is timed out, 2- the session is hijacked by administrator, 3- the session is hijacked by librarian
  • PlugIn.IsExpress bool ; true - express session
  • PlugIn.IsStored bool ; true - a stored session

ShutDown Plug-in

ShutDown plug-in programs are launched during the shutdown of Pharos services. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file

If the plug-in returns a failure it has no effect i.e. shutdown proceeds.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("ShutDown")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Server string ; the name of the server

StartUp Plug-in

StartUp plug-in programs are launched during the startup of Pharos services. The plug-in is called with the following arguments:

  • <result_pathname> - string; the pathname of the result file

Startup is aborted if the plug-in returns failure i.e. shutdown occurs.

Pharos Script Plug-in Interface

  • PlugIn.Event string ; Plug-in event name ("StartUp")
  • PlugIn.Result bool ; INPUT/OUTPUT: Plug-in result (default is true, i.e. success)
  • PlugIn.Error string ; OUTPUT: Plug-in error message (if plug-in fails)
  • PlugIn.Server string ; the name of the server

Transfer Plug-in

Transfer plug-in programs are launched when a funds transfer is requested. The plug-in is called with the same arguments as the Billing Plug-in.

Related Topics Link IconRelated Topics