Components and Patterns Grab-bag
NOTE: Those examples written before TDI 7 don't have custom Connections tabs & parameters. Instead you have to edit certain variables in the script itself to set these values.
No implied or explicit support responsibility for anything shared. It's all as-is. The only thing you have to agree to is to Copy-Paste it back to me if you extend or improve something.
Only way to unleash the real power of TDI.
If you have an Attribute Map, component, script or AL to share, just right-click it and either paste it in a message to the
newsgroup, or an
email to me.
Components
- FileScan Connector: A scripted Connector that returns the list of files found in a specified directory (including all sub-folders). Can be used to detect changes to files.
- ReadCBE.js: Drop this script into a Script Parser to be able to read CBE XML.
- FormEntry Connector: Lak Sri has provided this handy Connector that you can configure a block of text and then select a Parser to return Attributes to your AL. Great for developing/debugging Parsers and providing canned data for your ALs. It also supports infinite looping (for long-running tests and simulations). Just copy this .jar to the TDI jars folder, or tell TDI where to find it using the com.ibm.di.loader.userjars property.
- CommandLine.zip: This flexible, scripted CommandLine Connector lets you execute dynamic (Output Mapped) commandlines. The Config shows you how easy it is to script a useful Connector. [And scripting functions and Parsers is even easier. -ed]
- logLibExample.xml: example Config (save to Solution Directory) for the _logLib script that lets you easily add custom logging (like xml-style logs) to your ALs.
Patterns & Solutions
- REST server : Simple example of creating a REST service
- REST Mashup : The enclosed example from Ian Yip is a creative and visual Yahoo Pipes-like solution to the requirement: \x93I want to be able to get details and background information on types of events occurring at a given location during a given time period and have these displayed in a useful and user friendly way.\x94
- GoogleEarth : Another Pipes-like solution where Geir Hansen uses TDI to grab the water levels in all of Norway's major rivers, calls a webservice to convert from UTM coordinates to Geographical units, and then create placemarks (in Keyhole Markup Language - KML - files) for presentation in Google Earth. Cool for passionate paddlers.
- SynchOutEDincludingPwds.xml: Sync TDS out to AD, SunOne, Domino and TDS#2 (both user and password changes). Schema mapping not complete and password catcher not included. Just right-click this link and Save the Config to disk.
- WhitePages: Example of a White Pages app using TDI. This Config highlights how to use a web browser to interface to your TDI solution. For a simple example of how to use a Server Mode Connector, check out the next item in this list, TINA_WebSrv.
- RuntimeConnector: This example Config highlights a few techniques: using Java properties to pass data between running ALs (like pre-initialized components or open contexts); or how to write an AL without a Feeds section and still have cycling (so you can put logic in the AL in front of the Iterator); or how to launch one AL from another using an FC (Function component).
- Fail Over Service : This will show you how to add failure detection and response to ALs by simply dropping in a component. Its uses SNMP to send heartbeats from monitored ALs to an FOS Host process. A starting point for building your own solution.
Config Reports
These are XSLT files that you can drop into the XSLT\ConfigReports sub-folder of your TDI installation directory. Then they will show up when you right-click in the Config Browser and select
Config Reports. You will want to right-click any .xml or .xsl links and save these to the
ConfigReports folder.
Scripts
- DeltaEngineScript: Ever need to detect changes, but your scenario prevents you from using the built-in Delta Engine for Iterator mode Connectors? Well here is a scripted deltaEngine that uses the built-in functionality to let you put change-detection/computation anywhere in your AL. Note that only "add" and "modify" are detected -- in other words, you need the real Delta Engine for detecting "delete"s.
- ErrorMsg.js: Handy function for use in the Default On Error Hook of Library Components. That way, you will at least get lots of information in your logs.
- MiscLib.js: Misc. scripted functions. Getting outdated thanks to recent (and upcoming) TDI releases. Otherwise, simple enough for JavaScript newbies to read thru and play with.
Red pill
- RedPill-Matrix.pps: From an early Metamerge fan. Saved a copy from the now defunct website
--
EddieHartman - 4 Mar 2011
Experimental & currently in error - *
CouchDBConnector.jar: A
CouchDB Connector that also works with IBM Cloudant.