IBM Lotus Domino integration interface09.07.2012

Description

Lotus® Domino® is an IBM® server product that provides enterprise-grade e-mail, collaboration capabilities, and a custom application platform. It can be used as an application server for Lotus Notes™ applications and/or as a web server. It also has a built-in database system in the NSF format.

The IBM® Lotus Domino® line of products uses a document-oriented database to manage semi-structured data like rich text and files. The data is stored as documents and views allow finding specific documents efficiently. One of the common tasks is export data from Lotus Domino® to systems with relational databases.

This interface template shows how we can exchange data between IBM® Lotus Domino® server and other systems. Integration sample consists of 2 parts: Lotus Domino® Database Connector and interface, created with PilotFish XCS eiConsole.

Lotus Connector database (connect.nsf) is made for getting data from databases at Lotus Domino® platform.

Our interface, created with PilotFish XCS eiConsole gets data from Lotus Connector in appropriate XML format. Then it can be converted to other input XML format for ready for use interfaces from PilotFish Interface Exchange. Also it can be custom transformation for your system.

Lotus Domino® Database Connector

Lotus Domino® Database Connector (connect.nsf) is made for getting data from databases at Lotus Domino® platform. Database functionality allows using different data access methods: selection data by form of the document, selection from view, selection using @-formulas, selection using configuration documents.

As data access interface we use Web service. It contains operations:

— getDataByForm

parameters:
connectServer — server name
connectDBPath — path to the DB at the server
form — form name in the DB
fields — list of the fetched fields

— getDataByFormula

parameters:
connectServer — server name
connectDBPath — path to the DB at the server
formula — formula for selected documents
fields — list of the fetched fields

— getDataByView

parameters:
connectServer — server name
connectDBPath — path to the DB at the server
nameView — view name in the DB
keys — key for selection data from the view
fields — list of the fetched fields
columns — list of the fetched columns of the view

— getDataBySettings

parameters:
nameSettings — name of the configuration document. This document is used for data selection.

Configuration document example:

All operations return data returns the in the key\value format:

<item>
<key>FirstName</key>
<value>
<item xsi:type="xsd:string">Evgen</item>
</value>
</item>

Note: Connector DB must be signed by user with allowing access to your system permissions.

Interface Template Description

This interface interacts with Lotus Connector through the web service. Example of interface SOAP query (Get Data By Form) you can find below:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:connector.a2a.co">

<soapenv:Header/>
<soapenv:Body>
<urn:getDataByFormParam>
<connectServer>mnemosina/a2a</connectServer>
<connectDBPath>names.nsf</connectDBPath>
<form>Person</form>
<fields>
<!—Zero or more repetitions:—>
<item>LastName</item>
<item>FirstName</item>
</fields>
</urn:getDataByFormParam>
</soapenv:Body>
</soapenv:Envelope>

Output data format of the interface is XML.

Using interface template

Even though this is a template, it is fully functional interface.

To run a sample transaction you need to do the following steps:

  1. Specify the input, output and processed directories in the environment settings of the interface. You can access environment settings either from the XCS eiConsole menu (Route -> Environment Properties) or by simply editing the ‘environment-settings.conf’ file, located in the root of the interface folder.
  2. Define the input XML.
  3. Put the input XML file to the input directory.
  4. Run the interface (test run can be performed using the EIP Emulator of the XCS eiConsole).
  5. Find the result file(s) in the output directory.

Implementation notes

This interface template consists of 6 routes:

  1. LDB1_ActionProcess — main route which create request action to the Lotus Connector DB according to the data from input XML file.
  2. LDB2_getDataByFormResponse — receives a replay after getDataByForm request and stores it in to output directory.
  3. LDB3_getDataByFormulaResponse — receives a replay after getDataByFormula request and stores it in to output directory.
  4. LDB4_getDataByViewResponse — receives a replay after getDataByView request and stores it in to output directory.
  5. LDB5_getDataBySettingsResponse — receives a replay after getDataBySettings request and stores it in to output directory.
  6. Error_Handling_Route — Error Handling is performed using transaction monitoring functionality of the XCS eiConsole.

Release Details

This is the initial release of the IBM® Lotus Domino®/Notes™ integration interface.