Tag Archives: tdi

IBM Connections APAR LO73245

I read an open APAR on IBM Connections today (login required!): LO73245

Description:

TDI’s sync_all_users.sh doesn’t allow us to import departmentNumbers longer than 16 chars, although the database schema supports values up to 24 chars.

And as local solution:

worked around the issue with creating a custom field

I had a very similar problem with validation of LDAP Search filter (which is saved in employee-table too) and searched longer to solve this (I set sync_store_source_url=false), but the real error was like here in validate_dbrepos_fields.properties.

When you open validate_dbrepos_fields.properties (in your tdisol directory) you found following:

deptNumber=16

So here is the validation error and not in the database! You can solve the APAR without using a customField, when you set deptNumber to 24.

IBM Connections Directory Search breaks when User have quotes in a profile field

On one of my IBM Connections Site i had a problem with directory search (better the typeahead search). When we searched single characters no business cards are displayed.

I use Firebug for Chrome here and you see, that the search gets an result back from Connections, but no business cards are displayed.

When i open this get statement i get a list of profile documents in JSON format:

In this case i a got a list of about 20 User profiles. When i search a little bit more detailed i get an error of a Javascript, which should interpret the JSON list. Thanks to the developer (I think it is a dojo script)! “There was an error!” is a great response for troubleshooting and searching the error on Google or Bing!

The list has following format:


/*{"identifier":"member","label":"name","items":[
{"name":"John Doe","userid":"70026A2C-BE77-8491-C125-XXXXXX","uid":"john.doe@stoeps.tld","member":"john.doe@stoeps.tld","type":"0","ext":
{"first":"","groupwareEmail":"john.doe@stoeps.tld","guid":"70026A2C-BE77-8491-C125-XXXXX","mobileNumber":"+49 (123) 12 34 567","floor":"2nd","email":"john.doe@stoeps.tld","countryCode":"DE","givenName":"John","jobResp":"Assistant","faxNumber":"+49 (123) 456789","bldgId":"Member of "Android Lovers"","uid":"john.doe@stoeps.tld","sourceUrl":"ldap://ldapserver:389/(undefined=_search_base_)?(&(ObjectClass=*)(Attribute=1))","surname":"Doe","key":"00009asdkfjakf","displayName":"John Doe","telephoneNumber":"+49 (1234) 56789","distinguishedName":"CN=John Doe,OU=Admin,OU=DE,O=STOEPS","workLocationCode":"Munich","timezone":"Etc/GMT+12","lastUpdate":"2012-03-05 14:23:34.504"}
}]}*/

Problem here is the field bldgId: "Member of "Android Lovers"".

You can see double ” which are not masked. Our IBM Connections User can fill nearly everything in the fields in Profiles, but get no warning if he uses quotes and quotes are not masked, when they are stored in the database.

So when you have on user who uses quotes in one of his Profile fields, the typeahead search displays no results for character searches which contains this user (and no error message).

Finding such fields with regular expressions

I tested the typeahead search on all characters and copied the result of the GET statement out of Firebug and developed a regexp to find double quoted strings:

:\"[a-zA-Z0-9\.\/\,\+\-\:\s äöüÄÖÜ]*\"[a-zA-Z0-9\.\/\+\-\:\s äöüÄÖÜ]*\"

On Mac OS X you can use RegExRX or Notepad++ on Windows to test this regexp and you will get the wrong field values.

TDI and Typeahead

You can see in the result list, that TDI Search Urls are saved in each profile document too! "sourceUrl":"ldap://ldapserver:389/(undefined=_search_base_)?(&(ObjectClass=*)(Attribute=1))", so please be careful, when you configure your search strings, because a double quoted attribute breaks typeahead search too!

Populate profile pictures with TDI to LDAP

Today i made a new assembly line in Tivoli Directory Integrator.

I iterate Shortname and Filename (with path) of a jpeg-photo in a csv-file. A java class converts this pic to an jpeg binary (class returns this binary array) and then tdi write this value to domino ldap in jpegphoto attribute.

Works great, only the csv-file is a little bit of work, but it is a great way to add lots of pictures to sametime profiles.

Next step is to include an connector to Lotus Connections profiles.

Running Sync_All_DNS as scheduled task on Windows 2008

To automate the sync_all_dns.bat on my IBM Lotus Connections Servers, i made a scheduled task for the Tivoli Directory Integrator (TDI) script. This works fine on Windows 2003.

Today i discovered that my scheduled task on Windows 2008 wasn’t running since i switched the operating system to Microsoft Windows 2008.

After a search i found that i need to set a optional parameter, then it works:

To start bat- or cmd-files, you have to insert the path to this script in “Start in (Optional)”. When i start the script without “Start in” the scheduler gives a “SUCCESS” Status, but nothing happens!

You can test with schtasks /run /tn "taskname" and have a look on [tdisolutionpath]/logs/ibmdi.log.