How Microsoft ClickOnce Platform Benefits ECM Deployments for Capture, Document Management & eForms

ClickOnce is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. ClickOnce deployment provides 3 major benefits for any .NET application:

  • Updates are provided automatically, downloading only those parts of the application that have changed.
  • Each application is self-contained and cannot interfere with other applications.
  • Deployment enables non-administrative users to install, granting only those security permissions necessary for the application.

As manufacturers of an ECM platform built on the .NET Framework, we are able to take advantage of ClickOnce to provide simple deployment of the complex and powerful applications we create. Personally, I’ve found that ClickOnce strikes an excellent balance between the two things most often encountered in enterprise environments: requirements for rich client applications that can be frequently and rapidly updated, and the simple access and deployment thin client web applications are known for.

When software needs to be deployed to many users across an entire enterprise organization, like is often the case with our content management product, ILINX Content Store, ClickOnce successfully gets the software where it needs to be, when it needs to be there. This also holds true for our capture and workflow product, ILINX Capture, which requires complex interaction with both other software suites and several classes of image capture hardware.

But what if your platform has limitations that prevents you from taking this route, forcing you to package the software into a .MSI file instead? This is adequate for some situations, but quickly becomes a pain to deploy proportional to the number of machines it needs to be installed on.

Facing this challenge with our electronic forms product, ILINX eForms, we have found a workaround that allows us to avoid the headache of one-at-a-time deployment .MSI files create. In short, the same API used to build the standard ILINX eForms client is available for use in building custom .NET applications, which allows you the freedom and flexibility to integrate ILINX eForms into your own .NET software. When combining this benefit with even basic ClickOnce configuration, you end up with a strong, rich-client application that can be seamlessly deployed and updated across your organization as needed in a matter of seconds.

But what about building out the custom app itself? The highlights of that process will be covered in a future entry, but if you’re ready to go right now, just open up the Help file in your copy of the ILINX eForms Designer and take a look at the Standalone Application contents section for some guidelines to help get you started.

Jesse Kinney
Solutions Developer
ImageSource, Inc.

Transferring ILINX Release Configurations When Upgrading

Starting with ILINX Capture v6, the Release configurations are stored within the ILINX database. In ILINX Capture v5x, the ILINX Release configurations were stored in XML files on a disk. ILINX Capture called ILINX Release using a SendAndReceivedReply IXM. The change to store the settings within the ILINX database is very useful for a number of reasons: Release settings are part of the batch profile allowing for simpler migrations between environments, Release is much easier to configure, all configurations are in the database, etc. However, this change can create some extra work when upgrading from ILINX Capture 5x to ILINX Capture 6x. Because of the different architecture, ILINX Release needs to be completely reconfigured for the existing batch profiles. In addition, the Release XML doesn’t change, but there is a shortcut that can be taken. After you have upgraded ILINX Capture to v6, you’ll notice a new IXM in the palette: ILINX_Release_IXM_Icon

The existing ILINX workflow will likely have a SendAndReceiveReply IXM on the map that the 5x version of ILINX Capture used to call ILINX Release. Most likely, it would look like this:
SendAndReceiveReply_IXMTo configure ILINX Release for ILINX Capture 6x, the SendAndReceiveReply IXM will need to be removed from the map and a Release IXM must be dragged onto the workflow map in its place. Once the new Release IXM is on the map, it will need to be configured. This is where the shortcut can be taken. Instead of having to manually enter in the correct URLs, map the metadata values, and configure any other settings, do this:
Configure and save Release with some place holder settings: I normally leave the settings at default and enter in the bare minimum:

  • Job Name
  • User Name
  • Password
  • Batch Profile
  • Release Directory

Once ILINX Release configuration is saved and the workflow map is published, there will be a new entry in the ILINX Capture database Capture WorkflowAppSettings table. The CaptureWorkflowAppSettings.SettingsXML column is where the Release configuration is stored. Now it’s time to update the SettingsXML column with the XML from the ILINX Release 5x job settings file. The Release job should be on the ILINX Release 5.x server at c:\ProgramData\ImageSource\ILINX\Release\Settings\Jobs. The only caveat here is to be sure to place single quotes around the XML content. Here is what the SQL update statement would look like:

update [ILINX CAPTURE DATABASE].[dbo]. [CaptureWorkflowAppSettings]
set SettingsXml = ‘COPY AND PASTE ALL TEXT FROM 5.4 OR PRIOR RELEASE JOB SETTINGS FILE HERE’
where settingsID = ‘APPROIATE ID HERE’

Following this procedure can save some time if upgrading an ILINX Capture 5x system that has a lot of batch profiles. A lot of the time spent on the upgrade could be in the ILINX Release configuration. If I was upgrading a system with only a few batch profiles, I would probably just reconfigure them. If I was upgrading a system with a lot of batch profiles, I would go through the above steps to save some time.

John Linehan
Sr. Systems Engineer
ImageSource, Inc.

Failover Cluster Troubleshooting

There’s nothing quite like logging in to a customer’s system first thing Monday morning only to be greeted with this:

Cluster_report

I discovered this when I wasn’t able to log into the customer’s ILINX Capture implementation. The logged error (failure to locate the SQL Server) led me to take a look at the SQL Server’s configuration to confirm that its service was not running on either node of the cluster, and the error I got when trying to start that (a clustered resource could not be activated) led me to check on the clustered resources themselves.
Continue reading

Learn how to add Server Side Extensions to a workflow in ILINX 6.0

ImageSource recently announced the release of ILINX 6.0. The new version of ILINX Capture includes a workflow IXM (ILINX Extension Module) that allows a C# programmer to add their own code to the workflow. As a Sr. Systems Engineer for ImageSource, I would like to give you a quick overview of how to setup and add the code so that you can perform this action yourself.

Once ILINX Capture 6.0 is installed, you should find a subfolder under the install folder (c:\Program Files\ImageSource\ILINX Capture) named “Sample Code”. This subfolder contains a zip file that you can use to unzip the contents to a folder on your hard drive. You can then use the provided Visual Studio shell (Visual Studio Express 2013 for Windows Desktop is free) to open and code/de-bug/build the Server Side Extension. The files listed in the zip file are:

As you can see, there is a solution file that you can open in Visual Studio Express 2013 for Windows Desktop that will allow you to access the layout for each section listed. When you open this file you will get Continue reading

No COM object available in Component Services snap-in

I have been working with Windows Server 2008 R2 64bit and Windows 7 64bit a lot lately. In doing so, I have noticed a problem when installing a specific product that requires a COM server. When I launch the MMC to access the Component Services snap-in, I find the COM object for this software doesn’t exist. I have double-checked this until I was blue in the face. Where is that COM object? I have properly installed and can use the product, but it simply doesn’t exist in the DCOM config portion of Component Services. Like all good IT professionals, I turn to Google. (The link below further explains the problem and solution for this.) Apparently, Windows removed a process called Registry Reflection from Windows 7 and Windows Server 2008 R2 OS’s. Registry Reflection was a process that would replicate registry keys between both 32bit and 64bit registry views. Since this was removed, all registered 32bit COM objects are only available in the 32bit version of the MMC. Once you access those objects through the 32bit MMC they will replicate and become available to you in the 64bit version. To access the 32bit version of the MMC, run this command “mmc -32” from the command line.

Read more about this solution by visiting Maarten’s blog – My COM server is gone from Component Services (DCOMCNFG)

Andrew D. Skovran
Support Engineer
ImageSource, Inc.

Creating a Java keystore

When working with WebLogic server you will inevitably have to create some Java keystores along the way. The Java keytool or OpenSSL can accomplish most everything you would need to do but sometimes I like using something UI based to do some of the tasks. That is where a tool like KeyStore Explorer can come in quite handy.

Continue reading

Workflow queue routing in ILINX® Capture 5

Let’s say you want to route a batch in the ILINX Capture workflow depending on the value of a certain index.  Maybe this is an AP solution and you want to route to a different queue based on document type.  Here is the simple way to do that:

Continue reading