Original question: This database functionality would open up new possibilities. For example, a client wanted to have a way where he could force all users to use private jobs on their LaserJets. This could be achieved by encapsulating the jobs with the required PJL statements. The PIN code for each user could be retrieved from a database and be freely changed by users on the intranet.

Answer:

1. Create a .dbf database (e.g. with DBF Commander) with minimum 2 fields. Let us name them here USERNAME and PIN_FIELD. Both fields are of type string, the PIN_FIELD is length 4 and the USERNAME what ever you need. The file could be located in the Workpath folder (default: c:\ProgramData\WELP) named PIN.DBF

Add several user logon names in to the field on and any pin number into field 2.

2. Setup the following items in the convert.ini command file.

[GLOBAL]

; As every job is subject to be private, we put the database function into the section global

DB_Open=c:\ProgramData\WELP\PIN.DBF

; The first USERNAME is the name of the database field. ELP will search all records for the content of the general available ELP variable #USERNAME#. This term has to

; be in double quotes, because ELP will replace the variable before the database search starts. So actually the database search term will be: USERNAME="THOMASXP"

DB_Locate=USERNAME="#USERNAME#"

; If the record is found, read the content from the field PIN_FIELD and store the term into the searchable ELP variable #UserPinVariable#

DB_Variable=PIN_FIELD:#UserPinVariable#

; As those commands are in the section global, ELP evaluates that before the first byte of the data stream is read. So search and insert can be used

 

[Insert the PIN into the data stream]

; well, the best place to put that pin information in to the data stream is right before the enter language PJL command

Search_Binary=@PJL ENTER LANGUAGE

; if found, enter the PJL commands for storing the data stream as a private job on the harddisk

; NOTE the next 3 lines should be all in one line, for better reading, I spread them!!!

Insert_Binary=@PJL SET HOLD=ON\x0A@PJL SET HOLDTYPE=PRIVATE\x0A@PJL SET HOLD KEY="#UserPinVariable#"\x0A@PJL SET USERNAME="#USERNAME#"\x0A@PJL SET JOBNAME="ELP_JOB"\x0A

Several notes

  • Another solution is also ELP's MyPrintArchive function
  • If the database search information can't be evaluated at the beginning of the job, OUT_Search commands have to be used to insert the additional data
  • The database text contains any other information which need to be printed, then you may put the variable direct into the data stream or into a macro/form

Example: Insert private PIN/Mailbox to store the job on the printers hard disk

 

Related articles: Rules theory, Rule assistant, Add key to rule