newsletter - Pretty Good Consulting Group, LLC

advertisement
Spring, 2013
Ordering EOM 10.0 PDF Writer, Got an Audit?, File Masking review.
Winter, 2013
PostNet vs IMB January 28th, EOM 10.0 release highlights.
Fall, 2012
The EOMConfigAnalyzer program (take 2), printing to Xerox printers via TCP, handling CSV
files, email address as UserTags.
Summer, 2012
The EOMConfigAnalyzer program, handling Base64 files, removing blank lines in data files.
Spring, 2012
The DemoLibrary.xml file, LVR Batch input, creating flat file output, EOMPrintRecordsService.
Winter, 2012
EOM 9.1 Highlights, Column ranges in DDA Item definitions, How to feed the Web Assitant, a
quick look at Android & iPad printing.
Fall, 2011
Using Windows to compose/TCP printer to send, Master of the Universe DDA, programmatic
interfaces to EOM.
Summer, 2011
Printing from Windows applications, DDA Tip, Sending SMS messages, PDF creation software
- Take Two.
Spring, 2011
EOM 9.0 highlights, IMB/Postnet font size, dynamic data placement with DDA, PDF creation
software options.
Fall, 2010
Use DDA for dynamic barcodes, the EOM INF file and how you may be able to use it,
migration strategies.
Late Summer, 2010
How to replace JetForms with EOM, using the DDA system defined variable to pass a form
name, a couple of notes on PDF creation, printing from the web.
EarlySummer, 2010
An SAS external notification device, EOM 8.1 feature: IMAP receive.
Winter, 2009
EOM 8.1 features: Custom Job management & creating TIF files, using EOM to create files for
Excel.
How Custom Jobs helped replace Spin-X and solved a barcode issue, how to have more than
one version of EOM on the same PC/Server, some ideas on how to notify someone when a file
is printed.
The Backup Job, how to create EOM electronic overlays from Federal & State PDF forms,
upcoming Interim Corrections.
Fall, 2009
Using User Defined Variables to place data, an issue with example Custom Jobs on Windows
2003, how to use HTTP in EOM, right-justify data using DDA.
Summer, 2009
Printing with a MICR font, Email PDF files, Save some money with EOM.
June, 2009
Running EOM as a desktop application, File Expiration Search, basic email
May, 2009
What does “Transpromo” mean? DDA Data Output Off/On, processing Excel files
with EOM (Transform Job and slick Form File Utility feature).
April, 2009
Check printing fonts, sending HTML email with the Transform Job, creating TIFFs.
March, 2009
DDA Convert Variable, EOM 8.0 feature, ordering EOM 8.0.
February, 2009
DDA Queue Print Attribute, how to configure an Alert Policy.
January, 2009
EOM 8.0 features, DDA Display Variable, migration issues.
November, 2008
Merging check images with monthly statement, DDA's Draw Rectangle, using signature files,
and F3 ProDesigner.
October, 2008
Clever use of the DDA Start Job feature, DDA Call Item, and “feeding” EOM from Windows
applications.
September, 2008
Keyword substitution (part 2), clearing a hung printer, and EOM MCP notes.
August, 2008
Keyword substitution, EOM backup/disaster discussion, DDA Get User Input command, and
the EOM Administrator.
July, 2008
EOM backup, handing different data file formats, remove lines with DDA.
June, 2008
Electronic forms, user-defined variables.
May, 2008
Covers the USPS Intelligent Barcode, DDA Print Immediate feature, watermarks.
Spring, 2010
Late Winter, 2010
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
We create solutions.
EOM News and Views
Issue 1, May 2008
Intelligent Mail Barcode
EOM Interim Correction 7.1.6 supports the USPS
Intelligent Mail® barcode via the DDA Print
Barcode command. The new USPS Intelligent
Mail® barcode encodes 31 characters of
information into a 65 vertical bar barcode. One
of the first things you will notice about this
barcode is that the vertical bars are not aligned
on the top or bottom of each bar. The 31
characters is divided into a Tracking Code (20
characters) and Routing Code (0 to 11
Intelligent Barcode..............1
DDA Feature..................................1
How do I...? ................................... 2
Quick Hits....................................... 3
Who are we? ............................ 3
Contact information ........ 3
Mr. Output Manager
Manager, Output Products
1234 Printer Way
Pdfville, WA 12345-6789
characters). The Tracking Code is divided into
Barcode identifier, Service Type Identifier, Mailer
Identifier, and a customer defined Serial Number.
The Routing Code is the ZIP Code (0, 5, 9, or
11 characters).
There is some latitude on where to print the
USPS Intelligent Mail® barcode. The USPS
website
http://ribbs.usps.gov/OneCodeSolution
has the details.
DDA Feature (you may not know about)
At first glance the number of DDA commands
seems, well, rather unimpressive. However, there
are many options within each DDA command that
rapidly expand DDA capabilities.
One such
option is "Print Immediate" within the Print
Data”DDA command when using the “"Wrap the
text"” option. Wrapping text within a Form File
Utility field is nothing new, nor is simply
wrapping within user defined height and width.
But when paired with the “Print Immediate option
it becomes a powerful way to change the
appearance of text on a line or within a wrapped
area.
For example, suppose you have static text for a
sentence where dynamic data needs to be inserted
and highlighted. Using a combination of Print
Data commands you would:
“ "Your total due this month is"
“ Print Immediate=False
Add bold, underline
“ $CurrentData 1-7”
Print Immediate=False
Remove bold, underline
“ ", which must be paid immediately."
Print Immediate=True
This DDA command sequence produces:
, which
Your total due this month is
must be paid immediately.
Note that this technique works on individual lines
as well as wrapped areas.
How do I ...?
An electronic watermark for output is an image or pattern on a document that typically appears lighter than the rest of the text
of the document. Electronic watermarks are used for a variety of reasons including corporate identification, dating of the
document, define security level of the document, copyright protection, and more.
There are multiple ways to add watermarks to your output via EOM. We will briefly look at three methods, two of which require
the Data Dependent Attribute (DDA) feature. Clearly there are multiple variations on how to produce the end result.
: Simple electronic form
The easiest way to add a watermark to your document is to utilize EOM’’'s electronic form capability. The steps are as follows:
1) Create the electronic form (Word, Serif PagePlus, ...) with the image or text positioned on the form to match the intended
placement on the output page.
2) Create either a Windows Metafile (.WMF or .EMF), a Form File Utility form (.DFF) or a PCL stream which is then
processed with the PCLPack utility.
3) Configure the form in an EOM Print Attribute. If the form is a .WMF, .EMF, or .DFF then you define the Print Attribute
/ Command Files / Top of Page command file to reference your form. If you created a PCL form (type Automatic), then
you define the Print Attribute / Command Files / Data command file to reference the PCL macro. When this Print Attribute
is used, the form (watermark) is placed on every page.
NO WARRANTIES OF ANY NATURE ARE EXTENDED BY THIS DOCUMENT. An y p r o d u ct o r r elat ed in f o r m at io n
d escr ib ed h er ein is o n ly f u r n ish ed p ur su an t an d su b ject t o t h e t er m s an d co n d it io n s o f a d u ly execu t ed ag r eem en t t o
p u r ch ase o r lease eq u ip m en t o r t o licen se so f t w ar e. Th e o n ly w ar r an t ies m ad e b y Un isys, if an y, w it h r esp ect t o t h e
p r o d u ct s d escr ib ed in t h is d o cu m en t ar e set f o r t h in su ch ag r eem en t . Un isys can n o t accep t an y f in an cial o r o t h er
r esp o n sib ilit y t h at m ay b e t h e r esult o f yo u r u se o f t h e in f o r m at io n in t h is d o cu m en t o r so f t w ar e m at er ial, in clu d in g
d ir ect , sp ecial, o r co n seq u en t ial d am ag es.
Yo u sh o uld b e ver y car ef u l t o en su r e t h at t h e u se o f t h is in f o r m at io n an d /o r so f t w ar e m at er ial co m p lies w it h t h e law s,
r u les, an d r eg ulat io n s o f t h e ju r isd ict io n s w it h r esp ect t o w h ich it is u sed .
Th e in f o r m at io n co n t ain ed h er ein is su b ject t o ch an g e w it h o u t n o t ice. Revisio n s m ay b e issu ed t o ad vise o f su ch
ch an g es an d /o r ad d it io n s.
No t ice t o Go ver n m en t En d User s: Th is is co m m er cial co m p u t er so f t w ar e o r h ar d w ar e d o cu m en t at io n d evelo p ed at
p r ivat e exp en se. Use, r ep r o d u ct io n , o r d isclo su r e b y t h e Go ver n m en t is su b ject t o t h e t er m s o f Un isys st an d ar d
co m m er cial licen se f o r t h e p r o d u ct s, an d w h er e ap p licab le, t h e r est r ict ed /lim it ed r igh t s p r o visio n s o f t h e co n t r act d at a
r ig h t s clauses.
Un isys is a r eg ist er ed t r ad em ar k o f Un isys Co r p o r at io n in t h e Un it ed St at es an d o t h er co u n t r ies.
All o t h er b r an d s an d p r o d u ct s r ef er en ced in t h is d o cu m en t ar e ackn o w led g ed t o b e t h e t r ad em ar ks o r r eg ist er ed
t r ad em ar ks o f t h eir r esp ect ive h o ld er s.
: Simple text
If your watermark requirement is to place text on the page to denote a security level, date, or origination, you can accomplish
this task using a simple combination of DDA commands -- but there are limitations. The steps are as follows:
1) Define a DDA that uses the following sequence, typically done once per page:
a) Change Windows Font -- Select a font, usually an "outline font", size, and color to be a light gray or other color
that will not interfere visually with the rest of the text on the page.
b) Print Data using the desired string (i.e. "Confidential"). The string could come from the data on the page, a variable
set in the DDA or a fixed string right in the Print Data command. Note that you can place the data anywhere on the
page and can rotate the data 0, 90, 180, or 270 degrees.
c) Change Windows Font -- go back to the original font for the text on the page.
2) Create a Print Attribute that references the DDA in step 1.
CONFIDENTIAL
One obvious limitation is that you cannot rotate the font to any angle. Another is that it is text and symbol based, so it cannot
include fancy graphics.
: Place graphic image
A very flexible way to add a watermark to your document is to use the DDA "Position Graphic" command. The steps are as
follows:
1) Create the graphic using your favorite graphic editor (could be Word, Serif PagePlus/DrawPlus, Paint, ...) where the
canvas of the image is just large enough to hold the image or text. Make sure that the background of the image is
transparent or a color that will not interfere with the rest of the text. The graphic file format could be a .BMP, .WMF,
.EMF, .JPG, .GIF, .PNG, or .TIFF
2) Create a DDA that uses the "Position Graphic" command, typically done once per page. This DDA command will reference
the graphic file created in the step above. It also gives you complete control over where on the page the graphic is
placed and the size of the graphic if the height and width values are specified
3) Create a Print Attribute that references the DDA in step 1.
EOM News & Views
Issue 1, May 2008
[3]
Page [ 3 ]
Upgrade now!
Who are we?
Quick Hits
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
EOM
will be
released soon.
This IC includes the
Intelligent Mail barcode feature as well as
fixes to various issues.
On-site services, remote services,
general consulting are available now.
Please make sure you have downloaded and
installed the Microsoft .
. We have recently run into
a few problems that impact EOM, but already
fixed in the .Net SP 1.
and
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Unisys will be hosting an
(2 day)
and
(3 day) the week of July
14th. Contact Unisys Customer Education at
UnisysCustomerEducation@unisys.com for
details (reference course CEL18004,
CEL18005, or CEL18006).
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 1, May 2008
[4]
Page [ 4 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
We create solutions.
EOM News and Views
Issue 2, June 2008
DDA Feature (you may not know about)
Take a look at the "Print Data" command -- there
are multiple properties that control placement, all
of which allow for either a static number or a
variable. If you wanted to place a particular
string value 3 inches from the left side of the
page (the X coordinate) you would set the X
Coordinate property "Setting Type" to "Number"
and the "Value" to 3. If you wanted that string
to be output 7 inches from the top of the page
(the Y coordinate) you would set the Y
Coordinate property "Setting Type" to "Number"
and the "Value" to 7. Pretty easy.
However, what if you have more than one string
to place or when that particular DDA Command
"Print Data" is used for multiple input lines?
First, you could still use static numeric values
along with static numeric values for the X/Y
Coordinate Increment. Lets suppose that you
DDA Feature..................................1
How do I...? ................................... 2
Quick Hits....................................... 4
Contact information ........ 4
had to move OMR data from the right-hand side
of the page to the left-hand side. Your DDA
might be as simple as:
DDA Item: OMR DATA, lines 6-10, columns 75-78
: Data to Output $CurrentData
X Coordinate
0.5
Y Coordinate
1.5
Y Coordinate Limit 2.50
Y Increment
0.125
Using user-defined variables:
DDA Item: SetOffsets, (not enabled for data id)
Xoffset 0.5
Yoffset 1.5
Yincrement 0.125
DDA Item: MoveOMR, lines 6-10, columns 75-78
Yoffset is Undefined
SetOffsets
YOMRMark = $LineNum - 6
YOMRMark = YOMRMark *
Yincrement
YOMRMark = YOMRMark + Yoffset
: Data to Output $CurrentData
X Coordinate Xoffset
Y Coordinate YOMRMark
So why use all of the extra commands? Well,
for one thing the first example does not account
for lines without data. If line 7 does not have
any data then the DDA Item OMR DATA is
skipped, hence no automatic increment (spacing
in this case). If line 8 does have OMR data then
it will be output right below the data from line
6. The more complicated DDA accounts for that
possibility and allows for global modification of
the offsets.
A better example of user-defined variables to
place data is simply to keep track of where to
place data. There might be multiple types of data
output to a page and you may not want the data
lines to be evenly spaced. So, start with X/Y
offsets and then add to the current offset as
needed. For example:
DDA Item: SetOffsets, (not enabled for data id)
Xoffset 0.5
Yoffset 1.5
Yincrement 0.125
0.2
DDA Item: TextLines, lines 1-10
Yoffset is Undefined
SetOffsets
: Data to Output $CurrentData
X Coordinate Xoffset
Y Coordinate Yoffset
Yoffset = Yoffset + Yincrement
DDA Item: BlockMessage, lines 11-14
:
Data to Output $CurrentData
X Coordinate Xoffset
Y Coordinate Yoffset
Yoffset = Yoffset +
DDA Item: RestOfText, lines 15-66
:
Data to Output $CurrentData
X Coordinate Xoffset
Y Coordinate Yoffset
Yoffset = Yoffset + Yincrement
How do I ...?
Creating electronic forms, also known as form overlays, is pretty straightforward but can take time and effort depending on the complexity of the form.
The basic idea is that the electronic form is printed along with the data from the application. Why?
ü
. Replace preprinted forms to save money, storage space, and waste when the form has to change (i.e. name, phone number, logo,..)
. New application data can be easily assimilated without changing the look and feel of the output.
ü
ü
. An electronic form can be used to create non-print output, like PDF files. This means you can do both hardcopy print and create the
output in PDF from the same form.
ü
. Operations people can use the same paper stock for multiple output, saving time and energy loading paper bins.
. Applications do what they do best: user interface and manage data, not what it takes to make snazzy output.
ü
Enterprise Output Manager does not have an integrated forms design tool. This is intentional -- there are many products on the market that could be used
to create electronic forms already, people are comfortable with the tools they already have, and it seemed that companies with "preferred products" would
go out of business. The only real requirement is that the tool is able to create a file type that can be used with EOM. Print Attributes can use file types
of Windows Metafile (.wmf), Enhanced Windows Metafile (.emf), a PCL stream, or a PostScript stream. Data Dependent Attribute "Position Graphic" command
the file types could be: Windows Metafile (.wmf), Enhanced Windows Metafile (.emf), Tag(ged) Image File Format (.tif), bitmap (.bmp), Joint Photographic
Experts Group (.jpg), Graphics Interchange Format (.gif), or Portable Network Graphics (.png).
Let’®s start by looking at a tool nearly everyone is familiar with: Microsoft Word. Two other example forms design tools are the Serif PagePlus
(http://www.serif.com/) and XaraXtreme (http://www.xara.com/). Both applications go well beyond Word capabilities and both are relatively inexpensive.
The concepts are the same regardless of the forms design tool.
Word is not a great forms design tool, but it is readily available and people know how to interact with the application. There are a few idiosyncrasies when
using Word, so general form design steps are:
1)
2)
3)
4)
Create a blank document
Set all Page Setup margins to zero. Design the form for the entire page, but keep in mind any physical limitations of the printer.
Answer "Ignore" when Word displays a message box asking if you want to fix the margins.
Try to logically group sections of the page in separate Text Boxes. This allows you to move the Text Boxes around without impacting the rest of
the page.
5) Modify the Text Box characteristics. Right-click on the Text Box, select "Format Text Box...", then:
5.1 Set the layout to be "relative to page", the upper left-hand corner of the page.
5.2 Set Fill to "No Fill" and the Text Box Line to "No Line" (unless you want fill and the perimeter line).
6) Save the form into the native Word .doc format.
Now that you have the form designed, your job is to find a way to create a file type that EOM can use. Depending on the file format of the electronic
form you want to use, there are options. Serif PagePlus allows for direct Export As Picture (includes .wmf, and other formats). Word does not, but we
have options:
PCL macro -- simply "print to file" out of Word to a Windows Print Manager printer defined with a PCL driver, then run that file through the PCLPack.exe
program (on EOM release CD) to create a PCL macro.
WMF form -- "Select All" and "Copy" in Word, then in the Form File Utility (an EOM application) "Edit/Paste Metafile" followed by "File/Save Metafile" (or
simply use the Form File Utility (.dff) file in place of the Windows Metafile. Some customers Copy/Paste from Word into Microsoft PowerPoint because
PowerPoint can "File / Save as..." In a variety of formats.
Other graphical formats -- there are multiple Windows Print Manager print drivers that can be used to convert to various graphical formats.
EOM News & Views
Issue 2, June, 2008
[6]
Page [ 6 ]
Using
1)
2)
3)
an electronic form via a Print Attribute is a snap:
Draw the electronic form in the design tool of choice.
Create the electronic form in a format that can be used with a Print Attribute (.wmf, .emf, PCL stream, PostScript stream).
Reference the electronic form in the Print Attribute "Command File" property.
This appears to be pretty simple but there are a few issues. It make take a few steps to create the proper file format -- for
example, Word does not have a "Save as Metafile" option. Finally, which "Command File" that references the electronic form
file depends on the type of electronic form type. A Windows Metafile has to be sent to the printer on each page, so you
would use the “Top of Page” Command file. A PCL macro (automatic overlay) is sent to the printer once so you would use
the Data Command File. Note that there does not have to be a Data Dependent Attribute in order to use the electronic form,
a DDA is typically used when incoming data needs to be moved around to match the form.
The Data Dependent Attribute "Position Graphic" command is used top place a graphic somewhere on the page. Typical uses
are to print a company logo, watermark, picture of a person/item, signature, or a symbol. It can also be used to place the
entire electronic form. The steps are:
1) Draw the electronic form in the design tool of choice.
2) Create the electronic form in a format that can be used with a Data Dependent Attribute (.wmf, .emf, .tif, .bmp, .jpg,
.gif, .png).
3) Reference the electronic form in the "Position Graphic" command.
If the form was designed for the entire page then the "Position Graphic" command X/Y Coordinates should be zero (top, left
corner) and the height and width would match the paper size. Also, the DDA would have to be written to "Position Graphic"
only once per page. Note that this method can be used to handle multiple forms, where logic in the DDA controls which form
is output on which page.
INVOICE NUMBER
Sometimes things can get complicated. Suppose you had multiple forms to output, or the form was output conditionally. It
then may take a combination of Print Attribute and Data Dependent Attribute to get the job done. For this example, suppose
you have multiple PCL forms, which form to use depends on the application data. The steps required would be along the lines
of:
1) Draw the electronic forms in the design tool of choice.
2) "Print" each form to a file using a Windows printer defined with a PCL driver.
3) Run each PCL stream through the PCLPack.exe program (on EOM release CD) creating a macro and call file.
4) Combine all of the macro files into one "all forms" file.
5) Reference the "all forms" file in the Print Attribute Data "Command File" property.
Reference the call file for a specific form when desired using the DDA "Execute Command File" command.
INVOICE DATE
DESCRIPTION
PLEASE DETACH AND RETAIN THIS STATEMENT AS YOUR RECORD OF PAYMENT.
INVOICE AMOUNT
Thank You
DISCOUNT
NET AMOUNT
CHECK AMOUNT
We have looked at how to make and use electronic forms from a very high level. There is much more to this topic
and, if there is interest, can be covered in future newsletters:
· Are my forms "efficient" for high-speed printing?
· How do I draw some of the objects on the form, like rounded corner boxes?
· Should I use PCL or WMF?
· Where does the Form File Utility (an EOM application) fit into all of this?
· How do I manage different versions of the same electronic form?
EOM customers use a variety of tools and techniques to create electronic forms. The design of those forms also varies
considerably. For example, many customers simply use boxes, different fonts, and bolding techniques to partition and highlight
data on their forms. Other customers include special fonts, colors, watermarks, shading and more.
Jim Mullin from Kester (Global Headquarters in Itasca, Illinois) sent us a few examples, click on the thumbnail images to the
right to see the a larger image. Jim uses the Xara Xtreme product (www.xara.com), taking advantage of a variety of techniques
to highlight data. Very cool looking forms!
EOM News & Views
Issue 2, June, 2008
[7]
Page [ 7 ]
Upgrade now!
Quick Hits
Who are we?
EOM
has been
released. Aside from the USPS Intelligent
barcode feature, this Interim Correction fixes
a major issue with some printer drivers.
EOM Development recommends that
everyone upgrade to this Interim Correction
as soon as possible.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
This
question has come up multiple times
recently, the answer is “ .”
On-site services, remote services,
general consulting are available now.
Simply
open
the
Configuration Explorer, select File /
Import/Export, set the ¤Type of file¤”to XML,
set a file to export to, and then select the
¤Export All¤ button. It might be a good idea
to include the date in the export file name
as in EOMCFG-052708.xml.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Unisys will be hosting an
(2 day)
and
(3 day) the week of July
14th. Contact Unisys Customer Education at
UnisysCustomerEducation@unisys.com for
details (reference course CEL18004,
CEL18005, or CEL18006).
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 2, June, 2008
[8]
Page [ 8 ]
EOM News & Views
Issue 2, June, 2008
[9]
Page [ 9 ]
INVOICE NUMBER
INVOICE DATE
DESCRIPTION
PLEASE DETACH AND RETAIN THIS STATEMENT AS YOUR RECORD OF PAYMENT.
EOM News & Views
Issue 2, June, 2008
INVOICE AMOUNT
Thank You
DISCOUNT
NET AMOUNT
CHECK AMOUNT
[ 10 ]
Page [ 10 ]
EOM News & Views
Issue 2, June, 2008
[ 11 ]
Page [ 11 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
We create solutions.
EOM News and Views
Issue 3, July 2008
EOM configuration backup
Sometimes it makes the most sense to backup
the entire system. This method makes disaster
recovery much faster because there is no software
to load (and update), Windows Print Manager
printers to define, security settings to reestablish,
and so on.
· Copy files in the ../Print subdirectory AND any
other directories holding live print data (File
Group, File Hold Property).
· Copy files held in Directory Monitor directories
(EOM does not move these files, even though
the File Mask as a File Group defined).
· Copy files in directories that hold Custom Jobs
If you need to be able to recreate the entire EOM
environment including the current files and jobs,
the steps are:
If you don'’t care about the current print streams,
Command Files, or outstanding jobs for your
backup there are a couple of options:
· Bring the EOM Service down
· Copy files in the ../Data subdirectory (the .CFG
files are the configurations, the .FDB files are
current(live) files and jobs)
· Bring the EOM Service down
· Copy all the .CFG files in the ../Data
subdirectory
· Copy files in the ../PrntCtrl subdirectory AND
any other directories holding Command File
files
ü Change ¤Type of file to access¤ property
to ¤XML file¤
ü Define a directory and file to hold the
EOM
configuration
(i.e.
H:\EOMBackups\CFG070108.XML)
ü Press the ¤Export All¤ button
· Open the Configuration Explorer
· Select File / Import/Export
Your site may need a combination of the steps
above, depending on the complexity of your EOM
environment.
How much pain will you experience if your
server/pc crashes right now? At minimum, you
should make a configuration backup after each set
of EOM configuration changes. You should also
consider WHERE to hold your backups: maybe a
different server/drive, CD-ROM, or flash drive.
DDA Feature (you may not know about)
EOM Backup................................1
DDA Feature..................................1
How do I...? ................................... 2
Quick Hits....................................... 6
Contact information ....... 6
A recent customer question: How can I remove
lines in the output with a simple DDA?
The
identifies the input data to operate
on. The DDA Item might identify a line, range
of lines, or specific lines with a keyword match.
If you want to remove lines from the output,
simply identify the data and do not do anything
with the data. For example:
DDA: RemoveLines
DDA Item: RemoveLine6
Line range:
6-6
Column range:
{blank}
Search for keyword: No
Commands: {none}
Note that the DDA Item (named RemoveLine6)
specifies a line range but leaves the column range
blank -- that tells DDA to identify all
characters/columns in that line. Since data was
identified it will not print unless there are DDA
commands to output the data.
Keep in mind that the DDA Item could have DDA
commands that do other things, just not print the
data identified. For example, you might have
special keywords in your data stream that tell
DDA to use a particular form (i.e. ¤$$FORM1¤) so
you want to identify the data (likely using the
Search for keyword ¤Yes¤ and the Search Data
¤$$FORM1¤, not print that data, but use other
DDA commands to output an electronic form.
How do I ...?
Wow. This is a big question, especially given in the context of ¤What should the input data look like?¤ If the data is already
composed into PCL/PostScript/Epson/... print streams then EOM cannot do much with the content of the data, but can provide
useful routing capabilities. This type of data is dynamically identified as "PassThru" by the File Mask. If the data is not a
composed print stream (i.e. ASCII/EBCDIC/Unicode/native character set) then there are a variety of data content formats that can
are used in the "real world". We will examine a few examples that have popped up in the past.
: Plain text
Plain text files originate from many sources: OS2200 SDF files, MCP PrinterBackup/CANDE files processed via the EOM library,
PC & Unix applications and so on. In general these files have the data placed on a page in some logical format suitable to match
a form or direct human viewing. These files can be routed to just about any printer/PDF/file without EOM manipulation, but can
be manipulated via the Print Attribute or a Data Dependent Attribute defined to ¤re-engineer¤ the data.
Plain text example
: First column carriage control (a.k.a. ANSI or now ASA carriage control, a.k.a. IBM print control)
The first character of each record controls the carriage control before printing the data on that line. The control characters are
as follows:
ASA/ANSI Character
1
blank
0
+
Carriage control action
Advance to next page
Advance 1 line
Advance 2 lines
Advance 3 lines
Do not advance any lines
1This is the first line in the top of the page
This is the second line because the first character is blank, advance 1 line
0This is the fourth line because the first character is ‘0’, advance 2 lines
This is the fifth line
+______________________ This is the fifth line, but overprinted (underline text)
This type of data can be handled directly by EOM by checking the Print Attribute, Advanced property ¤First column carriage control¤.
: Data record per line (see GroceryLabels demo in EOM Help file, "DDA Examples" and /Demos subdirectory)
Each line in the file represents a unique set of data, typically where the line of data is to be formatted and output as a page or
multiple pages. A simple example is:
019905000042694364316003000100OZ000300FANCY F CHUNKY CHICKEN
019930041086852175362401000249EA000100OB RUGRATS SOFT TOOTHBRSH #22
019970581472410351914701000089OZ001000ER CAL SALAD SPANISH OLIVES
019907934021309170407201000255EA000100QUICKTITE SUPER GLUE .18 OZ
Data record per line
002407299910020H0000OZ
000107299910000H0000EA
0012072999100090H000OZ
0001072999100010H000OZ
In this case each record has the identical record layout, where the record is parsed into individual fields. A typical DDA
configuration would set user-defined variables to different parts of the record and then output those user-defined variables once
the entire record was parsed. For example:
DDA: HandleRecordData
DDA Item: LineData
Line range:
1-1
Column range:
{blank}
Search for keyword: No
Commands:
UPC $CurrentData 5-15
ITEM_NO $CurrentData 16-22
UPC
ITEM_NO
EOM News & Views
Issue 3, July 2008
[ 13 ]
Page [ 13 ]
How do I ...? (continued)
: Data values per line (see UPSLabel_NextDayAir demo attributes and /Demos subdirectory)
This format is often used for labels, but could be used by applications that just want to output data values to be formatted by
EOM. In this case each line represents a particular value for a field in the output, sets of fields are separated by a form feed
or a unique string that denotes the beginning or ending of a set of fields. Blank values still require a blank line.
** LABEL START **
SCOTT N REED
(123)456-7890
5TH FLOOR
1550 W ELM STREET
PHOENIX AZ 85015-3627
PHOENIX
AZ
. . .
** LABEL START **
SALLY PHONEBONE
(123)456-7890
23 POLYNOMIAL BLVD
OPHIR AL
43241-2345
OPHIR
AL
. . .
The DDA simply sets user-defined variables to the value on each line, then uses those
user-defined variables when the last line is processed:
DDA: HandleDataValuesPerLine
DDA Item: FromName
Line range:
2-2
Column range:
{blank}
Commands:
From_Name (Remove Spaces) $CurrentData
DDA Item: FromPhone
Line range:
3-3
Column range:
{blank}
Commands:
From_Phone (Remove Spaces) $CurrentData
DDA Item: LastField
Line range:
Column range:
Commands:
Data values per line
25-25
{blank}
Box_Size (Remove Spaces) $CurrentData
From_Name
From_Phone
: Keyword & value per line (see LicenseDemo in EOM Help file, "DDA Examples" and /Demos subdirectory)
The application outputs names and values on the same line, usually saving the application from outputting non-blank information
(possibly saving output file space). This format is especially useful when there are a lot of potential fields but many fields are
blank for a particular data set. The DDA must ¤look¤ for each name, store the value in a user-defined variable and then output
the set of fields.
The DDA sets user-defined variables for each name it finds, then uses those
Name=Scott Kenney
user-defined variables when ready to process the set of variables:
Address1=2134 Pith Way Street
Address2=Roseville, MN 55041
Address3=0
LicNum=F-382-928-33-9583
Eyes=BRN
Height=6-2
Weight=210
Sex=M
Class=D
DDA: HandleKeywordAndValuePerLine
DDA Item: Name
Line range:
{blank}
Search for keyword Yes
Search Data
Name=
Commands:
Name (Remove Spaces) $CurrentData (6-80)
DDA Item: Address1
Line range:
{blank}
Search for keyword Yes
Search Data
Address1=
Commands:
Addr1 (Remove Spaces) $CurrentData (10-80)
EOM News & Views
Issue 3, July 2008
[ 14 ]
Page [ 14 ]
How do I ...? (continued)
: Repeating groups of records with keyword per record (see CheckDemo-DFFDDAMICR in EOM Help file)
This format is a combination of previous formats, but it might not be obvious. Each record has a keyword that tells the DDA
what kind of record it is. The DDA identifies the kind of record and processes the data on that record.
C101413
C20BANK1123456789
06789 07833 09/11/00
H10100050$****23,123.37**ADVANCED COMMUNICATIONS CO
H20
PO BOX 777111
H30ATLANTA
GA30384
H40THIS CHECK VOID IF GREATER THAN $100,000.05.
S10TWIN CITIES
1234567890123456789012345
195.86
S10ROCHESTER
5432109876543210116062690
677.79
S10NEW YORK
5432109876543210116062690
193.80
S10LAKE ELMO
1234567890123456789012345
2,457.00
T10
23,123.37
12,006.04
H10100051$****44,682.88**REALLYGOOD WIRING CO
H20
1313 BELDON ROAD
H30MADISON
WI12384
Repeating Groups of Records
3.38
12.81
3.70
49.14
The DDA has a DDA Item for each record type, then uses a Call Item to process the record data. When the last record of the
set is found, the DDA processes that record and outputs the page(s) as needed.
DDA: HandleKeywordFirst2Chars
DDA Item: C1
Line range:
{blank}
Search for keyword Yes
Search Data
C1
Commands:
ProcessC1
DDA Item: C2
Line range:
{blank}
Search for keyword Yes
Search Data
C2
Commands:
ProcessC2
DDA Item: H3
Line range:
{blank}
Search for keyword Yes
Search Data
H3
Commands:
ProcessH3
PrintPage
EOM News & Views
Issue 3, July 2008
[ 15 ]
Page [ 15 ]
How do I ...? (continued)
: Repeating groups of records, no keyword
This is a very common format of text output, usually used to match a preprinted form (including label paper). Much like the
Data values per line (example 4), these repeating set of values are easy to parse and handle by line number. The trick in this
case is to define the Print Attribute ¤Lines Per Page¤ to the number of lines in the set -- so, EOM will automatically insert a form
feed after the set of records. In the example below, the Print Attribute ¤Lines Per Page¤ would be set to 7, so the first line of
the set of lines is always line 1 in the DDA.
#BXBBGDD***5-DIGIT
55041
#HAG0601 2144084334#SEP99
8401
HOMER HAGERSNASTY
2134 PITH WAY
ROSEVILLE MN
55041-2345
#BXBBGDH***5-DIGIT
43241
#PHO0504 2144084334#JAN98
8401
SALLY PHONEBONE
23 POLYNOMIAL BLVD
OPHIR AL
43241-2345
#BXBBGER***3-DIGIT
117
#TRE0504 2144084334#JUN97
8401
ODNEY THRENIN
13452 KINETIC DRIVE
BOAZ AL
11741-2345
The DDA identifies (maybe parses) and processes each line:
DDA: HandleDataValuesPerLine
DDA Item: FromName
Line range:
1-1
Column range:
{blank}
$CurrentData
Commands:
DDA Item: FromPhone
Line range:
2-2
Column range:
{blank}
$CurrentData
Commands:
DDA Item: LastField
Line range:
Column range:
Commands:
7-7
{blank}
$CurrentData
: Comma or tab delimited data
EOM does not handle comma or tab delimited data directly. One way around this is the UEOMCSVMap Custom Job which takes
the comma or tab delimited file and maps the individual data fields to Form File Utility fields (see link). The UEOMCSVMap
documentation covers this solution so we won't go further here.
: XML files
EOM does not handle XML files directly, but it will in EOM 8.0. Until then, one way around this is the UXMLMap Custom Job
which takes the XML file and maps the individual XML node data to Form File Utility fields. Please contact Pretty Good Consulting
directly if you are interested in learning more about this solution.
There are likely many more formats floating around, the combination of Print Attributes and the DDA feature can handle them.
If not, we here at PGCG would be happy to take a look -- It might even get ink in an upcoming newsletter J.
EOM News & Views
Issue 3, July 2008
[ 16 ]
Page [ 16 ]
Upgrade now!
Who are we?
Quick Hits
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
Next month we will discuss EOM server
backup/disaster recovery options.
On-site services, remote services,
general consulting are available now.
Rumor has it that EOM 8.0 is slated to be
released sometime in the first quarter of
2009.
The EOM 7.1.6 Interim Correction changed
File Group handling for incoming LPR/Raw
TCP/email/MSMQ streams: prior to EOM
7.1.6 some input streams would not be
placed in the File Group according to the File
Mask that handled the input stream because
control information (includes Host Queue,
Host System, User Tags, ...) was not
received during the initial data connection.
The data from the input stream is now
placed as per the File Group configuration
and the File Mask masking criteria can now
reliably include User Tag fields. See Unisys
PLE 18587734.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
Unisys will be hosting an
(2 day)
and
(3 day) the week of July
14th. Contact Unisys Customer Education
or
email
inquiries
to
UnisysCustomerEducation@unisys.com for
details (reference course CEL18004,
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 3, July 2008
[ 17 ]
Page [ 17 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
We create solutions.
EOM News and Views
Issue 4, August 2008
Keyword substitution in File Masks
There are features, options, and capabilities that many
EOM users have never heard about. One such feature
is the ability to use keyword substitution in the File
Mask configuration. "Keyword substitution" is simply
using "live", current job/file, values in EOM configuration
property values.
In this case EOM configuration
properties include keywords that are dynamically
replaced when the EOM configuration is used when
handling a job or file. For example, a keyword
substitution in a Custom Job "Arguments for command
line" parameter for the Custom Job "Notepad.exe" would
be:
<PCFILENAME>
This tells EOM to run the
program Notepad.exe and pass the incoming file name
string as the first parameter. So, if an incoming
filename was "c:\FTP\MonthlyStatement.txt", the Custom
Job
execution
would
be:
"Notepad.exe
c:\FTP\MonthlyStatement.txt"
O.k., what does this have to do with File Masking?
You can use keyword substitutions in Job Properties!
For example, instead of selecting a Print Attribute from
the drop-down list a Print Job, you can type in the
keyword (enclosed in < >):
Print Attribute: <DAY>
which would use the Print
Attribute "MONDAY" if it was Monday, "TUESDAY" if it
was Tuesday, ...
or
Print Attribute: <HOSTQUEUE> which would use the
value passed from the remote system for Host Queue
(a.k.a. Destination) for the Print Attribute.
Keyword substitution allows you to use parts of
keywords, concatenate keywords, and even add your
own text. For example:
Print Attribute
PA-<MONTH 1 3>Statement<YEAR 3
2>
would assemble a string for a Print Attribute
"PA-AUGStatement08" if the File Mask had a Print Job
defined with this Print Attribute value.
But there is more! You can define sets of keyword
substitution strings, where EOM traverses the set of
strings until the first set member matches a defined
property. Suppose you have 5 Physical Printers defined:
Execs, Execs-CEO, Execs-CIO, Execs-CFO, Execs-COO.
Your File Mask, Print Job Printer property could be
"Execs-<RUNID>", but what happens if someone from
accounting prints to the Execs printer? (no printer
named Execs-Accountant) So you may want to guard
against an undefined value by allowing for multiple
values and a default if there isn't a match: "Execs<RUNID> | Execs". The pipe character "|" is used to
separate multiple keyword substitutions. Starting from
the left, the first syntax to find a defined value is used.
So, this one File Mask can handle files from multiple
RUNIDs, routing to the correct printer dynamically.
Note that if the keyword substitution does not resolve
to a valid attribute then an alert is issued and no jobs
are created.
DDA Feature (you may not know about)
Keyword Substitution.......1
DDA Feature..................................1
How do I...? ................................... 2
Administrator Utility........... 4
Quick Hits....................................... 5
Contact information ....... 5
Yes - to all questions, using the same DDA
Command "Get User Input". The "Get User Input"
command stops the Print Job and DDA executing
until there is some human response to the
command. As of EOM 7.0 and later, the human
response is via the Alert Explorer, unless you are
in Print Preview, in which case a message box is
displayed on the Print Preview window. When
the Get User Input command is executed while
processing the output stream, an Alert is created
with severity Major, with Alert text of "User input
required for print job to continue". The "User
input prompt" value of the Get User Input
command is displayed when someone attempts to
clear the alert via the EOM client. A user-defined
variable is set to the user input, your DDA
processes that text as needed (validation of the
user input is a good idea J).
DDA Item: GetPassword
Commands:
Input variable
StrVar
User Input Prompt Enter password
Hide Input
Yes
StrVar {Remove spaces}
StrVar Not Equal RunTimePassword
{ask again via another Get User Input}
StrVar Not Equal RunTimePassword
Text "Invalid password"
Text {in Log}
How do I ...?
Disaster strikes!!! Act of God or act of the newbie tech, you better have a plan on how to reestablish your output management
environment. In general there are bigger issues than EOM to deal with if there is a major disaster but, if you are prepared,
getting EOM back up will be quick and relatively painless. Since you faithfully read the EOM Newsletter (last month's discussion
on backing up the EOM configuration) we will start by assuming you have current EOM configurations. What follows is a high-level
view of backup/disaster recovery, clearly there are numerous variables to consider based on your site's operation.
No matter what strategy you use for backup/disaster recovery, there are basic elements you need to address:
-
Do you have the hardware to bring up EOM? Virtualized space?
During a disaster is not the time to go looking for system software.
Ditto
Where is your new network, what IP addresses, what directories, what configurations
on the host system change?
printer environment (including printer drivers) - Yikes! Look at the Microsoft Print Migrator tool.
(PDF creation, Custom Jobs) - all software you added to process input data/print streams
- Install CD
- Latest and greatest ICs to match your current configuration
- As per last month's newsletter: (very) recent backup, command files, Custom Jobs,...
- Do both EOM instances use the same set of Windows Security Roles?
There are multiple implementation options on backup/disaster recovery strategies,– for this discussion we with call them "hot/live",
"warm", and "cold".
This architecture keeps all configurations
input data/print streams in a fully redundant manner. As data is received from host
systems (mainframe, Unix/Linux, Windows, directories,...) the data/print stream is processed on the primary EOM server, but also
sent to a secondary EOM server. The copy sent to the secondary server typically creates a Backup Job, held for a time period
then automatically removed. The primary requirements for this scenario are:
§ Two EOM servers (or 2 separate virtualizations, or one server and one virtualized - EOM runs fine in a virtual server
environment by the way)
§ Two copies of the EOM software
§ Configurations on the primary EOM server that process the data and also send a copy to the secondary server (hey another good use for the File Mask "Continue Search after match" option. Create a File Mask at the top defined with
a Transfer Job, transfer all files to the secondary EOM server).
§ Configurations on the secondary EOM server that recognize the input stream is from the primary EOM server and
process accordingly. "Accordingly" could be a Backup Job that could be
if needed, held for X days by the
File Group. Other input streams should process identically as the primary EOM server.
§ Nearly every EOM configuration change requires the identical change on the secondary EOM server. Exporting the
changes from the primary EOM server and importing in the secondary EOM server is a snap. When in doubt, export
the entire EOM configuration and import (with overwrite) on the secondary server. You might even set up a process
where you export the entire EOM configuration to a directory, set up an Directory Monitor Search to watch that
directory, pick up the XML file and have a File Mask/Transfer Job send it to the secondary EOM server, where the
secondary EOM server receives and copies the file into a directory, from which you manually Import when needed.
§ Windows printer change, PDF creation software installation/configuration/registration, directory change, and so on would
also require the identical change on the secondary EOM server.
§ Even one step further is to configure your ClearPath PrintS destination or SYMQ to have a secondary EOM - if the
primary cannot be reached, the EOM host software will automatically connect to the secondary EOM.
EOM News & Views
Issue 4, August 2008
[ 19 ]
Page [ 19 ]
How do I ...? (continued)
The EOM service may not be running, but is ready to go in an emergency. Maybe you have a Disaster Recovery server already
identified, or have space on another server in case there is a problem. The EOM software is installed, up to date, and just a
matter of starting the EOM service, importing the EOM configuration, and adjusting either a local IP address or the host system
configurations to“point at the new EOM server. Windows printers, directories, Custom Jobs, and so on are updated on this server
as changes are made to the primary EOM server. This scenario is very much like the Hot/Live scenario, except that live files are
not sent to the secondary EOM server until there is an emergency.
O.k., you don't believe in the Hot/Live/Warm scenarios. Fine, just be prepared to sweat a little while you put all of the pieces
together. If you have been backing up the entire EOM server then you restore the server and you are running. Or, you run
the virtualized server to a new server. If you do not have the whole server backed up, then you must assemble the pieces. If
you backed up just the EOM configuration, then you have software to install, configurations to import, peripheral configurations
to make (Windows printers, directories,...), and so on. Essentially you have to build the EOM environment from the ground up.
One of the more time consuming pieces is reestablishing the Windows Print Manager print configuration. If you don’t have the
drivers handy it could turn into a long night. You may want to take a look at the Windows Print Migrator tool (click here).
The picture gets a little messier if you have directly connect printers, the CD/DVD creator device, or other single-installation only
elements. Clearly, each of those pieces has to have some kind of replacement in the event of a disaster.
EOM News & Views
Issue 4, August 2008
[ 20 ]
Page [ 20 ]
EOM Administrator Tool lives!
There's nothing like a sharp customer to put you in your place. A recent site visit corrected my understanding of the EOM
Administrator capability with EOM versions 7.0 and later.
What is the "EOM Administrator" you ask? It is a stand-alone GUI application that is used to monitor one or more EOM instances
(Note - EOM 7.1 has the new Threshold Monitoring to monitor a single EOM instance). It has its own installation (on the EOM
release CD, under "Administrator" folder), its own configuration, and help information in the EOM Help File (Contents / Tools /
Administrator Tool). But wait - there is more!!! It can also be used to "poll" MCP and OS2200 EOM communication connections
as well as TCP systems and devices that support the LPD/LPR protocol.
The EOM Administrator program has a graphical user interface, so it is run as a Windows application. This program is typically
installed in the operations center and/or on the EOM guru's desktop. It has to be running in order to monitor, so many sites
put a shortcut into the Windows "Startup" program folder.
The EOM Administrator program executes on Windows platforms. The EOM installation CD has a directory titled "Administrator",
simply double-click on the setup.exe program and follow the dialog boxes.
You logically group your EOM instances by location and network. This grouping is for your benefit only, but also makes it
easy to enable/disable groups of monitored devices. The configuration is built by assembling locations, LANs, and "Agents".
Agents are those entities you want to monitor: could be EOM servers, devices that are listening on port 102 (so you could "poll"
MCP and OS2200 EOM instances too), and devices that listen on port 515 (LPR Ping), usually printers. You define unique
configuration information for each Agent, such as IP address, various thresholds, and the TCP protocol to use to connect to the
Agent. The EOM Administrator program creates "Alarms", which are network connectivity or a threshold issues for specific agents.
The configuration is empty after the installation:
Define locations, LAN segments, and Agents:
You can set contact information for each of the nodes on the left-hand panel, which is very useful if your operation people need
to know whom to contact when an issue arises. Based on your settings for the Agent, an alarm will be set if a threshold is
exceeded or if a communications connection cannot be made to the Agent. See Edit / Configuration to modify how often Agents
are polled as well as what to do when an alarm is set. You can disable specific Agents by unchecking the "Enable Status
Checking" button or disable groups of Agents by unchecking the "Enable Status Checking" on a LAN or Location node.
EOM News & Views
Issue 4, August 2008
[ 21 ]
Page [ 21 ]
Upgrade now!
Who are we?
Quick Hits
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
So now you know about keyword
substitution in File Masks. Did you know
that you can use Keyword Substitution in
Print Attribute, Web/File Output properties?
Backup Job properties too!
On-site services, remote services,
general consulting are available now.
If you are looking for a PDF creation tool
other than Dane Prairie's WIN2PDF or from
Adobe, another provider that has been
verified by EOM Development is from
Amyuni. See their PDF Converter product,
here.
Rumor has it that EOM 8.0 is slated to be
released sometime in the first quarter of
2009.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site or arrange for a
formal class through Unisys. Please contact
us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 4, August 2008
[ 22 ]
Page [ 22 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 5, September 2008
We create solutions.
Keyword substitution in File Masks, (take 2)
The hate mail started arriving almost immediately after
last month's newsletter was posted. "Why would
anyone use <DAY> as a Print Attribute?", "Our printer
names aren't that consistent", "Do you have any REAL
keyword substitution examples?" and so on. Points
taken, so lets look a little closer at a couple of real-life
examples:
1) Using the <DAY> keyword substitution for a Print
Attribute
Believe it or not this use of keyword substitution just
solved a real-life customer issue as the August
newsletter went out. The customer has a report
printing every day, but only needs to print/email that
report certain days of the week. So the question is :
the days you want don't want to print, set the page
range to 99999 (or something beyond the last page).
Make sure that you also uncheck the EOM
Header/Trailer in the Print Attribute for the days that do
not print. Your Print Job in the File Mask would like
something like " <DAY> | Default" . Even though you
have a Print Attribute for every day it is a good idea to
have a default Print Attribute just in case.
(By the
way, another way to accomplish this task is to create a
DDA with logic in a DDA to check the day, then
immediately do a "End Report", which stops printing)
2) Using <USERTAGx> to control both the printer and
the print attribute
There are multiple customers already using the values
in the USERTAGx keywords to control
(Print
(Physical Printer)
Attribute)
Answer: Create seven Print Attributes, one for each day
(I.e. MONDAY, TUESDAY, WEDNESDAY,...). Then for
Setting
up
File
Masks
for
every
Print/Email/Transfer/Custom/Backup/Index Job can get
tedious some times. Worse, if there are 12 different
"how" data streams are to be printed (Print Attributes)
and 100 "where" (Physical printers) the data streams
could be printed, then we are talking about 1,200 File
Masks - clearly this is a lot to manage. So, if you
sweet-talked your application developers into preceding
each data stream with values that helped figure out the
"how" and "where" your life could be a lot simpler.
There is also EOM specific syntax that could make your
life easier (go to the On-line Help and search on
$DEPHDR$):
$DEPHDR$ STORExx C85L66DUP
{rest of file}
The File Mask would have a Print Job with a printer of
<USERTAG1> and the Print Attribute would be
<USERTAG2>.
DDA Feature (you may not know about)
Keyword Substitution.......1
DDA Feature..................................1
How do I...? ................................... 2
EOM for MCP............................. 3
Quick Hits....................................... 8
Contact information ....... 8
There are times when it would
be very handy to be able to have a set of DDA
commands execute after the last page has printed.
The problem is that DDA does not have an
obvious way to tell you when the last page is
done. One way to handle this is to use a Trailer,
Print Attribute for that Trailer, and a DDA that the
Print attribute references:
Print Attribute:
MAIN
DDA:
MAIN DDA
Print Trailer:
Yes
Trailer Attribute: MyTrailer
Trailer Print Attr: FinishUp
DDA:
TheEnd
The Trailer Attribute "MyTrailer" does not have to
have any Line Items, but the Print Attribute used
for the Trailer does need to reference a DDA
("TheEnd"). This DDA then can do whatever is
required to finish the Print Job. Keep in mind
that any variables used in the original DDA are
still available for the DDA referenced by the
Trailer Print Attribute/DDA. Also, the Physical
Printer must have "Print Trailer Page" set to "Yes".
One real-life use of this technique is at a bank
that processes check information. The original
DDA reformats the data for output, and keeps a
running total of the number of items (checks) and
check totals in DDA variables. When the Trailer
DDA executes, creates a human readable sentence
using those values, and then uses the Get User
Input command to display the sentence so that
the operator can confirm the number of items and
the total amount from that file.
How do I ...?
Every once in a while we hear from a customer that is testing a new Windows printer driver, usually related to creating files, that gets hung up
in EOM. The usual symptom is that the printer appears to start printing, or is in pre-processing/post-processing and just doesn't change. The
good news is that since EOM 7.0 every Print Job printing on a printer is on its own thread so the rest of EOM keeps processing. The bad news
is that there are a few cases where EOM does not recognize that a printer is hung, hence doesn't automatically interrupt the thread.
There is a way out ...
Since you usually can't live with a perpetually hung-up printer, the way to resolve this problem is:
1) Go to the server that runs the EOM service.
2) Under the EOM client:
a) Close Print Preview and the Configuration Explorer.
b) Suspend Print Job scheduling (File / Suspend Job Scheduling / Suspend Print Job Scheduling).
c) Close the client.
3) Under Computer Management / Services, find "Unisys Enterprise Output Manager", right-click, and stop the service (it may not come down).
4) Get to the Task Manager (Ctrl-Alt-Del) "Processes" tab, find the "EomService.exe" process, right-click and select "End Process".
5) Restart EOM.
6) Lock the printer that was previously hung.
7) Un-Suspend Print Job Scheduling (to let the rest of the Print Jobs process).
8) Correct the root issue with the Print Job that was hanging the printer. This may require a Print Attribute Windows Driver change, or maybe
just deleting the Print Job.
9) Correct the File Mask or Print Attribute so that subsequent Print Jobs also do not hang the printer.
10) Unlock the printer that was previously hung.
There is another way out ... The EOM service can be started in "SafeMode", which runs but does not schedule any jobs. This gives you lots
of time to correct the problem, but cannot test until you restart the EOM service (for details see EOM help file, search for "SafeMode").
EOM News & Views
Issue 5, September 2008
[ 24 ]
Page [ 24 ]
EOM notes for MCP systems
While we do not want to show favoritism for one operating system over another, there have been quite a few contacts and
questions regarding EOM on the MCP. So, let us spend some time to walk through some of the basics:
EOM installation on the MCP system is a matter of copying the files from the release CD to disk, setting some privileges, and
then modifying the MCP EOM configuration for your particular site. The EOM library has to run privileged and have access to
the TCP/IP stack. Example console syntax is:
WFL1
MP *OBJECT/DEPCON ON DISK + PU + SERVICE "TCPIP".
You also have to allow virtual servers and IOHandlers to execute by setting the ACTIVE SITE value: PS ACTIVE SITE=10 which
allows for 10 concurrent Virtual Server and/or IOHandler library calls. The OBJECT/DEPCON/CONFIG configuration file is not
required, but does have some useful settings. FORMIDISPAPERTYPE= set to TRUE tells the EOM library to send the FORMID
text value to the EOM PC overwriting the Print Attribute Paper "type field". Configuration parameter FILENODEMASK tells the
EOM library which parts of the MCP filename to send to the EOM PC. For example, FILENODEMASK= FIRSTTWO means that
for a filename of "(usercode)NODE1/NODE2/NODE3/NODE4 ON PACK" the EOM library would send "NODE1" for the "FILE NODE
A" File Mask field and "NODE2" or the "FILE NODE B" File Mask field. Probably the most important parameter in the EOM library
configuration file is the ROUTE statement. ROUTE is used to relate a text value with another text value or actual IP address of
a remote EOM instance:
.
. ROUTE DESTINATION
HOSTNAME
. ----- -----------------ROUTE EOM-PC1
EOM-PC1
ROUTE EOM-PC2
depcon.PGCG.com
ROUTE EOM-PC3
192.161.161.161
LOCAL REM
PING
SOCKET TSAP
TSAP BLOCKS
------ ------- ----102
DEPCON DEPCON
7
102
DEPCON DEPCON
25
102
DEPCON DEPCON
7
COBOL
ALGOL
Note that the HOSTNAME field can be a DNS resolved name, fully qualified DNS name, or a static IP address. By the way, the
PING BLOCKS value is the number of data blocks sent from the MCP EOM to the remote EOM, followed by a confirmation from
the remote EOM. This is for flow control, normally the value of 7 is sufficient.
Next, we need to get the PrintS device configured. There are two choices for EOM: Virtual Server or an IOHandler. The
difference between the two, at a high level, is that when a print request is submitted to a PrintS Virtual Server, PrintS calls the
Virtual Server Library entry point (DEPCONSERV for EOM library) for each "piece" of the print request. So, the library will be
called for the header, banner, each file in the print request, and finally the trailer. The Virtual Server does whatever it is supposed
to do with each piece of the print request and then returns a status to PrintS, usually saying that it completed the piece of the
the print request successfully. For an IOHandler, PrintS can call a few entry points depending on which part of print request
is currently being handled. Example entry points in the EOM library are "DEPIO_OPEN" to open a connections, "DEPIO_CLOSE"
to close, "DEPIO_SEND" for each record, and so on. Status is returned to PrintS on each call to the library entry point. The
major difference between the IOHandler and the Virtual Server is that the "DEPIO_SEND" entry point is called for each line of data
and/or carriage control in the print stream whereas the Virtual Server is expected to handle the whole file itself. One of the
major benefits of using IOHandlers is that PrintS does all the formatting (like handling of PAGECOMP, Device Drivers, and so
on).
WFL2
Example syntax to define EOM devices to PrintS are:
PS CONFIG + EOMPRINTER1 IOHANDLER="DEPCONSERV (OMAHAEOM/EOMPRINTER1 ) IN *OBJECT/DEPCON ON DISK"
PS CONFIG + EOMPRINTER2 SERVER="DEPCONSERV (OMAHAEOM/EOMPRINTER2 ) IN *OBJECT/DEPCON ON DISK"
EOM News & Views
Issue 5, September 2008
[ 25 ]
Page [ 25 ]
EOM notes (continued)
Note that both IOHandler and Virtual Server entry points are supported and can be used simultaneously. The first parameter
("OMAHAEOM") is the name of the remote EOM instance, which either resolves via DNS or has a ROUTE statement definition.
This means that the value could be an IP address too - be careful though, using IP addresses in PrintS definitions means that
you must change all definitions if the IP address changes as opposed to changing one line in the OBJECT/DEPCON/CONFIG
configuration file. The second parameter ("EOMPRINTER1") is the value sent to the remote EOM instance for the "Destination"
File Mask Field. Usually the value is identical to the PrintS device name, but it does not have to be.
There is additional (optional) EOM library syntax allowed on the PrintS definition. One common example is:
PS CONFIG + EOMPRINTER3 SERVER="DEPCONSERV (OMAHAEOM/EOMPRINTER1/NOCTRLFF ) IN *OBJECT/DEPCON ON DISK"
The "NOCTRLFF" syntax tells the EOM library to send the print request without any print control information. The only non-printable
characters included are the carriage return, line feed (CR-LF) at the end of each line, and translates page ejects into the formfeed
(FF) character.
There are a variety of PrintS supported settings for Virtual Servers and IOHandlers, the ones we are most concerned are:
PS CONFIG EOMPRINTER1 SERVERPRIORITY=50
(often the default is 80, which is too high and conflicts with
other processing)
PS CONFIG EOMPRINTER1 BLOCKSTRUCTURE=UNBLOCKED (if EOMPRINTER1 is defined as an IOHandler)
Please refer to the Enterprise Output Manager for ClearPath OS 2200 and ClearPath MCP Configuration and Operations Guide for
a lot more information on syntax options.
Finally, we are ready to submit print requests to PrintS defined EOM devices. There are a variety of ways to submit print
requests: CANDE, WFL, console, and programmatically. More complete examples can be viewed by selecting the icons on the
right hand side of the page.
A
session user might use syntax along the lines of:
PDEF(DESTINATION="EOMPRINTER1")
PRINT (ACCOUNTING)MONTHLY/STATEMENT/REPORT/= ON PACK
provides a boat-load of capability to for PrintS interaction, a simple WFL syntax example:
REMOVE BLUECROSS/DEMO/= ON PACK;
RUN OBJECT/BLUECROSS;
BDNAME=BLUECROSS/DEMO;
Or
PRINT WFL/BLUECROSS;
PRINTDEFAULTS=(DESTINATION="EOMPRINTER2",
BANNER=FALSE,
PAGECOMP="LANDSCAPE LPP=66 LPI=6 CPL=132 BORDER=(0.25 0 0.25 0) LM=0",
HEADER=SUPPRESSED, TRAILER=SUPPRESSED);
Or an example WFL from Kester that parameterizes the email syntax (click here).
EOM News & Views
Issue 5, September 2008
[ 26 ]
Page [ 26 ]
EOM notes (continued)
Operator interaction via the
could be a WFL PRINT command or, more likely, using the PrintS interface to redirect print
requests to PrintS defined EOM devices (PS MODIFY ...).
submission of print requests to PrintS allow for the PrintS syntax, but the additional capability lies with the
EOM-specific syntax available.
A COBOL example:
101400 WORKING-STORAGE SECTION.
101500 77 CR
PIC X(01) VALUE @0D@.
101600 77 ESC
PIC X(01) VALUE @27@.
102300 PARA-2.
102400
STRING
102500
ESC
DELIMITED BY SIZE
102600
"60"
DELIMITED BY SIZE
102700
ESC
DELIMITED BY SIZE
102800
"S
"
DELIMITED BY SIZE
102900
"DEPCON-EMAIL=" DELIMITED BY SIZE
103000
"STEVED@PRETTYGOODCONSULTINGGROUP.COM" DELIMITED BY SIZE
103100
CR
DELIMITED BY SIZE
103200
INTO WHOLELINE.
103300
WRITE PRINT-REC FROM WHOLELINE BEFORE ADVANCING 0 LINES.
103400
103500
MOVE SPACES TO WHOLELINE.
103600
STRING
103700
ESC
DELIMITED BY SIZE
103800
"60"
DELIMITED BY SIZE
103900
ESC
DELIMITED BY SIZE
104000
"S
"
DELIMITED BY SIZE
104100
"DC-ES=" DELIMITED BY SIZE
104200
"This is an example subject." DELIMITED BY SIZE
104300
CR
DELIMITED BY SIZE
104400
INTO WHOLELINE.
104500
WRITE PRINT-REC FROM WHOLELINE BEFORE ADVANCING 0 LINES.
EOM News & Views
Issue 5, September 2008
[ 27 ]
Page [ 27 ]
EOM notes (continued)
An ALGOL example:
DEFINE CTRLSEQ = 48"27", "60", 48"27", "K "#;
OPEN(OUTFILE);
REPLACE SCRATCH BY " " FOR 80;
WRITE(OUTFILE[SPACE 6], 80,SCRATCH);
REPLACE SCRATCH BY CTRLSEQ, "FONT1.PCL "; % Initial font
WRITE(OUTFILE, 80,SCRATCH);
REPLACE SCRATCH BY " " FOR 80;
REPLACE SCRATCH BY "
Welcome to the world of DEPCON!";
WRITE(OUTFILE[SPACE 4], 80,SCRATCH);
REPLACE SCRATCH BY " " FOR 80;
REPLACE SCRATCH BY CTRLSEQ, "FONT2.PCL";
% second font
WRITE(OUTFILE, 80,SCRATCH);
REPLACE SCRATCH BY " " FOR 80;
REPLACE SCRATCH BY "We will show how easy it is to change fonts
WRITE(OUTFILE, 80,SCRATCH);
REPLACE SCRATCH BY "in the middle of a print request. This page
WRITE(OUTFILE, 80,SCRATCH);
EOM News & Views
Issue 5, September 2008
";
";
[ 28 ]
Page [ 28 ]
Upgrade now!
Quick Hits
Who are we?
A few of you had issues with the EOM
Administrator program installation. Contact
Unisys for an updated install if you are still
having trouble, or try the workaround by
found by EOM guru Ben Liepe in Los
Angeles:
If a previous version of the
Administrator program was already installed
then just remove the previous version using
Windows Add/Delete, and then run the install
from the 7.1 CD. This avoids the upgrade
from 6.1 to 7.1, which appears to caused
the installation to fail.
Note - the
uninstall/install sequence removes the EOM
Administrator program configuration.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
When upgrading from EOM 6.1, make sure
you replace User Jobs with updated Custom
Jobs. Many of you are using User Jobs like
CopyIt, GiveItBack, DEPSplit and the like.
There are updated versions on the release
CD with even more recently versions on the
Downloads page of this web site. "Custom
Job" is the new name for "User Job", but
now that EOM runs as a Windows service
there are changes to how the programs run.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
Interested in EOM training? We can either
do custom training on-site or arrange for a
formal class through Unisys. Please contact
us for details.
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 5, September 2008
[ 29 ]
Page [ 29 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 6, October 2008
We create solutions.
A substitution for keyword substitution (In File Masks)
Hopefully we have shown in the last two newsletters
that EOM's keyword substitution is useful. Customer
Kris Johnston from Pensacola Christian College, takes
a clever, but completely different approach:
. Kris points out that conditional
logic within DDA allows for more complicated decision
making regarding the
and
(discussed in last
months newsletter) for job creation.
What this means is that you, the customer, can set up
very sophisticated algorithms to identify and then
process incoming files. One really powerful benefit is
that the algorithm used to identify the incoming file
could use ANY page within the output. File Masking
relies on keyword data that is sent along with the file
and User Tags from the first part of the file. Using
DDA and Start Jobs allows you to use any part of the
file as well as keyword data sent along with the file.
For example, suppose the customer's statement balance
is on the last page of the report. Your DDA would look
for that value, if it was negative the report is printed
on flaming red paper printer, if positive it is printed on
happy green paper printer.
But it gets better. The DDA Start Job commands allow
the use of statically defined attributes, or attribute
selection by DDA variable. For instance, the Start Print
Job has the following properties:
Start Print Job:
Print Attribute:
Printer:
Priority:
Number of Copies:
Pages:
PrintAttrVariable
PrinterNameVariable
$CurrentPriority
CopiesVariable
"1-999"
The properties could reference variables that are
generated from file data or logic built within the DDA.
You may also simply use the Setting Type of "Name"
and then select an existing attribute from the drop down
list for the Value property. In addition, your DDA may
decide to print a range of pages instead of the entire
input file. You may even want to print different sections
of the input file to different printers using different Print
Attributes. Or, you may execute a variety of jobs from
the DDA. Kris defined 5 "Dummy File Printers" (so
there isn't a bottleneck), lets DDA strip off header
information, and then calls the Start Print Job
command.
: EOM is in competition with other
solutions that proclaim the ability to use any part of the
file to determine printing format - EOM can do this
using the DDA Start Job feature and on top of that
provide many, many more options on what to do with
DDA Feature (you may not know about)
Start Job vs Keyword ......1
DDA Feature..................................1
How do I...? ................................... 2
Quick Hits....................................... 4
Contact information ....... 4
Ah...,
well..., it already has this feature, it just may not
be obvious. A DDA is a collection of zero or
more DDA attributes. Each DDA Item is a
collection of zero or more DDA commands. The
DDA Item has the property "Enabled For Data
Identification".
When "Enabled For Data
Identification" is set to "No", commands defined
for that DDA item are not used unless there is a
"Call Item" DDA command somewhere else in the
DDA referencing that DDA Item. In fact, the DDA
Call Item command can call DDA Items in other
DDAs if necessary. This gives you the ability to
create libraries of DDA commands.
How might you use this capability? One such
use is to initialize variables, maybe at top of page
or when the DDA first executes. One easy way
to control whether the set of commands has been
called already is to check if a variable is defined,
if not then Call Item the commands, one of which
sets the variable. For example:
DDA Item:
Initialize
Data Identification = No
Set Variable:
Xoffset = 0.6
Set Variable:
Yoffset = 1.5
Set Variable:
Yincrement = 0.125
Set Variable:
AlreadyInitialized = Yes
DDA Item:
Line 1
Data Identification = Yes
...
If AlreadyInitialized
Call Item MyDDA / Initialize
...
How do I ...?
A long time ago, all EOM jockeys had to worry about was how to get data from the mainframes to the EOM program running on Windows 3.1. Yes, that was a really long
time ago. Now, it is more likely that data streams come from multiple hardware servers and multiple operating systems. This article will focus on methods to feed EOM from
a Windows operating system, either the same Windows server or a remote Windows server.
There are
data?"
Ÿ
Ÿ
Ÿ
a variety of ways to get data streams to the Windows EOM service. The first question to answer is "How can the application producing the data stream output the
Does it already create the data stream in a directory?
Does it already have an MSMQ interface?
Does it already print to a Windows printer?
If the answer is "Yes" to any of the above questions then the "easiest" way to feed EOM is by using what the application can already do. Then, if one of those methods cannot
be used, you will have to find a way that suits the application based on how EOM can receive data. The ways EOM can receive data streams are:
- EOM can be configured to "watch" directories and subdirectories. When a file is placed into a "watched" directory/subdirectory and the Read Only
attribute is False, EOM will process the file. Note that you can have any number of Directory Monitor configurations to "watch" any number of directories/subdirectories. Even
better, the directories/subdirectories can be on remote servers. One new feature as of EOM 7.0 is that you can set the Directory Monitor for Immediate Detection, which means
EOM does not wait around for the periodic scan time to elapse, it finds it immediately.
- Message queuing allows for loosely-coupled, asynchronous communication between applications. The general idea is that MSMQ can store messages
when the application is ready to write the messages and then forward those messages to the other application(s) when it is ready to receive messages. EOM has the receive
side covered with the Message Queue Monitors configuration. Applications could reside on remote systems and even remote systems with different operating systems as long
as there is a connection to the MSMQ environment. Message queuing is ideal for applications that want to output short print streams without direct involvement with
composition and/or delivery of that print stream.
PrintFile
MaskFile
LogMessage
CreateAlert
- EOM provides a COM interface for those of you wishing to write your own code. The interface allows programs and scripts to
- Tells EOM to Print a file using a particular Printer and Print Attribute already defined in EOM
- Tells EOM to run the file through the File Masks, using values provided by the program/script for File Mask conditionals
- Tells EOM to enter the text into the EOM logfile
- Tells EOM to create an alert in the Alert Explorer
- As of EOM 7.0, the EOM service allows for a direct .Net API calls to do many things. The EOM class library exposes multiple entry points, those
of particular interest are: CreatePrintJob, CreateJobViaFileMask, CreateAlert, CreateCustomJob, CreateEmailJob, CreateLogEntry, and CreateTransferJob. As you can see, this
interface is a bit more robust than the COM interface and avoids COM configuration issues. To find out more, look in the /API directory where EOM was installed, start with
the help file EomAPI.chm.
- By the way, if you can submit data to a local EOM instance then it is a no brainer to have that data sent to a remote EOM instance. You can define
a Communication Listening Path that listens for Output Manager, LPD/LPR, or Raw TCP protocols, which are the same Communication Sending Path protocols EOM can use
on the output side. So, you get the data stream to the local EOM instance that has a File Mask and Transfer Job which sends it to the remote EOM instance.
- Since LPD/LPR and Raw TCP protocols are "open" protocols, EOM can listen for communications using those protocols, and most operating systems
support those protocols, then most operating systems can "feed" EOM. There are quite a few nice side effects of this EOM capability. For example, suppose we have a 3rd
party application where the only output mechanism from the application is to print to a Windows printer. If we needed to get that output stream to EOM (maybe to dress up
with DDA, or to intelligently route) then all we need to do is redirect where the data is "printed". Without changing the application you simply configure the Windows printer
to use either LPR or Raw TCP and "point" the IP address of the "printer" at the server/PC running the EOM instance. As long as the EOM instance is listening for that protocol,
when the application prints the print goes to the Windows printer, and then is send to the EOM instance. As far as the application is concerned the output stream printed.
(Next page)
EOM News & Views
Issue 6, October 2008
[ 31 ]
Page [ 31 ]
How do I ...?
(continued)
. Where it gets a little messy is when we start talking about Windows printer drivers. If you define the Windows printer "pointing"
at the EOM instance with a PCL driver, then the output stream delivered to EOM is PCL. Similarly, if a PostScript driver is used then the stream delivered to EOM is PostScript.
While EOM can certainly route these types of data streams, you really cannot do much else. What if you wanted to use DDA, or create a PDF file, or use the data as input
to a Custom Job? What you really need is the data to arrive at the EOM instance as plain text (a.k.a. carriage return, line feed, formfeed format). Here is what you need to
do:
1.
2.
3.
Define the printer to the Windows operating system (Control Panel, Add Printer) using the Standard TCP/IP port, IP address of the EOM server and Generic Text/Only
printer driver. Then modify the properties of that printer to use LPR, define a Queue name and check the LPR Byte counting. You may need multiple printers,
each with a different Queue name if files from the same application have to be handled by EOM differently, as there isn't a lot of information to File Mask on from
an LPR printer.
Create a Windows printer form if the data stream from the application has records longer than 80 characters per record. Occasionally we receive panic calls stating
that EOM is truncating the input data records from a Windows printer. This symptom is usually caused because by default the Windows printer form truncates at
80 characters. The steps to create a wider form are straightforward, from the Microsoft Knowledge Base article 184057:
1. Click Start, point to Setting, and then click Printers.
2. On the File menu, click Server Properties, and then click the Forms tab.
3. Click Create a New Form and enter Wide132 for the Form Description.
4. Adjust the measurements as follows:
• Under Paper Size, make the Width 13.2in (or wider if you require more columns) and the Height 11.68in.
• Under Printer Area Margins, leave the margins at zero.
5. Click Save Form, and then click OK when complete.
6. Right-click the Generic/Text Only Printer, select Document Defaults {or Printing Preferences}, and then click the Advanced tab {or button}.
7. Under Paper Output, click Paper Size, and then select Wide132 from the list at the bottom.
8. Click OK when complete.
This procedure will save Wide132 as the selected paper size for the Generic/Text Only printer.
Note from EOM Development: Remember to create the Windows printer form using the same usercode that the EOM service will run under, as the the
printer settings are kept on a user profile basis.
Do a test print to verify that the data is indeed sent to the EOM service and is identified by the correct File Mask.
By the way, EOM 8.0 will also allow for HTTP input (and FTP and HTTP protocol output), but that discussion will have to wait a few months.
EOM News & Views
Issue 6, October 2008
[ 32 ]
Page [ 32 ]
Do not upgrade!
Quick Hits
Who are we?
There is a new EOM Services provider for
those of you in New Zealand and Australia.
Graeme Want, Managing Director of WantIT,
has been an EOM champion and expert for
many years. He regularly provides EOM
Development with new feature suggestions,
UCFs, and actively participates when new
releases are in beta test. The WantIT web
site gives a great high-level overview of what
EOM can do. Also, they will be posting DDA
configurations that may be of use to a wide
audience, feel free to contact Graeme if you
have examples you would like to share. See
the
WantIt
web
site
at:
www.wantitconsulting.co.nz
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
There is an Interim Correction for the EOM
MCP system. It can be downloaded from the
Unisys support site.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site or arrange for a
formal class through Unisys. Please contact
us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 6, October 2008
[ 33 ]
Page [ 33 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 7, November 2008
We create solutions.
Got Images???
The concept of EOM handling check images is not new.
As of EOM 7.0 the DDA Position Graphic command
prints .BMP, .GIF, .WMF, .EMF, .JPG, .PNG, and .TIFF.
What may not have occurred to the user community at
large is that it is pretty simple to print multiple images
on single page combining the DDA Position Graphic
with the Logical Page attribute.
DocuTrust Services is a full service print shop based in
Orlando, Florida. They are experts at processing MISER
output, ITI output, and post-processing of that output
(folding, inserting, mailing). They use EOM and have
recently taken advantage of the DDA Position Graphic
command and Logical Page feature to merge check
images with statement data.
The first hurdle was to extract image files from the
°"COF" files, formally known and defined as the Federal
Reserve Common Output Format. The primary file is
the °".IMG°" file, where the images and data about those
images are combined. A standalone program extracts
images and data from the files, writing the data into a
directory EOM will reference when the statement file is
processed. This program also inserts references to
individual image files in the statement file.
When the statement file is processed by EOM, the DDA
searches for image information and queues a Print
Attribute to print those images. This Print Attribute
happens to use a Logical Page defined to be 2 columns
by 5 rows (that is 10 images per page folks). The DDA
simply uses the image information in the statement file
to find the image and write text below the image that
typical image statements possess. At the end of the
image information, for that customer statement, a Queue
Print Attribute is called to format the next customer°"s
statement. The example text in the box depicts the
general format of the data in the statement file after it
is processed by the standalone program.
John Doe
1234 Street
City, St 12345
Date: 10/31/08
Acct: 8787
*** Regular checking ***
$IMAGES$
00000000123456789-010939A-20080429.tif
00000000123456789-010939B-20080429.tif
00000000123456789-200603A-20080429.tif
00000000123456789-200603B-20080429.tif
$IMAGES-END$
Jane Doe
Date: 10/31/08
DDA Feature (you may not know about)
Got Images???..........................1
DDA Feature..................................1
How do I...? ................................... 2
Got F3??? ...................................... 3
Quick Hits....................................... 4
Contact information ....... 4
The Draw Rectangle DDA
command has a variety of uses, ranging from
surrounding text, framing a page or paragraph,
adding color, and drawing lines.
The Draw
Rectangle command requires X and Y
coordinates, a height and width, and options for
the border line and rectangle fill. To draw a line,
you simply set the X,Y where the line starts, the
width (how long the line is), the height (very
short), set a border width/color/fill to the desired
color. One recent use of drawing lines was to
create OMR marks on pages for post-processing.
Another recent use was to dynamically add a
signature line (with "Authorized Signature" text
below the line) depending on the amount of the
check. Given that the Draw Rectangle command
allows for color, you could highlight positive and
negative amounts with different colors.
DDA Item:
Signature
Data Identification = No
Draw Rectangle:
X coord
= 5.0
Y coord
= 3.0
Width
= 3.2
Height
= 0.01
Border Width = 3
Set Variable:
Print Data:
X Coord
Y Coord
Text = "Authorized Signature"
Text
= 5.7
= 13.1
How do I ...?
Many customers are already printing documents with signature files. This article will walk through how to create signature files, how to use signature files, and a couple of
strategies to protect signature files.
There are a couple of ways to create signature files.:
1) Contract with a 3rd party to create a signature font. You send them a signed piece of paper, they send you a font file. The font, PCL or Windows TrueType, is used like
other fonts but typically requires a specific string of characters to print the signature. For example, if your 3rd party provider created a PCL font, you would use the Print
Attribute Command File to download the font to the printer, then use DDA to send a command to invoke the font, followed by string of characters to print the signature (like
"ABCD").
2) Some printers have cartridge slots for font/signature/form files. You contract with the printer vendor to create the cartridge. Then you either plug the cartridge in 24x7
or plug the cartridge into the printer whenever you need the signature - you still need to invoke the font, usually via DDA.
3) The easiest way to create a signature file is to simply sign a bright-white piece of paper with a dark (blue/black) felt-tip pen, scan the image using a scanner/printer and
crop the signature into a common graphic format (i.e. .bmp, .gif,...).
Once you have the signature file, you are going to have to place that signature on the output page. The ways to do this include:
1) If the signature is in a font file, download the font to the printer, then use DDA to send a command to invoke the font, followed by string of characters to print the signature
(like "ABCD"). If the signature is a Windows font, use the DDA command "Change Windows Font" followed by the required string of characters. We will likely see gibberish
if you forget to change the font back to a regular output font.
2) Place the signature on an electronic form. Sometimes it is easiest to simply create an electronic form where the only item on the form
of this method is that you can control the placement of signature relative to the page and use the Print Attribute Command File to invoke the
as the signature is supposed to appear on every page). You could also keep the signature separate from the rest of the form by creating
only the signature, another with the rest of the form. Then, when the signature is required you invoke the signature form. This requires DDA
File" or "Position Graphic" command.
is the signature. The advantage
signature (read: no DDA as long
two electronic forms - one with
and either an "Execute Command
3) Place the signature dynamically using DDA's "Position Graphic" command. In this case the X and Y offset is exactly where you want the upper left-hand edge of the graphic
file to be placed.
People get a little nervous when you bring up EOM's ability to print signatures. The first thing that comes to mind is "How are you going to protect the signature from
unintended use?"
The short answer is that it depends on your site's specific requirements. For example, a signature on an EOM generated insurance advertisement is
probably not as important (likely not even a real person) as a signature on a check. Some sites require that the signature is ONLY available in department X, also where the
MICR printer resides and special check paper stock is stored. What follows are a few methods that we have seen at a variety of customer sites:
1) Place an EOM PC/server in a secure area, where the signature resides on the hard drive. Access to the server, printer, and check stock is restricted by physical security.
Access to the EOM PC/server is restricted by Windows security. In this case, you might have a centrally located EOM server "feed" the remote EOM PC/Server (which could
have the less expensive EOM Professional Edition installed).
2) A customer has a novel way to verify that a signature is used only for a particular check - the signature is used only for that particular check and is NOT used anywhere
else. This means that fraud has occurred if the signature shows up on some other document OR if the check shows up with a handwritten signature.
3) Printing using the signature file requires that someone from Accounting walks down to the EOM server, copies the file (font, graphic, or form) to a special directory, prints
via EOM, and then manually removes the file.
EOM News & Views
Issue 7, November 2008
[ 35 ]
Page [ 35 ]
How do I ...?
(continued)
4) Have the DDA validate the data prior to placing the signature. For example, if the check amount is greater than a certain value for from an unknown account then do not
print the signature (or maybe print a "*** VOID ***" type message on the page).
5) Multiple sites have DDA commands embedded in the printing DDA. They use the "Get User Input" to ask for the operator's name and then ask the operator to enter a
password that is verified by DDA (see EOM News & Views, August 2008). The operator's name is logged in the EOM log via the DDA "Display Variable" command for
validation if required. You could take this one step further by using the DDA "Start Job" command to e-mail a message to management whenever the signature file is used.
6) A large government agency requires that the signature for checks is not sitting around on a hard drive. So, a custom program was written that will extract and decrypt
the correct signature file from memory in the program if and only if the program operator enters a name and correct password. When the operator completes the output or
a time duration elapses, the signature file is replaced with a bogus (for example: "*** VOID ***") signature file. Yes, all of the operator actions are logged in the EOM logfile.
There are likely other solutions out in the field, feel free to send us your solution and we will include it in a future newsletter. Also keep in mind that these are not fool-proof
methods of protecting signature files. "Why?" you ask. Because someone with bad intentions can almost always find a way to corrupt an established methodology.
Got F3???
The F3 ProDesigner forms design tool was the Unisys recommended forms design tool a decade ago. F3 Software Corporation sold all assets to the Keyfile Corporation and
then the F3 as a standalone product evaporated. There are still customers using F3, but are required to keep very old operating systems (like Windows 98) alive in order to
run the F3 ProDesigner forms design tool. Simply redesigning the forms using another tool is certainly an option, but it may require significant time to do so.
There may be another option for those of you still using F3 ProDesigner or that have the F3 forms tucked away in a folder somewhere. The Digicomp company sells a
converter program called F3X and a QuarkXPress plug-in called FormsX that allows (nearly) identical conversion from F3 into the QuarkXPress desktop publishing software.
This means that you convert and then can edit those forms via the QuarkXPress program. The converter and plug-in cost in the neighborhood of $5,000, QuarkXPress retails
around $700.
The rub is that QuarkXPress does not output a Windows metafile directly but does output an encapsulated PostScript file (.eps). There are tools that manipulate .eps files so
it is likely that through a series of steps you could end up with a metafile. If you are using PCL forms, then you simply "print to file" using a Windows PCL driver and run
the PCL stream through the PCLPack utility.
We know what you are thinking: "$5,000!!!!!!" You will have to decide which is the most efficient use of your company's time and money. If you have a lot of forms it
could easily take more than $5,000 worth of time to redesign. If you have lots of money, then contract with us, we will take care of it for you J
EOM News & Views
Issue 7, November 2008
[ 36 ]
Page [ 36 ]
Upgrade now!
Quick Hits
Who are we?
It appears that a recent MCP release changes
how the MCP EOM library is released. The
EOM library is included with MCP 12.0, but
now named *SYSTEM/DEPCON instead of
OBJECT/DEPCON.
There are a few
implications of this change, most notably if
your PrintS device definitions include a
specific reference to an EOM library, as in
"DEPCONSERV ... IN (uc)OBJECT/DEPCON
ON pack".
So, either copy the
SYSTEM/DEPCON library on top of the
current name or change the PrintS device
configurations. This might be a good time
to switch to the SL syntax, as in
"DEPCONSERV ... IN SL DEPCONSUPPORT".
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Rumor has it that two Unisys gurus were
playing with the EOM 8.0 beta at UNITE and
successfully sent data from EOM to
Microsoft
via the new
feature in EOM 8.0. Hopefully we will have
more on this in the next month or two.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site or arrange for a
formal class through Unisys. Please contact
us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 7, November 2008
[ 37 ]
Page [ 37 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 8, January 2009
We create solutions.
Happy New Year!!!
Whew! Now that most of the holiday celebrations are
winding down we can get back to work... "Ha!" You
say, knowing full well that you worked full-tilt through
December and now have year-end wrap-up to worry
about. Well, after all of that it would be good to get
a handle on what is coming for Enterprise Output
Manager in the year ahead. Clearly the big news is
that EOM 8.0 will be released in the first quarter of
2009. The highlights of this release include:
Ÿ
Ÿ
Ÿ The new Transform Job gives you the ability to
manipulate the incoming data stream, typically
changing the input format to something else
(one example is taking in XML and creating PDF
output from that XML).
Ÿ A much simpler, most robust SMTP interface,
including the option for an alternate SMTP
server.
Ÿ EOM client will be able to display other client
Ÿ
Ÿ
Ÿ
identification connected to the Output Manager
service. Even better, with the proper security
settings, you will be able to terminate client
connections.
IPv6 will be fully supported, continuing support
for IPv4 of course.
The Communication
Listening configurations give the ability to listen
for communications traffic across either/both
protocols.
Speaking of protocols, EOM 8.0 will allow
sending and receiving the HTTP protocol.
Another: The new version will also allow sending
with the FTP protocol.
For you DDA gurus: finally, the ELSE and ELSE
IF will be allowed in the DDA language.
File Expiration Search will allow file expiration
based upon the file creation or last modified
date/time.
Ÿ Print-to-file configurations give you the option of
overwriting the file if is already exists.
Example DDA conditional logic in EOM 8.0:
UserVar EQ "password"
{DDA commands}
UserVar EQ "password"
{DDA commands}
{other DDA commands}
UserVar EQ "password"
{DDA commands}
UserVar EQ "OPERATOR"
{other DDA commands}
{different DDA commands}
DDA Feature (you may not know about)
Happy New Year.....................1
DDA Feature..................................1
How do I...? ................................... 2
Quick Hits....................................... 3
Contact information ....... 3
We have mentioned the
use of the DDA Display Variable command in the
past, usually related to debugging, but it appears
that the message is just not sticking.
The DDA Display Variable command gives you the
ability to expose values of user-defined or
system-defined variables, which could be to used
to notify operators of impending doom, write
important security information to the EOM log
file, debug your DDA, or in general provide a
status from within an executing DDA. The
"exposing" of information can be in the form of
writing the information to the EOM Log File, to
the printer debug file (if you set Printer Debug
Mode on the printer beforehand), or to the Print
Preview window. The Display Variable command
lets you select where the information is exposed,
which could be to all three places or a subset of
the three.
One of the most frequent uses of this command
is to debug DDAs. Often we are not certain what
data is identified by the DDA Item, so we insert
a Display Variable command, set the "Variable to
Display" to $CurrentData, and set the "In Print
Preview Window" to "Yes". When the DDA Item
executes via Print Preview the current value of
$CurrentData displays in a message box to view.
Similarly, if you aren’t sure that the string you are
building is correct, simply display it.
By the way, instead of deleting the Display
Variable command from your DDA when done
debugging, set the "Enabled" value to "No", just in
case you need to display that data in the future.
How do I ...?
Many customers have already upgraded to the EOM 7.0/7.1 versions. Having said that, it never ceases to amaze us how many customers are still using
pre-EOM 7.0 versions (even converted a DEPCON 5R1 site recently). We know, if it isn’t broken then why fix it? The short list of answers includes:
○ You will be using supported software.
○ Useful features have been added since the 90’s.
○ Consolidate EOM instances via the new EOM architecture.
○ Security and configuration validation is much tighter.
○ Those 386 PCs just aren’t going to last much longer.
O.K., assuming you decide to upgrade, there have been a few interesting upgrade issues that we have encountered. A few of the more interesting are:
1) Performance was so much better that a Backup Job interfered with the Custom Job.
2) DDA syntax tightened:
A) EOM 6.1 DDA had DDA item with a line and column range, DDA commands within that DDA Item used columns outside the DDA Item column
range. EOM 7.1 does not allow this. For example, if the DDA Item identified Line 2, columns 1-25, DDA commands in this DDA Item
Where using $CurentData[54-60] "successfully" in 6.1.
B) Multiple DDAs had Print Data commands with Y coordinate limit values where the value was less than the Y coordinate. This is a syntax
error in EOM 7.1.
C) One customer had an IF statement along the lines if IF UserVar[1-6] EQ "1234567" which apparently worked in EOM 6.0, but did not work
in EOM 7.1.
3) The Custom Jobs that replaced the User Jobs may require a File Mask conditional change. For example, if you are using the GiveItBack.exe program
as a User Job in EOM 6.1 and have a File Mask looking for "GiveItBack" in the File Masking field, that value needs to be changed to "UGiveItBack" when
using the new Custom Job.”
4) The paper tray selection did not upgrade properly and there were no warnings when saving the configuration. The text found in the EOM 6.1 Print
Attribute Input bin did not match the text found in the EOM 7.1.6 Print Attribute Input Bin, it appears that if the EOM 6.1 text does not match then it
defaults to "(printer setting)"
5) The EOM client can be installed on multiple PCs if desired. The issue at one site was that the Client would not execute, apparently due to tight security
on the desktop systems.
6) Very similar to the above experience, the firewall software on the customer PC needed tweaking to allow an EOM client connection to the remote EOM
service.
7) There are a few of you out there that were constrained by early DEPCON versions where the Print Attribute, Characters Per Line allowed a maximum of
512 characters. There were a variety of workarounds, including changing the application, using the GiveItBack program to break up lines, or simply truncating
the line of data. EOM now allows between 4 and 4096 characters per line, so you may want to change how those files are handled.
EOM News & Views
Issue 8, January 2009
[ 39 ]
Page [ 39 ]
Time to Upgrade?
Quick Hits
Who are we?
A customer had a manual process to move
files from a DMZ server to a server inside
the firewall.
The manual process was
replaced with the EOM Directory Monitor
feature, calling the UCopyIt Custom Job with
the /D option to delete the original file when
the file was successfully copied.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
The soon-to-be-released EOM 8.0 Print
Attribute has a new property "Remove
$DEPDR$ syntax". This means that EOM will
remove the text line directly.
Most
customers using the $DEPHDR$ syntax use
a DDA to remove the $DEPHDR$ line(s), the
DDA (or DDA commands) will no longer be
required.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site or arrange for a
formal class through Unisys. Please contact
us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 8, January 2009
[ 40 ]
Page [ 40 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 9, February 2009
We create solutions.
DDA Feature (you may not know about)
Very recently we received a call from a long-time,
very adept EOM customer. “What is the "
" command used for? {stunned
silence goes here} Given that this question came
from a knowledgeable person, we may need to
refresh a few memories out there.
The DDA Queue Print Attribute is a very powerful
command that allows you to select a different
Print Attribute to be used starting on the next
physical or logical page. This command allows
you to change the
page formatting on a page
by page basis, everything from the page
orientation, lines per page, electronic form, to
using a completely different DDA. The Queue
Print Attribute command can be used at any time
on the current page and is invoked only on the
next form feed - which could come from the
DDA Feature..................................1
How do I...? ................................... 2
Quick Hits....................................... 4
Contact information ....... 4
input file handling or if you use the Perform
Physical/Logical Form Feed command directly.
Suppose an input file consists of multiple groups
of pages where the first page in the group is
customer information including name, address,
phone number, account number and so on.
Further suppose that subsequent pages are detail
information for that customer. It might make the
document more appealing to the customer if the
first page printed in portrait, includes an
electronic form, highlights the customer name,
and has the intelligent mail barcode. Subsequent
"detail" pages are printed landscape in a smaller
font with different page margins. The input file
starts with the front page Print Attribute, then
switches to the detail pages Print Attribute. On
the last page of the "detail" page, a Queue Print
Attribute command would be used to "get back"
to the initial Print Attribute to format the first
page for the next customer. The box below
highlights the main parts of the Print Attribute
and DDA logic.
Even better, you can use conditional logic to
select the Print Attribute to queue dynamically!
For example, suppose there could be five different
formats for the subsequent detail pages in the
example above. Assuming that there is some
keyword on the first page that helps identify
subsequent detail pages, you could dynamically
select the next Print Attribute simply be defining
multiple IF statements that react to the keyword.
For example:
If $CurrentData[1:15] EQ "Regular Savings"
Queue Print Attribute RegularSavingsPA
If $CurrentData[1:15] EQ "Holiday Savings"
Queue Print Attribute HolidaySavingsPA
You can call the Queue Print Attribute multiple
times on the same page, but only the last call
prior to the physical/logical form feed is used.
Also, you can cancel a queued Print Attribute by
using the "Cancel Queued Attribute” command.
CustomerInvoice
Orientation: Portrait
: CustomerInvoiceFirstPage
DDA Item: First Page, Data Identification = Line 1
Queue Print Attribute DetailPA
Print Barcode (Intelligent Mail Barcode)
Position Graphic: FrontPage.WMF
DetailPA
Orientation: Landscape
: CustomerInvoiceDetailPages
DDA Item: LastPage, Search for Keyword "** End of Detail **"
Queue Print Attribute CustomerInvoice
How do I ...?
The Alert Service does a nice job of exposing issues when you are looking at the EOM client. The additional logging, quick summary when
the cursor is placed over the Alert Explorer, and the icon color changes are quite breathtaking. But suppose you aren't looking at the client,
how can the Alert Service notify you that there is a problem?
First we need to sort out the Help files available regarding the Alert Service:
Alert Explorer Help
- How to interact with the Alert Explorer
Alert Filter Editor Help
- How to set up filters, usually used when there are many, many alerts popping up and you want to see a
specific subset of those alerts
Alert Policy Editor Help - How to set up custom actions when alerts occur
You can get to the Alert Explorer Help via the Alert Explorer, then select Help / Contents (or press F1). You can get to the Alert Filter and
Alert Policy Editor Help by opening the Alert Explorer Help, then selecting Reference/Help Information and the Related Information. Or you
can use the Windows Explorer, navigate to the install directory of EOM, Help Subdirectory and double-click on the help file directly.
There are a three ways to have the Alert Service expose alerts via an external interface:
1.
Control a modem and devices accessible through a modem.
2.
Control serial devices that can control lights, audio alarms, and power sources for other devices.
3.
Execute commands via scripts.
We will focus on executing commands via scripts for this discussion.
Lets suppose we run the Legacy Assistant program and want to be notified by email whenever the Legacy Assistant program is not running.
There are at least a couple of ways to solve this problem using the Alert Service in the EOM environment; have a script copy a file into a
directory that the EOM service picks up via a Directory Monitor and then emails the contents of the file to a static email address; create
your own program or script that uses SMTP to send yourself a message; or modify the example script to send an email via SMTP. For
this solution we will modify and use the example script deployed with the Alert Service.
An example script "Mail_Alert.vbs" is provided in the ..\data\alarm-scripts subdirectory of whatever directory the Alert Service is installed.
The script has really good documentation at the top of the script file and notes options depending on your environment. Most sites will
uncomment lines, modify parameters, and we added a few SMTP parameters to get the script to work in the PGCG environment. The
attached file (Mail_Alert-PGCGExamle.vbs) is an example (modified) version, note that lines with "$$PGCG" have been modified. By the way,
script provided with the Alert Service is very useful because it will email the alert information rather than just a generic error message.
There are a couple of terms to define before we proceed:
Alert Policy
- A collection templates, action lists, and actions when a specific event (or events) occur
Template
- A uniquely named entity that defines what type of command is initiated when this template is used
Action Lists
- The list of specific alerts and what action is to be taken when that alert occurs
EOM News & Views
Issue 9, February 2009
[ 42 ]
Page [ 42 ]
How do I ...?
(continued)
To configure the Alert Explorer to use this script from the ..\data\alarm-scripts subdirectory we need to do a few things:
1) Open up the Alert Explorer (from the EOM Client click on Alert Explorer shortcut or use the menu Tools / Alert Explorer)
2) Select the menu option Configuration / Alert Policy Editor. The name of the SAS Server should be at the top of the left-hand panel, with
a sub-node of "Alert Policies". Expand the "Alert Policies" node to see the "OutputManager 7.1" node. Expand the "OutputManager 7.1" node
to see "Templates"”and "Action Lists"
3) Create a Template called "EmailMessage". Click on the "Templates" node, then use the menu selection File / New Template / Command
Template (or right-click in the right-hand panel, select "New Template" and then "Command Template. Define the script to execute ("cscript
Mail_Alert-PGCGExample.vbs")”and give the Template a name ("EMailMessage"). Save the Template.
4) We now need to attach the Template to the event to "LegacyAssistantNotConnected" alert, so simply select "LegacyAssistantNotConnected"
in the left-hand panel, then menu selection File / New Action (or right-click in the right-hand panel, select "New Action"). Note that Action
must be Enabled=Yes, specify the Template to use ("EmailMessage") and define the email address to send the message to in the Text field
("Operations@company.com" in the screen shot below). Save the Action.
When the Alert LegacyAssistantNotConnected occurs, an email is sent to Operations@company.com.
found in the Alert Explorer Help file, under Specific Alerts / List of Alerts
By the way, a list of alerts can be
Now that you configured the Alert policy the next step is to activate it. Still using the Alert Policy Editor, select the Alert Policy name in
the left-hand panel (i.e. "OutputManager 7.1"), right-click and then select "Activate". If the current Alert Policy is already activated, then select
"Deactivate" and then "Activate".
EOM News & Views
Issue 9, February 2009
[ 43 ]
Page [ 43 ]
Need remote training?
Quick Hits
Who are we?
Interim Correction 7.1.7 is available from the
Unisys Support Site. There are a handful of
fixes: Legacy Assistant crash fix, EOM hang
fix, font size rounding on configuration
import, SNMP variables not updated, and a
few more. See the Unisys support site for
details.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
EOM 8.0 is officially First Customer Shipped
(FCS) as of 1/29/2009. Congratulations to
the development and release teams!
and
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 9, February 2009
[ 44 ]
Page [ 44 ]
newsletter
PGCG
EOM News and Views
Issue 10, March 2009
Pretty Good Consulting Group
Got a problem?
We create solutions.
Client to Service connection across domains
Ever wonder how to allow the EOM Client in one
domain to connect to an EOM Service in another
domain? Or, do you have the EOM service installed in
a Windows workgroup environment but want to provide
client access from a Windows domain?
The EOM documentation states:
... if the computers do not belong to a
domain and instead use Windows
Workgroups for networking, or the
computers belong to different domains (that
do not have a trust relationship), then an
additional procedure is required to create
the local groups used by Output Manager
security. Every user that uses the Output
Manager client will need to be created as a
user on the computer that runs the Output
Manager service. The user names and
passwords on both computers must match
exactly. The duplicate user name that you
create on the Output Manager server is
commonly referred to as a "shadow account."
Customer Danny Deutsch of EDS in West Virginia
recently enlightened us with a better solution. He
showed that using the RUNAS command line program
with the /netonly option means that remote
domain/workgroup users can connect using a usercode
defined in the local domain/workgroup. The syntax will
look something like this:
<domain>\<userid>
"C:\EOMClient\bin
"
Where the "<domain>" and the "<userid>" is defined in
a local security group on the server running the EOM
service. What this means is that if the EOM service is
running on a server in DomainA (or WorkgroupA) then
clients outside of the domain (or workgroup) can
connect using a defined DomainA (or WorkgroupA)
usercode in the RUNAS syntax. When the RUNAS
syntax is executed, a dialog box is displayed to the user
requiring the password for the <domain>\<userid>
account.
The EOM Development team added the additional syntax
to a desktop shortcut to make the client skip the Select
Server dialog box:
%windir%\system32\runas.exe /netonly
/user:EOMPS1\EOMAdmin "C:\EOMClient\bin
"
Note: Make sure you have the correct syntax for the
EOM Client (...\eomui.exe), as no message is displayed
if there is incorrect syntax.
EOM 8.0 Feature
EOM 8.0 Feature.....................1
How do I...? ................................... 2
DDA Feature..................................3
Quick Hits....................................... 4
Contact information ....... 4
Prior to EOM 8.0 you could select the
fields you wanted to see, arrange the columns of
those fields, sort the data, place the Management
windows where you wanted them, and then use
the Customize View / Save Current View Settings
to save off that layout. Then you were safe from
screen layout changes ... until the next person
made and saved
changes.
EOM 8.0 still provides the Management window
Customize View menu, but it adds a new option
to the Tools menu selection called "Import and
Export Settings".
The menu selections are:
,
and
Export simply copies the current layout and
management window settings into an XML file
(default name is "ClientSettings-yyyymmdd.xml").
Import uses a previously saved file of settings,
but also stops and starts the EOM client. Reset
Default Settings sets the layout to what the layout
and management window values are upon initial
install.
For those of you that support multiple remote
EOM instances you could create a "standard"
ClientSettings file and distribute it to your remote
customers with simple instructions on how to
import that file. For your own use, you might
have different ClientSettings files depending on
the type of debugging you want to do.
The
ClientSettings file also keeps track of the toolbar
settings (maybe do not show the Suspend icons)
and the most recent history of the EOM server
connections.
How do I ...?
The new Enterprise Output Manager (EOM) 8.0 was released at the end of January. There are lots of new features (see last month's EOM
Newsletter for the highlights), the the majority of questions we have received on EOM 8.0 so far are: "How do I order it?" and "What style
numbers do I use?"
First we need to sort out how to order the new release. The simple answer is to contact your Unisys Sales Representative. Or, you can
order the software from an authorized Unisys reseller (no, PGCG is not one of those). Or, if you are not sure who to call you can call
Unisys Software Services at 1-800-829-1313.
Those of you who are proud owners of the EOM subscriptions can order the new release exactly the same way.
The how to order should be the easy part, we need to define what to order next. For the most part this release follows the same Edition
structure of the EOM 7.0/7.1 release, including upgrade pricing. So, if you own the Enterprise Edition you should order the Enterprise
Edition upgrade. Same for the Department Edition and Professional Edition (one document, now corrected, listed this Edition as "Personal
Edition", not to worry it is the Professional Edition).
Component
New License
Upgrade
Subscription
Professional
Edition
DSS32-ESR
DSS480-PRO
DSS480-UPG
DSU400-PRO
Department
Edition
DSS32-DPT
DSS380-DPT
DSS380-UPG
DSU300-DPT
Enterprise
Edition
DSS32-CTL
DSS280-ENT
DSS280-UPG
DSU200-ENT
DDA
Designer/Web
Assistant
DSS500-ADM
DSS580-ADM
DSS580-UPG
DSU500-ADM
DDA Designer
DSS32-DDA
DSS580-DDA
DSS580-DDU
DSU500-DDA
DDA Designer Additional
DSS32-DDA
DSS580-D2
DSS580-D2U
DSU500-D2
You can also upgrade a copy of the EOM 7.0/7.1 to EOM 8.0 Enterprise Edition or EOM 8.0 Department Edition to EOM 8.0 Enterprise
Edition, contact Unisys for details.
Note that not only can you purchase the DDA Designer key without the Web Assistant, but you can also purchase additional DDA Designer
keys for a lower price once the first key is purchased. This is especially good for sites that have multiple EOM gurus that create DDAs
from their own PCs.
EOM News & Views
Issue 10, March 2009
[ 46 ]
Page [ 46 ]
DDA Feature (you may not know about)
If there is one DDA command that still gets little respect, it is the
This command provides both mathematical and string manipulation capabilities. Lets take a closer look.
command.
First, there must always be a Result variable where the converted number/string goes if the command completes successfully. By the way,
you can check if the Convert Variable was successful by testing the value of $NumericResult (after the Convert Variable completed): it was
successful if $NumericResult equals 1.
Mathematical conversion is pretty straightforward: absolute value, integer/fractional parts of a number, and turning a number into a string
(and vise versa) pretty much covers what you can do on the math side.
String conversion includes removing spaces, capitalization of text, finding the length of a string, an ability to convert characters into
hexadecimal values, and generic sounding "String replace". The "Control codes to control characters" conversion is typically used when you
want to insert hex values into the output stream (like an extra formfeed (hex 0C)) or even to create the Escape-60-Escape EOM-specific
syntax to send to a remote EOM.
At first glance the "String replace" conversion simply replaces all instances of a substring with another string. The real power of this
command is when you use regular expressions, where the property "Replacement value" is a regular expression and the "Pattern to replace
is a regular expression" property is set to "Yes".
Learning about and using regular expressions is a full topic onto itself, as there are numerous options and it can get very complicated. If
you are really interested, there are multiple web sites and even full books devoted to the subject. There are at least 15 different flavors of
regular expression handling, where a particular "flavor" is supported by programming language or application. The EOM Help text for string
replacement using regular expression states that EOM's regular expression handling is performed by the .NET Framework method
System.Text.RegularExpressions.Regex.Replace(string, string, string). So you are limited to whatever is supported by that .Net method.
In the DDA Convert Variable command, the "Result variable" is set to the "Source variable" with the "Replacement value" inserted as per the
"Pattern to replace" regular expression syntax. There are a ton of syntax variations so for this article we will just show a few examples and
encourage you to investigate the real powerful capabilities on your own. By the way, a really good resource on regular expressions can be
found at http://www.regular-expressions.info/reference.html.
Source text
Regular expression
Replacement value
Result
Notes
1,450.00
[012345]
A
A,AAA.AA
Replace numbers 0-5
1,450.00
[^0-9]
A
1A450A00
Replace non-numbers
1,450.00
[1|5]
A
A,4A0.00
Replace 1 or 5
1,450.00
^1,
A
A450.00
Replace starting 1,
1,450.00
.00$
A
1,450A
Remove ending .00
abcabbcabbbc
ab*
A
AcAcAc
Replace ab, abb, abbb,..
<p>Hi Ed</p>
<.*?>
Hi Ed
Remove all HTML tags
EOM News & Views
Issue 10, March 2009
[ 47 ]
Page [ 47 ]
Need remote training?
Quick Hits
Who are we?
We learned recently that EOM Development
recommends using the "Microsoft native
channel" instead of the "Traditional Output
Manager channel" for the communication
transport between the EOM Client and EOM
Service.
This is a setting in the
Configuration tab in the EOM service
properties. Select "Microsoft native channel",
stop and then start the EOM service.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
Rumor has it that you can create TIFF files
using the Dane Prairie Win2PDF software
current used to create PDF files. More on
this next month...
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 10, March 2009
[ 48 ]
Page [ 48 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 11, April 2009
We create solutions.
Secure fonts
Printing checks usually makes people nervous. The
composing and printing process is pretty simple,
especially with EOM, but there are a few things to worry
about (Are the check amounts correct? Is the MICR
data line in the right place? Did we print the check
properly? Can we account for all the check stock? And
so on). Then, once the check is printed, we have to
worry about possible ways the check could be
corrupted.
Good check stock is made of specially treated paper
that has multiple safeguards right in the paper: finely
printed patterns that are too small for copiers to
reproduce, watermarks that do not copy via a copy
machine or are visible when copied, paper that turns
color or smears or displays the word VOID if someone
tries to change the check with chemicals, strands of
special thread that can be seen with ultraviolet light,
chemicals that make it hard to modify the printed MICR
text, color schemes that are hard to copy, and other
safeguards.
Security built into the printing process includes the
MICR line at the bottom of the check (bank routing
code and account), a control number to uniquely
identify that check, and playing with the text to minimize
the ability of bad guys to change the data on the check
(i.e. adding asterisks around the number so numbers
are not added after the check is printer). There is
another way to safeguard the printed data on a check:
use special fonts for the amounts and even some of the
text printed on the check.
For example, Elfring Fonts has a collection of fonts
called "Secure Fonts" that provide multiple styles that
make it harder to corrupt the text. A few examples:
(MrS_Payee)
Mrs_Payee
<Mr_Pay
ee>
$1,042.77
Note that the fonts allow for text below each character
if desired, as well as a few special characters that
change the prefix or suffix:
(____=$1,042.
EOM 8.0 Feature
Secure Fonts.............................. 1
EOM 8.0 Feature ................. 1
Tiff printing..................................... 2
Quick Hits....................................... 8
Contact information ....... 8
The new Transform Job manipulates the input file into
a differently formatted output file AND allows actions to be taken with that new file. The input to the
Transform Job can be XML or text, the output file can be a variety of formats depending on what you
want the Transform Job to do. We will investigate just one use of the Transform Job here, specifically
how to take an input XML file, marry it with a stylesheet, and produce an HTML email. For this
example, pretend that the real problem you are trying to solve requires that an HTML email be sent
to a user to confirm their recently submitted phone numbers on the National Do Not Call list
(www.donotcall.gov).
The first thing to get straight is the data flow:
Data -> File Mask -> Transform Job -> XML Processing Directive -> Email Job -> HTML email sent
Lets start with the data. The formatted HTML email is a combination of the input data with the XML
stylesheet (.XSL or .XSLT file). There can be formatting commands in either the input data or the
stylesheet file or both. The example Demo1-Email.XML file released with EOM 8.0 has formatting data
in the XML file:
(continued on page 3)
How do I ...?
We have had the request to print TIFF files pop up every once in a while over the years. The typical answer is that yes you can have EOM
create TIFF files as long as you find a Windows Print driver that creates TIFF files and that driver supports the programmatic interface to
name the file.
Another solution for TIFF output was right under our collective noses, found by the EOM Development team. It turns out that the Dane
Prairie Win2PDF solution for printing PDF files from EOM also has the capability to produce TIFF files. The catch is that you have to
download a couple of additional files and set ALL Win2PDF output to produce TIFF files.
Installation and configuration are straightforward:
§ Go to the Dane Prairie download page, to download both the Win2PDF Font Helper application and the Win2PDF Admin Utility.
§ Install both of these downloads, Font Helper first, on the same PC/server that the Win2PDF software resides.
§ Run the Win2PDF Admin Utility
○ Select the "Troubleshooting" tab
○ Check the option labeled "Enable TIFF output".
There are a few downsides to this solution:
§ ALL files run through the Win2PDF printer will be turned in to TIFF files.
§ It will produce only one page in the TIFF output.
§ The output is not a crisp as PDF, for example characters are a little fuzzy.
§ Color graphics are turned to black & white.
So, if you already have Win2PDF, need single-page TIFF files, and can switch between PDF/TIFF manually then Win2PDF is a workable solution.
EOM News & Views
Issue 11, April 2009
[ 50 ]
Page [ 50 ]
EOM 8.0 Feature
(continued from page 1)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:svg="http://www.w3.org/2000/svg"
version="2.0">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>Generating HTML from XML</title>
<body>
"/>
<xsl:copy-of select="//
</body>
</head>
</html>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="utf-16"?>
<Demo1-Email>
<To>SteveD@PrettyGoodConsultingGroup.com</To>
<Subject>Demo1 from XML, converted to PDF, and sent via e-mail</Subject>
>
<
<p>Dear Enterprise Output Manager enthusiast,</p>
<p>
This is an example of what can be done with XML in Enterprise Output Manager.
</p>
<p>
The body is simply HTML text extracted from the original XML file.
You can provide HTML markup in your data to have <b>
bold and/or <u>underlined</u> text</b>
and even <span style='color:red'>color</span>.
</p>
...
</Body>
...
The corresponding XSL file (SelectEmailBodyText.XSL) plucks that data from the input data file, specifically the text within the "body" node:
In our example, the input file will contain only the variable data and we will rely on the stylesheet to handle the formatting. The input file XML file looks
like:
<?xml version="1.0" encoding="utf-16"?>
<Register-Email>
<To>SteveD@PrettyGoodConsultingGroup.com</To>
<Subject>National Do Not Call Registry - OPEN AND CLICK on Link to Complete Your Registration</Subject>
<Body>
<
>https://www.donotcall/register/RegConf.aspx?BBC3C4BC-F8BD-491B-8B61-1EE180858B8C</ReplyLink>
<
>1234</LastFourDigits>
</Body>
</Register-Email>
The stylesheet (XSLT) file is a little more complicated because we include the formatting commands as well as references of where the variable data
(ReplyLink, LastFourDigits) is to be inserted. The stylesheet is also more complicated because we used a GUI program to design the stylesheet (more on
that below). The really important syntax in the stylesheet is:
<xsl:value-of select="Register-Email/Body/
<xsl:value-of select="Register-Email/Body/
"/>
"/>
This is where the input data from the input XML file, node ReplyLink and node LastFourDigits is merged into the output stream. Note that the value of
the To and Subject nodes are not referenced in the XSL file because that data is used by the EOM Transform Job directly when emailing the file. As you
might guess, there can be many nodes of data in the input XML file can then be referenced in the resultant HTML email. Once processed via the Transform
Job, the result is an email that looks like the graphic on the bottom of page 6.
(continued on page 4)
EOM News & Views
Issue 11, April 2009
[ 51 ]
Page [ 51 ]
This simple example can be made even simpler if we assume that an application creates individual XML files for each email to be sent. Maybe it is a web
application that fires off as soon as the customer submits the phone number on a web page, or maybe the application looks into a database every 15
minutes for new entries to be handled. No matter how the XML file is generated, if it is written into a directory that the EOM Directory Monitor is "watching"
then getting the file into the EOM environment is done. The File Mask is configured to submit a Transform Job to process the file.
Note - you could
use the new HTTP interface to feed the data to EOM from the web application, but that is discussion for another newsletter.
The Transform Attribute configuration is really simple. You give the attribute a name and then define a "Source", which is really a string that is used for
matching one or more of the new XML Processing Directives. Much like the behavior of the File Mask, the Source string is used as a match conditional
starting at the top of the list of XML Processing Directives and continues through the list until there is a match. You can configure XML Processing
Directives to Continue Search After Match. Once the Source string matches the XML Processing Directives Source string, the Condition property is evaluated
and, if true, the XML Directive is executed.
The XML Processing Directive is not quite as simple.
Note that the
Condition of the XML Directive is simply to verify that there is a //Body
section within the input file. We need to create an email and want to use
our XSLT file to create the body of the email message. Notice that the
To and Subject fields are automatically defined from the input file data via
XPath statements. If this email was always sent to the person or
distribution list then the Directive could have that email address defined
directly so it would not be required in the XML input file. The remaining
email properties are identical to the Email Attribute properties.
Why design the XSL stylesheet with a GUI program? Very simply, creating
an XSL file from scratch requires significant intestinal fortitude and a deep
knowledge of the XSL syntax ("not for the faint of heart" was one
description we heard). You can certainly compose the stylesheet from
scratch using Notepad or other text-based editor, but using a GUI to "draw"
the expected result should be much easier. You also may find Notepad less than satisfactory if the XML and/or XSL file do not have records ending in
carriage-return linefeed - your first indication of trouble will be that the records wrap throughout the displayed area. There are a handful of editors that
present the XML/XSL better, one is the Microsoft Visual Studio Tools for Applications, another is the Altova XMLSpy.
One product that provides a GUI
interface to create XSL stylesheets is Altova's Stylevision product.
(continued on page 5)
EOM News & Views
Issue 11, April 2009
[ 52 ]
Page [ 52 ]
The Altova Stylevision program provides a drag & drop design environment where data references from an XML file (or database) can be inserted into the
stylesheet. Stylevision has numerous other features, we will stick to the simple example here, where it is used to create the format of the HTML email.
The steps to create a stylesheet using Altova’'s Stylevision are:
1)
2)
3)
4)
Select New / New from XML Schema/DTD/XML...
Browse to your example XML file
If you do not already have an XML schema, you will be required to select "Generate new XML Schema" and provide a file name
Create your stylesheet
A) Add the static text, graphics, hyperlinks, and whatever to the page
B) Add dynamic Bookmarks for the dynamic data (from the XML file). The "Insert", "Insert Bookmark" menu selection allows you to select
the Dynamic node right out of the example XML file
C) Add dynamic Hyperlinks for the dynamic hyperlink data (from the XML file). The "Insert", "Insert Hyperlink" menu selection allows
you to select the Dynamic node right out of the example XML file
D) Save the design in the Altova native format (.sps)
E) Go to "File" / "Save Generated Files" and select "Save Generated XSLT-HTML File..."
F) Edit the resultant .XSLT file. This step is messy. Editing is much easier if you use an XML/XSL editor like Microsoft Visual Studio
Tools for Applications.
1) Replace the string "<title/>" with "<title>a</title>" (found after first <html> <head> sequence)
2) Remove the <xsl:attribute name="name"> and </xsl:attribute> around each of the dynamic Bookmarks you added.
One of the major advantages of using the GUI design software is that you can quickly modify the look and feel of the stylesheet, including fonts, colors,
images, and so on.
Step 1
Step 4a
EOM News & Views
Issue 11, April 2009
[ 53 ]
Page [ 53 ]
Step 4 B & C
EOM News & Views
Issue 11, April 2009
[ 54 ]
Page [ 54 ]
Then, from here you can spruce up the formatting without changing the input data.
EOM News & Views
Issue 11, April 2009
[ 55 ]
Page [ 55 ]
Time to Upgrade?
Quick Hits
Who are we?
In the February newsletter we discussed the
Alert Service configuration. In an example
we stated that we wanted to know when the
Legacy Assistant stopped and then
proceeded to explain how to configure the
Alert Policy to do that. Only one problem Astute EOM user Dave McCann of
Lumbermans Merchandising points out that
the alert pops only after a Custom Job
attempts to use the Legacy Assistant. He
also reports that EOM Development
recommends that you may also want to
configure to run the email script if the
EmailJobConfiguration alert occurs so either
type of job will notify you when the Legacy
Assistant is not running.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Unisys Customer Education has scheduled a
web-based EOM Basic Workshop for April
21st -> April 24th. The class is held from
11am to 3pm (EST). Contact Unisys for
details.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 11, April 2009
[ 56 ]
Page [ 56 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 12, May 2009
We create solutions.
What does “Transpromo” mean?
actional information with
"Transpromo" has been getting a lot of press (and
hype) since the word was conceived in 2008.
What it means is adding targeted marketing
messages to regularly printed and distributed
output. For example, you receive bank statements
and bills every month. Wouldn’'t it be great if
you also had advertising on those bills? {yeah
rah rah} But this idea is typically taken a little
further: use color, images, and personalize the
advertisement specifically for that customer.
AND, you may be able to offer this advertising
space to other companies for profit.
There are good reasons why this is a hot topic.
First, the statements and bills (sometimes called
"transactional information") have a very high
viewing rate compared to general advertising, as
well as a longer viewing time. This means that
the recipient actually looks at the paper before it
tional marketing.
hits the recycle bin and maybe even is viewed
multiple times as the document is handled. Next,
there is usually unused (a.k.a. "white space")
areas on these types of documents. Finally, there
is an opportunity for cost savings: replace
inserts and save postage costs since the
statement/bill has to be sent anyway.
So what does this have to do with EOM? Well,
the EOM Data Dependant Attribute (DDA) feature
is perfectly suited for transpromo composition.
DDA lets you add graphics (Position Graphic,
Draw Rectangle), text (Print Data with word
wrap), and color (fonts, images) quite easily.
Even better, DDA gives you the ability to add
transpromo information without changing the
input stream. DDA could be configured to add
promotional messages regardless of the recipient
or add that information intelligently based on
information on that page for personalization.
For example, suppose you are a bank that would
like to market a new certificate of deposit (CD)
product which requires a minimum $10,000
opening deposit.
EOM and DDA already
compose the bank statements, so simply add the
DDA logic to add all of the balances for the
customer, if it is greater than $10,000 you print
a graphic in color, their name, and an eyecatching persuasive phrase.
If the total of
balances is less than $10,000, you still print a
graphic (maybe not in color), their name, and a
hopeful message that they should someday
consider this CD product.
Note that you can change the transpromo
message every day if you want and you DO NOT
need to modify the incoming print stream.
DDA Feature (you might not know about)
Transpromo................................. 1
DDA Feature .............................. 1
How do I ...? ................................. 2
Quick Hits....................................... 6
Contact information ...........
Suppose different people are interested in
different parts of the same report. How can DDA
be used to print the desired sections for the
different people?
The three DDA commands that help us create a
subset of the original input stream are
,
, and
.
Use the End Report command to stop processing
any more of the input stream. Whatever has
already been printed is all that will be printed
when the End Report command is invoked. Using
Set Data Output On and Set Data Output Off can
be much more interesting, as the logic in your
DDA controls when these commands are invoked.
Set Data Output Off simply suspends print output
- your DDA is still processing the input stream
and while you may have DDA commands printing
to the output stream, no output is actually created
until the Set Data Output On command is invoked.
Example: 3 people need different parts of a
particular report. Sally wants Branch 01 pages,
Dick wants Branch 02 pages, and Jane cares only
for Branch 03 pages. You create three unique
Print Attributes, where each Print Attribute
references a unique DDA, where the DDA invokes
the Set Data Output Off command immediately,
then Data Output On when the desired section of
the input stream is found, and sets Data Output
Off when the desired section completes.
While you could create many DDAs to handle
more sections, it might make sense to use the
UEOMSplit program to physically break up the
How do I ...?
Yes!!!! Prior to the EOM 8.0 Transform Job feature you could have created a crude DDA parsing routine or used the Custom Job UCSVmap (see
/tools/UCSVmap directory on the release CD) to handle Excel data saved in comma delimited format. Now there is a very slick way to transform the Excel
data into something much easier to process within the EOM DDA. There is an even slicker way to populate a Form File Utility form...
First, we need to start with the Excel spreadsheet. Suppose that your application produces an Excel spreadsheet where each row contains information
required to print a check. For example:
EOM cannot process the Excel file (.xls) directly, so you simply Save As... using type CSV (Comma delimited (*.csv)) into a directory. If there is a Directory
Monitor configured to watch that directory then EOM will automatically process the file, if not then you could submit the file with a manual Create Print
Job from the EOM client.
All the magic from here on happens via EOM. The data flow is as follows:
The Transform Job requires a Transform Attribute. The Transform Attribute property "Text to XML Conversion" allows for non-XML input files to be converted
into XML directly by EOM, in this case we will use the "Delimited" value and a comma as the "Delimiter character string". So, behind the scene EOM
converts the comma delimited file into an XML file before invoking the XML Processing Directive(s). The Transform Attribute is defined with a "Source"
value that identifies the proper XML Processing Directive(s). The "only" thing the XML Processing Directive does for this example is convert the XML file
into a text file. It does this based on the XSLT style sheet file defined in the XML Processing Directive. Finally, EOM then submits the text file to the File
Mask because the "Action" property is set to "Create new file and apply it to the File Mask". From there, the File Mask identifies the incoming file and
submits a Print Job using a Print Attribute that references a DDA to place the data. Quite Easily Done.
But wait a minute, .... how exactly are
these things configured?
ConvertCSVToText
Source:
XMLToTextLoopback
Text to XML conversion: Delimited
Delimiter character string: ,
Root node name:
CheckDataDemo
Child node names: CheckRecord
Element names:
{blank}
XMLToTextLoopback
Source:
XMLToTextLoopback
Action:
Create new file and apply it to File Mask
Condition: true()
Generate file and loop back
Transform Result:
TXT
Transformation file name:
XMLToText1.xsl
User Tag 1:
XMLLoopback
EOM News & Views
Issue 12, May 2009
XMLLoopback
File Selection Criteria
User Tag 01 EQ XMLLoopback
Transport Type EQ Loopback
Job Creation
Print Job:
Print Attribute: CSVToXMLToDFF
Printer:
PDF1
[ 58 ]
Page [ 58 ]
The XSL takes the generated XML file and creates a text file where each value is on a separate line. The XML, XSL and result TXT are as follows:
<?xml version="1.0" encoding="utf-8" ?>
- <CheckDemoData>
- <CheckRecord>
<CheckNumber>12340001</CheckNumber>
<CheckDate>05/19/09</CheckDate>
<PayeeName>HOMER HAGERSNASTY</PayeeName>
<PayeeAddr1>2134 PITH WAY</PayeeAddr1>
<PayeeCityStateZip>ROSEVILLE MN 55041-2345</PayeeCityStateZip>
<ClaimForm>700076</ClaimForm>
<PayAmount>14144.48</PayAmount>
<Gross>25000.00</Gross>
<FedWithholding>6750.00</FedWithholding>
<StateWithholding>1875.00</StateWithholding>
<ChildSupport>625.86</ChildSupport>
<Restitution>1604.66</Restitution>
</CheckRecord>
- <CheckRecord>
<CheckNumber>12340002</CheckNumber>
<CheckDate>05/19/09</CheckDate>
<PayeeName>SALLY PHONEBONE</PayeeName>
<PayeeAddr1>23 POLYNOMIAL BLVD</PayeeAddr1>
<PayeeCityStateZip>OPHIR AL 43241-2345</PayeeCityStateZip>
<ClaimForm>700076</ClaimForm>
<PayAmount>14143.55</PayAmount>
</CheckRecord>
</CheckDemoData>
<xsl:stylesheet version="2.0" encoding="utf-16" ...
<xsl:output method="text" version="1.0" />
<xsl:template match="*" >
<xsl:apply-templates select="*" />
</xsl:template>
<!-- Matches every entry and copies each one to the result file. -->
<xsl:template match="*">
<xsl:choose>
<xsl:when test="count(child::*) > 0">
<xsl:value-of select="name()" />
<xsl:text>
</xsl:text>
<xsl:apply-templates select="*" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name()" />
<xsl:text>=</xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of select="."/>
<xsl:text>"</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="position() != last()">
<xsl:text>
</xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
CheckDemoData
CheckRecord
CheckNumber="12340001"
CheckDate="05/19/09"
PayeeName="HOMER HAGERSNASTY"
PayeeAddr1="2134 PITH WAY"
PayeeCityStateZip=" ROSEVILLE MN 55041-2345"
ClaimForm="700076"
PayAmount="14144.48"
Gross="25000.00"
FedWithholding="6750.00"
StateWithholding="1875.00"
ChildSupport="625.86"
Restitution="1604.66"
CheckRecord
CheckNumber="12340002"
CheckDate="05/19/09"
PayeeName="SALLY PHONEBONE"
PayeeAddr1="23 POLYNOMIAL BLVD"
PayeeCityStateZip="OPHIR AL 43241-2345"
ClaimForm="700076"
PayAmount="14143.55"
EOM News & Views
Issue 12, May 2009
[ 59 ]
Page [ 59 ]
Now it is just a matter of writing a DDA that looks for the keywords and parses values from the text lines. Then, the DDA can place the data on the page
anywhere you like. Once again, Quite Easily Done.
But wait a minute, .... Is there a really slick way to place this data on a form?
Yes!!! The Form File Utility has a little known feature that allows the designer to open a comma separated file and then drag & drop from that file onto
the canvas of the form. Here is what you need to do:
Ÿ If not previously done, locate the Form File Utility initialization file (FFU.INI) and add the string "ShowCSVMenu=1" under the "[Flags]" section of
the initialization file. Run the Form File Utility program and you will now see a "File / Open Text Template …" menu selection.
Ÿ (optional) Use the menu selection "Edit / Load a Metafile" to add an electronic form designed in Word to the Form File Utility file.
Ÿ Using the "File / Open Text Template …" menu selection, open the original comma delimited saved from Excel.
Ÿ Select one field at a time from the Text Template dialog box and then drag & drop onto the Form File Utility form.
Ÿ You can then specify specific field properties as desired by selecting the individual fields and modifying the Property Inspector properties.
Ÿ Save the Form File Utility file (.DFF) in a directory of your choice or the Enterprise Output Manager /prntctrl directory.
EOM News & Views
Issue 12, May 2009
[ 60 ]
Page [ 60 ]
The data can be placed easily because the name on the Form File Utility field matches the name of the column of data from the Excel spreadsheet. (By
the way, if you do not want to use the names from the Excel spreadsheet then you can define the names of the fields assigned to the data via the Transform
Attribute "Element names" property). So, your DDA parses the name and the value from each line, then uses those values as variables to place the data
via the Print Data command. Page breaks occur every time the DDA finds the "CheckRecord" string, which means there is a new set of text data for the
next check.
Clearly you would need to do additional DDA work before sending this out for production output. Simple enhancements like display the dollar amounts
with dollar signs, create the words to match the check dollar amount, and adding MICR barcodes are Quite Easily Done.
Really.
EOM News & Views
Issue 12, May 2009
[ 61 ]
Page [ 61 ]
Time to Upgrade?
Quick Hits
Who are we?
The current Interim Correction for EOM 7.1
is the 7.1.7 version. There are no Interim
Corrections for EOM 8.0 at this time (nor
need for one).
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
Unisys Customer Education has scheduled a
web-based EOM Advanced Workshop for The
week of June 1st. The class is held from
11am to 3pm (EST). Contact Unisys for
details.
and
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 12, May 2009
[ 62 ]
Page [ 62 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 13, June 2009
We create solutions.
Running EOM as a desktop application
Sometimes you cannot fight City Hall, nor paying
customers. Ever since the EOM architecture
changed from a Windows GUI application to the
current Windows client-service design there has
been minor grumbling and reluctance from some
customers to use EOM as a Windows service.
There are a variety of reasons for this reluctance,
usually related to additional work required to
control and manage Windows usercodes &
passwords for both the EOM service and Security
Roles. Well fine, there is solution but it is not
as elegant as running EOM as a Windows service
{sniff}.
EOM 7.0, 7.1, and 8.0 are released with a utility
named
.exe which simply runs
the EOM service code as if it were executing on
the Windows desktop. This utility can be found
in the ../bin subdirectory where EOM is installed.
For EOM 8.0 users it can be started via Start /
Programs / Unisys Enterprise Output Manager /
Tools / Output Manager Desktop Agent. Keep in
mind that you still must run the EOM Client
program to configure and "see" what EOM is doing.
Before using the desktop agent make sure you
stop the EOM Service and set the service "Startup
Type" to Manual or Disabled. When executed, the
only visible clue that the desktop agent is running
is the icon in the Windows system tray.
Interaction with the desktop agent is easy, simply
right-click on the icon in the system tray - you
can shutdown the desktop agent or start the EOM
Client.
You may want to include the
EOMDeskTopAgent.exe program in the Startup
folder so it runs whenever the user logs on to
the system.
This means that EOM runs under the usercode
signed on at the time, and will terminate when
the user logs off. An advantage is that any
network or printer resources defined will always
be seen by EOM, which is sometimes a problem
when a resource is added by a usercode different
than what the EOM service runs under. Another
advantage is that dialog boxes from Windows
Print Manager drivers will be displayed.
"What's the downside?" you ask. Well, the major
issue is that EOM runs only when someone logs
on and starts the desktop agent.
Some
customers have tight security requirements that
would not allow a GUI log on to run the software.
Also, this method requires physical interaction
with a system, which does not fit well in the
movement towards lights-out data center
operations.
EOM 8.0 Feature (you might not know about)
DeskTopAgent......................... 1
File Expiration .......................... 1
How do I ...? ................................. 2
Quick Hits....................................... 4
Contact information ....... 4
The
is used to
automatically delete files from directories and
subdirectories. You can define 0 or more File
Expiration Search attributes to the EOM service,
depending on each of those configurations EOM
looks to delete Backup, Index, or regular
Windows files if they are "old" enough.
Backup Job attributes include two properties
"Hours until File Expires" and "Days until File
Expires" to control how long a Backup file (*.bkp)
should remain on disk. Leaving the properties
blank means that the file will not be delete. Index
Job Attributes do not have expiration-type
properties, instead rely on the Print Attribute
"Hours until File Expires" and "Days until File
Expires" fields to define how long the file (*.dix)
remains.
In both cases, the file is not removed until a File
Expiration Search attribute is defined to scan AND
remove that type of file. Each File Expiration
Search attribute is defined with a "Search Interval"
that specifies how often EOM should scan.
: EOM does not have to scan for
just Backup and Index files. The File Expiration
Search can be configured to delete ANY Windows
files (with file filter, *.* is the default). So, you
can configure EOM to remove files that have
nothing to do with EOM based on their creation
or last modified date. While you might wince at
this thought, it has been used by real customers
already to remove files from temporary directories
in order to keep sufficient disk space available.
How do I ...?
Given that so many customers are already using this EOM feature we sometimes take it for granted that everyone already knows how to do
it. So, we are going to walk through each of the steps to allow EOM to send text Email. We will cover emailing PDF files in the near
future.
Under the EOM Configuration Explorer, select Tools / Options from the menu and then select "Server Options / E-mail / General Settings".
Setting the "Interface" field to "SMTP" means that the EOM service will make a direct connection to the email post-office server using the
Simple Mail Transfer Protocol. This is a good thing. Prior to EOM 7.0, EOM/DEPCON used the MAPI interface, which required a local
email client (e.g. Outlook, Outlook Express) to actually send the email. The SMTP connection is much more stable and with EOM 8.0 more
robust with an Alternate SMTP Transport configuration. You still can use the MAPI (or somewhat newer CDO) interface, but must also use
the Legacy Assistant. We will assume SMTP for this discussion. Most SMTP post-office software requires some type of secured access
(i.e. a usercode/password), so note that the example screen shot (next page) has Authentication set to "Use specified credentials" which are
defined by the "User name" and "Password" fields. Also note that EOM 8.0 allows for an alternate SMTP Transport, used whenever the primary
SMTP Transport is not available. The Server is simply a name or IP address of where the post-office software resides. The port number
may need to be changed from the default of 25, depending on the post-office software (or hosting service).
Email recipients and other properties can be defined statically via the E-mail Attribute, or dynamically within the data file that EOM receives,
or a mixture of both.
"Statically" means that the person's email address and other email properties are defined directly in the E-mail
Attribute. All email addresses need to be fully qualified, as in "name@company.com". One of the advantages of using the old, unsupported
MAPI interface is that aliases could be used for both individuals (i.e. "TheDoctor" as opposed to "DrJack@BestHealthcare.com") and distribution
lists (i.e. "Accounting").
Your post-office software may still support distribution lists, just using the full syntax (i.e.
"Accounting@BestHealthcare.com").
The E-mail Attribute provides ample space for recipient address information (To:, Cc:, Bcc: properties), as well as other interesting properties.
You can set the "From" address which will appear to the recipient as the email address that sent the email. Similarly, you can define the
"Reply to" address which is used if the recipient replies to the email message sent by EOM. Notice that with EOM 8.0 you can specify
multiple files for attachments.
The E-mail Attribute "Attachment display name" dictates whether the incoming data stream is emailed as an attachment or as the body of
the email. If the value of this field defines anything other than a "txt" extension, the data stream is sent as an attachment. If "Attachment
display name" is defined using "txt" then it will be sent as an attachment only if the data stream byte count is larger than the value of
"Message text limit" set in the global email settings and the "Ignore size limit" is set to "No". Otherwise, the incoming data stream is the
body of the email and NOT as an attachment. "Attachment display name" can be defined with a specific name (as in "JulyReport.txt") or it
can be dynamic using keyword substitution (as in "<MONTH>Report.txt").
Even if email properties are sent with the incoming data file, you still need an E-mail Attribute (for this discussion). This E-mail Attribute
could be completely defined or completely undefined (other than some defaults). The dynamic email information replaces values for properties
defined in the E-mail Attribute. Often it is useful to have a few properties defined even if you are using dynamic data, especially if you do
not trust that the programmers remember to send down all of the information. For example, the E-mail Attribute might be defined with a
default subject ("If you are seeing this subject the programmers goofed up"), default recipients (like your address so you know there is a
problem), and a default Error Notification Address (maybe your address again).
EOM News & Views
Issue 13, June 2009
[ 64 ]
Page [ 64 ]
If there is dynamic email information in the file received then the ONLY way that information is used is if the file is "printed" to an E-mail
type printer. You also may want to "print" to remove EOM specific syntax from the incoming file, usually when the file is sent from a Unisys
Clearpath system. Under the Configuration Explorer you simply define a Physical Printer with "Print type" of "E-mail". If you plan on
processing E-mail Jobs simultaneously you can create multiple E-mail printers and then create a Logical Printer referencing 1 or more of
the E-mail printers.
If you do need an "E-mail" type printer then you also must have a Print Attribute. For this discussion the Print Attribute, used to compose
the data that is emailed, is almost always defined using the "Generic" or "Generic-NoFF" Printer driver. The idea is that these settings simply
strip out all of the EOM-proprietary syntax found in the file before emailing the data stream. The Print Attribute provides a long list of
properties that impact the composition of the data stream. As a general rule of thumb we can make the following suggestions:
Ÿ Print driver should be Generic or Generic-NoFF
Ÿ Command Files are not usually used for E-mail Jobs
Ÿ Data Dependent Attributes are not usually defined for E-mail Jobs (although you could get fancy and insert HTML tags via the
DDA)
Ÿ Paper type should not impede the automatic handling of E-Mail Jobs
Ÿ Lines at top, Lines after Heading, and Lines at bottom are usually set to 0
Now it is just a matter of identifying the incoming file and submitting the E-Mail Job. Those E-mail jobs that require the Print Attribute
specify both the Print Attribute and then the E-mail printer in the "Printer for re-formatting" property. Note that the E-mail Job also allows
for changing the "Attachment display name" right from the File Mask E-mail Job definition.
O.k., seems pretty straightforward. Now the more complicated part: inserting EOM proprietary email syntax. There are a couple of ways
to get the syntax into the data stream sent to the EOM server:
Ÿ Have the program creating the data stream also write the embedded syntax.
Ÿ From the Clearpath MCP side, use the NOTE parameter on the PRINT statement.
Ÿ From the Clearpath OS2200 side use the Mail processor program.
"What is the syntax?" The EOM 7.0, 7.1 and 8.0 Help files have a chapter named "Sending E-mail Routing Information with Print Files". It
shows what the proprietary syntax looks like and provides a table with all of the email keywords.
EOM News & Views
Issue 13, June 2009
[ 65 ]
Page [ 65 ]
Time to Upgrade?
Quick Hits
Who are we?
The current Interim Correction for EOM 7.1
is the 7.1.7 version. There are no Interim
Corrections for EOM 8.0 at this time (nor
need for one).
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
Make sure you backup your EOM
configurations! Pre-EOM 7.0 simply copy all
of the *.cfg files. EOM 7.0 and above do
an XML Export from the Configuration
Explorer. See the July 2008 Newsletter for
details.
and
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 13, June 2009
[ 66 ]
Page [ 66 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 14, Summer 2009
We create solutions.
Printing with a MICR font
Using EOM to print information using the MICR
font is not new. Recent inquiries on the subject
lead us to believe that it is time for a refresher.
First, "MICR" sands for magnetic ink character
recognition, a font (typically MICR E-13B),
magnetic ink, and scanning technology used
primarily in the banking industry to make it easier
and faster to process checks. The font consists
of numbers and 4 special symbols that encode
bank/institution (a.k.a. routing), account, amount,
and sometimes check number.
Now the confusing part: there are guidelines on
the order of the data and special characters, but
we have seen many different orders and formats
of the encoded data. The 4 special characters
(a.k.a. control characters) in the MICR font used
to identify the numbers on the document are:
Transit (!), On-Us (#), Amount (@), and Dash
($).
bank/institution, the Amount character is a prefix
and suffix of the amount, the On-Us character is
a prefix and suffix of a sequence number AND a
suffix of the account number, and the Dash is
used to break up sequences of numbers.
command.
If you need to assemble the MICR line in DDA,
the sequence of commands might look something
like this:
MicrTransit = !
MicrOnUs = #
MicrAmount = @
MicrDash = $
The text printed with the MICR font must be
assembled using the special characters to
delineate the different MICR data values. The full
MICR text string could be created by the
application, but usually DDA is used to create the
full string from data on the page and inserting
special characters where appropriate. For the
MICR fonts released with EOM the character
mapping is as follows:
Text = MicrOnUs + MicrCheckNum
Text = Text
+ MicrOnUs
Text = Text
+" "
Text = Text
+ MicrTransit
Text = Text
+ BankRouting
Text = Text
+ MicrTransit
Text = Text
+" "
Text = Text
+ MicrAccount
Text = Text
+ MicrOnUs
Character: 0 1 2 3 4 5 6 7 8 9 ! @ # $
MICR:
0 1 2 3 4 5 6 7 8 9 ! @ # $
There are multiple ways to print MICR sequences
using EOM:
Then either:
The Transit character is a prefix and suffix of the
MICR in EOM ........................... 1
How do I ...? ................................. 2
Save some money ........... 5
Quick Hits....................................... 6
Contact information ....... 6
EOM is released with the WASP MICR E font,
which can be used as an ordinary Windows font
(ala DDA Change Windows Font command),
defined on the Form File Utility field or
automatically called when using the DDA Print
Barcode command.
MICR
Text
Or, when printing using Windows Printer:
Wasp MICR E
Text
Printing with the MICR font via PCL is also
straightforward, but there is a catch - you have
to download the font before trying to use it. The
PCL font is usually downloaded via the Print
Attribute Command File (Initialization or Data).
EOM is released with a couple of MICR sizes (see
WmicrXX.pcl files in /PrntCtrl directory), start with
the Wmicr12.pcl file. The font ID is 31200 which
is automatically used by the DDA Print Barcode
Courier New (or whatever)
We recently found a problem with the WASP
MICR E font, spaces are not the same size as the
numbers, so if you are not placing each MICR
sequence then the spacing might be off across
the whole MICR line. Contact us if you need help
getting around this issue.
How do I ...?
Well, well, well, so people do read this newsletter.
newsletter kick-off of the email topic.
There were multiple questions, comments, and corrections regarding last month's
The text from last month’s article on email was dead wrong on one statement: "... Attachment display name defines anything other than a
"txt" extension, the data stream is sent as an attachment" which is NOT true. If the extension is ".htm" or ".html" then the data stream is
sent as the body of the email, as long as the number of bytes is below the "Message text limit" set in the global email settings and the
"Ignore size limit" is set to "No". This means that the incoming data stream could be composed HTML and email very spiffy looking messages,
or you could use DDA to add HTML syntax to dress up the message.
Multiple people pointed out that email jobs can be created via the new Transform Job feature. Yes, yes, good point, but we just covered
that capability in the April 2009 newsletter.
This month we want to show what needs to be configured in order to email PDF files. We will focus on emailing PDF files where the
original incoming data stream has embedded email syntax.
What follows are the EOM configurations required to accomplish this, followed by an example data stream with embedded syntax.
The first thing to do is acquire 3rd party software that composes the PDF stream. No, EOM does not create PDF files directly, instead relies
on PDF composition software via the Windows Print Manager complex. Both the Dane Prairie WIN2PDF and Amyuni Technologies PDF
Converter software have been qualified with EOM. The Adobe PDF Windows driver also works, but is not officially supported when printing
from a Windows service. After installation, there will be a PDF type printer defined in the Windows Print Manager.
The first thing to configure in EOM is the PDF printer. Using the Configuration Explorer, add a Physical Printer that references the PDF
printer defined when the PDF composition software was installed. Since we want to automatically email PDF files, we also need to set the
"Print output file option" to "Print to file". If you plan on using a Print Job to create the PDF file and have it email automatically (see below),
then you should also edit the Physical Printer property "Action to perform ..." to "Generate e-mail job". These settings dictate that a PDF
file will be created and, IF there is embedded email syntax the PDF file will be sent via email. If there is not embedded email syntax in the
incoming data file then the PDF file is created on disk, placement based on the Print Attribute Web/File Output directory and naming
properties.
Prior to EOM 7.0, if you had a print stream with embedded email syntax, the ONLY way to create a PDF file and have it automatically email
that PDF was to use a Print Job to the PDF printer, where "Print to file" and "Generate e-mail job..." were set. This makes the configuration
a little strange in that your File Mask has to define a Print Job that uses a Print Attribute and Physical Printer defined with the 3rd party
PDF software.
EOM News & Views
Issue 14, Summer 2009
[ 68 ]
Page [ 68 ]
The most straightforward configuration for emailing a PDF file, with or without embedded syntax, is to configure the File Mask to create an
E-mail job, where the E-mail job references an E-mail Attribute, a Print Attribute (Windows Driver) and Printer for Reformatting (the PDF
printer). The major advantage of this configuration (compared to "When printing is "email a PDF"") is that the E-mail Attribute can be a fully
defined template of settings that the embedded syntax replaces if necessary. Note that you can define the Attachment Display name for the
attached PDF file right in the File Mask definition (including keyword substitution).
PDF Printer for Print Job that emails PDF
E-mail Attribute
EOM News & Views
Issue 14, Summer 2009
[ 69 ]
Page [ 69 ]
File Mask that ties it together
EOM News & Views
Issue 14, Summer 2009
[ 70 ]
Page [ 70 ]
Need to save some money?
Clearly these are challenging economic times. Do more with less, reduce expenses, have miracles occur, and work harder are phrases we all have heard
recently. The current release of EOM looks enticing, but upgrading or migrating incurs cost. Lets look at a few ideas on how you might be able to justify
the new EOM’ version by to saving money within your organization.
Take a close look at your printed output. How much of it do you really need? There are a few options under this category:
ü Simply disable the Job via the Print Attribute for output that is not needed. Or, change the File Mask so that the file is received but there are no
Print Jobs created.
ü How about copying the file electronically to a directory where the users can access it? Either as text or the EOM Backup/Index file.
ü How about creating a PDF file and dropping it into a directory where the users can access it?
ü How about emailing the information to your users in text, HTML, or PDF format? Saves courier costs too!
ü If you do need to print, can you save print operator report bursting time by using the Custom Job UEOMSplit?
Is there an opportunity to replace preprinted paper with more generic stock and an electronic form? Electronic form usage is so easy with EOM that
replacing preprinted forms is a no-brainer. Aside from purchasing costs, preprinted forms require storage and produce a large amount of waste of preprinted
data on the form changes.
Use the File Expiration Search to automatically remove old files and NOT have to purchase more disk space or to automate a manual method of moving
files. Save administration time by automatically removing old files from certain directories. File transfer directories, temporary directories, and other shared
directories are likely targets for disk space waste. Does your operations staff spend time removing files from 3rd party partners? If so, set up a File
Expiration to remove those files after a few hours.
Are your software providers raising licensing and maintenance fees? The Clearpath IOE subscription includes the host agent as well as the Windows EOM
Department Edition. So it may be the case that you can replace an old 3rd party mainframe-based solution with EOM directly, or worst case have to
purchase the Data Dependent Attribute (DDA) designer key to replicate what the other software was doing.
Are you paying a 3rd party to print/spray on the Postnet or Intelligent Mail Barcode on your mailed statements? There are reasons to outsource this work,
especially if the statements are not in delivery order, but maybe you can reduce mailing costs by using the DDA feature to create one or both of these
barcodes.
Reduce the number of printers in the your organization by distributing the existing printers better, allowing EOM to print to remote printers instead of
centrally located printers, or maybe fully utilize existing printers via the EOM Logical Printer configuration.
ü Make your front-line customer service people more efficient by giving them electronic search capability of documents - text, PDF, or Backup/Index
files.
ü Set up Security Roles so that programmers, business analysts, customer service can review output before printing - there is even a "Checked by"
field to keep track of who has looked that the file in Print Preview.
ü Reprint from EOM instead of re-running the application. The File Group determines how long to hold the file in EOM, make the elapsed time long
enough to cover reprinting.
ü Send files to remote EOM sites and let them incur the costs of printing.
ü Define a charge-back system to assign actual costs to people that print. There might be enough information already in the EOM logfile to do this!
ü Reduce application code changes by using DDA to place data on the page, change fonts, call electronic forms.
ü Reduce programming time by using EOM as the output composition tool.
EOM News & Views
Issue 14, Summer 2009
[ 71 ]
Page [ 71 ]
How much do you know?
Quick Hits
Who are we?
This newsletter will cover the summer
months of July and August. There is just
too much to do and most of you are on the
beach reading trashy novels anyway.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
and
Those of you working with HTTP need to
know about a typo in the EOM Help file.
Your application that sends data to EOM via
HTTP customer needs to use the Custom
Header "File-Mask-Extensions", not "FileMask-Extension" nor "File-MaskExtension".
See Unisys PLE 18660831.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
What would you like to see about EOM at
the upcoming Unite conference November
8th through 11th? We want to know what
is of interest to EOM customers. Send an
email to us directly, go to www.Unite.org if
you want information on the conference.
On-site services, remote services,
general consulting are available now.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 14, Summer 2009
[ 72 ]
Page [ 72 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 15, Fall 2009
We create solutions.
DDA Feature (you may not know about)
Two recent customer issues were solved by using
User Defined variables to set print coordinates in
order to place data on the page. In the first case,
the customer needed to dynamically print some
lines of text in a very large font, followed by lines
with smaller font.
In the second case, all the customer was trying
to do is use the Print Data command with an
increment - except that the data stream included
over-print lines. In the distant past when a
program needed to bold a print line, that print
line was sent to the printer multiple times without
carriage control increments. Thus, on impact
printers, the line would print multiple times
adding ink with each line (laser printers would
just repeat the location of ink, no change on the
printed page). The overprint lines goof up the
Print Data command when printing with an
increment because DDA assumes that after each
line is printed the offset should be incremented.
The visual symptom of this issue is that the line
is duplicated on the page.
So, instead of using the Print Data command with
an increment (and seeing duplicate lines), simply
calculate where that line should print using the
System Defined variable $LineNum:
DDA Item: SetOffsets, (not enabled for data id)
YoffsetStart 1.5
Yincrement 0.125
DDA Item: TextLines, lines 1-66
Yoffset is Undefined
SetOffsets
Temp = $LineNum - 1
Temp = Temp * Yincrement
Yoffset = Temp + YoffsetStart
: Data to Output $CurrentData
Heads up Windows 2003 Server users!
Starting with the EOM 7.0 release, multiple example
Custom Jobs where included on the release CD, under the /Tools subdirectory. The Custom Job
executables were processed through a utility called Shrinker32, which removed wasted space as well
as compacted the executable so it would load faster. When executed, after loading into memory the
program would decompress then execute. Faster loading, smaller release - what a great idea!
DDA Feature ............................ 1
W2K3 note ................................... 1
How do I ...? ................................. 2
More DDA ...................................... 5
Quick Hits....................................... 6
Contact information ....... 6
Fast forward a few years and quite suddenly multiple customers report that the example Custom Jobs
are intermittently refusing to finish, sometimes taking most of the available processor time. The
symptoms are reported on Windows 2003 server only (so far) and only after updating the Windows
2003 server operating system with the current (at the time) security patches.
Since it could be argued that a decompressing executable looks suspicious to anti-virus software (and
to an operating system enhanced with new security patches), it is more prudent to just not use the
Shrinker32 modified executables. So, if you are using UCopyIt, UCSVMap, UEOMSplit, or UGiveitBack
from the EOM 7.0 or EOM 7.1 release CDs then you should either replace those executables with the
versions from the EOM 8.0 release CD or download the versions from the
www.PrettyGoodConsultingGroup.com web site.
How do I ...?
There are really three questions in this case: How to configure EOM to receive data via HTTP?; How do I send data to EOM via HTTP?; and
How can EOM send data via HTTP? We will cover the first two questions in this newsletter.
The Hypertext Transfer Protocol (HTTP) is the de facto network protocol standard for transferring information (also known as "resources")
around the World Wide Web. Using a TCP/IP port (usually port 80) a client program connects to a server program establishing a session
and from there submits a request and then waits for a response from the server program. The request usually contains one of eight
"methods" that define what the client program wants (is requesting). For example, a client request method of "GET" is asking the server to
provide some data (chunk of information). A client request method of "POST" tells the server that the client is sending some data to the
server.
Configuring EOM to receive data via the HTTP protocol is accomplished via the Communications Listening Path. The highlights of this
attribute, as seen below, include the Communication protocol set to "HTTP", the number of concurrent connections allowed, and the "URI
prefixes". The Uniform Resource Identifier (URI) prefixes define which connections this Listening Path will accept. In the example below,
the URI prefix syntax "*:80" means that the Listening Path will accept any host value using port 80. If the syntax was "localhost:80" then
the Listening Path would accept only connections made with "localhost" as the hostname (this means that the client program would have to
be running on the same PC/server as the EOM service, otherwise the value of "localhost" would not match the EOM service PC/server). The
value for the host name could be an IP address or resolved DNS name too. The example below defines the URI prefixes value such that
for this Listening Path there is one URI to listen for and that it will "listen" for an http scheme (as opposed to https), any sessions on this
server ("localhost" resolves to the local server), port 80, and path "Outputmanager". The Authentication limits which remote clients are allowed
to make requests and the Require Certificate tells EOM if the connection must use the Secure Socket Layer (SSL) protocol to protect the
data stream. There are many variations of this syntax, see the EOM help file for some of the details.
The EOM Listening Path defined with the HTTP protocol allows only POST requests from remote clients. This means that remote clients
using the HTTP protocol can only send data streams to EOM service. While supporting only one of the eight possible HTTP methods might
seem deficient, keep in mind that major philosophy behind EOM is that it processes incoming data. HTTP is just another way to get data
EOM News & Views
Issue 15, Fall 2009
[ 74 ]
Page [ 74 ]
How do I ...?
(continued)
to EOM.
File Masking works the same when receiving data via the HTTP Listening Path, but the fields to File Mask on vary depending on the content
of the HTTP message. If the remote client program sending the data simply POSTs data to the EOM service then the only HTTP related
fields to File Mask on are the URI, URI Absolute Path, URI Query information, and the URI Scheme. Certainly User Tags could be unique,
but there aren't many other useful fields.
Now, if the remote client program creates an HTTP custom header (XML stream) named
"File-Mask-Extensions" that is sent along with the data, then most of the fields in the File Masking conditionals are available to be defined,
along with the HTTP related fields (see the next section for details).
The next question to answer is how to send data to EOM via the HTTP protocol. As noted above, you must use the "POST" method, usually
via a web or standalone program. The POST method is straightforward:
Dim WRequest As HttpWebRequest = HttpWebRequest.Create("http://localhost:80/Outputmanager/VB1.abc/")
WRequest.Method = "POST"
WRequest.AllowWriteStreamBuffering = True
Dim
Dim
Dim
Dim
wrStream As Stream = WRequest.GetRequestStream
Writer As New StreamWriter(wrStream)
reader As New StreamReader("c:\tempt\PrintStream")
inline As String = reader.ReadLine
'Read Line By Line
While Not inline Is Nothing
Writer.WriteLine(inline) ' Write to the stream
inline = reader.ReadLine 'read the next line until the end
End While
reader.Close()
Writer.Close()
' Now that the web request has been written to, get the response
Dim Response As HttpWebResponse
Response = WRequest .GetResponse()
The example Visual Basic code above works, but does not provide much information along with the file when received by EOM. As noted
previously, you have the URI fields as well as the User Tags available in the File Mask configuration (and management windows), but that
is pretty much the extent of useful fields. Note that the URI Prefix on the example Listing Path was "http://*:80/Outputmanager", so every
connection string must include syntax that matches. This does allow additional nodes after the "/Outputmanager/" text (like "VB1.abc" above)
so you could create a scheme using the additional nodes for File Masking purposes. However, there is a better way...
If you want to supply more information along with the data stream, the HTTP request can include a custom header named
"File-Mask-Extensions". This custom header is really an XML stream created based on the FileMaskExtensionSchema.xsd file found in the
../API directory where the EOM service is installed. Also found in this directory is the EomApi.chm help file, which describes each of the
available fields in the FileMaskExtension Class. Programmers, you certainly can convert the FileMaskExtensionSchema.xsd to your
programming language, but it is far easier to simply just reference the Interface.dll file in your compiler project. This custom header
information allows for (numerous) values sent from the client program to populate EOM file database field settings. Aside from providing
more information for the File Mask, the EOM users can see these values to understand what the data stream is, and clever use of the values
can provide the ability to use the existing File Masking strategy. For example, the client program would set field values to mimic values of
EOM News & Views
Issue 15, Fall 2009
[ 75 ]
Page [ 75 ]
How do I ...?
(continued)
those fields as if the file was sent from an existing source (say a mainframe).
The additional POST syntax for the custom header looks like:
Dim FME = New OutputMgr.Interface.FileMaskExtension
FME.HostBannerID = "TheBanner"
FME.HostQualifier = "TheHostQualifier"
FME.HostQueue = "HostQueue"
FMEString = FME.SerializeAsXml
request.Headers.Clear()
request.Headers.Add("File-Mask-Extensions", FMEString )
Example Delphi code with a few more custom header fields is as follows:
var
FileMaskXML : IXMLFileMaskExtension;
url,text:string;
StreamIn : TFileStream;
begin
FileMaskXML := NewFileMaskExtension;
FileMaskXML.ContentType
:= 'Content Type is a really long field, good to have a long field like this.';
FileMaskXML.DirectoryMonitor := 'This is the directory monitor';
FileMaskXML.EstimatedPages
:= '99';
FileMaskXML.FileCodePage
:= '1252';
FileMaskXML.FileType
:= 'ASCII';
FileMaskXML.HostAccount
:= 'Account';
FileMaskXML.HostBannerID
:= 'HostBanner';
FileMaskXML.HostFileName
:= 'aa/bb/cc/HostFilename.txt';
FileMaskXML.HostPaperType
:= 'HostPapertype';
FileMaskXML.HostPriority
:= 'Z';
FileMaskXML.HostProject
:= 'HostProject';
FileMaskXML.HostQualifier
:= 'HostQualifier';
FileMaskXML.HostQueue
:= 'HostQueue';
FileMaskXML.HostRunId
:= 'HostRunId';
FileMaskXML.HostSystem
:= 'HostSystem';
FileMaskXML.HostUserId
:= 'HostUser';
FileMaskXML.Subject
:= 'This is the subject';
FileMaskXML.UserTags
:= '';
FileMaskXML.MessageLabel
:= 'Message label';
FileMaskXML.MessageQueueLabel
:= 'Message Q label';
FileMaskXML.MessageQueueMonitor
:= 'Message Q Monitor';
FileMaskXML.MessageQueueName
:= 'Message Q Name';
url:='http://192.168.0.3:80/Outputmanager/delphi1.abc';
try
StreamIn := TFileStream.Create('c:\tempt\test3.txt',fmOpenRead or fmShareDenyNone);
http.Request.CustomHeaders.clear;
http.Request.CustomHeaders.FoldLines := False;
http.Request.CustomHeaders.Values['File-Mask-Extensions'] := FileMaskXML.XML;
text:=http.Post(url,StreamIn);
StreamIn.Free;
except
on E:Exception do
begin
ShowMessage('Response code: ' + IntToStr(http.ResponseCode) + 'Text: ' + http.ResponseText);
end;
end;
EOM News & Views
Issue 15, Fall 2009
[ 76 ]
Page [ 76 ]
More DDA
Did you ever the need to right-justify data and then zero fill blank spaces to the left? It would be really handy to have that as a command directly in DDA,
but it just isn't there (yet). An example sent in by Bill Harberts of EMC Insurance (Des Moines, IA) got us thinking again about using the DDA Call Item
capability to centralize often used sets of DDA commands. The idea is that you can create a single DDA that contains one or more DDA Items, each with
a set of commands to manipulate data in some way.
To right-justify a string value you might configure the following DDA commands in your DDA Item:
DDA Item: ProcessTheData, Lines 15
Session = $CurrentData[53-58]
Session = (Remove leading and trailing spaces)Session
Column1 = (String length)Session
Column2 = Column1 + 5
Session = "00000" + Session
Session = Session[Column1 to Column2]
But what if you had to do multiple right-justify commands across your DDA? Or had the requirement to do a right-justify in multiple DDAs? Answer:
Set up a RightJustify DDA Item in our MasterDDA DDA so that any DDA can use it.
DDA MasterDDA
DDA Item: RightJustify, Lines NA
Zeros = "000000000000000"
DataToJustify = (Remove leading and trailing spaces)DataToJustify
Str = Zeros + DataToJustify
Len = (String length)Str
StartCh = Len - LengthToJustify
StartCh = StartCh + 1
DataToJustify = Str[StartCh to Len]
You can use the set of commands above in any DDA by setting User Defined Variables (DataToJustify,LengthToJustify) and then using the Call Item DDA
command:
DDA Item: ProcessTheData, Lines 15
DataToJustify = $CurrentData[53-58]
LengthToJustify = 6
MasterDDA/RightJustify
Session = DataToJustify
EOM News & Views
Issue 15, Fall 2009
[ 77 ]
Page [ 77 ]
Time to Upgrade?
Quick Hits
Who are we?
We just ran into another customer case
where a Windows application sending print
streams to EOM via a Windows defined LPR
printer did not have the "
" checked. The primary symptom is
that the file appears to be received by EOM
(very fast), but no jobs are scheduled. So,
make sure this option is checked before
sending print streams to EOM.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
Unisys Customer Education has scheduled a
web-based EOM Advanced Workshop for The
week of November 16th. The class is held
from 11am to 3pm (EST). Contact Unisys
for details.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 15, Fall 2009
[ 78 ]
Page [ 78 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 16, Early Winter 2009
We create solutions.
Rodney Dangerfield, meet the Backup Job
One of the unsung hero features of EOM is the Backup Job. Formerly known as the ¤Save/Archive Job¤, this job type allows you to save incoming data
along with all of the related file information (sending host information, time, date,...) for later use. Why do you care? Let us count the ways:
. When the input stream comes into EOM, the Backup Job configuration defines where
1)
to write a copy of the input stream, how long this data should be kept around, and what Print Attribute should be used as a default when using this data
later on. The ¤where to write a copy¤ is the directory or subdirectory, which could be on the local server or on any hardware accessible from the Windows
operating system. When disaster strikes, these files can be available for viewing, printing, or any of the other things EOM can do with input data.
Some customers use a Transfer Job to send a copy of input data to a remote backup EOM, which is just fine, but a more elegant solution might be to
have the Backup Job store the file electronically on remote storage. In addition, the Backup Job files can be written to other media (CD, DVD, flash drive,
...) for storage or transport.
2)
There are many cases where an electronic version of the data is more efficient to use than the printed version. One major advantage is that
you can search electronically through the backup file for specific values. Another major advantage is that the Backup Job allows for intelligently placing the
Backup Job file (.BKP) using dynamic data (see keyword substitution articles in previous newsletters).
Another advantage is that you do not clutter up your working surface with paper.
. Multiple EOM client instances can access
3)
Backup Job files as long as they have both EOM and Windows operating system file access privileges.
The EOM client instances could be in the same building or anywhere in the world as long as they can
connect to the EOM service. There are multiple EOM users that have their customer service
representatives accessing Backup Job files for front-line customer support.
Backup Job Feature .... 1
How do I ...? ................................. 2
Interim Corrections .......... 3
Quick Hits....................................... 4
Contact information ....... 4
4)
. Once a user navigates to a directory containing Backup Files, the files within
that directory are listed in the Backup File Management window. They can then preview, create an
EOM job using that data, or ¤Restore¤ the data. The Restore option allows the file to be inserted into
the File Management file list and, optionally, resubmitted through the File Mask process. This means
files can be reprocessed as if they were received from the original sending system! This is a really
cool feature when sets of input data files have to be reprocessed - simply select multiple files with the
restore option and all the files will be reprocessed (i.e. Run through the File Masks).
5)
Whether on a hard drive, DVD, flash drive, or other media, the Backup Job
data can be accessible for a long time. Comparing data across multiple years is as simple as finding
the files and then using the EOM preview window.
How do I ...?
Yes Virginia, there is a Santa Claus. In this case it is the Federal and sometimes state government. Most Federal tax forms can be
found on the web site www.IRS.gov simply by searching for a particular form. The form (and instructions) are delivered in PDF files.
Once you have the PDF file it is ¤simply¤ a matter of converting that form to something useful to EOM. There are two cases:
If your site uses PCL macros for electronic overlays, then steps to convert the PDF form to a PCL macro is as follows:
1) Download the appropriate PDF form.
2) Create a Windows printer defined with a PCL driver (i.e. HP LaserJet IIIsi).
to the Windows printer from step 1 with the ¤Print to file¤ option
3) Open the PDF file using the Adobe Reader and print a
set. In most cases you will create a separate macro for each electronic form. When printing, a dialog box will appear asking you
where to write the print stream (i.e. Write to which file).
4) Use the PCLPack program found on the EOM release CD (/Tools directory) to create the downloadable macro.
You now have an PCL macro for electronic overlay.
If your site uses Windows metafile forms for electronic overlays, then the conversion from PDF to a metafile form requires a more
complicated step: 3rd party software. While you could try to do a screen capture for the form, we have not had great luck doing this the form just does not look right. A better solution is to use a 3rd party product. One that we use is Serif®s PagePlus X3 (and now
the X4 version is released). This software has the ability to accurately import a PDF file. So, the steps to create a Windows metafile
form are as follows:
1) Download the appropriate PDF form.
2) Using the Serif PagePlus software (or other similarly capable software) import the PDF file.
3) Use the ¤Export as picture...¤ option to save a single page as a Windows metafile (.wmf)
You now have a Windows metafile for electronic overlay. If you want to take this further, you can use that metafile in the Form File
Utility program and draw the fields right on the form.
- some Federal forms require MICR encoding and you will be fined if the forms you produce are not identical to those from
the government. These forms normally have text along the lines of:
Attention:
This form is provided for informational purposes only. Copy A appears in red, similar
to the official IRS form. Do not file copy A downloaded from this website. The official
printed version of this IRS form is scannable, but the online version of it, printed from
this website, is not. A penalty of $50 per information return may be imposed for filing
forms that cannot be scanned.
To order official IRS forms, call 1-800-TAX-FORM (1-800-829-3676) or Order
Information Returns and Employer Returns Online, and we’ll mail you the
scannable forms and other products.
EOM News & Views
Issue 16, Early Winter 2009
[ 80 ]
Page [ 80 ]
Interim Corrections Abound! (Well, soon)
Rumor has it that there will be new EOM Interim Corrections released early in the New Year. The Interim Corrections are for EOM versions 7.0 or later,
specifically 7.0.12, 7.1.8, and 8.0.1. In addition, there will be Web Assistant 7.1.8 and 8.0.1 ICs. The highlights are:
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Legacy Assistant crashes with unhandled exception while processing e-mail
Output Manager server hangs when resuming Directory Monitor receiving
Warning indicating host name is invalid when saving a communication sending or listening path.
Sequence numbers on a header or trailer page may be truncated
Logical printers may not be listed when configuring a print job.
Font heights are rounded to integer values during import of configuration file
Empty double-quoted user tags are ignored.
Repeated alerts with the identifier 'PrintJobDestroyedWindow'.
Header/trailer page can be affected by print job page range setting.
DDA configurations may not upgrade correctly to version 7 or 8
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Web Assistant orphans connections to the SQL Server database.
Header/trailer page can be affected by print job page range setting.
Large import operations in the Configuration Explorer are slow
DDA configurations may not upgrade correctly to version 7 or 8
Sending of e-mail hangs when using MAPI or CDO interface and an error occurs.
Web Assistant contains a memory leak resulting in an eventual application crash.
Web Assistant DBSetup program crashes after running cleanup function.
E-mail job retries many times very quickly (when using Legacy Assistant)
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Web Assistant orphans connections to the SQL Server database.
Improve ease of use in Configuration Explorer
Header/trailer page can be affected by print job page range setting.
Large import operations in the Configuration Explorer are slow
DDA configurations may not upgrade correctly to version 7 or 8
Sending of e-mail hangs when using MAPI or CDO interface and an error occurs.
Web Assistant contains a memory leak resulting in an eventual application crash.
Web Assistant DBSetup program crashes after running cleanup function.
Print Attribute property 'Ignore $DEPHDR$ lines' is incorrect after import
E-mail job has incorrect 'Ignore size limit' value after upgrade
Of particular interest is the ¤Improve ease of use in Configuration Explorer¤ found in the EOM 8.0 IC. A specific, current behavior of the
Configuration Explorer Properties Pane (right-hand side) is about enough to drive you nuts. For example, if you need to verify settings
across all File Masks and that property is in a collapsed field, you must click on the plus-sign to expand the property to view. When you
move to a different attribute the field collapses, requiring you to expand it again and again and again. The IC for EOM 8.0.1 retains the
expansion setting for that property. A small but very meaningful change.
If you move EOM configurations around to other EOM servers then the EOM 8.1 fix ¤Large import operations in the Configuration Explorer are
slow¤ will also make your life better. Sometimes there is a noticeable delay when importing configurations. We see it when importing full
configurations (typically when we are debugging a customer®s configuration). The fix reduces the import time significantly.
A final highlight to mention is the ¤Sending of e-mail hangs when using MAPI or CDO interface and an error occurs¤. Using MAPI or
CDO for email required the Legacy Assistant, which can be replaced completely by using the direct SMTP connection from the EOM
service. If it isn't already in your 2010 plans, a good and worthy goal is to get off of the Legacy Assistant.
Visit the Unisys support web site for the EOM product for full details once the ICs are released.
EOM News & Views
Issue 16, Early Winter 2009
[ 81 ]
Page [ 81 ]
Time to Upgrade?
Quick Hits
Who are we?
A File Masking default from early versions of
EOM continues to bite some customers.
Please walk through your File Mask
configurations on the lookout for Print Jobs
with the ¤
¤ set to ¤Yes¤. In nearly all cases this
property should be set to ¤ ¤. This feature
is used when a very large file has to start
printing before the entire file is received.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
A customer just found another use for the
File Expiration Search feature. A directory
was so full of files and subdirectories that
the Windows Explorer would hang when
trying to navigate to that directory. The
customer created a File Expiration Search
attribute for that directory, setting the
properties to delete any file older than a
certain number of days. After the search
interval time (set to 1 hour in this case) all
of the old files and subdirectories were
removed.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 16, Early Winter 2009
[ 82 ]
Page [ 82 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 17, Late Winter 2010
We create solutions.
Custom Jobs to the rescue
The Custom Job (and precursor User Job) feature has been around in EOM for a long time. The concept is pretty simple - a data stream comes in, the
Custom Job executes, usually using the data stream to process or otherwise manipulate to content of the the data stream, and EOM goes onto the next
task. What follows are two recent examples where creating a Custom Job solved the customer®s problem.
EOM has been used in the past to migrate from the O.S. 2200-based SPIN-X software, usually replacing the channel connected Xerox printers with
non-proprietary printers. This is fairly straightforward because the DDA feature can search for the embedded DJDE command syntax, remove those
commands, and simulate the command actions. Recently, we ran into a customer that was upgrading to an O.S. 2200 system that no longer supported
channel (bus & tag) connections but wanted to keep the Xerox printer and continue to use the DJDE sytntax. Sounded like a pretty easy job for EOM, but
that was not the case. Certainly the O.S. 2200 EOM component could replace the SPIN-X software simply by servicing the SYMQs previously controlled by
SPIN-X. The real surprise was that the TCP enabled Xerox printer required a special data format when sending LCDS (DJDE commands) to the Xerox
printer via a TCP connection. The requirement is that each line of the data stream sent to the Xerox printer must be prefixed with a byte count and carriage
control. DDA would not solve this problem, so a Custom Job was created. The Custom Job creates a new file based on the file received from the O.S.
2200 system that removes the usual carriage control EOM understands (carriage return, line feed, formfeed,...) and creates the prefix required by the Xerox
printer TCP connection. This file is then given back to the EOM File Mask process which is configured
with a Transfer Job to send the contents of the new file to the Xerox printer.
The really cool part of this solution is that much of the SPIN-X configuration that controlled formatting
can be accomplished within the Print Attribute and then relies on individual Command Files for the
DJDE commands.
Custom Jobs .......................... 1
How do I ...? ................................. 2
External Notification ....... 3
Quick Hits....................................... 4
Contact information ....... 4
Another customer recently required the 3 of 9 barcode for customer statement printing. The problem
was that there were inserting issues when using the standard OMR marks, so using the 3 of 9 barcode
would be more accurate and keep a customer®s pages together. While EOM can produce the 3 of 9
barcode with ease, the technical difficulty was that the encoded information for the barcode had include
information from subsequent pages. There are multiple 3 of 9 encoded formats used for inserters,
many of which require that the barcode contain the total number of pages for that particular customer
(i.e. on the first page of the statement you would have to know that there 4 pages total for this
customer statement). EOM®s DDA feature does not give you the ability to look forward in a file, so a
Custom Job was written to ¤look ahead¤ in the file and insert the required barcode information on each
page. Even better, since we had run into other 3 of 9 barcode requirements from other customers in
the past, the Custom Job was written so that multiple barcode encoding formats could be produced
depending on the insertion equipment requirements.
How do I ...?
Yes and No. We are happy to report that you can certainly have multiple EOM versions at your disposal, but you just cannot run more
than one version at a time. This is a great way to test new versions or support different versions across your enterprise. The EOM
Development gurus report that they have had multiple versions installed on their development PCs for a long time.
The solution is really quite simple - use the EOM Desktop agent. In case you have forgotten (see PGCG Newsletter June ®09), the EOM
Desktop agent allows the EOM service program to run right from a Windows logged on session. The requirement is that the EOM service
is not running at the same time.
There are a few steps required to have access to multiple versions of the EOM software. The general steps are:
1) Install the first version of the EOM service software in a unique directory (i.e. C:\EOM71). You may even want to install the EOM
client software as a subdirectory of this directory (i.e. C:\EOM71\Client).
2) Make a copy of the entire directory from Step #1 above.
3) Uninstall the EOM service that you installed from Step #1. The reason you have to do this is because very shortly you will be
installing another EOM version and the installation process will not let you install another version if one already exists.
4) Install the second version of the EOM service software into a unique directory (i.e. C:\EOM80). Lets assume you installed the client
software for this version in a subdirectory of this directory (i.e. C:\EOM80\Client).
5) Using the Management Console, set the ¤Startup type¤ to ¤Manual¤ or ¤Disabled¤ for the Services entry ¤Unisys Enterprise Output
Manager¤ so this version of the EOM does not run automatically.
6) Copy the files saved from Step #2 back into the first version directory (i.e. C:\EOM71)
7) Create two desktop shortcuts, one that references the eomdesktopagent.exe from \bin directory of the first version install (i.e.
C:\EOM71\bin\eomdesktopagent.exe) and another that references the eomdesktopagent.exe from \bin directory of the second version install
(i.e. C:\EOM80\bin\eomdesktopagent.exe).
8) Start the EOM Desktop agent for the version you wish to run. Run the appropriate EOM client and connect as usual. When you want
to stop using that version, right-click the EOM Desktop agent in the taskbar tray and select either ¤Shutdown / Delayed¤ or ¤Shutdown /
Immediate¤. Then, start the EOM Desktop agent for the other version.
Note that the EOM configurations are completely separate, but with current EOM versions it is very easy to export and then import
configurations. By the way, if you wanted to do so, you could use the same directories of Command Files, Custom Jobs, Email files, and
so on. Just to not share the same Data, Bin, API, Help or LogFile directories.
EOM News & Views
Issue 17, Late Winter 2010
[ 84 ]
Page [ 84 ]
External Notification
Often we are asked ¤How do we notify a user that a file has printed?¤ For example, let®s suppose that you wanted to notify a particular
person when a payroll check file is printed. A brute force way would be to have a program reading the EOM log file looking for Print
Complete records. This is pretty easy with the EOM .Net API, but requires software development and then the on-going maintenance.
The program would then blink a light, beep, create an EOM alert, or somehow electronically do the notification.
Easy there an easier way? Yes, there are a couple of ways but with catches.
when the file is printed? This is pretty straightforward in DDA,
1) How about using the
simply create an E-mail attribute with static email addresses (the person or people to be notified). Then in the DDA, one of your DDA Items
includes the Start E-mail Job call. Clearly you would not want to have the Start E-mail Job occur multiple times nor when the file is in
Print Preview. So, you might have logic that looks something like:
DDA Item: TextLines, lines 1-66
: Data to Output $CurrentData
$PREVIEW is Undefined
If AlreadySentEmail is Undefined
using Email Attribute NotifyPayrollPeople
AlreadySentEmail = TRUE
The Start E-mail allows you to set the Subject, To:, CC:, From:, and so in the E-mail Attribute Override Settings section of the Start E-mail
Job command, either statically in the DDA command or dynamically. So, you could grab an email address somewhere in the file to use
instead of the static address in the Start E-mail Job command or the E-mail Attribute.
The catch with this solution is that you would be sending the incoming payroll report to the e-mail recipients, which is probably not what
you want. The solution then is to use a Print Attribute on the Start E-mail Job - but as soon as you define a Print Attribute you can no
longer use the E-mail Attribute Override Settings. You can set a page range right in the Start E-mail Job attribute now, or have the defined
Print Attribute limit the page range (as in send only one page), or use a DDA that uses the END Report command to limit the lines of the
report inserted into the email.
2) When the payroll file is received, have the
. This is really easy but there are multiple catches. The
first catch is that the notification is sent when the file is received so there could be a delay before the file is actually printed. Then, like
the solution above, you probably do not want the entire file received to be emailed with the notification. So, you would have a Print Attribute
and DDA to restrict the data sent along with the email. Another catch is that the payroll file could be printed multiple times without additional
notification.
3) When the payroll file is received, have the
. The Custom Job could be a simple script that submits
an email, or rings a bell another way. Again, the Custom Job executes when the file comes in, not when actually printed. You could also
use a Start Custom Job in solution #1 above if you did not want to send an email using EOM.
There are other solutions and many variations on the solutions provided above but give you a good start.
requirements (like how to notify) will dictate the solution.
EOM News & Views
Issue 17, Late Winter 2010
Clearly the site specific
[ 85 ]
Page [ 85 ]
Whoa - 7.0 & 7.1 decommitted in October?????
Quick Hits
Who are we?
: remember
to surround file name keywords with doublequotes. For example, when configuring a
Custom Job that passes the file received by
EOM, the property ¤Arguments for command
line¤ might look something like this:
I1=¤<PCFILENAME>¤ D1=c:\temp
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
Reminder: There are Interim Corrections
available for multiple levels: 7.0.12, 7.1.8,
8.0.1, and a few Web Assistant versions.
and
Unisys Customer Education has scheduled
web-based EOM classes. The
will be held April 13th through
April 16th. The
will be held May 10th through May 14th.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 17, Late Winter 2010
[ 86 ]
Page [ 86 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 18, Spring 2010
We create solutions.
EOM 8.1 preview: Custom Jobs
EOM 8.1 will be released sometime after June and there is a significant enhancement for Custom Job handling. The Custom Job attribute has a new
category of properties. The new ¤Job Disposition¤ category controls what to do when the Custom Job completes via the new property ¤Retain job until
application completes¤. As with versions of EOM prior to 8.1, when set to ¤No¤ EOM simply starts the Custom Job and then moves on to other processing,
no longer interested in the status of the Custom Job.
When ¤Retain job until application completes¤ is set to ¤Yes¤, EOM keeps the Custom Job entry in the Custom Jobs Management window and ¤watches¤ for
the Custom Job to complete. When the Custom Job completes, EOM removed the entry for that Custom Job from the Custom Job Management window.
But wait, there is more. EOM can also interrogate the exit code from the Custom Job’ and then disable the Custom Job entry! So, if there is a failure
the Custom Job remains in the Custom Job management list! All you need to do is set the property ¤Disable job if application fails¤ to ¤Yes¤ then define
which exit code(s) returned from the program are to be considered an indication of an error or failure. What this means is that your Custom Jobs can
now communicate back to EOM®s job management handling code to retain failed Custom Jobs in the Custom Job Management window.
For example, the UEOMSplit Custom Job has been modified to return exit codes as follows:
0
10
11
20
→
→–
→–
–→
No failure, program completed normally.
Problem with the command line syntax used.
Program started, but there was a processing issue.
The program encountered an exception.
EOM 8.1 Part 1 ..................... 1
How do I ...? ................................. 2
EOM 8.1 Part 2 ..................... 3
Quick Hits....................................... 4
Contact information ....... 4
When the new property ¤Compare operator¤ is set to ¤not equal to¤ and the new ¤Disable job code¤ is
set to ¤0¤, any non-zero exit code returned by the UEOMSplit program indicates an error. Even better,
in addition to controlling the job handling, if there is a Custom Job error/failure, an alert is set in the
Alert Explorer - this is a really great way to keep an eye on your custom programming!
How do I ...?
Yes and No. Multiple customers use EOM today to place print stream data into directories, post to a web interface, or email that data,
which end-users then pull into Excel. The content and actual format of those files is really the big question for this discussion.
First, lets tackle the content of files destined for Excel viewing and manipulation. Excel is really good at managing tabular data - there
could be text, numeric values, currency, graphs, and more in a worksheet, but usually arranged by columns of like data. Sure, there may
be heading and/or trailing information too, but the heart of many spreadsheets are the 2 dimensional tables of information. While just
about any text content can be imported into Excel, if there isn't some sort of repetitive column or row data then Excel does not add much
to enhance the usefulness of that data.
The good news is that many print streams from the corporate data processing world (i.e. reports) contain information that is organized by
repetitive data in columns, rows, and/or two dimensional tables. So, wouldn't it be nice to be able to pull that information into Excel to
view and manipulate?
There are multiple ways that EOM can process incoming print streams into a format that is suitable for viewing by Excel, ranging from a
simple text dump with an appropriate file extension, to executing a Custom Job that formats the data into an actual Excel proprietary .xls
file. Lets look at a few of these options.
When you open a text file (.txt extension) with Excel, the Text Import Wizard dialog box is displayed, allowing you to set
parameters so Excel can recognize unique data fields and formats of that data. Excel does a good job placing data into the row &
column organization of the spreadsheet, but unless the text file is entirely repeating values in row & column format, there will be some
information from the text file that just does not parse where you want it to be.
To see for yourself, Run Excel, open file BankStatement1.txt, and set the dialog to delimit by spaces. Note that all of the data is
imported, but a lot of it just does not look right and is is not all that useful - except for those values that are in columns of repeating
data. If your end users care only for that section of data and can live with extraneous heading and trailing data then using the plain text
format is a good solution. It is very easy for EOM to create the .txt extension, in most cases simply by setting the Print Attribute
¤Output file naming rule¤, to some value ending in ¤.txt¤.
Using DDA to format files could help significantly. Suppose that a simple text parse example above is just not going to put the data into
a format that is good enough for your Excel users. You may decide to use a simple DDA to just remove the irritating heading and
trailing data, leaving only the tabular data. File BankStatement2.txt shows how it might look for this example data. It is certainly better
looking. The file is STILL a text file (again which might be good enough for your users) that EOM can email, place in a directory, or
post to a web site.
Lets now refine the DDA. Astute EOM consultant Graeme Want (Want I.T. Consulting, www.wantitconsulting.co.nz)
developed a general DDA that composes data into a format that imports much better into Excel. The concept is that the data is converted
into a comma delimited file, where individual data values or strings are to be separated by 2 or more spaces. This means that the
heading and trailing information (descriptive text usually) is placed into a single cell, and column headings are correctly placed, at least
(next page)
EOM News & Views
Issue 18, Spring 2010
[ 88 ]
Page [ 88 ]
relative to the data. Take a look at file BankStatement1.txt.csv, while not perfect, much more of the text data is combined automatically.
As with the plain text example, you can augment this DDA to manipulate data as desired. One of the really nice things about having DDA
produce a comma separated file is that the file size goes WAY down. Graeme®s EOM 7.1 configurations can be downloaded here.
For those of you that need actual Excel .xls or .xlsx, or maybe need to use Excel to perform data manipulation before the file is
delivered to the end user, the Custom Job is another alternative. You can write a program that creates an Excel file which could contain
multiple tables, workbooks, graphs, and more. Just like other Custom Jobs, your program is passed a data file (maybe EOM massages
the data a bit) along with other required parameters and your program spits out an .xls file. Your program can use the Excel Object
Linking and Embedding (OLE) interface or there are 3rd party programming components available.
EOM 8.1 preview: Creating TIFF files
The April 2009 Newsletter showed how EOM can create .TIF (or .TIFF) files using a somewhat convoluted method via the Dane Prairie
WIN2PDF product. It worked, but there are a few drawbacks. Well, enough of that noise! EOM 8.1 has a native TIF file driver which
means it produces TIF files directly - including multi-page TIF files too.
The first requirement is an EOM Physical Printer defined with the new ¤Printer type¤ of ¤Image¤. Note that there is NOT a ¤Print output file¤
property, it assumes print to file. Next, you define a Print Attribute with the ¤Printer driver¤ set to ¤TIFF¤ as well as some reasonable values
for where to write the file (Output file Directory Alias) and what to name the file (Output file naming rule). Note that you may use the
Windows driver related capabilities when printing to the Image printer - for examples: metafiles, DDA Position Graphic command, DDA Change
Windows font, and so on.
When the Printer driver is set to ¤TIFF¤ the ¤Image resolution and sizing¤ property is displayed. You use the two sub-properties ¤Size to this
percentage¤ and ¤Resize to normal size¤ to control the image quality and physical file size when a TIF file is created. By default the image
is created at Page Size with a resolution of 72 dots per inch. You can change this resolution by making the image size bigger: property
¤Size to this percentage¤ allows direct entry of a value or when you select the ellipsis (... Button to the right), a cute dialog box is displayed
that relates the sizing scale to the actual number of dots per inch. For example, say a value of 200 is entered, this means that the image
will be created at twice the normal size, but when scaled to the actual page size it will produce an image of 144 dots per inch. This means
a better resolution TIF file image, but also a larger file.
In case you are wondering, the Windows Picture and Fax Viewer program can display multipage TIF files (as well as other programs).
EOM News & Views
Issue 18, Spring 2010
[ 89 ]
Page [ 89 ]
Correction!
EOM Development guru
Doug Van Vreede caught that mistake immediately, stating that Start Job commands are ignored during
print preview. This means that the ¤IF $PREVIEW is Undefined¤ is not needed, but it does not hurt
anything and does execute properly.
Quick Hits
Who are we?
Recently, an astute customer suggested yet
another worthy forms design tool:
. The justifications made for using
Microsoft Word in the June 2008 Newsletter
was that it is already on most desktops and
there is an easy way to create a metafile
using word - select all, copy, and paste into
the Form File Utility. Well, it looks like
Microsoft Publisher might be slightly better
because you don®t have to play with page
margins and it can create metafiles directly.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
and
Unisys Customer Education has scheduled
web-based EOM classes.
The
will be held May 10th
through May 14th.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 18, Spring 2010
[ 90 ]
Page [ 90 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 19, Early Summer 2010
We create solutions.
Sentinel Alert Service external blinky thingy
: Please install the Sentinel Alert Service (SAS) when you install the EOM Service. Two customers
in the last month have been caught with an error that was not immediately visible because they did not have the SAS service installed. While error
information is in the EOM logfile, the visible, changing-color icon and Alert Explorer interface makes problem resolution much more efficient. The SAS service
install is quick, painless, and needs no additional configuration to run.
As stated in the February 2009 Newsletter, the Alert Service does a nice job of exposing issues when you are looking at the EOM client and Alert Explorer,
but what if your eyes are not glued to those interfaces? That Newsletter went on to show how to configure SAS to send an email via the Command
Template when there was an alert. Great, but what if you aren®’t watching email?
An article in a recent Popular Science magazine got us thinking about self-contained interactive devices. The concept is that the device is sent information
and based on the programming of that device it reacts to the information. This seemed like a good excuse to play with new toys and give some visibility
to the usefulness of the Alert Service. So, this discussion will focus on a fairly simple first step: how can we use an interactive device to notify people
that there is an EOM Alert?
At the heart of the solution described in the Popular Science article is the ¤Arduino¤ microcontroller. Much more than just hardware, it is ¤an open-source
physical computing platform based on a simple microcontroller board, and a development environment for writing software for the board.¤ It provides the
ability to create stand-alone devices reacting to on-board sensor information, as well as communicate with other intelligent devices (like a PC). The Arduino
board has a USB-based serial interface that is used to upload the program code that runs the board,
so lets start with that interface for our solution.
SAS Device .............................. 1
EOM 8.1 feature .................. 4
Quick Hits....................................... 5
Contact information ....... 5
The Alert Service Policy Editor lets you create Templates for Command, Modem, and Serial device
notification which are invoked when a template is configured for a particular alert ID. While we could
have used the Command Template and custom programming to programmatically send information to
the device, the existing Serial Template already provides a mechanism to send data via a serial
connection.
The Arduino programming environment runs on Windows, Macintosh, and Linux, providing a C/C++
like language to react to incoming data and control on-board functions. You download the compressed
file, decompress into a directory, and then execute the Arduino.exe program. You write the code in
the programming environment, compile, and upload the compiled code to the board. As soon as the
upload completes, the program code starts running automatically.
One way to notify people of an alert is to send a 20,000 volt charge between their thumb and forefinger.
While certainly possible, we will instead use 3 different colored LEDs, using color and blink rate to
discern the importance of the alert. This is a very basic use of the capability of the Arduino board.
We outfitted the Arduino board with a ¤shield¤ so that the LEDs and resistors could be securely held in place (see pictures and screen shots on the next
page).
The USB cable connects the Arduino board to the PC, which is used for both uploading the program as well as the live serial connection for the SAS
service. When plugged in for the first time, you will be required to supply the ¤USB Serial Port¤ driver that comes with the Arduino programming environment
(/Drivers subdirectory or Windows will eventually find the right drivers).
The Arduino programming environment does not have all the bells and whistles of Microsoft Visual Studio, but works well for the intended purpose. Every
Arduino program has a setup and loop routine. The
() procedure is used to initialize variables as well as start the serial connection. The
()
procedure is where you look for input on the serial connection and then act on that input (i.e. turn on lights in out case). For our example we have code
that controls parsing for alert IDs and alert severity, controlling the blinking function of LEDs for current alerts, and cleanup code when alerts are cleared.
As you might expect, the higher the alert severity the faster the LEDs blink and the more vibrant color of LED (blue, green, red).
The Alert Service needs to know which serial port to use to connect to the Arduino board. When the USB Serial Port driver is installed a port will be
selected - so go to the Windows Device Manager, look in the ¤Ports (COM & LPT)¤ section for the port assignment. It will look something like ¤USB Serial
Port (COM7)¤.
Next, open the SERVICES file usually found in the c:\WINDOWS\SYSTEM32\DRIVERS\ETC directory and make an entry for the SAS service
as follows:
SASCOM7
COM7/eai_serial 8BIT NONE 1STOP 9600
#COM7 port for Serial USB
The ¤SASCOM7¤ string is how the SAS service references the serial port information.
Configuring the SAS Alert Policy is pretty straightforward, set up the serial path and add actions that raise & clear alerts:
Ÿ Create the Serial Template, note that Service Name references the name used in the SERVICES file above (¤SASCOM7¤).
Ÿ Add Actions for the Alert IDs you want to highlight with blinking lights. The Action(s) must send a text stream to the attached serial device that
can be recognized by the code written for the Arduino board. For our example, when a DDA GetUserInput message is used, SAS raise an alert
and will replace the Text value of ¤\_ALERTID\:\_SEV\¤ with ¤DdaGetUserInput:major¤. When that alert id cleared, SAS will clear that alert and
replace the Text value of ¤\_ALERTID\:clear¤ with ¤DdaGetUserInput:clear¤.
After everything is installed and configured it is very likely that you will have to restart the SAS service (so it grabs the serial port) and then activate the
Alert Policy that references the Serial Template. From then on, when one of the Alert Ids configured with an Action occurs, the Text string is sent to the
Arduino board via the serial connection, parsed, and acted upon (blink lights). When an operations person clears that alert (or the alert clears by itself)
the Text string for the clear action is sent to the Arduino board.
As you can see it really is not that hard to expose EOM alerts with an external device. Keep in mind that the blinking LEDs could be replaced by any
number of things: buzzers, motors, air horns, other circuitry, and so on. The really cool part of this solution is that it can be built upon using Arduino-ready
components: for example, instead of using a USB-based serial connection you could equip the Arduino board with a wireless attachment and place the blinky
light apparatus anywhere that has wireless access (note that the Arduino code would change to include networking commands).
Feel free to contact us if you have a need for this device or if you have other interesting applications.
EOM News & Views
Issue 19, Early Summer 2010
[ 92 ]
Page [ 92 ]
Picture by SPARKFUN
EOM News & Views
Issue 19, Early Summer 2010
[ 93 ]
Page [ 93 ]
EOM 8.1 preview: Receive email
¤Huh?¤ you are thinking. ¤Can®t I already receive email messages with EOM?¤ Yes, but you are forced to use the GUI, logon-to-Windows
Legacy Assistant program. The new feature uses the industry standard IMAP protocol and does not require the Legacy Assistant.
Configuration is very easy and, like the SMTP interface for outbound messages, is rock solid.
The configuration for the IMAP interface is set from the Configuration Explorer, Tools / Options / Receive Options.
When a file is received, the Host System / IP Address / File Server field is set to ¤IMAP¤ for your File Masking pleasure. As you would
expect, the Originator, Subject, and User Tag fields are appropriately set. Very simple.
On another note... In case you were wondering, the feature that allows outbound SMTP e-mail with digital signature and/or encryption is
coming very soon.
EOM News & Views
Issue 19, Early Summer 2010
[ 94 ]
Page [ 94 ]
EOM 8.1 has been released!
This release should be orderable by the time
you read this note. A few of the features were highlighted in last month®s Newsletter, too. EOM 7.0 and
EOM 7.1 are officially decommitted October 31st, 2010.
Quick Hits
Who are we?
EOM guru Bill Harberts of EMC Insurance
Companies brought a nifty feature to our
attention that was not highlighted in the
EOM 8.0 release notes.
Keyword
substitution now includes <DateTime> and
<DateTimeUtc>.
While there are fancy
date/time options using the ¤%?¤ syntax,
these new keywords are recommended and
have significantly more capability. Even
better, these new keywords can be used
ANYWHERE keyword substitution is allowed
and allow for the partial keyword selection.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
and
Bill also noted how he used the EOM FTP
capability to place files on an FTP server by
simply printing to EOM. The User Tag
values hold filename and path information, a
little keyword substitution in the Transfer
Attribute and ta-dah, he has a robust, stable
mechanism to FTP files.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
We have run into a major problem when
trying to use
to create PDF files
with EOM. A new, hidden window is created
by Adobe 9.0 that EOM does not ignore.
No workaround as yet.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 19, Early Summer 2010
[ 95 ]
Page [ 95 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 20, Summer 2010
We create solutions.
Sentinel Alert Service external blinky thingy
: Pl
SAS Device .............................. 1
EOM 8.1 feature .................. 4
Quick Hits....................................... 5
Contact information ....... 5
EOM News & Views
Issue 20, Summer 2010
[ 97 ]
Page [ 97 ]
EOM News & Views
Issue 20, Summer 2010
[ 98 ]
Page [ 98 ]
EOM 8.1 preview: Email encryption & signing
The Email encryption and signing features have been completed for a while now, but there were legal hurdles to overcome before the features
could be released.
EOM News & Views
Issue 20, Summer 2010
[ 99 ]
Page [ 99 ]
EOM 8.1 has been released!
This release should be orderable by the time
you read this note. A few of the features were highlighted in last month®s Newsletter, too. EOM 7.0 and
EOM 7.1 are officially decommitted October 31st, 2010.
Who are we?
Quick Hits
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
Heads up
users. Dane Prairie’®s
recently released WIN2PDF Version 7 has a
significant performance issue when searching
the created PDF file. The new version
changed how characters are positioned,
which causes very slow text search in the
Acrobat Reader. The Dane Prairie gurus
quickly resolved the issue, removing
individual character placement when using
fixed pitch fonts (i.e. Courier New).
On-site services, remote services,
general consulting are available now.
A
and
B
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 20, Summer 2010
[ 100 ]
Page [ 100 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 20, Late Summer 2010
We create solutions.
DDA Feature (you may not know about)
A recent customer issue was solved by
taking advantage of the $FileDescription DDA
variable to dynamically pass the name of the
DFF form. This customer has multiple
reports to format that can use the same DDA
logic, but with different Form File Utility
(.dff) forms.
While we could create a
unique DDA for each .dff form, that would
create a lot of confusion and maintenance
later on. So then, how can we dynamically
tell the DDA which .dff file to use? There
are a couple of options: pass the name of
the form in the data; somehow build the
name of the form with DDA logic; or pass
the name of the form in a variable. There
are many system-defined DDA variables, the
problem is which one(s) can be populated
easily. Certainly the $PaperType, $HostXXX,
and $NoteProject variables are available if
the remote system is a ClearPath server.
$PrintAttribute could work too if you can
keep your Print Attributes straight. An even
easier one for this customer was to use the
File Mask "File description" field:
DDA Item: SetForm
CurForm = (remove spaces) $FileDescription
CurForm = CurForm + ".dff"
CurForm
Yes
Welcome back to reality
There are a few
new notes over the summer regarding EOM:
DDA Feature .......................... 1
Random notes ..................... 1
Printing from the web ... 2
Got JetForms??? ............... 3
Quick Hits....................................... 5
Contact information ....... 5
The EOM 8.1 secure SMTP email feature is now available. The ability to sign and/or
encrypt email was delayed from the initial EOM 8.1 release in order to jump through a
few legal hoops. It can now be ordered, at no cost, via your Unisys representative (style
DSS-SED for U.S. customers, DSS-SEI for non-U.S. customers).
Heads up
users. Dane Prairie’®s recently released WIN2PDF Version 7 has a
significant performance issue when searching the created PDF file. The new version
changed how characters are positioned, which causes very slow text search in the Acrobat
Reader. The Dane Prairie gurus quickly improved the performance issue, removing
individual character placement when using fixed pitch fonts (i.e. Courier New). We
recommend that you test with the new WIN2PDF version 7 (and update) thoroughly before
putting it into production.
As noted in the previous EOM Newsletter, we have run into a major problem when trying
to use
to create PDF files with EOM. A new, hidden window is created by
Adobe 9.0 that EOM does not ignore. No workaround as yet, rumor has it that the EOM
Development team is looking at the problem. In the mean time, stick to Adobe 7 or 8.
Printing from the Web
An article in the June 14, 2010 edition of InformationWeek.com describes Hewlett-Packard®s new initiative to allow printing from
Web-based applications. The concept is that each printer will have its own email address and all you have to do is connect
the printer to a network, configure a few SMTP settings, and your end users can send print jobs via emails to printers. The
target market are those people that who want to send a web page or document to a printer that is not connected to their PC.
Hmmm. Sounds like there are more options available with EOM. First we need to talk about ways of getting data to EOM
¤from the web¤. EOM can receive via an email address and print (attachments too). EOM can also receive data from message
queuing, although this is not usually considered a web-based protocol. EOM can process files FTPed into directories. EOM can
directly receive TCP protocols of LPR and Raw TCP. Where EOM can really shine is when receiving data streams via HTTP.
It is the protocol of the web, is easy to use both on the receiving and sending side, and there is not a lot of configuration
standing in your way. HTTP would be the protocol of choice when sending data to EOM from web services.
Great, but now we have to fight over the format of the messages and what EOM could do with that format. EOM can recognize
most binary formats and simply send them through to a printing device as a ¤PassThru¤ file. This format may or may not print
adequately depending on the data format and the capability of the printer. For example, PDF files can be routed directly through
EOM to printers that process PDFs directly, or printed to Windows printers via a Custom Job (like one created recently for a
State Government EOM customer). XML might be handled via the Transform Attribute depending on the content. Text data
can be formatted and manipulated with ease via EOM, like the typical host/server files processed today. (Note - it would be
really cool of EOM could print HTML directly)
The remainder of the InformationWeek.com article went on to say that the next step for HP is to supply services where data
providers (think news bureaus, financial houses) could print the day®s information automatically to their end users. Given the
direction of paper usage it is not so clear whether people will want to automatically print anything from web when they can
look at it via their iPhone/iPad/browser, but that is a question for HP.
EOM News & Views
Issue 20, Late Summer 2010
[ 102 ]
Page [ 102 ]
Got JetForms???
The JetForms product has been around since the Windows 3.11 operating system. Like the development cycle of other output
products, there have been twists and turns along the way. The JetForms company changed their name to Accelio in 2001, then
was purchased by none other than Adobe Systems in 2002. It appears that some of the JetForms solution has been integrated
into the Adobe product line, other parts of JetForms solutions have gone away. The core JetForms product appears to be alive
and, according to the Adobe web site, Adobe is committed to maintain it - although there will be no new functionality as they
want you to migrate to the LiveCycle ES2 products.
So what happens when a customer has multiple applications pumping out data for JetForms consumption, but wants to get
away from JetForms? Well, how about using EOM and DDA? Great idea, here are a few steps:
1) EOM does not do anything with JetForms designed forms. You start over, use a forms design tool you have or any solution
that can output Windows metafiles. Given the oddities and metafile issues with Microsoft Word updates, we are growing fonder
of other products, like Serif PagePlus and Microsoft Publisher.
2) Use the Form File Utility to draw fields on the form. The Form File Utility field names should be identical to the field values
found in the JetForms "^FIELD abc" syntax of the input data stream (see below).
3) Create a Data Dependent Attribute (DDA) to take the input data and write it to the correct fields.
4) Create a Print Attribute to handle the page settings (orientation, DDA to use, ...)
Tah dah!
Sounds easy enough, but lets dive a little deeper. First, the input data has to be consumed by DDA, where the
input data is identified and then written to the right Form File Utility field or somewhere else on the page. It turns out that
this was relatively easy to do given the consistency of the data produced by the applications creating data streams for JetForms
(in fact, this data format is a reasonable model for new applications even when not using JetForms). The data consists of
keywords that identify a new file ("^JOB xyz"), fields ("^FIELD abc"), and page control ("^EJECT"). The interesting part of this
format is that the field name (i.e. "^FIELD abc") is followed by the value for that field (which could be blank) allowing us to
assign DDA variables both the field name and the value for that field. Then, it is just a matter of using the DDA Print Data
command to print "by Field" using the variable that holds the field name in the "Form File Field name" property and the variable
that holds the value for that field in the "Data to output" property. Since the Form File Utility was designed using the names
of the fields from the input data stream, the data will be positioned automatically.
But wait, there is more! If the input data is consistent then a single DDA could be written to handle ALL of the JetForm data
files. The one irritation of this solution is that the DDA needs to know which Form File Utility form it is using, so some logic
has to be added to acquire the correct form name. One suggestion would be to read the first article of this newsletter (DDA
Feature) or, if there are a low number of files to handle simply define a DDA for each file (maybe a unique DDA that CALLs a
common DDA that handles the file).
(examples on next page)
EOM News & Views
Issue 20, Late Summer 2010
[ 103 ]
Page [ 103 ]
Example JetForm data
^
^
Example JetForm DDA
SHIPPAGE
SHIP_ADDR
HOMER HAGERSNASTY
2134 PITH WAY
ROSEVILLE MN 55041-2345
^
SHIPDATE
09/12/10
^
ORDERDATE
09/10/10
^
CUSTNUM
01234
^
SHIPVIA
Federal Express
^
DESC
Pastry knife
^
UPC
76534
^
ITEM
PK1
^
PRICE
$7.99
^
QTYORDERED
12
^
DESC
Band-aids
^
UPC
31234
^
ITEM
BA1
^
PRICE
$2.25
^
QTYORDERED
100
^
COMMENT
Thank you for your order!
^
TOTALPRICE
$10.24
^
BARCODE
945673456
^
EOM News & Views
Issue 20, Late Summer 2010
[ 104 ]
Page [ 104 ]
All of EOM 8.1 has been released!
This release, along with the secure email
signing/encryption feature is available now. EOM 7.0 and EOM 7.1 are officially decommitted October 31st,
2010. If you are still using EOM 6.1 or older, your life can be significantly improved by moving to EOM
8.1.
Quick Hits
Who are we?
Rumor control: EOM 9.0 is in the works for
a first quarter 2011 release. It (finally)
includes a robust graphing capability among
other features.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
One of the uses of dynamically switching
Form File Utility forms is when you have to
support multiple languages. Forms can be
created for each language, fields drawn on
the forms, and then used based on a
keyword within the data stream.
and
The next Newsletter will discuss the .INF file
and how you might use it outside of the
Web Assistant.
One use that we tripped
over this summer was to feed the FileNet
software.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training? We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota 55042
www.PrettyGoodConsultingGroup.com
EOM News & Views
Issue 20, Late Summer 2010
[ 105 ]
Page [ 105 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 21, Fall 2010
We create solutions.
WIN2PDF users
There are serious issues with the Dane
Prairie WIN2PDF version 7 release. We
have run into multiple issues at multiple
sites. Please download and install the
most recent update (pre-release version
7.0.36) as of this date. A couple of
obvious symptoms include: EOM cannot
create large PDF files (in thousands of
pages) without hanging in “post-process-
ing and it takes significantly longer to do
text searching in large PDFs. The most
recent WIN2PDF update can be downloaded from: link
DDA Feature (you may not know about)
We recently helped a customer with an interesting requirement: they need to print barcodes
dynamically, based on syntax found in the the incoming print stream. At first glance this
sounds pretty complicated. However, once a consistent format for the input line is defined,
the rest of the DDA falls out pretty quickly.
DDA Feature .......................... 1
EOM INF file ............................... 2
Migration Strategies ....... 3
Quick Hits....................................... 4
Contact information ........ 4
There are a handful of properties that we had to think about to solve this problem: which
barcode, the size, where to place the barcode. (note that if you really wanted to get fancy
you could also include syntax for printing a caption and, for some barcodes, whether there
is a check digit). To kick that parsing off however, we need to be able to recognize that
the data is for a barcode. Here an example format:
$BC$ Type Xpos Ypos Data
Parsing this line is really straightforward: Use the DDA Item syntax to identify the barcode
text (search for ¤$BC$¤ on column 1) and then parse by spaces.
DDA Item: FindBarcodeSyntax (Search Data $BC$ Search Range 1)
BCLine = (remove spaces) $CurrentData
BCLine for " " (result var SpacePosition)
BCType = (remove spaces) BCLine[1-SpacePosition]
BCLine = (remove spaces) BCLine[SpacePosition-999]
BCLine for " " (result var SpacePosition)
(repeat for each parameter)
The EOM INF file
The EOM INF file, formally known as the very descriptive "information file", is a set of properties and values defining a specific
Print Job. The INF file can be created for a Print Job when printed to a Physical printer that has properties "Print output file
option" set to "Print to file" and "Action to perform with output file" set to "Build information file". EOM "prints" the file to disk
(usually a PDF, TIF, or TXT file) and then creates the corresponding INF file, using the same file name but with the "inf" extension.
Both the "printed" file and the .inf are written to either the ../print subdirectory OR, more likely, the directory defined in the
Print Attribute Web/File properties.
This capability was developed specifically for the Web Assistant. The goal was to be able to "feed" files to a separate process
that would show information about that file (i.e. the information found in the File Management window) and allow viewing of
that file via a web interface. Note that multiple EOM instances could feed files (print and .inf) simultaneously to the Web
Assistant. The values in the INF file are a subset of the File Management data plus the name of printed file. The Web Assistant
service opens the INF file, verifies that the printed file resides on disk, and then populates the SQL table with the property
values found in the INF file.
The current INF file looks like:
<?xml version="1.0" encoding="utf-8"?>
<EnterpriseOutputManager>
<FileGroup>Default</FileGroup>
<FilePriority>M</FilePriority>
<HostQueue>PrinterQ1</HostQueue>
<HostPriority>M</HostPriority>
<HostSystemName>MCPA</HostSystemName>
<HostQualifier>TECH1</HostQualifier>
<HostFileName>EOM/DEMO7</HostFileName>
<HostFCycle />
<HostRunid>TECH1</HostRunid>
<EstimatedPages>1</EstimatedPages>
<TransportType>Remoting</TransportType>
<TransferDate>11/23/2010</TransferDate>
<TransferTime>09:43:01</TransferTime>
...
<PrintFileName>C:\EOM81\Print\DEMO7.000</PrintFileName>
<MostRecentPA>DEMO7</MostRecentPA>
<MostRecentPR>PDF1</MostRecentPR>
...
<UserTags>
<UserTag1>$LINE1$</UserTag1>
<UserTag2>#BXBBGDD***5-DIGIT</UserTag2>
<UserTag3>55041</UserTag3>
</UserTags>
...
</EnterpriseOutputManager>
(continued on next page)
EOM News & Views
Issue 21, Fall 2010
[ 107 ]
Page [ 107 ]
EOM INF continued...
So now what?
We have used the INF file to solve a couple of problems. One such problem required the information in the File Management
window to name the file. A program watched for the .inf file, verified that the "printed" file was resident and then renamed it.
Many of you are probably thinking "Hey, how come the keyword substitution feature can®t be used?" Well, first, the keyword
substitution enhancements made since this solution was created would come close, but there is also logic in the program that
is used in addition to the property values.
Another use was to "feed" WinFaxPro. Similar to the process above, a program watched for the .inf file, verified that the "printed"
file was resident and then used the WinFaxPro API to fax the file. This solution was cool because the FAX information (phone
#, addressee, ...) was found in the User Tag and other EOM File Management properties.
Finally, rumor has it that the very widely used FileNet software (now an IBM product) can ingest the .inf file in order to populate
its database for the "printed" file. This should mean that there is a "direct feed" from EOM to FileNet. Since we have not
actually done this, we will not guarantee that it works as per the rumor.
Migration strategies
No, not by a long shot. We have had the pleasure of working with two organizations in the last year that are moving to a new
suite of software on different host platforms. In both cases EOM actually made the move to a different architecture easier than
trying to establish a brand new output environment.
First and foremost: EOM File Masking works across multiple host/server systems. Yes, the conditional statements used in File
Masks might be slightly different based on the kind of system that sends EOM data, but the concept of having the File Mask
identify the incoming file remains the same. So, a large part of of any migration is mapping the existing File Mask requirements
to the new environment. Which masking condition values are available with the new platform? What values for those
conditionals will be thrown at EOM along with the output file? Is there a way to match those new conditional/values to the
existing conditional/values?
Next, since reports (and the format) change, the next issue to handle is how to modify the Print Attributes, DDAs, electronic
forms (and so on) so that the new output data is formatted consistently with current output. UNLESS, you have a clean slate
and can start over. OR, you are in the happy situation where there are no DDAs, electronic forms (and so on). We found
that in many cases the background (electronic form) did not change, but there were minor tweaks to the margins to position
the data better on that same background.
O.k., seems pretty straightforward, at least until we run into a site that has many remote EOM instances that were being "fed"
by the host/server system directly. Do you really want to go to every remote site and change the EOM configurations? Not
likely. Even with the ability to export & import configurations, modifying remote site EOMs could be a daunting task. So what
if you were to simulate the direct link from the original host/server via a centrally located "master" EOM that "feeds" the remote
EOMs? This means that the hard part of the EOM configuration is done on the "master" EOM, typically using a Transfer Job
to send to the remote EOM instances. Let us know if there is interest in this topic for further discussion, as we have run out
of room for this newsletter... .
EOM News & Views
Issue 21, Fall 2010
[ 108 ]
Page [ 108 ]
Nothing new to report!
While it is fun to run around creating false panic regarding new
versions of EOM, there is really nothing too new at this time. EOM 8.1 is out in the field and working
well, EOM 9.0 is in the late stages of beta testing, and many customers are more concerned about year-end
processing. So, enjoy this lull and Happy Holidays!
Quick Hits
Who are we?
The EOM 9.0 beta test appears to be going
well. There are a handful on new features
including: inbuilt charting capability, Print
Attribute option that separates the wmf form
from the Print Attribute margin settings,
security settings for transfers and more.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
We have run into iSeries sites and Unix sites
where the Directory Monitor used of the
Ready Only flag (to recognize that the file
has been processed by EOM) does not work.
One workaround is to have a Custom Job
(like Ucopyit) to move the file from the
original directory to a directory under
Windows control. You might even have a
.bat file that copies the files, schedule via
the Windows scheduler at regular intervals.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Pretty Good Consulting Group, LLC
4235 Ivy Court
Lake Elmo, MN 55042
www.prettygoodconsultinggroup.com
EOM News & Views
Issue 21, Fall 2010
[ 109 ]
Page [ 109 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 22, Spring 2011
We create solutions.
EOM 9.0 is available!
Enterprise Output Manager (EOM) 9.0 has
been available to order for a few months
now. The highlights of this release are:
§
§
§
§
§
New DDA Charting capability
Secure file transfer for Transfer Jobs
More settings for LPR Transfer Jobs
Scale the metafile to page size
A handful of other enhancements
Clearly the marquis feature of this release
is the ability to include dynamic, databased charts on EOM output. So, instead
of trying to draw bar charts using a lot
of logic and the Draw Rectangle commands, you can now define a chart
template, build the chart data based on
static & dynamic data, then use the Draw
Chart to create the chart on the output
page. As you might expect, this feature
requires that you are using the ¤Windows
Driver¤ In the Print Attribute.
One seemingly minor enhancement is the
Print Attribute property ¤Top of page scale
Metafile to page size¤. This property
becomes visible when a Top of Page
Command File Directory Alias is defined.
When this property is set to yes the
metafile defined will scale to the current
page size AND use the Print Attribute
Margin properties to place the input file
text data. What this means is that you
may not need a DDA when you just want
the text to be plastered on a metafile
overlay. Often we run into customers that
have the data already formatted for the
page but have to use a DDA to place the
data because it doesn®t quite fit the
overlay. Without this feature, the metafile
scales with the text, keeping the initial
relative position between the text and
metafile - hence the reason for the DDA
to place the data.
Secure file transfer is timely, given the
excitement surrounding private data going
public. This new capability allows you to
use secure socket layer (SSL) protection
when moving data between systems. This
feature is supported on the OS 2200 EOM
side too, securing communications between
the host system and EOM.
DDA Tip: IMB & Postnet barcode sizes
EOM 9.0 ...................................... 1
Barcode sizes ......................... 1
DDA data placement .... 2
Config Initialization .......... 3
PDF Creation ............................ 4
Quick Hits....................................... 5
Contact information ........ 5
One would think that the size of the Intelligent Mail and Postnet barcodes would be pretty
easy to figure out. Well, when you have competing issues of USPS specifications and
limited space to print, sometimes it turns into a lengthy process. So let us save you some
time for those of you using EOM 7.1 or later. For the property ¤Font point size¤ under the
¤Windows font setting¤ category, good sizes to start are:
Intelligent Mail barcode font size: 16.5
Postnet barcode font size:
8.1
Then, it is always a good idea to verify that the barcodes printed are actually within
specifications. A good document from the USPS can be found here, specifically chapter 4.
There are also nice plastic templates available from the USPS so you can verify the printed
barcodes are within the USPS specifications (Item #04A).
DDA Feature (you may not know about)
We first wrote about controlling output placement via DDA in the June 2008 Newsletter. The concept was that using a User
defined variable (i.e. Yoffset), adjusted per output line, allows for variable spacing. We can take this concept a few steps further
by dynamically inserting forms, drawing lines, and crossing pages with data.
For demonstration purposes, lets assume that we have a data file where groups of lines of data make up a single statement or
a particularly good point to start on a new page. Each data file line has a prefix that uniquely identifies that type of line and
the record layout. For example:
Cents
ç
1793 1793
ç
MS-69
Almost perfect specimen
ç
MS-60
Significant scratch on reverse
1794 1797
ç
MS-64
MS-66
Abrasion on face
MS-64
MS-61
Heavy marks on Reverse
1800 1808
ç
MS-69
. . .
DLC
Large Cents
ç
CChain Type
1793 1793
ç
ILC 1793 D
MS-69
ILC 1793 D
MS-60
. . .
ç
***
DHC
Half
CBust Left
IHC 1793 D
IHC 1793 D
CLiberty Cap
IHC 1794 S
IHC 1796 S
IHC 1797 S
IHC 1797 S
CDraped Bust
IHC 1800 D
Start of new coin denomination
New category within the denomination
Coin in inventory
New category within the denomination
New category within the denomination
Start of new coin denomination
New category within the denomination
End of file
The goal is to parse the incoming lines of data, start a new page whenever we come across a new coin denomination, put a
header ¤form¤ for each new category, keep count of the number of categories and coins, and finally end the statement with the
category and coin counts. The general flow of the DDA is:
- Parse the incoming record
- Identify the record type
- Set user defined variables to be used when printing that data
- If it is a new denomination then finish up the current statement
- If there is room on the page print trailer form and counts
- Start new statement, print header form & denomination data
- If it is a new category, then finish up the current category
- If there is room, print the header form & category information
- Print the data record
- Check if there is enough room on the page to print, then print that record type data
EOM News & Views
Issue 22, Spring 2011
[ 111 ]
Page [ 111 ]
DDA Feature continued...
What may not be obvious from the example output is that there are 3 metafiles in use: the full page form, the ¤header¤ form,
and the ¤trailer¤ form. The header and trailer form float on the page, depending on the data. Before using the forms though,
the DDA has to verify that there is enough space - or finish up the current page and then move to the next page. Similarly,
there has to be enough space before printing the inventory record (I), if not then the DDA has to finish the current page and
then move to the next page.
The dynamic placement is now more than just adding an increment for each line printed - we have to account for the header
& trailer metafile, spacing after each metafile use, and drawing the lines in the table. This example could get a lot more
complicated and probably should be refined a bit before going into production, but it does give you one way to handle variable
data. Note that many of the lengths and spacing values have been tweaked to make the output look a little better. In general
you should be able to measure the header/trailer forms as well as the line data to have exact values.
All of the forms, EOM configuration, and example output are available via the links below.
Example Output
EOM 9.0 Config
Electronic forms
Example Data
Danger: Configuration Conversion Utility: Initialization
We normally do not lead people down a path of destruction, but in this case there is a slight chance that knowing about this
tool can save you a headache. The Configuration Conversion utility (Start / Programs / Unisys EOM x.x / Tools group) has
been around since EOM 7.0 was released. It is primarily used when manually converting old EOM configuration files to the
most recent version.
The Initialization tab allows you initialize all or selected EOM configuration and data files. We have used in in the past when a
remote host flooded the EOM system with files. We brought the EOM service down, ran the Conversion Utility, went to the
Initialization tab and selected “¤Jobs: Print Jobs¤ and then selected the ¤Initialize¤ button. BE VERY CAREFUL - this utility can
also initialize configuration files.
EOM News & Views
Issue 22, Spring 2011
[ 112 ]
Page [ 112 ]
PDF creation software
A lot has been going on in the 3rd party PDF world in recent years. What follows is a quick summary, leading to the slightly
biased view that the Amyuni PDF Converter software is the best fit for EOM at the moment.
This software used to be our favorite: it was easy to install, created PDF files quickly, created compact PDF files, and allowed
for multiple PDF printers. Multiple EOM-related issues have popped up since Dane Prairie released Win2PDF version 7. Version
7 added multiple features, most not of any use with EOM. A notable change that impacted use with EOM was the character
positioning within the PDF file. It appears that each character is individually positioned now. So, the PDF files got a little
bigger and it takes longer to compose the PDF file. There were also new-release issues, so you MUST download and install
the most recent update (pre-release version 7.0.36) as of this date. A couple of obvious symptoms include: EOM cannot create
large PDF files (in thousands of pages) without hanging in post-processing and it takes significantly longer to do text searching in
large PDFs (the most recent WIN2PDF update can be downloaded from
). One customer recently reported that the new PDF files could
not be digested by the Monarch product, we are not sure of the reason as yet. Note that versions prior to version 7 still work well.
The Adobe software works with EOM, but they clearly state that using it from a service is not supported. We do have
customers using Adobe without incident. We have also run into a major problem when trying to use Adobe 9.0 to create
PDF files with EOM. A new, hidden window is created by Adobe 9.0 that EOM does not ignore. The only workaround is to
run EOM as a Desktop Application (see PGCG Newsletter June 2009).
This software is our new favorite. It is easy to install, creates PDF files quickly, creates compact PDF files. Advertising from
Amyuni states that their benchmark tests show significantly better speed and PDF size compared to other providers. The
allow multiple PDF printers unless you purchase multiple licenses. A couple of notes:
desktop version does
1) From an astute customer: after installing Amyuni, go into the Amyuni PDF Converter printer and change both the General
and Advanced tab Printing Preferences/Defaults as follows: ¤Paper Settings¤ tab and change the Physical Margins from 0.2 to
0.0; Resolution from 600 DPI to 300 DPI.
2) Graeme Want of Want I.T. Found multiple problems with the Amyuni product in 2008, but it appears that those problems
have been resolved.
3) One customer reported that after installing Amyuni, printing with EOM and then installing the license code it took a restart
of EOM to get rid of the ¤Evaluation version¤ message on the PDF pages.
As always, let us know if you have additional observations, suggestions, or run into issues!
EOM News & Views
Issue 22, Spring 2011
[ 113 ]
Page [ 113 ]
Another reason to upgrade.
A customer reported that their EOM 6R1
software did not pass a recent audit. Not only was it no longer supported, but neither was the operating
system they were running it on. Enough said.
Quick Hits
Who are we?
Remember to order the EOM Secure E-mail
feature separately (at no cost) if you want
to sign and/or encrypt outbound E-mail
Jobs.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
Another reminder... The 3rd party F3 forms
design tool is no longer supported nor is
there an easy way to convert .F3F form files
(see November 08 Newsletter for details).
The current thought is to redraw the forms
using Microsoft Word, Microsoft Publisher,
or other 3rd party forms design tool (like
Serif PagePlus).
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Pretty Good Consulting Group, LLC
4235 Ivy Court
Lake Elmo, MN 55042
www.prettygoodconsultinggroup.com
EOM News & Views
Issue 22, Spring 2011
[ 114 ]
Page [ 114 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 23, Summer 2011
We create solutions.
Printing from Windows applications
If you have been reading this newsletter
for a while, then you know that there are
multiple ways to ¤feed¤ EOM from Windows applications. A quick refresher on
how Windows applications can submit data
to EOM:
Ÿ Drop files into directories that EOM
monitors (local or on a network)
Ÿ ¤Print¤ to a Windows printer that is
configured to send to EOM via TCP
(LPD/LPR or Raw)
Ÿ Use the COM or .Net API programmatic interfaces
Ÿ Microsoft Message Queuing (MSMQ)
Ÿ HTTP post (see Fall 2009 Newsletter)
Ÿ Your program opens a TCP connection to EOM (Raw, or LPD if your
program handles the protocol).
So how do you decide which method to
use? In most cases the question becomes ¤What options are available and
which is easiest to use?¤. If you wrote
the application, then any of the options
above could work, if not then usually
having the application write to a directory
or ¤printing¤ are typical options and
sometimes the most expedient. For
example, the gurus at the Building Industry Bargaining Council in Cape Town were
able to use Windows BIS to create an
output file format, write the file to a
directory (with an unique naming conven-
tion), create an electronic form, define a
Directory Monitor attribute, Print Attribute
and Data Dependent Attribute and produce
a PDF output in less than 2 hours - and
they were new to EOM.
Sometimes it isn®t practical to write a file,
so the next usual choice is to ¤print¤ to a
Windows printer that ¤points¤ at EOM.
The Windows printer is defined using a
TCP port (LPR or not) with the remote IP
address of the PC/server EOM runs on even if it is the same PC/server as the
application. The application prints to the
Windows printer, the Windows printer
sends the print stream to EOM.
(continued on next page)
DDA Tip: What should a DDA look like?
Print from Win Apps .. 1
DDA Tip ............................................ 1
Sending SMS msgs ....... 3
PDF Creation #2 .................. 4
Quick Hits....................................... 5
Contact information ........ 5
The structure of the DDA depends on multiple variables like input data and output
formatting. The following is a structure that has worked for many customers and is
maintainable for future changes. We will consider an easy case where all data for a page
(or set of pages) is on a single line. This general format breaks the DDA commands into
callable DDA Items and one DDA item to handle the input data:
to set up any global variables and initial values
to put the $CurrentData data into unique variables for later use
to modify the variables set in ParseData, usually formatting strings
to output the data, form, graphics and so on to the page(s)
to process the input file, calling the DDA Items listed above
Note that LineData is the only DDA item enabled for data identification. This DDA items
uses a simple technique of checking if a global variable is not defined, then call the
InitializeDDA DDA item to do so - hence, it happens only once, when the first record of
the input file is processed. It calls the other DDA items for each record. Example DDA
Printing from Windows applications continued...
Most Windows applications have some mechanism to print. Now the question is ¤What does the printed data look like?¤ If the application writes complicated (or ¤pretty¤) output including font changes, graphics, and such then the Windows printer usually has to be
configured with a driver capable of outputting that print format. EOM will recognize the print stream as ¤Passthru¤ because it is
composed into a printer definition language (PCL, Postscript,...) and just route the stream without DDA modification.
In most cases when sending print streams to EOM the Windows printer is defined with the Generic / Text Only driver. We want to
use EOM as the print engine (i.e. use DDA) so it needs to receive text. The application writes simple text to the Windows printer,
the Windows printer sends the print stream to EOM where the Print Attribute and DDA configurations can then manipulate the print
stream.
Great - except that there may be issues if you are trying to use the EOM embedded email sequences. These sequences require the
escape character (ASCII hex 1B), which MAY be replaced by the Windows Generic / Text Only driver before delivery to EOM. George
McGowan of McGowan Computer Associates, Inc., with help from Andrew Champion, Thomasville Utilities, found that EAE wrote the
sequences properly using standard EAE print commands but the escape characters where replaced with a period as the Windows printer
delivered the print stream to EOM. So, he changed the type of printer used via EAE (an LPR printer instead) and that sent the data as
is.
Notes - Replacing the escape character with a printable character can be avoided if the application uses the Windows API Escape()
function to print, as long as the printer driver defined on the Windows printer supports ¤passthrough printer escape¤ (which the
Generic / Text only driver does).
George had a few notes for EAE users:
1. In EAE Development create a report with a default device of DI - Direct or TP - Terminal Printer
2. In the CODE of the report
MV; (EMAIL)
MV: (TP)
GLB.STN
GLB.DEVICE
ROC Alias could be ANYTHING
For escape character use @27@
Set up your EA
EX=TXT
ES
EE
EF
-
Address(ees)
Attachment extension (or use ED for full display name)
The email Subject
Error notification email address
From address to be displayed in received email
MV; (EMAIL)
MV; (TP)
MV; (@27@60@27@S
ATT; POHD.EMAIL
MV; (@27@60@27@S
MV; (@27@60@27@S
MV; (@27@60@27@S
MV; (@27@60@27@S
GLB.STN
GLB.DEVICE
DC-EA=)
DC-EX=TXT)
DC-ES=)
DC-EE=)
DC-EF=)
(this example uses UserTags to pass additional information)
MV; ($DEPHDR$)
ATS; (PURCHASE ORDER)
ATS; SD-CONBR
ATS; SD-PONBR
F30ADDR
F30ADDR
F30FILEEXT
F30SUBJECT
F30EERR
F30EFROM
F30DEPCON
F30DEPCON :EOM USERTAG1 and USERTAG2
F30DEPCON :EOM USERTAG3
F30DEPCON :EOM USERTAG4
4. ROC define alias by going to AL screen
EMAIL
Defintion LINCLP -S<SERVERNAME of EOM> -P<printer/device set up in EOM> -d
The report runs - directs the OUTPUT to TP which will use the Windows LPR command to send output to EOM.
The report finds the ROC ALIAS (EMAIL) looks at the definition LINCLP is converted to LPR sends the output to EOM Server (this must be EOM Server) and
the device within EOM -P in the defintion of the ALIAS.
ALL of the above are required to insure the output is sent from the report to LPR, to device in EOM, and finally email to appropriate person.
EOM News & Views
Issue 23, Summer 2011
[ 116 ]
Page [ 116 ]
Sending SMS messages with EOM
. You have
probably used the EOM email capability to send reports, parts of reports, and possibly even simple messages to notify the
recipient that some event occurred. You can also use that same mechanism to send SMS text messages. Most cell phone
carriers provide an SMS gateway, which means you send the gateway a properly formatted email and it sends out the SMS
message.
The ¤properly formatted email¤ is usually an address consisting of cell phone number to receive the SMS message followed by
the provider address (i.e. "5551234567@txt.att.net") and text in the email subject and/or body. So, you configure an Email
Attribute in EOM with a static email address or you can send the email address via the data stream received by EOM.
There are many resources on the web to find your carrier®s information, a great start is the Wikipedia page ¤List of SMS
Gateways¤ (http://en.wikipedia.org/wiki/List_of_SMS_gateways).
Email Attribute SendSMS1
5551239876@tmomail.net
:
EOMSMSNotification@ProdEOM.com
: *** Monthly payroll data has been received by EOM ***
EOM News & Views
Issue 23, Summer 2011
[ 117 ]
Page [ 117 ]
PDF creation software - Take two
Last newsletter we briefly described 3 different 3rd party PDF solutions for EOM, boldly stating that the software from Amyuni
was our favorite at this time. Well, we ran into a few problems at a recent customer site visit...
It turns out that if you are running the Amyuni software on a Windows server operating system (2003, 2008) you cannot use
the desktop PDF Creator software. The licensing requires that you purchase the PDF Converter Single Application Server license
($689.00 as of this article). This software allows one application (i.e. EOM) to create PDF files. Getting the PDF Converter
Single Application Server software installed and configured required a few steps on a Windows 2008 64-bit server, thanks to
Kevin Cole from the State of North Dakota and the Amyuni Tech Support team to get this worked out:
1. Order and download the PDF Converter Single Application Server software (do not install yet). You will be required to
submit an application name to be used with this license (¤EomService.exe¤)
2. You will receive an email from Amyuni confirming your order and string values for ¤License to¤ and ¤Activation code¤.
3. The download in our case was a ZIP file. You must unzip this file into a directory that is to remain on the server
(read: do not delete the directory after the installation is done).
4. Verify that the login used to run the EOM service has access rights to the directory. You may need to add the usercode
to the file access privileges for that directory.
5. Open the install.ini file found in the directory, provide an appropriate printer name for the ¤PrinterName¤ property, copy
the ¤License¤ to¤ value into the ¤Licensee¤ property, copy the ¤Activation code¤ value from the email into the ¤LicCode¤
property.
6. Execute the install.exe program from the directory. You will be presented with a simple status of the install.
7. Verify that the login used to run the EOM service has full control rights to the Windows Registry
HKEY_CURRENT_CONFIG / Software / <Printer name> entry. Apparently the PDF driver accesses these registry settings
when executing.
8. Run the ¤config.vbs¤ script from a command prompt, using administrator privileges.
Ÿ For 64-bit servers the command line is: C:\Your_Amyuni_Folder_Location>c:\windows\syswow64\cscript.exe config.vbs
Ÿ For 32-bit servers the command line is: C:\Your_Amyuni_Folder_Location>c:\windows\system32\wscript.exe config.vbs
9. The printer name can now be found in the Windows Devices & Printers. Make sure you modify the properties of this
printer to set the margin to 0.0 inches and 300 DPI. Under Control Panel / Printers and Faxes. Select the printer,
then right-click and select Properties. On the General tab select the Printing Preferences... button, then select the Paper
Settings tab to change the two parameters. Next, select Ok, select the Advanced tab, Printing Defaults... Button then
select the Paper Settings tab to change the two parameters.
10. Finally, you do the EOM configuration steps to define the PDF printer in the EOM Configuration Explorer, Physical
Printers. Note - you may need to stop and then start the EOM service to get the Amyuni printers to function (first
try to print).
This may look like a lot of manual steps ... you are correct. However, once installed the PDF files are created quickly and
appear to be very efficient. Now the really good news - this license allows you to create multiple PDF printers that EOM can
print to simultaneously. This is useful if you are creating a lot of PDF files or have large PDF output files that keep smaller
PDF files waiting. To create additional PDF printers, get to the Amyuni directory, using Administrator privileges, run the
install.exe with a new printer name, as in ¤install.exe PDFPrinterName2¤. Then, define the printer to EOM and likely create a
Logical Printer in EOM to flow control across the PDF printers.
EOM News & Views
Issue 23, Summer 2011
[ 118 ]
Page [ 118 ]
Training is available
Both the EOM Basic and Advanced Workshops have been
scheduled. The EOM Basic Workshop, starting September 13th, spans 4 days of 4-hours per day of
remote training. The EOM Advanced Workshop, starting October 3rd, spans 5 days of 4-hours per day
remote training. On-site classes can also be arranged via Unisys Customer Education (800-222-0966 or
email at UnisysCustomerEducation@Unisys.com).
Quick Hits
Who are we?
The last Newsletter noted that EOM
supported
SSL/TLS
communication
connections, but failed to note that these
connections are supported from the
ClearPath MCP system too. See section 2.1.6
of the EOM for ClearPath Config & Ops
guide
LOCALSSLSOCKETDEF,
RemoteSSLSOCKEDEF and SSL option on
PrintS device.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
Wow. We were pleasantly surprised when an
astute Unisys watcher brought a YouTube
video to our attention. The video does a
great job of defining what EOM is and what
it does. Kudos to Unisys Marketing for
making it happen. View the video via link.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
DDA gurus - The $CurrentYCoordinate value
is set after a PrintData command, but be
careful: The values returned when using
Print Preview are not accurate.
The
workaround is to print to TIF, PDF, or real
printer to get the correct coordinate values.
Need a really good editor? There are many
to choose from, one we like is Notepad++.
There are numerous plugins available, one
of particular interest is the Hex editor. This
editor displays the carriage return, linefeed,
and formfeed characters - makes counting
lines for DDA consumption MUCH easier.
Pretty Good Consulting Group, LLC
4235 Ivy Court
Lake Elmo, MN 55042
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
www.prettygoodconsultinggroup.com
EOM News & Views
Issue 23, Summer 2011
[ 119 ]
Page [ 119 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 24, Fall 2011
We create solutions.
Using Windows to compose, TCP printer to send
We have been working with an EOM
customer that has over 1,500 remote
printers defined in EOM as type TCP.
They have set up a very nice way to take
advantage of Windows printer features
while still printing to TCP printers. By
the way, it is possible to define all 1,500
of those printers to the Windows Print
Manager, but it sounds like a painful
endeavor.
What this customer did was define a
single Windows printer in EOM, setting
the ¤Print Output file option¤ to ¤Print to
file¤ and the ¤Action to perform¤ to ¤Apply
to File Masks¤. A File Mask identifies the
original file and then ¤prints¤ to the
Windows printer. EOM writes a composed
print stream to a file and then runs the
file back through the File Masking process.
Note that the driver defined on the
Windows Print Manager printer composes
the print stream - so if the printer is
defined with a PCL driver then the print
stream is PCL, if it is defined with
PostScript then the print stream is PostScript, and so on. Also note that the
second File Mask used to identify the
loopback composed file might include a
File Mask, File Selection Criteria of ¤Transport Type equal to Loopback¤ to help
identify the returned file.
When the composed file is returned, the
File Mask can either use a Transfer Job to
the remote printer IP address, or a Print
Job to the TCP defined EOM printer. In
both cases the composed file will be
recognized as a Passthru file, but if it
makes you feel better you can set the
loopback File Mask File Type to ¤Passthru¤.
The Print Attribute used for the Print Job
really does not do much because the file
is Passthru.
One of the cool aspects of this approach
is that most of the File Mask criteria
values are identical between the files (not
Transport Type as noted previously).
Thus, the File Masking logic is still based
DDA Tip: Master of the Universe DDA
Compose & Xfer .................. 1
DDA Tip ............................................ 1
Interfaces ....................................... 3
Quick Hits....................................... 7
Contact information ........ 7
Why? Is your first question. Well, suppose that there are many print formats going to
many printers and there isn't a nice way to use keyword substitution. The EOM guru would
have to configure many, many File Masks to identify the file and then start the proper EOM
job(s). One method of simplification could be to move the logic required from the File
Mask to a DDA. The ¤Master¤ File Mask has to identify a group of files (or maybe ALL
files if you move all File Masking logic to DDA) and then start a Job that invokes a Print
Attribute & DDA. One solution is to define a Windows printer in EOM, a Generic Print
attribute referencing the DDA, and have the ¤Master¤ File Mask ¤Print¤ using those attributes.
The DDA contains the logic necessary to identify the file and then the appropriate Start Job
commands to process the file.
Great, that sounds pretty easy and we have mentioned this solution in previous newsletters,
so lets make this slightly harder. Suppose you have applications that drop files into a
(next page)
DDA Tip: Master of the Universe DDA continued...
directory structure where the file path indicates what the file is and where it should be printed. Examples might look like:
C:\OutputReport\TAX\W2\ACCT01\MNEmployeesW2-123111.txt
or C:\OutputReport\Payroll\SalaryChecks\ACCT03\MNEmployees-093011.txt
The first node of the file name tells us an application wrote the file, the second node tells us what category the file is, the third node
tells us the specific report within the category, the fourth node tells us where to print the report, and the filename is some unique name
that may contain other information.
The first issue is how to get the full filename to the DDA. The easiest way is to have the File Description field in the File Mask set to
¤<PCFILENAME>¤. Then the DDA can access the file filename via the system variable $FileDescription. In EOM 9.1 the ability to define
keywords at the File Mask level to send values to DDA will be greatly enhanced with the new ¤User Keyword¤ feature, that will have to
wait until another newsletter (and EOM 9.1 is released). The $FileDescription string needs to be parsed, watch out for local files as
opposed to files on a remote drive, so the file name contains the UNC header.
Finally, once you have the ¤parts¤ of the file name it is
a simple matter to use those parts in a Start Job
command. Clearly we do not want any output from the
initial file running through the DDA, so we immediately
set Data Output Off and once the job is started we End
Report.
This example is a bit extreme, where the file name is
made of subdirectory values, but you should be able to
modify the ParseFileName DDA Item to extract whatever
values are relevant to other formats.
EOM News & Views
Issue 24, Fall 2011
[ 121 ]
Page [ 121 ]
Programmatic interfaces to EOM
One of our favorite topics in the EOM Advanced training class is the chapter on Custom Jobs. There are so many things that
Custom Jobs can do in the EOM environment and some really creative ways to solve problems using that capability. Custom
Jobs are only part of the story, though. EOM also has interfaces that can be used to submit file for processing, create an
alerts, read the EOM logfile, and interact with the EOM configuration. What follows are 4 examples, 2 Custom Jobs and two
uses of the EOM logfile interface. All of these solutions are used in the real world.
A few years ago a large bank needed to replace a piece of 3rd party software that was no longer supported. The software
package, which was very expensive at the time, manipulated output files so that they would be printed properly on a Xerox
printer. Based on the type of file, all of the necessary Xerox printer control information (DJDE commands) was inserted formatting, form selection, banner pages, and so on. The replacement solution required two parts: some way to define how a
particular report was composed (the ¤manager¤) and some mechanism to insert the DJDE commands (the ¤composer¤). A
standalone program linked to a database of formatting parameters works for the ¤Manager¤. As you might have already guessed,
the Custom Job is a good solution for the ¤composer¤ to handle the live insertion of DJDE commands, as it is invoked when
the file is received.
The Manager
This part of the solution simply manages data used to insert as DJDE statements. Each application has one or more reports,
each of which requires a unique key to identify that report. That Application/report record then references a list (one or more)
copies of the report with distribution information. The example screen shot below shows the unique AppKey and the
corresponding distribution list. Note that top table keeps all of the necessary DJDE information to compose the report, the
bottom table holds the DJDE information for the banner page of that copy.
EOM News & Views
Issue 24, Fall 2011
[ 122 ]
Page [ 122 ]
The Composer
This program, used a an EOM Custom Job, is a bit more interesting. It opens the file, finds the information to create the
unique key, looks up the DJDE information for that report, then composes a new file that EOM sends to the Xerox printer. In
this case the program ¤gives¤ the new file back to EOM via the COM File Masking interface.
A customer needs to print and also archive reports to IBM®s FileNet system. Each report in the archive has up to 13 unique
¤key values¤ that FileNet users can search on. EOM easily handled the printing side, using many of the EOM features like forms,
font changes, barcodes, and so on. They also used EOM to feed FileNet, but there was a 3rd party solution in-between to
compose the file into a PDF that FileNet could process. So, EOM just massaged text data, handed it off to the 3rd party
software and that software added the forms, fonts, and key value information. This solution worked, but required a lot of set-up
and maintenance to keep working.
The replacement solution was a combination of a Custom Job and file loading software that the customer already had that
loaded files into FileNet. The file loading software used the directory & filename of the PDF file to extract the key fields required
in FileNet. So, the Custom Job parsed the input file for unique identifying information, looked in a database for other key field
information, passed that information back to EOM as a (long) User Tag, and then EOM processed the file into a PDF using
User Tag value as a file name (e.g. C:\output\RP1-acct04-12312011-LACK OF-347––----10312011-KEY1.pdf). This Custom Job also
used the COM interface, but in this case the Custom Job used the Print procedure.
As you probably already guessed, there is also a standalone ¤Manager¤ type program that manages where the key field values
can be found within each file, or defined the key field for that file if it is a static value.
The EOM Log Viewing and Reporting program is good at showing the EOM log records in a text format. It is not so great at
giving users the ability to massage the data. Very recently a request was made to somehow extract the information related to
Print Jobs so that the various departments within the organization could be charged based on how much they printed.
Well,
we have to say that is request was pretty straightforward: simply use the .Net interface to read the logfile, find all of the Print
Complete records, and output a file suitable for Excel consumption. The program EOMPrintRecords is the result, see code
snippet on the next page (free program, find on PGCG downloads page).
A very sharp development group recently completed a new application that prints via EOM, but also provides near realtime status
of the Print Job. ¤How can this be?¤ you ask. Well, there application uses the .Net interface to regularly look for Print Complete
jobs and then updates their database to show the current status. Thus, when an end user interrogates the database they are
shown the current list of completed Print Jobs. It would not be too much of a stretch to do this via a web interface.
EOM News & Views
Issue 24, Fall 2011
[ 123 ]
Page [ 123 ]
.Net interface for logfile Print Complete records
Sub WritePrintRecords(ByVal FName As String, ByVal logfiledir As String, ByVal OutFile As StreamWriter)
Dim sFileName, s, ptrname As String
Dim Yr, MM, DD, Reccount As Integer
Dim NewTime As DateTime
Dim TAB As Char = ControlChars.Tab
sFileName = Path.GetFileName(FName)
Yr = 2000 + Convert.ToInt32(FName.Substring(0, 2))
MM = Convert.ToInt32(FName.Substring(2, 2))
DD = Convert.ToInt32(FName.Substring(4, 2))
Dim LowerDate As New Date(Yr, MM, DD, 0, 0, 1)
Dim UpperDate As New Date(Yr, MM, DD, 23, 59, 59)
Dim Filter As New System.Collections.ArrayList()
Filter.Add(OutputMgr.Logging.LogEntryType.PrintComplete)
' Get the LogReader object (with filter)
Dim lr As New OutputMgr.Logging.LogReader(logfiledir, LowerDate, UpperDate, False, Filter)
For Each LogEntry In lr
Reccount = Reccount + 1
Dim log As OutputMgr.Logging.IPrintCompleteV1
' (LogEntry)
log = LogEntry
TenNanoSecondsToDateTime(log.LocalDateTime, NewTime)
s = NewTime.ToString("yyMMdd") + TAB + NewTime.ToString("hh:mm:ss") + TAB
ptrname = log.PhysicalPrinterName
s
s
s
s
s
s
s
s
s
s
=
=
=
=
=
=
=
=
=
=
s
s
s
s
s
s
s
s
s
s
&
&
&
&
&
&
&
&
&
&
log.PhysicalPrinterName & TAB
log.Userid & TAB
log.Account & TAB
log.Project & TAB
log.Banner & TAB
log.HostQualifier & TAB
log.HostFileName & TAB
log.HostName & TAB
log.HostQueue & TAB
log.FileType & TAB
EOM News & Views
Issue 24, Fall 2011
[ 124 ]
Page [ 124 ]
s = s & log.PcFileName & TAB
s = s & log.FormType & TAB
s = s & "'" + log.PageRange & TAB
s = s & " " & TAB
If log.PrintCompletionType = 1 Then
s = s + "Normal" & TAB
ElseIf log.PrintCompletionType = 6 Then
s = s + "JobDisabled" & TAB
Else
s = s + log.PrintCompletionType.ToString & TAB
End If
s = s + log.LogicalPages.ToString & TAB
s = s + log.PhysicalPages.ToString & TAB
s = s + log.NumberBytesPrinted.ToString
OutFile.WriteLine(s)
Next
End Sub
Sub TenNanoSecondsToDateTime(ByVal TenNanos As Int64, ByRef Rslt As DateTime)
' Converts an Int64 10 nanoseconds from 0001-01-01 to TDateTime variable.
Dim Dnought As DateTime = #12:00:00 AM#
Dim Milliseconds As Int64
Milliseconds = TenNanos \ 10000
Dim ts As TimeSpan = TimeSpan.FromMilliseconds(Milliseconds)
Rslt = (Dnought.AddSeconds(Milliseconds \ 1000))
End Sub
EOM News & Views
Issue 24, Fall 2011
[ 125 ]
Page [ 125 ]
Important Dates
Just in case you are curious, EOM 8.0 and EOM 8.1 will be decommitted
December 31st, 2012. Since the end of the world has been predicted to be December 21st, 2012 there is
no reason to worry about official support for these versions of EOM.
Quick Hits
Who are we?
The EOM 9.1 Beta test started in September.
The highlight of the EOM 9.1 release is that
it will be a 64-bit application (opposed to
32-bit as it is now) on a 64-bit machine.
A second highlight is that Aztec, QR, and
GSI Databar barcodes have been added.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
The EOM 9.0 Web Assistant aborts after
installation, there is no workaround. An IC
will be released very soon.
and
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Pretty Good Consulting Group, LLC
4235 Ivy Court
Lake Elmo, MN 55042
www.prettygoodconsultinggroup.com
EOM News & Views
Issue 24, Fall 2011
[ 126 ]
Page [ 126 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 25, Winter 2012
We create solutions.
EOM 9.1 to be released in February
Enterprise Output Manager (EOM) 9.1 will
be released in February. The highlights of
this release are:
§ EOM service & client run as 64-bit
service & application
§ EOM service & client can still run as
32-bit service & application
§ New User Keyword feature to make
your File Masking even MORE capable
§ There are 3 new barcodes and new
library for existing barcodes
§ You can now define a Transfer
Destination in a Print Attribute for TCP
printers
The marquis feature of this release is the
ability to run natively on 64-bit Windows
operating systems. You can still run just
fine in 32-bit Windows environments if
you need to do so. The installation
program automatically installs the correct
flavor for that operating system. Note
that the client and service can be of
different flavors and still operate together.
This release requires the .Net Framework
4.0, but no additional hardware, software,
or system settings.
QR, Aztec, and GS1 DataBar barcodes are
now supported. ¤Why?¤ you ask. The
easiest answer is because 2 of the 3 can
hold a lot of data. The QR codes can
hold over 7,000 numeric characters, 4,000
alphanumeric characters, and 2,900 binary
bytes of data. Aztec can hold between
over 3,000 characters or nearly 2,000
binary bytes of data. GS1 barcodes do
not hold a ton of data, but there are 7
variants available (4 for point-of-sale uses
and 3 for ¤smaller¤ projects).
Remember from previous Newsletters how
we used the File Mask File Description
value within a DDA? Well, the User
Keyword feature is a mechanism to define
your own keywords in the File Mask to be
utilized downstream (i.e. DDAs and where
keyword substitution is allowed).
Contact your Unisys representative to order
the upgrade, it should be free for most of
you via subscription & support agreements.
DDA Tip: DDA Item Column ranges
EOM 9.1 ........................................... 1
DDA Tip ............................................ 1
Feed Web Assistant......... 2
Android & iPad........................ 3
Quick Hits....................................... 5
Contact information ........ 5
If you have attended an EOM class then you have heard suggestions/recommendations/pleas
to to minimize the use of column ranges when defining DDA Items. The primary reason
is that handling partial lines leads to confusion and unexpected results. Why?
▪ DDAs are (typically) easier to debug when the DDA Item grabs the entire line.
▪ DDA has become more powerful & capable since DDA was first released, so DDA
Item column ranges are not as useful as with the early releases.
▪ Handling the left-hand side of a line of data leaves a left-justified right hand side
of data. This is confusing.
▪ There may be more work involved if the input data changes.
How do I ...?
Yes.
Now the question is whether you want to ¤feed¤ the Web Assistant directly or use the EOM service to ¤feed¤ the Web Assistant. Before
we get too far into the subject, note that the original intent of the Web Assistant was to manage and present human readable file formats
like text (.txt), TIFF (.tif) and PDF - in reality you can have any file managed by Web Assistant. The process is pretty straightforward:
You configure the Web Assistant service to watch one or more directories. When and INF file (.inf) and the corresponding
output file (i.e .pdf, .txt, .tif) are found in one of the directories, the Web Assistant software loads the information from the
INF file into the SQL database and moves the output file to another directory for safekeeping.
The Fall 2010 Newsletter showed how to have EOM create the .INF file that Web Assistant uses. In our case the external application
could create the .inf file along with the output file to be posted. This way
the EOM service does not get involved at all. Clearly the INF file
information has to follow the XML format as well as provide
enough information to be useful for searching & displaying
afterwards. The more information you stuff into the INF file, the
more information is available in the SQL database for searching &
displaying.
If you want the EOM service to get involved by creating the INF
file, then the EOM configuration requires a Physical Printer with the
that has properties "Print output file option" set to "Print to file"
and "Action to perform with output file" set to "Build information
file". EOM "prints" the file to disk and then creates the
corresponding INF file, using the same file name but with the "inf"
extension. Both the "printed" file and the .inf are written to either
the ../print subdirectory OR, more likely, the directory defined in
the Print Attribute Web/File properties.
The reason why you might want EOM to get involved with this
process in the first place is because EOM provides a transport
option that your application can take advantage of - dropping a file
into a directory. LPR directly to EOM, printing to a Windows
printer that happens to ¤point¤ at the EOM service. Again, there
has to be enough information sent along with the file to be useful
for searching and displaying afterwards.
<?xml version="1.0" encoding="utf-8"?>
<EnterpriseOutputManager>
<FileGroup>Default</FileGroup>
<FilePriority>M</FilePriority>
<HostQueue>PrinterQ1</HostQueue>
<HostPriority>M</HostPriority>
<HostSystemName>MCPA</HostSystemName>
<HostQualifier>TECH1</HostQualifier>
<HostFileName>EOM/DEMO7</HostFileName>
<HostFCycle />
<HostRunid>TECH1</HostRunid>
<EstimatedPages>1</EstimatedPages>
<TransportType>Remoting</TransportType>
<TransferDate>11/23/2010</TransferDate>
<TransferTime>09:43:01</TransferTime>
...
<PrintFileName>C:\EOM91\Print\DEMO7.000</PrintFileName>
<MostRecentPA>DEMO7</MostRecentPA>
<MostRecentPR>PDF1</MostRecentPR>
...
<UserTags>
<UserTag1>$LINE1$</UserTag1>
<UserTag2>#BXBBGDD***5-DIGIT</UserTag2>
<UserTag3>55041</UserTag3>
</UserTags>
...
</EnterpriseOutputManager>
The File Mask(s) that handles these files can be configured as
PassThru if you do not want the output file to be massaged by EOM,
which means you can post any type of file to the Web Assistant.
EOM News & Views
Issue 25, Winter 2012
[ 128 ]
Page [ 128 ]
Printing from Android & iPads
We have just ¤dipped our toes¤ into the Android and iPad realm so it is with a superficial understanding of the technology we say: Cool!
Both platforms have very impressive capabilities and generally speaking the operating systems and applications work well. With high
expectations we took a look at how EOM might be used for output from this class of device. Our first inclination is that we would print
just like we print from other systems: dropping a file into a directory, ¤point¤ a printer at the EOM service and so on. Not so fast - both
the Android and iPad have their own ways of outputting and many applications do not even have the concept of ¤File / Print..¤ menu
selection as found on Windows applications. In fact, there are no print options in some applications or a 3rd party application is required
to handle output.
Disclaimer - we are not nor do we claim to be experts yet with respect to output from Android nor iPad, but can relay experiences in
both testing and a real-life project.
The first hurdle to get over is the idea that you can print from every application or list of data - there is no option to do so, probably
because printed output is not a high priority or need from many mobile applications. So, lets take an easy case and start by just trying
to print something. From our T-mobile tailored Samsung Android mobile device we jump into the Contacts application, select Menu, then
select Print, and are shown a dialog box stating ¤You can only print on Samsung printer. Continue?¤ We have Canon and HP wireless
printers, sure enough they were not identified. Same result when trying to print an email. Then we tried the Web browser - it has a
Print option (that we cannot use because we do not have Samsung printers), but it also has a ¤Share¤ option that looks promising. The
camera application ONLY allows sharing. Same with a few other applications. So, for this particular device you print to Samsung
printers or you use the Share feature to output. By the way, we are told that other Android devices do not have similar manufacturer
specific print restrictions.
The default Share feature allows for transporting the output via Bluetooth & Wi-Fi device to device connections, Email, Gmail, and
Messaging, but not printing directly. However, installed applications can be included in the Share list, providing a mechanism to support
print. It appears that printer manufacturers (i.e. HP) take advantage of the Share to support their line of printers. For example, the HP
ePrint Home & Biz application provides wireless printing to HP printers from the Android. A non-printer specific application like ¤Lets
Print Droid¤ (BlackSpruce Software) also allows ¤Share¤ to a printer as well as printing from files resident on the Android device. It does
not require a printer driver, simply sends the document/page/file to that device natively using the LPR protocol. So, the file extension is
also sent with the output data, so if the remote printer understands that extension it should print correctly.
A Lets Print Droid type products can ¤point¤ at the Unisys Enterprise Output Manager (EOM) service, so transporting the data from an
Android device to EOM is not difficult. It is very similar to routing Windows printers to EOM via the LPR protocol, Lets Print Droid allows
you to configure an LPR connection to an IP address, which could be the EOM service. The EOM File Masks must identify the type of
file coming in and then output it it appropriately. The Lets Print Droid Help file has documentation on how to connect to EOM and even
includes EOM configuration examples for starting the popular Open Office and IrfanView as Custom Jobs to process incoming files. Other
files types likely would require other Custom Jobs to process the file type, but the mechanism is the same.
Similar to the Android platform, you cannot always print what you want. The application has to support printing. From the Contacts
application the best you can do is email the .vcf file. You can print directly from email and Safari. Printing is supported directly from the
iPad o.s., but in this case the native support requires ¤AirPrint¤ printers. Manufacturers of AirPrint enabled printers include Brother, HP,
Epson, Lexmark, and Canon. There are quite a few printers supported and in our limited testing it appears to work. Having said that, we
EOM News & Views
Issue 25, Winter 2012
[ 129 ]
Page [ 129 ]
Printing from Android & iPads
(continued)
had to reset our HP 5510 printer once in a while to reestablish the wireless connection. As you might expect, there are iPad applications
from printer manufacturers.
As you also might expect, there are a few manufacturer specific applications and a handful of applications that enable additional printing
options from the iPad. The primary goal of these applications is to support a non-AirPrint printers. One example, ¤Printing for iPad¤,
supports thousands of printers. One drawback is that the document you want to print must first be imported into Printing for iPad. You
can configure many printers, all of which require a driver and IP address/port in order to make the connection.
EOM could certainly be used to receive the output from iPad applications if they supported LPR or simple TCP, but the big concern is
that all of the received data is already composed for a specific printer. For example, the Printing for iPad application requires a driver
and there are no ¤Generic - Text Only¤ type drivers. This means that the files would be handled as PassThru and you would not be able
to use EOM®s DDA feature.
First off, printing was not as easy as we would have guessed for new operating systems. Next, clearly mobile device applications have
uses and goals different than many PCs/laptop applications, sometimes not intending to support output. Using these devices for output
in a corporate environment is going to cause headaches, both in operation and expectations. Is there a need for EOM with these
devices? Yes, but most likely as a routing tool to get the composed output to the right device. One of the really cool features of the
Lets Print Droid software is that installation and print routing can be controlled by QR barcodes. For example, using the Android device
the user reads the QR Barcode 1 to install the application, then reads QR barcode 2 (taped to a printer) that defines that printer on the
device, and then prints to the newly defined device.
Please let us know how mobile devices are being used in your environments, related to output of course. We would be happy to relay
information on EOM use with these devices too.
EOM News & Views
Issue 25, Winter 2012
[ 130 ]
Page [ 130 ]
Training is available
Both the EOM Basic and Advanced Workshops have been
scheduled. The EOM Basic Workshop, starting March 27th, spans 4 days of 4-hours per day of remote
training. The EOM Advanced Workshop, starting April 16th, spans 5 days of 4-hours per day remote
training. On-site classes can also be arranged via Unisys Customer Education (800-222-0966 or email at
UnisysCustomerEducation@Unisys.com).
Quick Hits
Who are we?
For those of you working on 64-bit Windows
and trying to create PCL forms: Some of
the ¤old standby¤ PCL drivers are not in the
initial list of Windows printer drivers (when
adding a printer).
Simply select the
¤Windows Update¤ button when asked to
select a driver, then there are many more to
chose from. The LaserJet 5Si and LaserJet
4 drivers appear to create the most
consistent PCL macros. The LaserJet III did
not create PCL macros as well as in the
past.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
and
Comment on the Master of the universe DDA
from EOM guru Darrel Fenstad: You mention
turning Data Output Off and then doing the
End Report to not produce any output from
the original print job. Take this one step
further and configure a Windows printer that
uses a Local Port that is set to the special
device name "NUL:". This points the printer
to the NUL device and won't generate any
output and won't initiate any communication
with a real printer or device. Alternately you
could set the Local Port to a fixed file path
(such as "C:\Temp\dummyprinter.txt"), but I
think the NUL device is slicker as that is its
intended purpose and a actual file port may
execute code to open the file for writing. Of
course, they should definitely still turn Data
Output Off and use End Report to avoid the
extra overhead.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Pretty Good Consulting Group, LLC
4235 Ivy Court
Lake Elmo, MN 55042
www.prettygoodconsultinggroup.com
EOM News & Views
Issue 25, Winter 2012
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
[ 131 ]
Page [ 131 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 26, Spring 2012
We create solutions.
DemoLibrary.xml EOM configurations at your fingertips
Every release since the EOM 7.0 version
in 2005 the installation CD has included
example configurations that should make
configuring EOM easier. This collection of
EOM configurations and examples can be
found on the release CD, under the
/Demos directory.
Highlights include:
- there is
an example listening path for LPR, Raw
TCP, and the native EOM protocol.
Import all three and EOM is ready to
accept input from just about any remote
server.
- a single example remains as
of EOM 9.0, ¤Hold-1Day¤, but it shows that
a simple name denoting duration makes
File Group definition a no-brainer. Just
make sure you remember to use a File
Group value on the File Mask definition.
- HDEFAULT and
TDEFAULT are the standard EOM
header/trailer. They are good out of the
box and useful for a base configuration if
you want to customize for your site.
- these show examples of
types of printers you may use.
- there are lots of Print
Attributes for the DDA demonstrations, but
there are multiple that you can use directly:
Generic, L-PCL, L-POSTSCRIPT, L-Windows,
P-PCL, P-POSTSCRIPT, P-Windows.
- ok, usually only the ¤Default¤
File Mask is actually used, the others are
used to process the demonstration files good examples, not so good for your
production site.
- The example DDAs show numerous techniques and features of DDA. I
use these primarily to steal code snippets
for new DDAs.
Finally, you can find a variety of text files
to print if you are testing your Print
Attributes & DDAs, example Word forms,
example PCL Command Files, and a few
graphic files.
To install the EOM demonstration configurations, open up the EOM Help file, select
the ¤Index¤ tab and search on ¤Demos¤.
Log Viewing & Reporting: Batch Input
Demo Cfgs .................................. 1
Batch LVR ..................................... 1
Flat file output .......................... 2
EOMPrintRecords .............. 3
Quick Hits....................................... 4
Contact information ........ 4
The Log Viewing & Reporting (LVR) program has a batch input capability, allowing you to
produce the EOM LVR output without entering data from the GUI. The instructions are in
the EOM Help file (go to the ¤Index¤ tab, search on ¤Log Viewing and Reporting Utility¤ and
then select ¤Running LVR in Batch Mode¤). First you create an .INI file with the parameters
you want to send the LVR program, then execute the LVR program passing the .INI file as
a command line parameter. You can have any number of .INI files for different uses, as
well as use the Windows AT scheduler to run those reports automatically. Command line
example:
Where the .INI file looks like:
Note: the example in the
Help file shows the InDir &
OutDir with quoted values.
Do not quote the file names,
a slight bug...
How do I ...?
Yes, EOM can ¤rearrange¤ or ¤convert¤ or create flat file output from a variety of input formats. Banks, government agencies, and others process
a variety of data for output, one requirement we have run into time and again at these sites is to use that same input to create a text file for
some other process. For example, a input file of check data comes in to be printed as well as requiring a flat file holding the account number,
name, and check amount on each record. More recently, an EOM customer was told that the input file they were printing also had to produce a
flat file with customer address information.
There are a couple of pieces required for this solution:
●
●
●
●
A Windows printer defined with the Generic / Text only printer driver.
An EOM Physical Printer, type ¤Windows¤, with the ¤Print to file¤ option set.
An EOM Data Dependent Attribute (DDA) that reads the input records and produces the flat file output.
An EOM Print Attribute defined with the ¤Generic - NoFF¤ driver as well as suitable Web / File output properties set to direct where the
flat file is created.
● An EOM File Mask modification to create the Print Job.
Most of the work is in the DDA, which has to identify the important bits from the input file and then build the output record. The example
below is over-simplified, especially since it is input record to output record, but gives the general idea:
Note that the ¤Set Data Output Off¤ is used after we output the line - this is to avoid having EOM/Windows Printer insert carriage control.
One additional note - in the ¤old¤ days, the Windows ¤Generic / Text only¤ driver would interfere with long records on output. For example, it
would truncate after 80 or 132 characters depending on the value set on the Windows print paper size. Testing with Windows 7 (64-bit)
showed no interference through 500 characters (500 was enough for us, we stopped testing).
EOM News & Views
Issue 26, Spring 2012
[ 133 ]
Page [ 133 ]
EOMPrintRecordsService
The Fall 2011 Newsletter (page 4) briefly mentioned the EOMPrintRecords utility and how it uses the .Net interface to retrieve Print
Complete records from the EOM logfiles. It takes that information and turns it into a file that Excel can open and manipulate, providing a
concise view of Print Complete records. Multiple customers liked the idea of culling the Print Complete records into that format, but
they did not want to do it manually. Hence, the Windows service EOMPrintCompleteRecords was born.
The advantage of a Windows service is that the Print Complete records are extracted in an on-going basis, so external processes (like
your own programs or operations personnel) can view and utilize the data without going into the EOM logging interface. The
EOMPrintRecordsService service is available on the PGCG website, downloads page (www.PrettyGoodConsultingGroup.com/downloads.html)
as is the GUI EOMPrintRecords program. Download the executable, run the executable, edit the EOMPrintRecordsService.ini file, and start
the service. The service works for logfiles from EOM 7.0 through EOM 9.1, but requires the .Net Framework 4.0.
The installation notes are:
This program should be installed on the same PC / Server as the EOM software. Note that it will create the EOMPrintRecords.xls file with Print Complete
records only when the EOMPrintRecordsService service is running.
It requires the Microsoft .Net Framework 4.0 (as does EOM 9.1)
After installation:
1) Edit the EOMPrintRecordsService.ini :
a) set property LogFileDirectory to wherever the EOM /logfiles directory resides.
b) set property PrintRecordsDirectory to where you want the Print Complete Records to be written.
c) set property PrintRecordsFileName to "ByDateDay" to cycle the EOMPrintRecords file or "NoChange" to always use the same name.
d) set IgnorePrintPreview to "True" if you do not want to see Print-Preview records in the EOMPrintRecords file.
e) the IgnorePrinters section is used to NOT include Print Complete records for certain printers. Adjust as needed, numbering each IgnorePrinterX
sequentially.
2) If you install this program on a 32-bit PC/Server, please copy the files in the subdirectory "EOMLibs32" into the root directory (of this install),
overwriting the 64-bit libraries.
3) Change the EOMPrintRecordsService Service to "Automatic" if you wish, or start/stop manually as needed.
EOMPrintRecordsService.ini
' LoggingLevel can be
Low, High
' PrintRecordsFileNam can be
ByDateDay, NoChange
'
[Global]
ScanInterval=300
LoggingLevel=Low
LogFileDirectory=c:\MyApps\EOM81\logfiles
PrintRecordsDirectory=C:\temp
PrintRecordsFileName=NoChange
IgnorePrintPreview=True
[IgnorePrinters]
IgnorePrinter1=Amyuni
IgnorePrinter2=PrintToFile
EOM News & Views
Issue 26, Spring 2012
[ 134 ]
Page [ 134 ]
Training is available
The EOM Advanced Workshop has been scheduled. The
EOM Advanced Workshop, starting April
spans 5 days of 4-hours per day remote training. On-site
classes can also be arranged via Unisys Customer Education (800-222-0966 or email at
UnisysCustomerEducation@Unisys.com). Please contact us SteveD@PrettyGoodConsultingGroup.com if you
questions or special requests.
16th,
Quick Hits
Who are we?
For you MISER users, we will be presenting
at the upcoming MUG conference in May.
Drop by our booth for a chat. We will also
be showing off how EOM can transform
MISER reports into more concise and
readable output.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
EOM 9.1 is available, This 64-bit and 32-bit
release can be ordered from your Unisys
representative.
and
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Pretty Good Consulting Group, LLC
4235 Ivy Court
Lake Elmo, MN 55042
www.prettygoodconsultinggroup.com
EOM News & Views
Issue 26, Spring 2012
[ 135 ]
Page [ 135 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 27, Summer 2012
We create solutions.
EOMConfigAnalyzer
Over the years there have been multiple
requests for a way to see relationships
between EOM configuration attributes and
where they are used in the EOM configuration. Examples:
- Is a Print Attribute in use now?
- Where is it used - File Mask or DDA?
- Which DDAs are no longer referenced?
- Where is Command File ¤xyz.wmf¤ used?
and so on. It gets even more complicated given that DDAs can reference a variety
of attributes as well as command files.
The EOMConfigAnalyzer program is a
stand-alone program that reveals EOM
attribute relationships. The program reads
and displays EOM configurations exported
via the EOM Configuration Manager. This
gives you the ability to inspect older
configurations, partial configurations, and
not impact a live EOM system. The steps
to run the program are:
1) In EOM Configuration Explorer:
- Go to File / Import/Export
- Change the export file type to "XML"
- Select or define a file to write the
XML configuration into (i.e.
"c:\MyConfigs\EOMCFG-060612.xml")
- Select the "Export All" button
2) Run EOMConfigAnalyzer.exe
- Go to File / Open EOM Config or
press the File Select button near the
top-middle of the screen.
- The Analyzer will run automatically
when a file is selected or can be
run again by pressing the "Analyze"
button
The "Parsed EOM Configuration" tree view
shows the EOM configuration to the
hierarchical "node level" selected in the
"XML Node Levels to display" fields. This
setting can limit how much of the XML
configuration to display.
Separate tabs show the contents of the
current XML configuration for that type of
attribute and where those attributes are
referenced. Select an attribute on the
left-hand side attribute list, the program
will highlight where that attribute is used
in the tables on the right-hand side.
The EOM XML configuration can also be
written to a text file (.txt) to be evaluated if
you so choose, simply check the option
(continued on next page)
Handling Base64 files
EOM CA ........................................... 1
Base64 files ............................... 1
How do I…? ................................ 3
Quick Hits....................................... 4
Contact information ........ 4
Yes, but the actual work is done in a Custom Job. Sometimes you are not allowed to use
binary, non-printable characters in a file that is to be transferred across the internet or sent
as an attachment in email. Executables, images, audio and numerous other file types must
be encoded before transmitting. Base64 encoding is frequently used to convert that binary
stream into a text stream for transmission, then decoded on the receiving side.
There have been two recent projects where the Base64 encoded stream came from a 3rd
party web service. First project: a request is submitted to a web service programmatically
and the result is a file that represents an image - a mailing label from the US Postal service.
The file is picked up by the EOM Directory Monitor, the File Mask starts the Custom Job
that decodes the contents, then gives the image back to EOM to print.
The second project was a bit trickier. A web service returned an XML file with multiple
encoded streams, where resultant file type was determined by another XML property. Same
drill in EOM though: Directory Monitor picks up the file, File Mask starts the Custom Job
to decode and place the file(s).
EOMConfigAnalyzer
continued…
"TXT report of config". The contents of the Parsed EOM Configuration tree view field are written to a text file. The file name is the same XML
configuration file with a "txt" extension. If the file already exists then it creates the file with a unique date and time in the filename. Go to the
PGCG "Downloads" tab to acquire the initial version of the program.
EOM News & Views
Issue 27, Summer 2012
[ 137 ]
Page [ 137 ]
How do I ...?
Yes.
In fact, with DDA it is a deceptively easy thing to do.
Why remove blank lines in the first place? Sometimes EOM is used to process data - not for output, but to send to other processes.
We wrote about flat-file output in the last newsletter, is DDA tidbit shows how you can clean up the data.
Removing blank lines is very easy, just make sure there are no spaces in the way nor line skip commands coming from a remove EOM
that alter the line position. Note that all lines are processed through the DDA item below, but similar DDA code could process a
subsection of lines if needed.
Also note that using the ¤Remove leading and trailing spaces¤ is overkill, as using the ¤Remove trailing
spaces¤ would get you to the same result.
Carriage control is a bit trickier, the example DDA below controls the carriage control directly instead of letting EOM handle it. Remember
that the simple Print Data command with blank X and Y positioning will use the line positioning of the input file. If there are line skip
commands sent from the remote EOM (i.e. ClearPath server), then that line positioning will be used.
So, having the DDA write the data
and carriage control, then shutting off output (Set Data Output Off) removes any additional line positioning.
There are other ways to accomplish this task (doing your own line counting and Print Data Y coordinate positioning for one), but this is a
pretty simple way to handle the task.
EOM News & Views
Issue 27, Summer 2012
[ 138 ]
Page [ 138 ]
Training is available
Both the EOM Basic and Advanced Workshops have been
schedule by Unisys Customer Education. The EOM Basic Workshop, starting September 18th, spans 4 days
of 4-hours per day remote training. The EOM Advanced Workshop, starting October 15th, spans 5 days of
4-hours per day remote training. On-site classes can also be arranged. Go to www.unisys.com/customereducation and then select ¤Web-based training¤ to see the EOM selection. Please contact us
SteveD@PrettyGoodConsultingGroup.com if you questions or special requests.
Who are we?
Quick Hits
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
The MISER User Group conference was a lot
of fun, good to see EOM people in person.
One major take-away is that many EOM
users are not taking advantage of basic DDA
features. Highlights: MISER reports can be
changed dramatically with DDA; identifying
data on a page and moving it around is a
no-brainer with or without the Form File
Utility; it is really easy to do barcodes (even
the “Quick Request ¤QR¤ barcode) with DDA.
On-site services, remote services,
general consulting are available now.
and
Speaking of using the QR barcodes…. . . We
saw the first negative article regarding the
use of QR codes last week. The primary
argument is that most people will not take
the time to pull out the phone, scan the QR
code, and then be subjected to advertising.
Using QR codes for valuable information (i.e.
not advertising) is a separate case. This did
not hit home until we saw QR codes on the
condiment bottles at a restaurant - yep, it
was pretty much a ¤You'll love our ketchup!¤,
even though it was the only option on the
table.
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Pretty Good Consulting Group, LLC
4235 Ivy Court
Lake Elmo, MN 55042
www.prettygoodconsultinggroup.com
EOM News & Views
Issue 27, Summer 2012
[ 139 ]
Page [ 139 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 28, Fall 2012
We create solutions.
EOMConfigAnalyzer (take two)
Well, that did not take long. The EOMConfigAnalyzer program
has been updated as per multiple requests. A few more
attribute counts have been added as well as the new Custom
Jobs tab. Go to the PGCG "Downloads" tab to acquire the
updated version of the program.
There were a few questions regarding the use of this utility.
First, it does not allow you to modify the EOM configuration
(XML file). It DOES allow you to figure out where a particular
attribute is referenced. For example, suppose you wanted to
verify if a particular Print Attribute was in use. You run the
EOMConfigAnalyzer, select a recently exported EOM configuration
file (in XML), and then navigate to the ¤Print Attributes¤ tab.
From this page you can select the attribute from the ¤All Print
Attributes¤ table and then see where it is referenced in the boxes
to the right. We update this utility as the need arises, so let us
know if you would like an enhancement.
Printing to Xerox printers
Two recent customers had to migrate from the bus & tag cables to a TCP connection on their
Xerox printers because the ClearPath no longer supports bus & tag. Here is what you can do:
EOM CA ........................................... 1
Xerox TCP printing ........... 1
DDA Tip: CSV files ............. 1
How do I…? ................................ 3
Quick Hits....................................... 5
Contact information ........ 5
First, the high-end Xerox printers are very capable, allowing for both bus & tag and a TCP/IP
connection on the same printer (some Xerox printers also have Windows drivers, but lets stick
to those that are ¤fed¤ DJDE commands). The TCP connection uses the LPD/LPR protocol and
requires a queue name. The queue name is configured for a variety of defaults, the expectation
usually is that the DJDE commands are part of the print stream or are added by EOM via
Command Files or DDA commands.
Now the hard part. While the data is transferred via LPD, it first must be formatted into a
Xerox-specific stream. The easiest way to describe this format is that each record has a prefix
defining carriage control and how many bytes of data in the record (the specification can be found
in the Xerox document ¤Functional Specification For LCDS via TCP/IP on DocuSP¤). A Custom
Job formats the print stream, then gives the new stream back to EOM to transfer to the Xerox
printer. EOM could be configured to use a Transfer Job or passthru print to a TCP printer.
DDA tip: CSV files
We recently ran in to yet another customer that is receiving a file that looked very much like comma separated data. The primary difference was that instead of
commas there are vertical bars used to separate data values. What different about this data is that there are multiple records for a single statement or logical
group of data. In the example data below, both the ¤00000¤ and ¤01000¤ records are used together to represent one page of output.
00000|V1|001|11/05/12|CheckFile1|ABC Supply|
01000|Vendor1|123 State Street|Mora|MN|55555|
00000|V1|002|11/05/12|CheckFile1|ABC Supply|
01000|Vendor2|456 Main Street|Hayward|WI|45122|
. . .
The Custom Job UCSVMap (on the EOM release CD, /Tools subdirectory) can be used to parse single record CSV files, the main attraction being that it can also
automatically map the data onto a Form File Utility (.dff) form. For our example data we are going to have to identify each field value across both records and
then place that value on the page somewhere.
Parsing a CSV file with DDA is not new, there have been multiple examples floating around for a while. The example we will show here is simply repeated calls
to a DDA Item that parses out the next token of data. Clearly it is ¤wired¤ for a specific number of fields per line.
Create a DDA item for each record type
Call the Parse DDA Item to get the next token and set the variable
Look for the delimiter, grab the data (this is the simple case, lines terminate with delimiter)
Place the variables on the output page, either with X,Y coordinates or .DFF fields
Look for the record type and parse accordingly
Download EOM XML
EOM News & Views
Issue 28, Fall 2012
[ 141 ]
Page [ 141 ]
How do I ...?
Yes. In fact, it is blindingly simple - keyword substitution.
Suppose you have a file that looks like this:
$DEPHDR$ Person1@company.com Person2@company.com “This is the subject”
To whom it may concern,
Please consider paying your bill on time, as we have twitchy people in the accounting
. . .
Since the top line starts with the text ¤$DEPHDR$¤, the user tags are defined starting from UserTag1 (if it ¤$DEPHDR$¤ was not there,
then UserTag1 would be assigned ¤$LINE1$¤ and the user tags are assigned starting from UserTag2). A simple Email Attribute ¤skeleton¤
is defined with minimal values (see below). When an Email job starts it queues an email job that fails. Failure is not a surprise here
because no addressing information was set for the Email job.
EOM News & Views
Issue 28, Fall 2012
[ 142 ]
Page [ 142 ]
How do I ...?
(Continued)
A more useful Email Attribute ¤skeleton¤ is defined with references to User Tags:
Note that the address and subject values show "<USERTAGx>" instead of the actual values, but rest assured that when the job executes the
actual values are used.
11/7/2012 13:03:42:095
UTC: 11/7/2012 19:03:42:095
Log Type: E-mail Message Send
Level: 10
Bytes: 402
Start Date/Time: 11/7/2012 13:03:39:490
Local Date:
Local Time:
Job Send Result: 0 (0x0)
Attachment Name:
PC File Name: C:\EOM\Print\emailtest-002.txt
File Qualifier:
File Name: emailtest.txt
File Cycle:
E-mail Attribute: CustomerPayment2
User Id:
Run Id:
Account:
Host Project:
Banner Id:
Host Queue:
Host Name: EOMDEV1
Encrypted: False
Signed: False
Number of "To" Recipients: 2
Number of "Cc" Recipients: 0
Number of "Bcc" Recipients: 0
Subject: This is the subject
Recipient Address #1: Person1@company.com
Recipient Address #2: Person2@company.com
is as simple as selecting a Print Attribute defined with a Printer Driver of Windows and an EOM printer that
references the PDF printer. Of course you would likely include other Email attribute property values like "Attachment Display Name".
EOM News & Views
Issue 28, Fall 2012
[ 143 ]
Page [ 143 ]
Interim Corrections
Those of you with support contracts might want to
connect occasionally to the Unisys Support web page (www.support.unisys.com) to see what Interim
Corrections are available. Here is the EOM service & client short list: 9.1.1, 9.0.2, 8.1.3, 8.0.
Web Assistant: 9.0.1, 8.1.1, 8.0.2
Quick Hits
Who are we?
We recently ran into a situation where the
EOM service would not run after a boot.
Checking the usual suspects proved fruitless,
even the EOM logfile showed no information.
Long story short: it appears that changes to
the security infrastructure (via Windows
updates) made the verification of the domain
login used to start the EOM service take
longer than 30 seconds. The Windows
service manager gives up after 30 seconds
so the service would never run.
The
customer found that the solution was to
re-install the EOM service. We have heard
of only one case so far. This is a drastic
measure and is not a recommended action
unless you have run out of options.
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments set us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Ever have trouble figuring out where a
process started in the Task Manager? A
Unisys Support guru showed us a great clue:
Add the ¤Command Line¤ column to the Task
Manager Processes tab - shows errant
Custom Jobs and everything!
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Pretty Good Consulting Group, LLC
4235 Ivy Court
Lake Elmo, MN 55042
www.prettygoodconsultinggroup.com
EOM News & Views
Issue 28, Fall 2012
[ 144 ]
Page [ 144 ]
newsletter
PGCG
Pretty Good Consulting Group
Got a problem?
EOM News and Views
Issue 29, Winter 2013
We create solutions.
PostNet vs IMB. IMB wins 1/28/13
The delays are over, postal rate discounts using the PostNet
barcode will end January 28th, 2013. See details. The good
news is that EOM supports the Intelligent Mail barcode, and has
since the EOM 7.1.6 release. There have been multiple articles
on the IMB barcode in PGCG Newsletters (May 2008, Spring
2011) if you need a refresher.
One often overlooked feature of the EOM Intelligent Mail Barcode implementation is that it allows for pre-encoded strings.
This means that if your application or provider has already gone
to the trouble of encoding the IMB information (looks like
¤TDAADTAFFD . . . DFFTTTAAATA¤) then EOM can still print the
barcode by setting the ¤Bar code data is already encoded¤
property ¤Yes¤.
Sometimes it is the simple things…
PostNet vs IMB ...................... 1
Simple things ........................... 1
EOM 10.0 ....................................... 2
Quick Hits....................................... 4
Contact information ........ 4
While teaching an EOM class recently it dawned on us how complicated EOM configuration can
appear to someone that has not seen it before. The Print Attribute alone has over 60+ properties
and varies depending on how some of those properties are set. This abundance of control
sometimes hides really simple settings that directly impact your production work. For example,
EOM has multiple ways to attempt a recovery after a failure:
: Set the ¤Automatic retry on error¤ to ¤Yes¤ so that EOM will retry a file path
access after a failure. Otherwise, the Directory Monitor has the property Enabled set to ¤No¤ and
you have to manually reset it.
: Set the ¤Automatic retry on error¤ to ¤Yes¤ so that EOM will retry a printer access
after a failure. Otherwise, the Physical Printer has the property Enabled set to ¤No¤ and you have
to manually reset it.
: Set the ¤Automatic retry on error¤ to ¤Yes¤ so that EOM will retry a file
path access after a failure. Otherwise, the File Expiration Search has the property Enabled set to
¤No¤ and you have to manually reset it.
EOM 10.0 is to be released this quarter
Unisys will release the EOM 10.0 version in the first quarter of this year, likely by the end of February. The most interesting feature is the new
integrated PDF Writer option.
This allows EOM to create PDF files without purchasing a 3rd party product. The feature must be ordered, is free, and is on a CD by itself (much
like the Secure E-mail feature). Under the covers it is the Amyuni PDF Converter, but more tightly integrated with EOM.
- be careful
if you already have the Amyuni PDF Converter installed. We ran into significant issues when trying to install both on the same server, so pick
one or the other. The PDF Writer feature installs a Windows printer (called ¤Enterprise Output Manager PDF Writer¤). This printer works ONLY
with the EOM service. One of the very cool behaviors discovered by other EOM gurus during the 10.0 Beta test was that you can define multiple
EOM Physical Printers using the same Windows Printer (¤Enterprise Output Manager PDF Writer¤) and that single Windows printer handles multiple
concurrent PDF creations. It is REALLY fast too, at least for text-based output files. If you do not already have a PDF solution or are still using
the Adobe software then this new feature will make your life significantly better.
Early versions of EOM locked in fixed length values of some file properties including Host Name, File Node A, File Node B. Values would be
truncated to that fixed length. There is a new fixed length, 123/127 characters for most, 100 characters for ¤Host Paper Type¤ and 255 characters
for ¤Host Full File Name¤. This change impacts keyword some keyword substitution values, including <PCFILENAME> now 127 characters,
<ORIGFILENAME> now 255 characters, and so on.
- if your EOM configuration relied on an automatic truncation then you have a little
work to do. For example, if your File Mask had a conditional something like ¤Host Paper Type¤ EQ ¤A23456789012¤ where the actual paper type
from the remote system was ¤A2345678901234567¤ then the File Mask conditional would no longer work as expected. It is likely that the biggest
impact for most of us is that values associated with file names will now be longer. These longer values could impact File Masks, DDAs, Email
Attachment Display Name, and Custom Job parameters. One interesting side effect that the EOM Development team points out in the Help file is
that downstream applications, those using output files received then generated by EOM (think Custom Job), must also be prepared for longer file
names.
The Backup Job can now compress the files stored as EOM Backup files, saving disk space. The ¤Compress backup file¤ property controls this
action, but also requires a separate directory (via a Directory Alias) to compose the compressed file. The compressing is actually the .ZIP format.
You can also compress
file attachments in Email jobs with the new ¤Compressed attached files¤ property. Similarly, the Print Attribute
now sports the property ¤Compress output file¤ and when set to ¤Yes¤ gives you the ability to encrypt too. This means that you could have EOM
compress and encrypt an input file before starting a Custom Job, which may simply write that file to a directory. The encryption option allows
EOM News & Views
Issue 29, Winter 2013
[ 146 ]
Page [ 146 ]
EOM 10 (continued)
for 128 or 256 bit encryption and a password of your choice.
There has not been much change to the Web Assistant feature in a long time, at least until the EOM 10.0 release. The Windows service,
utilities, and user interface have been completely rewritten. The most noticeable change is the ASP .Net front end facilitating the Web Assistant
Administration and Web Assistant File Finder.
A new Email Attribute called ¤Void e-mails¤ can be used to NOT include the incoming file data if it is larger than the user specified value (¤File
size limit¤ property). So, the email is still sent but without a humongous attachment or email body if it is too large.
- A font ¤Sample¤ preview box has been added to font selection properties (Print Attribute & DDA Change Font command) to make the font
selection a littler easier.
- The DDA Position Graphic allows fixed rotation now, at 0, 90, 180, and 270 degrees.
- The DDA Convert Variable now has a ¤Trim or Pad¤ Conversion type option. This allows you to Trim by removing characters at the front
or end of a string if it is larger than a user defined length. In addition, the command can Pad at the front or end of string with a user defined
character if the string is shorter than a user defined length. This is REALLY handy when working with output records that require a zero-filled
prefix.
- There is a new DDA System defined variable called $PrintDriver. This value is the value in the Print Attribute ¤Printer value¤ property.
EOM News & Views
Issue 29, Winter 2013
[ 147 ]
Page [ 147 ]
Interim Corrections
Those of you with support contracts might want to
connect occasionally to the Unisys Support web page (www.support.unisys.com) to see what Interim
Corrections are available. Here is the EOM service & client short list: 9.1.1, 9.0.2, 8.1.3, 8.0.
Web Assistant: 9.0.1, 8.1.1, 8.0.2
Quick Hits
Who are we?
Rumor has it that an EOM Interim Correction
is coming out shortly for EOM 9.1, like
mid-January. Keep a sharp eye...
Highly skilled, creative, solution provider
focused on the Unisys Enterprise Output
Manager product (formerly known as
DEPCON) with a sense of urgency sums up
who we are and what we do. We provide
general
Enterprise
Output
Manager
consulting,
migrations,
upgrades,
configuration,
training,
and
custom
programming.
On-site services, remote services,
general consulting are available now.
We recently implemented EOM to convert a
bank from MCP-based PostNet barcode to
EOM-based Intelligent Mail barcode in order
to make the January 28th deadline. They
needed to include electronic forms in their
solution, so going with EOM was a
reasonable choice.
The MCP PrintS
software does support Intelligent Mail
barcoding, see PLE 18896940, which
requires PRINTS-054.1A.20 IC or PRINTS055.1A.2, and will be included in the base
of MCP 15.0/56.1 scheduled for release in
April.
and
Why use PGCG? Deep knowledge of the
EOM product integrated into a variety of
customer environments set us apart. Our
customer’s production environment depends
on solid, working solutions that we provide.
Write
a brief description and send it to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Pretty Good Consulting Group, LLC
4235 Ivy Court
Lake Elmo, MN 55042
www.prettygoodconsultinggroup.com
EOM News & Views
Issue 29, Winter 2013
[ 148 ]
Page [ 148 ]
Download