Indexing Tables in Kofax-Based Environments

We recently had a customer who needed to migrate off of an aging and highly customized Capture/indexing/workflow one-off solution. At the center of many of their form types in this system was a repeatable field collection object that functioned much like how you would expect a .NET DataTable control to function – values could be added horizontally to the current “row”, and at the end of it you could hit enter and a new “row” would be added. As you moved through, you also had the ability to validate the line item as a whole. In other words, nothing too out-of-the-ordinary.

Unfortunately, this stood out as a red flag for both myself and my coworker when we first saw it, since we were migrating the client to Kofax Capture. There’s nothing inherently wrong with Kofax’s flagship product, in fact it is an excellent tool for getting content where it needs to be, often in record time. One thing it doesn’t do well out-of-the-box, however, is table fields. Defining one looks normal enough, but when you actually get the chance to index them, each column ends up being a standard index field. Needless to say, turning the table 90 degrees counter-clockwise and forcing keyers to manually delimit values is not an ideal experience, especially when 99% of your form is tables that need to be indexed. Continue reading

Database Lookups Made Easy

Database lookups are easy with ILINX® Content Store.  Recently I configured a few and thought I would share some of the features.  I am assuming that you are somewhat familiar with database lookups in general, so this is not a step-by-step but just to point out some cool features.

Here is the application that we need a lookup for and we are going to base it off the SSN field.  We will need to click edit on the field and enable/configure the lookup

Fill in all the information to make the connection.  Continue reading

The Final Installment of Serendipitous Cerebration

This is it.  The final installment.  The end.   Our tunnel of light leading us to the promise land of perfect integrations with Serendipitous Cerebration as our Virgil guiding us through the Malebolge of Content Management.

Continue reading

Kofax 9.x – They’ve finally done it… Almost

I have been working with the Kofax Capture product for over ten years now. To prove that, let me tell you the configuration on one of my first installs. I remember setting up a Bell and Howell 3338 scanner (you know, the one that required a cherry picker to get out of the box and on to the desk) with the Kofax KF board and Kofax Capture version 2.x. Ah yes, I look back fondly on the old days of deploying a scanner with the Kofax card and software. I know it has been out for a while now, but I recently started working with version 9 of Kofax Capture and I am pleased to say that they have finally addressed some of the Kofax gotchas that have been plaguing us for years.

For starters, they made client deployment 100% easier by creating the MSI package. I can’t tell you how many conversation I have had with client admins that go like this:

Me: No we don’t have a SMS or other type deployment package you can use, but you can make your own.

Client Admin: (Furrows brow) Huh?

I will be much happier when those conversations are a little less embarrassing. Now the workstations can be deployed using Microsoft SMS, Group Policy, IBM Tivoli, Symantec Altiris, HP Openview, or whatever deployment suite you use. Kofax has only tested SMS, but Continue reading

ILINX Capture Custom Weblookup

This example demonstrates how to use a .Net Web Service WebLookup in the ILINX Capture Client.  The sample C# project can be downloaded at http://downloads.ilinxcapture.com/samples/ilinxweblookupsample.zip. You will need to create an ILINX Document Type with at least the following three fields.

  • Client Account Number
  • Document Type
  • Sub Type

This example only returns the following XML String to ILINX Capture to populate the 3 index values.  The XML string is in the same format that was provided to us from the ProcessXML Function parameter IndexXML.  The Value node of the XML is the index data that is then populated in the web client.  This data can be manipulated in many ways before returning to the calling ILINX Capture Web Client.

<ILINX><IndexList><Index><Name>Client Account Number</Name><Label>Client Account Number</Label><ReadOnly>0</ReadOnly><Visible>1</Visible><Value>Client Account Number</Value></Index><Index><Name>Document Type</Name><Label>Document Type</Label><ReadOnly>0</ReadOnly><Visible>1</Visible><Value>Document Type</Value></Index><Index><Name>Sub Type</Name><Label>Sub Type</Label><ReadOnly>0</ReadOnly><Visible>1</Visible><Value>Sub Type</Value></Index></IndexList></ILINX> 

To use the web service it must be published to an IIS Web Server.  Once published to the web server you must access the web service and generate a WSDL file.

1.       Navigate to the new Web Service ASMX file, for example: http://lptbryan/ilinxweblookupsample/ilinxweblookupsample.asmx?wsdl

2.       Save this file to the C:\inetpub\ILINX\QXServices or equivalent in your environment as the filename.WSDL, for example ilinxweblookupsample.WSDL

3.       Open the newly created file with a text editor like notepad and modify the ProcessXMLResponse section.  Chagne ProcessXMLResult to Result.

Original WSDL File

Continue reading

The System Engineer Tool Belt and Problem Solving

Quite often, System Engineers are called upon to solve unusual problems. The greater our depth of knowledge about various technologies, the greater our problem solving ability.

My primary technology tool belt consists of knowledge in document capture, business workflow, enterprise content management, web development, .NET programming and web services, ERP Accounts Payable systems, and several other useful technology tools and systems.

Recently, a customer came to ImageSource with a problem. We had taught the customer how to use the PAWSER Oracle Imaging and Process Management (IPM) web SDK capability. What PAWSER makes possible is a specially constructed URL that can securely call an IPM system and retrieve a specific stored image. The P in PAWSER stands for “public” meaning there is no need for the calling user to log in to the imaging system.

For example, consider the following URL:

http://mywebserver/IBPMExpress/External/DocumentActionProcessor.aspx?ToolName=PAWSER&SearchName=APSEARCH&CheckDate=11/18/2009
&CheckNumber=0&VendorNum=1234567&Viewer=ImagingPlugin

URL explanation:

“APSEARCH”: This is the name of the Saved Search being queried in Oracle IPM
“CheckDate”: The field being searched
“CheckNumber”: The field being searched
“VendorNum”: The field being searched
“Viewer=ImagingPlugin”: This launches the IPM viewer

In this case, the customer was dynamically constructing this url in a J.D. Edwards WORLD ERP system to retrieve an image related to an invoice screen. The problem is that the WORLD environment only allows 123 maximum characters for the URL string. The required URL for the call has more characters than that.

So stop here, don’t look below. How would you solve the URL length problem?
Continue reading

Leveraging ECM Software APIs

System Engineers must to be able to choose from a menu of technologies in order to solve ECM business problems. While ECM software vendors often strive to provide a complete set of tools for any anticipated business challenge, in reality, technology advances almost always outpace product release cycles.

Service Oriented Architecture (SOA), Simple Object Access Protocol (SOAP), Extensible Markup Language (XML), and many other similar, and often interoperable, technologies have and are being developed in an effort to provide the ability to glue disparate systems together using  published, standards-based mechanisms. While extremely useful, these technologies suffer from some of the same issues as vendor software such versioning, bloat, vendor specificity, and so on.

As an engineer in the field, it’s critical to choose best-of-breed products that solve a core purpose extremely well, then extend the product with other current technologies until a complete solution emerges. Application Programming Interfaces (APIs), whether COM, Web Service, or something else is what makes this extensibility possible. The most useful ECM products provide rich APIs and callable interfaces.

I’m currently finishing a project that uses Oracle’s Imaging and Process Management (OIPM) product. The customer’s version of OIPM targets Microsoft Visual Basic 6 .dlls for custom scripts, and Microsoft .NET 1.1 framework for web development. However, I wanted to target the 2.0 .NET framework for the process scripts, and the 3.5 SP1 framework for the web interface. The web interface solution in particular takes advantage of LINQ, XML data stores, implicitly typed variables, jQuery, and AJAX.

Fortunately, OIPM, while using a fairly old COM-based codebase itself, provides mechanisms that allow an engineer to retain the proven usefulness of OIPM image storage and workflow, but extend to .NET managed code for scripts and web development. The sum of the parts becomes a much more useful solution then if all development was restricted to a closed ECM system that did not provide APIs or was completely COM based.

If you wish to dig deeper, or need a solution, ImageSource  provides training, custom development, and field services for many of the popular ECM products.

Clint Lewis
Senior Systems Engineer
ImageSource, Inc.