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 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

Using C#.NET with the Kofax KTM Validation Module


My current project has a requirement to do several Oracle EBS validations and lookups from the Kofax KTM validation window. For example, one requirement is to present the validator with a list of Suppliers. Another is to check for a duplicate invoice number in EBS. I can easily add additional methods as needed.

Kofax KTM provides Win Basic scripting language that can accomplish some of this, but it’s difficult to use compared to modern programming languages. After a little research I discovered it was feasible to create and call methods in a COM object from KTM Win Basic. This meant I could expose a C#.NET dll via COM Interop but have all the power of any version of the .NET framework and Microsoft Visual Studio available to do the heavy lifting.

My C# methods return either arrays or booleans back to KTM where I then use the Win Basic language to present results to the validation user. I can debug my C# code by attaching to the KTM Project Builder exe while running validation tests.

Setting up the C# Class

The first step is to create a project in Visual Studio and set up a class to contain the methods you will call in KTM. The prefered method is to use interfaces in case you need to change the methods without breaking the inferface. Here is an example. 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:


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