<?xml version="1.0" encoding="UTF-8"?>
<MetamergeConfig created="Mon Oct 09 11:26:48 CEST 2006" createdBy="NO010196" modified="Wed Oct 11 16:22:52 CEST 2006" modifiedBy="NO010196" version="1.2">
<Folder name="AssemblyLines">
<AssemblyLine name="test_MyProp">
<LogEnabled>true</LogEnabled>
<Settings>
<parameter name="ALPoolSettingsDialog">showALPoolSettings</parameter>
<parameter name="automapattributes">false</parameter>
<parameter name="createTombstones">false</parameter>
<parameter name="debug">false</parameter>
<parameter name="includeGlobalPrologs">true</parameter>
<parameter name="nullBehaviorDialog">showNullBehavior</parameter>
</Settings>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<LogConfig/>
<ContainerEF name="EntryFeedContainer"/>
<ContainerDF name="DataFlowContainer">
<Branch name="If myProp is true">
<Connector name="display">
<ConnectorMode>Script</ConnectorMode>
<ConnectorState>Enabled</ConnectorState>
<Configuration/>
<ConnectorScript>task.logmsg("----&gt; myProp = true");</ConnectorScript>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser/>
<AttributeMap name="Input"/>
<AttributeMap name="Output"/>
<DeltaSettings>
<Driver>BTree</Driver>
</DeltaSettings>
<Schema name="Input"/>
<Schema name="Output"/>
<LinkCriteria/>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
</PoolDefinition>
<PoolInstance/>
<InitializeOption>0</InitializeOption>
</Connector>
<ScriptCondition><![CDATA[ret.value = system.getExternalProperty("myProp") ==
			"true";]]></ScriptCondition>
<Conditions/>
<MatchAny>false</MatchAny>
<Enabled>true</Enabled>
<Type>0</Type>
</Branch>
<Branch name="Else not">
<Connector name="displayfalse">
<ConnectorMode>Script</ConnectorMode>
<ConnectorState>Enabled</ConnectorState>
<Configuration/>
<ConnectorScript>task.logmsg("----&gt; myProp is either not defined or false");</ConnectorScript>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser/>
<AttributeMap name="Input"/>
<AttributeMap name="Output"/>
<DeltaSettings>
<Driver>BTree</Driver>
</DeltaSettings>
<Schema name="Input"/>
<Schema name="Output"/>
<LinkCriteria/>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
</PoolDefinition>
<PoolInstance/>
<InitializeOption>0</InitializeOption>
</Connector>
<Conditions/>
<MatchAny>false</MatchAny>
<Enabled>true</Enabled>
<Type>2</Type>
</Branch>
</ContainerDF>
<ThreadOptions/>
<Operations/>
</AssemblyLine>
<AssemblyLine name="splitByName">
<LogEnabled>true</LogEnabled>
<Settings>
<parameter name="ALPoolSettingsDialog">showALPoolSettings</parameter>
<parameter name="automapattributes">false</parameter>
<parameter name="createTombstones">false</parameter>
<parameter name="debug">false</parameter>
<parameter name="includeGlobalPrologs">true</parameter>
<parameter name="includePrologs"><![CDATA[redirectLDAPto(ldapURL, ldapSearchbase, thisConnector)
reportError(task, errorEntry)]]></parameter>
<parameter name="maxerr"/>
<parameter name="maxread"/>
<parameter name="nullBehaviorDialog">showNullBehavior</parameter>
</Settings>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<LogConfig/>
<ContainerEF name="EntryFeedContainer">
<Connector name="LDAPupdate">
<InheritFrom>/Connectors/LDAPupdate</InheritFrom>
<ConnectorMode>Iterator</ConnectorMode>
<ConnectorState>Enabled</ConnectorState>
<Configuration>
<InheritFrom>[parent]</InheritFrom>
</Configuration>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser>
<InheritFrom>[parent]</InheritFrom>
</Parser>
<AttributeMap name="Input">
<InheritFrom>[parent]</InheritFrom>
<AttributeMapItem>
<Name>*</Name>
<Type>simple</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>*</Simple>
<SubstitutionTemplate>null</SubstitutionTemplate>
</AttributeMapItem>
</AttributeMap>
<AttributeMap name="Output">
<InheritFrom>[parent]</InheritFrom>
</AttributeMap>
<DeltaSettings>
<WhenToCommit>After every database operation</WhenToCommit>
<Driver>CloudScape</Driver>
</DeltaSettings>
<Schema name="Input">
<InheritFrom>[parent]</InheritFrom>
<SchemaItem>
<Name>$dn</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>affiliationcode</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>cn</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>degrees</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>department</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>email</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>facsimiletelephonenumber</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>mail</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>objectclass</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>othermailbox</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>physicaldeliveryofficename</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>pphysicaldeliveryofficename</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>ppostaladdress</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>ptelephonenumber</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>ptitle</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>serialnumber</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>sn</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>telephonenumber</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>title</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>uid</Name>
<Syntax>java.lang.String</Syntax>
<Presence>null</Presence>
</SchemaItem>
</Schema>
<Schema name="Output">
<InheritFrom>[parent]</InheritFrom>
</Schema>
<LinkCriteria>
<InheritFrom>[parent]</InheritFrom>
</LinkCriteria>
<Hooks>
<InheritFrom>[parent]</InheritFrom>
</Hooks>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
</PoolDefinition>
<PoolInstance>
<Enabled>false</Enabled>
<ExhaustedPoolBehavior>Wait</ExhaustedPoolBehavior>
</PoolInstance>
<InitializeOption>2</InitializeOption>
</Connector>
</ContainerEF>
<ContainerDF name="DataFlowContainer">
<Connector name="showEntry">
<ConnectorMode>Script</ConnectorMode>
<ConnectorState>Enabled</ConnectorState>
<Configuration/>
<ConnectorScript>task.logmsg("&gt; got cn: " + work.getString("cn"));</ConnectorScript>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser/>
<AttributeMap name="Input"/>
<AttributeMap name="Output"/>
<DeltaSettings>
<Driver>BTree</Driver>
</DeltaSettings>
<Schema name="Input"/>
<Schema name="Output"/>
<LinkCriteria/>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
</PoolDefinition>
<PoolInstance/>
<InitializeOption>0</InitializeOption>
</Connector>
<Connector name="checkFirstLetter">
<ConnectorMode>Script</ConnectorMode>
<ConnectorState>Disabled</ConnectorState>
<Configuration/>
<ConnectorScript><![CDATA[var cn = work.getString("cn").toUpperCase();
var firstLetter = cn.substring(0,1);

system.setExternalProperty("firstLetter",
                           cn.substring(0,1));

writeFile.connector.terminate();
writeFile.connector.initialize(null);
]]></ConnectorScript>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser/>
<AttributeMap name="Input"/>
<AttributeMap name="Output"/>
<DeltaSettings>
<Driver>BTree</Driver>
</DeltaSettings>
<Schema name="Input"/>
<Schema name="Output"/>
<LinkCriteria/>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
</PoolDefinition>
<PoolInstance/>
<InitializeOption>0</InitializeOption>
</Connector>
<Connector name="writeFile">
<InheritFrom>system:/Connectors/ibmdi.FileSystem</InheritFrom>
<ConnectorMode>AddOnly</ConnectorMode>
<ConnectorState>Disabled</ConnectorState>
<Configuration>
<InheritFrom>[parent]</InheritFrom>
<parameter name="debug">false</parameter>
<parameter name="fileAppend">true</parameter>
<parameter name="filePath">@SUBSTITUTETutorials/File_for_{property.firstLetter}.csv</parameter>
</Configuration>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser>
<InheritFrom>system:/Parsers/ibmdi.CSV</InheritFrom>
<parameter name="characterSet">UTF-8</parameter>
<parameter name="csvEnableQuoting">true</parameter>
<parameter name="csvLogLongLines">0</parameter>
<parameter name="csvWriteHeader">false</parameter>
<parameter name="debug">false</parameter>
<parameter name="ldifDNAttributeName">$dn</parameter>
<parameter name="ldifVersion">true</parameter>
</Parser>
<AttributeMap name="Input">
<InheritFrom>[parent]</InheritFrom>
</AttributeMap>
<AttributeMap name="Output">
<InheritFrom>[parent]</InheritFrom>
<AttributeMapItem>
<Name>$dn</Name>
<Type>simple</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>$dn</Simple>
<SubstitutionTemplate>null</SubstitutionTemplate>
</AttributeMapItem>
<AttributeMapItem>
<Name>cn</Name>
<Type>simple</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>cn</Simple>
<SubstitutionTemplate>null</SubstitutionTemplate>
</AttributeMapItem>
<AttributeMapItem>
<Name>mail</Name>
<Type>simple</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>mail</Simple>
<SubstitutionTemplate>null</SubstitutionTemplate>
</AttributeMapItem>
<AttributeMapItem>
<Name>title</Name>
<Type>simple</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>title</Simple>
<SubstitutionTemplate>null</SubstitutionTemplate>
</AttributeMapItem>
</AttributeMap>
<DeltaSettings>
<WhenToCommit>After every database operation</WhenToCommit>
<Driver>CloudScape</Driver>
</DeltaSettings>
<Schema name="Input">
<InheritFrom>[parent]</InheritFrom>
</Schema>
<Schema name="Output">
<InheritFrom>[parent]</InheritFrom>
</Schema>
<LinkCriteria>
<InheritFrom>[parent]</InheritFrom>
</LinkCriteria>
<Hooks>
<InheritFrom>[parent]</InheritFrom>
<Hook>
<Name>before_initialize</Name>
<Script><![CDATA[task.logmsg("---> Initializing with filename: " + 
		    thisConnector.connector.getParam("filePath"));]]></Script>
<Enabled>true</Enabled>
<DebugBreak>false</DebugBreak>
</Hook>
</Hooks>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
<parameter name="initreconnect">false</parameter>
<parameter name="numberOfRetries">1</parameter>
<parameter name="retryDelay">10</parameter>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
</PoolDefinition>
<PoolInstance>
<Enabled>false</Enabled>
<ExhaustedPoolBehavior>Wait</ExhaustedPoolBehavior>
</PoolInstance>
<InitializeOption>2</InitializeOption>
</Connector>
</ContainerDF>
<ThreadOptions/>
<Operations/>
</AssemblyLine>
<AssemblyLine name="ExpressionsInAttMaps">
<LogEnabled>true</LogEnabled>
<Settings>
<parameter name="ALPoolSettingsDialog">showALPoolSettings</parameter>
<parameter name="automapattributes">false</parameter>
<parameter name="createTombstones">false</parameter>
<parameter name="debug">false</parameter>
<parameter name="includeGlobalPrologs">true</parameter>
<parameter name="nullBehaviorDialog">showNullBehavior</parameter>
</Settings>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<LogConfig/>
<ContainerEF name="EntryFeedContainer"/>
<ContainerDF name="DataFlowContainer">
<ALMap name="makeAtts">
<AttributeMap name="Input">
<AttributeMapItem>
<Name>FirstName</Name>
<Type>substitution</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>FirstName</Simple>
<SubstitutionTemplate>John</SubstitutionTemplate>
</AttributeMapItem>
<AttributeMapItem>
<Name>LastName</Name>
<Type>substitution</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>LastName</Simple>
<SubstitutionTemplate>Anderson</SubstitutionTemplate>
</AttributeMapItem>
</AttributeMap>
<Enabled>true</Enabled>
</ALMap>
<ALMap name="MixAndMatch">
<AttributeMap name="Input">
<InheritFrom>/AttributeMaps/MixAndMatch</InheritFrom>
<AttributeMapItem>
<Name>CordialNote</Name>
<Type>substitution</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>Message</Simple>
<SubstitutionTemplate><![CDATA[Dear {work.FirstName},

We here in the TDI team hope that all is well with
you and the entire {work.LastName} family.

Integratingly yours,
-Neo]]></SubstitutionTemplate>
</AttributeMapItem>
</AttributeMap>
<Enabled>true</Enabled>
</ALMap>
<Connector name="dumpIt">
<ConnectorMode>Script</ConnectorMode>
<ConnectorState>Enabled</ConnectorState>
<Configuration/>
<ConnectorScript>task.dumpEntry(work);</ConnectorScript>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser/>
<AttributeMap name="Input"/>
<AttributeMap name="Output"/>
<DeltaSettings>
<Driver>BTree</Driver>
</DeltaSettings>
<Schema name="Input"/>
<Schema name="Output"/>
<LinkCriteria/>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
</PoolDefinition>
<PoolInstance/>
<InitializeOption>0</InitializeOption>
</Connector>
</ContainerDF>
<ThreadOptions/>
<Operations/>
</AssemblyLine>
<AssemblyLine name="test_reportError">
<LogEnabled>true</LogEnabled>
<Settings>
<parameter name="ALPoolSettingsDialog">showALPoolSettings</parameter>
<parameter name="automapattributes">false</parameter>
<parameter name="createTombstones">false</parameter>
<parameter name="debug">false</parameter>
<parameter name="includeGlobalPrologs">true</parameter>
<parameter name="includePrologs">reportError(task, errorEntry)</parameter>
<parameter name="nullBehaviorDialog">showNullBehavior</parameter>
</Settings>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<LogConfig/>
<ContainerEF name="EntryFeedContainer"/>
<ContainerDF name="DataFlowContainer">
<Connector name="testFunction">
<ConnectorMode>Script</ConnectorMode>
<ConnectorState>Enabled</ConnectorState>
<Configuration/>
<ConnectorScript><![CDATA[var err = system.newEntry();

err.setAttribute("connectorname", thisConnector.getName());
err.setAttribute("message","This is where the error message goes.");
err.setAttribute("operation","N/A");

reportError(task, err);
]]></ConnectorScript>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser/>
<AttributeMap name="Input"/>
<AttributeMap name="Output"/>
<DeltaSettings>
<Driver>BTree</Driver>
</DeltaSettings>
<Schema name="Input"/>
<Schema name="Output"/>
<LinkCriteria/>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
</PoolDefinition>
<PoolInstance/>
<InitializeOption>0</InitializeOption>
</Connector>
</ContainerDF>
<ThreadOptions/>
<Operations/>
</AssemblyLine>
<AssemblyLine name="ExpressionsInLinkCrit">
<LogEnabled>true</LogEnabled>
<Settings>
<parameter name="ALPoolSettingsDialog">showALPoolSettings</parameter>
<parameter name="automapattributes">false</parameter>
<parameter name="createTombstones">false</parameter>
<parameter name="debug">false</parameter>
<parameter name="includeGlobalPrologs">true</parameter>
<parameter name="nullBehaviorDialog">showNullBehavior</parameter>
</Settings>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<LogConfig/>
<ContainerEF name="EntryFeedContainer"/>
<ContainerDF name="DataFlowContainer">
<ALMap name="set up for expressions">
<AttributeMap name="Input">
<AttributeMapItem>
<Name>findThisValue</Name>
<Type>substitution</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>findThisValue</Simple>
<SubstitutionTemplate>David Abosch</SubstitutionTemplate>
</AttributeMapItem>
<AttributeMapItem>
<Name>useAttribute</Name>
<Type>substitution</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>useAttribute</Simple>
<SubstitutionTemplate>cn</SubstitutionTemplate>
</AttributeMapItem>
</AttributeMap>
<Enabled>true</Enabled>
</ALMap>
<Connector name="LDAPupdate">
<InheritFrom>/Connectors/LDAPupdate</InheritFrom>
<ConnectorMode>Lookup</ConnectorMode>
<ConnectorState>Enabled</ConnectorState>
<Configuration>
<InheritFrom>[parent]</InheritFrom>
<parameter name="debug">false</parameter>
</Configuration>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser>
<InheritFrom>[parent]</InheritFrom>
</Parser>
<AttributeMap name="Input">
<InheritFrom>[parent]</InheritFrom>
<AttributeMapItem>
<Name>cn</Name>
<Type>simple</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>cn</Simple>
<SubstitutionTemplate>null</SubstitutionTemplate>
</AttributeMapItem>
<AttributeMapItem>
<Name>title</Name>
<Type>simple</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>title</Simple>
<SubstitutionTemplate>null</SubstitutionTemplate>
</AttributeMapItem>
</AttributeMap>
<AttributeMap name="Output">
<InheritFrom>[parent]</InheritFrom>
</AttributeMap>
<DeltaSettings>
<WhenToCommit>After every database operation</WhenToCommit>
<Driver>CloudScape</Driver>
</DeltaSettings>
<Schema name="Input">
<InheritFrom>[parent]</InheritFrom>
<SchemaItem>
<Name>$dn</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>affiliationcode</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>cn</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>degrees</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>department</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>email</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>mail</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>objectclass</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>physicaldeliveryofficename</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>serialnumber</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>sn</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>telephonenumber</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>title</Name>
<Presence>null</Presence>
</SchemaItem>
<SchemaItem>
<Name>uid</Name>
<Presence>null</Presence>
</SchemaItem>
</Schema>
<Schema name="Output">
<InheritFrom>[parent]</InheritFrom>
</Schema>
<LinkCriteria>
<InheritFrom>[parent]</InheritFrom>
<LinkCriteriaItem>
<Key>10e36a49eb7</Key>
<Attribute>{work.useAttribute}</Attribute>
<Operator>equals</Operator>
<Value>{work.findThisValue}</Value>
</LinkCriteriaItem>
</LinkCriteria>
<Hooks>
<InheritFrom>[parent]</InheritFrom>
</Hooks>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
</PoolDefinition>
<PoolInstance>
<Enabled>false</Enabled>
<ExhaustedPoolBehavior>Wait</ExhaustedPoolBehavior>
</PoolInstance>
<InitializeOption>2</InitializeOption>
</Connector>
<Connector name="display">
<ConnectorMode>Script</ConnectorMode>
<ConnectorState>Enabled</ConnectorState>
<Configuration/>
<ConnectorScript>task.dumpEntry(work);</ConnectorScript>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser/>
<AttributeMap name="Input"/>
<AttributeMap name="Output"/>
<DeltaSettings>
<Driver>BTree</Driver>
</DeltaSettings>
<Schema name="Input"/>
<Schema name="Output"/>
<LinkCriteria/>
<Hooks/>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
</PoolDefinition>
<PoolInstance/>
<InitializeOption>0</InitializeOption>
</Connector>
</ContainerDF>
<ThreadOptions/>
<Operations/>
</AssemblyLine>
</Folder>
<Folder name="Connectors">

<Connector name="LDAPupdate">
<InheritFrom>system:/Connectors/ibmdi.LDAP</InheritFrom>
<ConnectorMode>Iterator</ConnectorMode>
<ConnectorState>Enabled</ConnectorState>
<Configuration>
<InheritFrom>[parent]</InheritFrom>
<parameter name="automapADPassword">false</parameter>
<parameter name="debug">false</parameter>
<parameter name="ldapAddAttr">false</parameter>
<parameter name="ldapAuthenticationMethod">Simple</parameter>
<parameter name="ldapPageSize">0</parameter>
<parameter name="ldapPassword">@SUBSTITUTE{property.myPasswords:ldapPassword-2a338e65550aa324}</parameter>
<parameter name="ldapReferrals">follow</parameter>
<parameter name="ldapSearchBase">@SUBSTITUTE{property.LDAP_SearchBase}</parameter>
<parameter name="ldapSearchFilter">objectClass=person</parameter>
<parameter name="ldapSearchScope">subtree</parameter>
<parameter name="ldapSizeLimit">0</parameter>
<parameter name="ldapTimeLimit">0</parameter>
<parameter name="ldapUrl">@SUBSTITUTEldap://{property.LDAP_URL}:{property.LDAP_PORT}</parameter>
<parameter name="ldapUseSSL">false</parameter>
<parameter name="ldapVLVPageSize">0</parameter>
<parameter name="simulateRename">false</parameter>
<parameter name="userComment"/>
</Configuration>
<ComputeChanges>true</ComputeChanges>
<DeltaBehavior>0</DeltaBehavior>
<DeltaStrict>true</DeltaStrict>
<Parser>
<InheritFrom>[parent]</InheritFrom>
</Parser>
<AttributeMap name="Input">
<InheritFrom>[parent]</InheritFrom>
</AttributeMap>
<AttributeMap name="Output">
<InheritFrom>[parent]</InheritFrom>
</AttributeMap>
<DeltaSettings>
<WhenToCommit>After every database operation</WhenToCommit>
<Driver>CloudScape</Driver>
</DeltaSettings>
<Schema name="Input">
<InheritFrom>[parent]</InheritFrom>
</Schema>
<Schema name="Output">
<InheritFrom>[parent]</InheritFrom>
</Schema>
<LinkCriteria>
<InheritFrom>[parent]</InheritFrom>
</LinkCriteria>
<Hooks>
<InheritFrom>[parent]</InheritFrom>
<Hook>
<Name>default_fail</Name>
<Script><![CDATA[reportError(task, error);

if (redirectLDAPto("directory.ucalgary.ca", "o=ucalgary.ca", thisConnector)) {
	// Since this is an Iterator, I also need to call selectEntries()
	// This is not part of Connector initialization, but is handled by
	// the AssemblyLine flow logic (including invoking Prolog Hooks).
	//
	thisConnector.connector.selectEntries();

	system.skipEntry(); // to go back to the Feeds Iterator
} else
	// The above method does a skipEntry() in case of a redirect
	// otherwise, we end up here and need to re-throw the exception
	throw error;
]]></Script>
<Enabled>true</Enabled>
<DebugBreak>false</DebugBreak>
</Hook>
<Hook>
<Name>on_connection_failure</Name>
<Script><![CDATA[// Only do this the first time an error occurs
if (!redirectLDAPto("directory.ucalgary.ca", "o=ucalgary.ca", thisConnector))
	// If the Connector is not re-init'ed, throw the error up to the AL
	throw error;
]]></Script>
<Enabled>true</Enabled>
<DebugBreak>false</DebugBreak>
</Hook>
</Hooks>
<CheckpointConfig/>
<SandboxConfig/>
<Reconnect>
<InheritFrom>[parent]</InheritFrom>
<parameter name="initreconnect">false</parameter>
<parameter name="numberOfRetries">1</parameter>
<parameter name="retryDelay">10</parameter>
</Reconnect>
<Operations/>
<OperationCarrierIsProperty>false</OperationCarrierIsProperty>
<PoolDefinition>
<InheritFrom>[parent]</InheritFrom>
<Enabled>false</Enabled>
<MinPoolSize>0</MinPoolSize>
<PurgeInterval>0</PurgeInterval>
<InitializeAttempts>1</InitializeAttempts>
</PoolDefinition>
<PoolInstance>
<Enabled>false</Enabled>
<ExhaustedPoolBehavior>Wait</ExhaustedPoolBehavior>
</PoolInstance>
<InitializeOption>2</InitializeOption>
</Connector>
</Folder>
<Folder name="Parsers"/>
<Folder name="EventHandlers"/>
<Folder name="Scripts">
<Script name="redirectLDAPto(ldapURL, ldapSearchbase, thisConnector)">
<parameter name="includeFiles"/>
<parameter name="script"><![CDATA[// Note that re-initializing an Iterator also means reselecting
// the result set for Iteration. This applies to using the Auto-
// Reconnect feature with an Iterator as well.
//
function redirectLDAPto( ldapURL, ldapSearchbase, thisConnector ) {
	// parameters:	ldapURL			- the new URL for the Connector
	//				ldapSearchbase	- new searchbase
	//				thisConnector	- ref to the Connector to redirect

	task.logmsg("***      closing connection to '" + 
				thisConnector.connector.getParam("ldapUrl") + "'");

	// Only do this if the Connector is not already set to the ldapURL
	if (thisConnector.connector.getParam("ldapUrl").indexOf(ldapURL) < 0) {
		task.logmsg("***        setting LDAP URL to '" + ldapURL + "'");
		task.logmsg("***          and SearchBase to '" + ldapSearchbase + "'");

		// Of course, I could just set the connector parameters directly
		// like this: thisConnector.connector.setParam("ldapUrl", "directory...");
		// I'll use properties tied to these parameters instead.
		//
		system.setExternalProperty("LDAP_URL", "directory.ucalgary.ca");
		system.setExternalProperty("LDAP_SearchBase", "o=ucalgary.ca");

		// If thisConnector was set to re-initialize when the params changed,
		// and if I set them directly (as in the comment above), the following
		// three lines to re-init the Connector would not be necessary.
		//
		thisConnector.connector.terminate();
		thisConnector.connector.initialize(null);

		return true;
	} else 
		return false;
}
]]></parameter>
</Script>
<Script name="reportError(task, errorEntry)">
<parameter name="includeFiles"/>
<parameter name="script"><![CDATA[function reportError(task, errorEntry) {
	// parameters:	task			- the Assemblyline (task) object
	//				errorEntry		- the error Entry which is created
	//								  automatically when an exception
	//								  occurs. It holds Attributes that
	//								  describe the error -- just try
	//								  to task.dumpEntry(error) in an
	//								  Error Hook and see.

	var map = new java.util.HashMap();

	// Adding the AL name to the error object to make it easy to get
	errorEntry.setAttribute("ALname", task.getName());

	// Set up the object for the expression
	map.put("mc", main.getMetamergeConfig());
	map.put("error", errorEntry);
	map.put("task", task);

	// Perform the TDI Expression evaluation
	var msg = com.ibm.di.util.ParameterSubstitution.substitute("** ERROR ** "
																  + "{error.ALname}/"
																  + "{error.connectorname} "
																  + "({error.operation}) - "
																  + "{error.message}", 
																map)

	task.logmsg("ERROR", msg);
}
]]></parameter>
</Script>
</Folder>
<JavaLibraries/>
<JavaProperties/>
<Folder name="Includes"/>
<Folder name="Config">
<LogConfig name="Logging"/>
<InstanceProperties name="AutoStart">
<AutoStart/>
</InstanceProperties>
<TombstonesConfig name="Tombstones"/>
</Folder>
<Folder name="Functions"/>
<Folder name="AttributeMaps">
<ALMap name="MixAndMatch">
<AttributeMap name="Input">
<AttributeMapItem>
<Name>CordialNote</Name>
<Type>substitution</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>Message</Simple>
<SubstitutionTemplate><![CDATA[Dear {work.FirstName},

We here in the TDI team hope that all is well with
you and the entire {work.LastName} family.

Integratingly yours,
-Neo]]></SubstitutionTemplate>
</AttributeMapItem>
<AttributeMapItem>
<Name>FullName</Name>
<Type>substitution</Type>
<Enabled>true</Enabled>
<Add>true</Add>
<Modify>true</Modify>
<Script/>
<Simple>FullName</Simple>
<SubstitutionTemplate>{work.FirstName} {work.LastName}</SubstitutionTemplate>
</AttributeMapItem>
</AttributeMap>
<Enabled>true</Enabled>
</ALMap>
</Folder>
<Properties name="Properties">
<DefaultStore>myProperties</DefaultStore>
<PasswordStore>myPasswords</PasswordStore>
<Stores>
<PropertyStore name="Solution-Properties">
<Parser/>
<RawConnector>
<InheritFrom>system:/Connectors/ibmdi.Properties</InheritFrom>
<parameter name="collectionType">Solution-Properties</parameter>
</RawConnector>
<Key>key</Key>
<Value>value</Value>
<ReadOnly>false</ReadOnly>
<InitialLoad>true</InitialLoad>
<CacheTimeout>0</CacheTimeout>
</PropertyStore>
<PropertyStore name="Global-Properties">
<Parser/>
<RawConnector>
<InheritFrom>system:/Connectors/ibmdi.Properties</InheritFrom>
<parameter name="collectionType">Global-Properties</parameter>
</RawConnector>
<Key>key</Key>
<Value>value</Value>
<ReadOnly>false</ReadOnly>
<InitialLoad>true</InitialLoad>
<CacheTimeout>0</CacheTimeout>
</PropertyStore>
<PropertyStore name="Java-Properties">
<Parser/>
<RawConnector>
<InheritFrom>system:/Connectors/ibmdi.Properties</InheritFrom>
<parameter name="collectionType">Java-Properties</parameter>
</RawConnector>
<Key>key</Key>
<Value>value</Value>
<ReadOnly>false</ReadOnly>
<InitialLoad>true</InitialLoad>
<CacheTimeout>0</CacheTimeout>
</PropertyStore>
<PropertyStore name="System-Properties">
<Parser/>
<RawConnector>
<InheritFrom>system:/Connectors/ibmdi.Properties</InheritFrom>
<parameter name="collectionType">System-Properties</parameter>
</RawConnector>
<Key>key</Key>
<Value>value</Value>
<ReadOnly>false</ReadOnly>
<InitialLoad>true</InitialLoad>
<CacheTimeout>0</CacheTimeout>
</PropertyStore>
<PropertyStore name="myProperties">
<Parser/>
<RawConnector>
<InheritFrom>system:/Connectors/ibmdi.Properties</InheritFrom>
<parameter name="collection">Tutorials\PropsAndExpressions.props</parameter>
<parameter name="collectionType">User-Defined</parameter>
<parameter name="debug">false</parameter>
</RawConnector>
<Key>key</Key>
<Value>value</Value>
<ReadOnly>false</ReadOnly>
<InitialLoad>false</InitialLoad>
<CacheTimeout>0</CacheTimeout>
</PropertyStore>
<PropertyStore name="myPasswords">
<Parser/>
<RawConnector>
<InheritFrom>system:/Connectors/ibmdi.Properties</InheritFrom>
<parameter name="collection">C:\Documents and Settings\no010196\My Documents\TDI_dev\Tutorials\myPasswords.props</parameter>
<parameter name="collectionType">User-Defined</parameter>
<parameter name="debug">false</parameter>
</RawConnector>
<Key>key</Key>
<Value>value</Value>
<ReadOnly>false</ReadOnly>
<InitialLoad>true</InitialLoad>
<CacheTimeout>0</CacheTimeout>
</PropertyStore>
</Stores>
</Properties>
</MetamergeConfig>
