Edit Add a file or picture Printable page Raw Text Page change history More options

How To's

Here are some docs, video lectures and example Configs that focus on a feature set or type of component in TDI.

Integrating Domino/Notes with TDI

This tutorial walk-through covers the various Connectors available in TDI for Domino/Notes work and includes step-by-step exercises for managing Domino Internet Users, provisioning Notes accounts (with mail and id file setup), working directly with Documents and detecting changes in any .nsf database.

XML

Lak Sri of TDI L2 Support fame has gone above and beyond with this lecture on the various XML handling options available in TDI, including simple and complex XML, DSML and Web Services. Please note the video format used works best with Microsoft Internet Explorer. Also note that you will want to fast-forward past the first 3 minutes of "testing...testing..." to get to the good stuff.

Web Services

The inimitable TDI Support Team have created this tutorial on how to build a web service using TDI, as well as how to call one. Hats off to Jason, Lak and Brian for this awesome community contribution!

Loops

Loops are a powerful component for your AssemblyLines, allowing you to take code out Hooks where it is hidden and hard to manage, and putting it right there in the AL component list. This package contains docs and an example Config on how to use Loops.

Detecting and Sync'ing Changes

This PDF discusses the various features in TDI for Delta Discovery and subsequent Delta Application -- or in other words, finding changes and then propagating them.

(Note: the earlier versions are still available at the bottom of this page)

Here is a screenshot of an AL that synchronizes a central directory out to multiple targets. This solution handles both changes to user entries, as well as password changes caught by the TDI password-catcher plugin. There is little or no Hook coding (apart from Default On Error for all Connectors). All logic is visible in the AssmblyLine component list. Which also means it's perfect for the interactive AL Stepper (Debugger).

One interesting technique is the use of Loops as "If_Connector_Lookup_Successful" branches. The Loop is based on a Connector doing a Lookup. If none are found, no looping. If one or more are found then the loop starts cycling. Since the Link Criteria in this example should always find a single entry, it works like a IF branch.

Error Handling

There is a Hints & Tips topic on this here: Improving error messages

And this write-up:

One approach is to have all AssemblyLines inherit their Connectors from the Library. Then set these Library Connectors up to use the same basic error handling: for example, a script function call -- e.g. "errorMsg()" -- in their Default On Error Hooks. Here is an example of an errorMsg() function that dumps out as much info as possible to the log.

Writing Custom TDI Components

The simplest and fastest route is to use JavaScript. For example, to make your own Parser, simply create a new Parser and choose the Script Parser. TDI provides you with a template of the Interface needed for this component: readEntry() and writeEntry(). If your Parser will only be used on Input, then you only have to customize the readEntry() function. Note that the Entry called entry where you add your Attributes will be the conn Entry returned for Input Mapping.

Similarly, to make your own Connector simply choose the Script Connector type. To support AddOnly mode, simply customize the putEntry() method. If Iterator mode is required then you customize selectEntries() and getNextEntry(). For Lookup mode you write the findEntry() function, which is also used by Delete and Update modes. In addition, Delete mode also needs deleteEntry(), while Update uses putEntry() and modEntry().

Another approach is to use Java to create a .jar file that adds your components to TDI's repertoire. More on this subject here.

And finally, you can take an entire AssemblyLine and turn it into a Connector as described in this DeveloperWorks tutorial.

TDI Server API

Here is guide that outlines how to connect to TDI servers (local and remote) using the 6.0 API, and control them: start/stop ALs, load/modify Configs and settings, register for events, and more. Note that the API can be called from Java as well as from JavaScript within a TDI solution.

-- EddieHartman - 13 May 2008

Complex XML using the XSLT Parser

The File System Connector in conjunction with XSL based XML Parser provides a flexible mechanism for generating XML files in any format through TDI. This paper attempts to explain the various related concepts and typical usage with a simple example.

-- SandeepKumar - 10 Oct 2006

How to Turn AssemblyLines into Components (Adapters)

Here is an excellent (and award-winning) DeveloperWorks article done by our illustrious and TDI-savvy colleague, Dinesh T. Jain.

Note that although the article title states version "6.1", it applies equally well to newer releases.


Pre-FP3 versions of How-To's:

Domino Integration How-To on OPAL:

The above link requires that you sign up for an IBM ID, which in turn gives you access to a lot of other online materials.