|
INVU has successfully integrated its
document management product with over
15 other commercial pieces of software.
Initial integration facilities concentrated
on the ODMA software interface according
to the standard developed by the American
AIIMS group of document management system
manufacturers. However, after extensive
research by INVU it was found that the
partner base felt the burden of programming
for this interface, which has an 80-page
specification, too onerous. This, combined
with expensive integration costs from
other software manufacturers, meant INVU
looked for an easier solution.
The path chosen was to develop the ability
to link with off-the-shelf commercial
software products. In doing this, INVU's
partners and customers would not need
to access or change the underlying code
but merely to train on the application
in question. Hence CodeFree integration
was built. Whilst giving general users
of INVU the ability to use CodeFree and
integrate with their particular solutions,
it has also given INVU the ability to
quickly and easily generate bespoke solutions
where needed to satisfy customer demand.
The CodeFree
Integration Solution
INVU's CodeFree Integration was released
in December 2000. This satisfied two main
requirements. It allowed a reseller or
customer to develop their own graphical
user interface, that could then, without
any extra programming overhead, drive
the INVU document management software
to select previously-stored documents,
optionally display them, and return the
values of selected attributes. The second
requirement was to perform the same tasks
for any set of windows selected from those
displayed by a commercial software product,
so that these wndows would effectively
provide a GUI onto the INVU system. Technically,
both requirements are satisfied by the
same technique of Intercepting windows
messages generated when mouse-clicks are
detected inside windows. The windows involved
are identified by their title strings
and by those of their ancestors, which
unlike Windows handles, do not vary from
run to run. Individual controls like buttons
and edit boxes within the windows are
identified by the same method, or by their
coordinate positions. Once a window has
been identified and its handle obtained,
any variable text it contains can be obtained,
and used to address the INVU database.
Similarly, return values of pre-selected
INVU attributes can be written to edit
boxes in the client program.
The technical details of the last two
paragraphs remain completely hidden from
the customer. They are aware only of a
Training Phase where the trainer must
mouse-click on the buttons, scrolling
lists and edit boxes in the client windows,
that they want to use to control the INVU
accesses, associating each with an INVU
attribute that they select from a scrolling
list.
The trainer can optionally choose to
display the selected document and can
choose attributes for writing back to
selected edit boxes in the client. There
are additional facilities to allow the
values of selected attributes to be fixed
at training time, which is very useful
in restricting access to a particular
area of the INVU database. Also, the values
of selected attributes can be carried
across from values set during an earlier
INVU access. This allows a set of attribute
values to be collected from across multiple
client windows, and then used together
to select an INVU document. The attribute
values from earlier windows in the sequence
will persist whilst an attribute value
from the latest window is varied between
accesses.
At run-time, the pre-trained INVU access
is triggered by mouse clicking on an existing
button, piece of static text or edit box,
and the document display and / or the
return value display occurs within a very
short period of time. Where multiple documents
match the input attribute values, these
documents are listed for selection within
a scrolling list, together with their
INVU attribute values. Alternatively,
the matching documents can be displayed
in variable-sized sets, using multiple
viewer windows, and providing a button
to display the next
set. It is even possible to suppress document
display and write back selected attribute
values of selected documents at up to
10 documents per second. This would permit
the client program to loop round reading
these values and transferring them into
its own database.
|