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.- Integrating Domino with TDI v1.0: Tutorial write-up
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.- Video of Lak's lecture: the password is tiv0li (replace the "o" in tivoli with a zero "0")
- TDI_WS_FULL.ppt: the slides from this session
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!- WS101.pdf: TDI Web Services 101
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.- HowTo_UsingLoops051108.zip: Short paper 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.- HowTo_SyncData_6.1.1070523.pdf: Synchronization features in TDI 6.1.1
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:- HowTo_HandleErrors.pdf: Digging into TDI Error Handling features.
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.- Online documentation
- TDI_6.0_API_guide.pdf: Preview of the 6.0 Server API guide
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 2006How 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:
- HowTo_SyncData.pdf: Synchronization features in TDI 6.0 FP3 and later (6.1)
- HowTo_SyncData.pdf: Sync. features in TDI 6.0
- IntegratingDominowithTDIv1.0.pdf: Tutorial write-up (4Mb - lots of screenshots)
