Integration of a document automation system with external
systems is a critical phase in any Documaker implementation. Whether Documaker
is being deployed in a “green field” scenario or into a mature enterprise the
fact remains that integration must occur on one or more levels. My goal in this
blog post is to explore some concepts and methods required to define and
establish integration available in a typical implementation of Oracle Documaker
Enterprise Edition, with the hope this may help readers think about possible
solutions for their own use.

Establish the Foundation

As I mentioned, Documaker has two possible implementation targets:
the green field and the established enterprise. Each target presents both unique
and common challenges that must be overcome during the project. In a green
field implementation, the software packages being implementation are typically
new from top to bottom. This type of target is typically encountered when a
brand new company, business unit, or product line is being built from the
ground up with new systems, procedures, and software. Implementing within the
established enterprise refers to the process of upgrading or replacing an
existing software package, or implementing new software within an existing infrastructure.
This implementation is most often used with established companies, units, or
product lines and serves to enhance functional offerings of the enterprise to serve
the needs of the business. In both cases where Documaker is concerned there
will be integrations – either to new or existing software, processes, and
procedures, which form the basic foundation of the enterprise. In order to
perform the subsequent steps, we must know capabilities of the foundation.
Therefore, the final activity in this step is to establish a functional catalog
of capabilities offered by each component of the system. The table below illustrates one such method of
capabilities cataloging.

Table 1, Capabilities Catalog

ID

System

I/O

Type

Method

Format

Notes

CAP-1

Policy Administration System

Output

Flat-file

File system delivery

Fixed-record format

Schema dictated by product. Can add new record types
and data

CAP-2

Billing
System

Output

XML

Web Service

Fixed
Schema

XSL-controlled
schema, fixed element names. Cannot add new elements.

CAP-3

Content Management System

Input

SOAP

Web Service

Fixed Schema

Product-controlled schema. New data elements can be
added.

This table illustrates how the input and output capabilities
of various element in the foundation system and how they may (or may not) be
changed to accommodate additional business requirements.

Data Flow Mapping

Having defined the capabilities, we can now further refine
business requirements and (hopefully) obtain a match between the requirements
and capabilities. When performing a Documaker implementation, part of the
business requirements analysis will involve form and data analysis. This
analysis defines, among other things, the data needed for document triggering,
data mapping, and controlling other aspects of handling document automation.
This information constitutes requirements for systems that feed information to
Documaker (“upstream” systems). Similarly, there may be a need for Documaker to
feed information to systems after processing (“downstream” systems), such as
archive repositories, publishing systems, delivery systems, and the like. By
now you can probably see that defining the upstream and downstream requirements
is directly related to the table of capabilities we developed in Step 1. From
here we can further refine our data requirements for each system. The table
below represents a simplified view into cataloging the data requirements for
each system:

Table 2, Data Requirements

ID

System

Capability Map

Element

Source

Notes

DR-1

Content Management System

CAP-1

Account Number

RECORD ID=100

FIELD=ACCT_NUM

Required for indexing output

DR-2

Mail
Processing System

CAP-2

XML

Document
barcode (see barcode requirements)

Required
for sorting mail pieces to obtain postal discounts.

Once these two steps have been fully executed and mapped
out, we’ll have an accurate picture of all upstream and downstream data
requirements as well as a map of how those data elements can be captured and
passed between systems.

Targeting Documaker

At this point, what we have defined is not specific to
Documaker – the steps I’ve outlined above are very generic and could be applied
to any software implementation in any enterprise where data interchange and
software integration is required. The key is that we are now in a frame of mind
where we can start to consider the integration capabilities of Documaker, and
how they will map into a possible solution. What better way to do that than to present
a capabilities catalog for Documaker Enterprise Edition, as we would do in an
actual implementation! The table format I’ve chosen to represent the
capabilities catalog is slightly different from Table 1, as I have formatted the table to represent capabilities specific
to Documaker.

Table 3, Documaker Input Channels

Model

Transport

Type(s)

Notes

Transactional Input

Hot Folder

Web Service

Direct Queue

Flat-File

Record layout dictated by upstream capability, informed
by form requirements and downstream requirements. Only one layout supported
per assembly line.

Transactional Input

Hot Folder

Web Service

Direct
Queue

XML

Schema dictated
by upstream capability, informed by form requirements and downstream
requirements. Only one schema supported per assembly line.

Consolidation

ETL-to-Transactional Input

Flat-file

XML

Databases

Other Files

ETL Tool such as Transall, a Documaker component, is
used to consolidate multiple input sources into a single transactional input.

Interactive Augmentation

Documaker
Interactive

Web Service-to-various

Documents
that are processed in Documaker Interactive can be augmented by external data,
which is retrieved by Documaker Interactive using a custom web service. This
service accepts input from Documaker Interactive (which is transactional or
user entered data) and then performs operations to retrieve additional data,
format if necessary, and return using a pre-defined schema.

Scripted Augmentation

DAL –ODBC

DAL-File

Database or File-based

DAL-scripting can be used to obtain data from external
sources to augment transactional data or for use during processing as needed.
This method is usually not recommended as it can present problems when
scaling across servers. The preferred model is Consolidation or Interactive
Augmentation.

The following table outlines the output capabilities of
Documaker.

Table 4, Documaker Output Channels

Model

Transport

Type(s)

Notes

Archiver

s/FTP

Web Center: Content (UCM)

File System

Publication Streams

Metadata Files

This channel is a standard output delivery channel included
with Documaker. The Archiver component is used for transmitting documents
generated by Documaker to various destinations. Archiver also has the
capability to emit accompanying metadata files in arbitrary (user-defined)
formats. Metadata includes any information related to the transaction that is
carried in the ODEE table structure. Typical uses would be to submit
documents to archive systems with indexing data in the metadata file.

Customization

Various

Publication
Streams

Metadata

The
Archiver component has an open framework for adding new output destinations
(transports) in addition to those shown above. A typical use case is to write
a custom integration to a system that has integration requirements not
satisfied by the default transports, e.g. invoking a web service to transmit
publications and metadata.

Distribution

Web Services

Dashboard

Query

Publication Streams

Metadata

Documaker supports multiple methods of self-service
integration. While the Archiver and customization hooks provided by Archiver
are a push model, the Distribution channel is a pull model – suitable for
self-service integration via web services, database queries, or using the
Dashboard UI.

Notification

SMS

Metadata

This
channel is a standard output delivery channel supported by Documaker which
notifies a recipient that a document has been generated.

Publication

Email

Printer

Publication Streams

This is a standard Documaker output delivery channel
used for pushing documents directly to attached printers, and for sending
documents via email.

Instrumentation

JMX

Statistics

This
channel is often overlooked, but can be configured to allow ODEE Factory
Workers to output statistical information.

While the preceding tables are not exhaustive of all of the
possible integration points with Documaker, they are the most common. Some of these
channels aren’t considered traditional integration points, but they are useful when
thinking about systems management of an enterprise solution that includes
Documaker.

I
hope you find this information useful!
/* Style Definitions */
table.MsoNormalTable

{mso-style-name:”Table Normal”;

mso-tstyle-rowband-size:0;

mso-tstyle-colband-size:0;

mso-style-noshow:yes;

mso-style-priority:99;

mso-style-qformat:yes;

mso-style-parent:””;

mso-padding-alt:0in 5.4pt 0in 5.4pt;

mso-para-margin:0in;

mso-para-margin-bottom:.0001pt;

mso-pagination:widow-orphan;

font-size:11.0pt;

font-family:”Calibri”,”sans-serif”;

mso-ascii-font-family:Calibri;

mso-ascii-theme-font:minor-latin;

mso-fareast-font-family:”Times New Roman”;

mso-fareast-theme-font:minor-fareast;

mso-hansi-font-family:Calibri;

mso-hansi-theme-font:minor-latin;

mso-bidi-font-family:”Times New Roman”;

mso-bidi-theme-font:minor-bidi;}
table.MsoTableMediumList1

{mso-style-name:”Medium List 1″;

mso-tstyle-rowband-size:1;

mso-tstyle-colband-size:1;

mso-style-priority:65;

mso-style-unhide:no;

border-top:solid black 1.0pt;

mso-border-top-themecolor:text1;

border-left:none;

border-bottom:solid black 1.0pt;

mso-border-bottom-themecolor:text1;

border-right:none;

mso-padding-alt:0in 5.4pt 0in 5.4pt;

mso-para-margin:0in;

mso-para-margin-bottom:.0001pt;

mso-pagination:widow-orphan;

font-size:10.0pt;

font-family:”Calibri”,”sans-serif”;

color:black;

mso-themecolor:text1;}
table.MsoTableMediumList1FirstRow

{mso-style-name:”Medium List 1″;

mso-table-condition:first-row;

mso-style-priority:65;

mso-style-unhide:no;

mso-tstyle-border-top:cell-none;

mso-tstyle-border-bottom:1.0pt solid black;

mso-tstyle-border-bottom-themecolor:text1;

font-family:”Tahoma”,”sans-serif”;

mso-ascii-font-family:Cambria;

mso-ascii-theme-font:major-latin;

mso-fareast-font-family:”Times New Roman”;

mso-fareast-theme-font:major-fareast;

mso-hansi-font-family:Cambria;

mso-hansi-theme-font:major-latin;

mso-bidi-font-family:”Times New Roman”;

mso-bidi-theme-font:major-bidi;}
table.MsoTableMediumList1LastRow

{mso-style-name:”Medium List 1″;

mso-table-condition:last-row;

mso-style-priority:65;

mso-style-unhide:no;

mso-tstyle-border-top:1.0pt solid black;

mso-tstyle-border-top-themecolor:text1;

mso-tstyle-border-bottom:1.0pt solid black;

mso-tstyle-border-bottom-themecolor:text1;

color:#1F497D;

mso-themecolor:text2;

mso-ansi-font-weight:bold;

mso-bidi-font-weight:bold;}
table.MsoTableMediumList1FirstCol

{mso-style-name:”Medium List 1″;

mso-table-condition:first-column;

mso-style-priority:65;

mso-style-unhide:no;

mso-ansi-font-weight:bold;

mso-bidi-font-weight:bold;}
table.MsoTableMediumList1LastCol

{mso-style-name:”Medium List 1″;

mso-table-condition:last-column;

mso-style-priority:65;

mso-style-unhide:no;

mso-tstyle-border-top:1.0pt solid black;

mso-tstyle-border-top-themecolor:text1;

mso-tstyle-border-bottom:1.0pt solid black;

mso-tstyle-border-bottom-themecolor:text1;

mso-ansi-font-weight:bold;

mso-bidi-font-weight:bold;}
table.MsoTableMediumList1OddColumn

{mso-style-name:”Medium List 1″;

mso-table-condition:odd-column;

mso-style-priority:65;

mso-style-unhide:no;

mso-tstyle-shading:silver;

mso-tstyle-shading-themecolor:text1;

mso-tstyle-shading-themetint:63;}
table.MsoTableMediumList1OddRow

{mso-style-name:”Medium List 1″;

mso-table-condition:odd-row;

mso-style-priority:65;

mso-style-unhide:no;

mso-tstyle-shading:silver;

mso-tstyle-shading-themecolor:text1;

mso-tstyle-shading-themetint:63;}