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 ]