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

Using C#.NET with the Kofax KTM Validation Module

Introduction

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

Lighten your LiquidOffice Development Load

If you are developing forms in LiquidOffice, chances are form owners have asked you to include drop lists to ensure data integrity in your backend database or repository.  And just as likely they have asked for drop list value changes AFTER the form has been published. Or sometimes there is a business need to accommodate frequent drop list value changes. In many cases it is advantageous to allow users to make the drop list value changes themselves.   One approach is to use a LiquidOffice drop list maintenance form, and restrict access to this form to the appropriate power users. Whenever the need for a change arises the maintenance form is available.

To get started, create a database to house the drop list values.  Each field in the table will correspond to a drop list on your form.  Populate these fields with the initial values the form owner has provided.

Next, create a connect agent to your database.  In LiquidOffice Management Console, highlight the Connect Agent icon then select File/ Add.  The wizard walks you through steps where you name the connect agent and the type (SQL DataBase Read/Write in my case). Select a JDBC driver and modify the JDBC URL to reflect your hostname and database name.  Provide credentials, select ‘LookUp Only’, and you are done.

When designing your form’s drop list, go into the properties to select Control type: drop list and List source: dynamic (from database).  You can then select the connect agent, table and column and you are set.  If you want the display column to be different than the storage column, click Storage Column and select another column from the drop list. An example: Display = “Arizona”,  Storage =”AZ”.   Remember you must publish the form to confirm the drop list is correctly populated.

Now create another LiquidOffice form to perform maintenance on the drop-list table.  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

Advanced eForms Strategies for LiquidOffice

Information technology can improve operational efficiency and businesses are turning to forms processing for automating complex processes where information is often very dynamic and acted upon in parallel.  Many of our clients request very complicated multi-form rule based combinations that can be extremely complex and have data dictionaries exceeding 1,500 form fields.  There are two different ways to approach advanced multi-form development and design.  One is to use a method called form chaining or you can use tools such as Liquid Office Case Management.

Form Chaining is a method of displaying subsequent forms based on the submission of the original form.  This is done when field data from the first form is mapped to the 2nd form – chained forms open sequentially upon submission of a primary form.  Simple chaining can be achieved using out-of-the box features of the LiquidOffice Process studio.  Outside of a formal workflow, the same results can be achieved.  The following is code example for ad-hoc form chaining.  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.