Connector v2.0

The FormsInMotion Connector has undergone a near-comlete rewrite since its original version in October of last year. Those changes will be detailed here.

Client Server Responsibility

In version one of the Connector, the client was nearly entirely responsible for taking input and transforming it in to batches, while the Server was responsible for formatting these batches so they can enter their destination system.

In version two, this is almost entirely different. Instead of doing batch ordering, the Client is responsible for transforming data to a standard format that the server is capable of understanding. The server then scans this information and transforms it in to small groups depending on the current job's configuration. After these groups have been generated, the server negotiates these batches in to the destination system.

Changes to the Configuration UI

The Configuration UI has been updated to reflect the change in server / client responsibility. The most notable change is that the archival fields have been moved from being part of the source type to being part of the destination type.

  • Old Connector Archive UI:

  • New Connector Archive UI:

You'll likely notice that the archival paths have been removed. This change is further discussed in the Archival section.

OPEX Header Value Extraction

One of the primary deficiencies of the previous connector was that it was unable to take values out of OPEX header rows after it split the first batch. This has been rebuild such that all split batches receive a copy of the OPEX header. This value can be pulled by using the row value 0 in the Optional Row Value field.

  • Example:

Note that this should only be used for document types that have a header row. If zero is placed in a row number that does not have a header it will extract data from the row it is currently processing, however, it will be misleading for maintainers.

Row Ranges

Row Ranges, such as the one featured below have been deprecated. No row needs to be specified to target data in the body of a Connector configuration.

The 0 row can be used to specify a header row, but this will only work if a header exists.

(note, reads: column 2, row 1 through 1,000,000)

Batch Archival

Batch archival has been modified to reflect the change in responsibilities for the server and client. Instead of archiving relative to the connector client, the archival will occur relative to the FormsInMotion Server. Additionally instead of configuring the archive paths for either a failure or a success, the archive path is specified in site properties under the key ConnectorArchiveRoot

Under the archive root, the Connector will make 3 folders as needed

Folder

Purpose

Folder

Purpose

Dangling

Any files that were not collected by a batch

Errored

Any batches that were unable to imported for any reason

Successful

All successfully imported batches

These folders should be monitored daily for documents as there is not yet a method for tracking Connector Activity.

Directory Sweeping

When processing the file system and parsing document paths with regular expressions, the name of the file that has been imported has been automatically set up to go in the 0th regex position. This should always be used as the page trigger, as the page trigger uses this value to import its targeted document.

Additionally, file names must always be structured similarly. For example, if A file is named 0001-01.txt, then files must follow the pattern NNN-NN.txt for the parser to function.

Ghost Batches

Another deficit of the previous connector was its tendency to create "ghost batches" or batches that had nothing in them. This has been discovered to be an artifact of a deprecated legacy feature. If it occurs in the future, it is because something other than a pages file name is being used to import data.