SDI: Convert GUID back to dominoUNID

SDI: Convert GUID back to dominoUNID

Hi all,

in many customer environments we often have to deal with inactive IBM Connections users. Many times LDAP accounts are deleted rather than inactivated:

User A leaves company XY –> LDAP Account is deleted

User A rejoins company XY –> A new LDAP account is created

There are companies that do not have a central domino Administration. It might then happen that Admins do work differently across the customer`s locations. One inactivates the other deletes the account. Anyway deleting and then recreating accounts is really not clever in terms of IBM Connections profiles…

That`s bad luck for SDI, because in the customers configuration GUID is used as hash value between IBM Connections database and customers LDAP.

For sure you can run a synctask with UID or eMail as hash value… but the customer wanted a way to control this mechanism by his own (the are all no IBM Connections admins…)

This time our customer had an idea how to work around this issue. In case someone leaves the company and rejoins after some weeks they want to change the dominoUNID (in this case a domino directory is used for user population) back to its original value (before the account was deleted). The “old” dominoUNID is not present anymore due to the deleted account so they asked me if they can get the original dominoUNID out of the GUID values from the IBM Connections profiles database.

For sure they can – with some small SDI magic šŸ˜‰

In case of a domino directory, the GUID is computed from the domino directories “dominoUNID”. There is a SDI function that converts this byteString (dominoUNID) into a canonical String (GUID).

com.ibm.connections.directory.services.util.ObjectGUIDConverter.convertByteStringToGUIDString(byteString)

So I took a closer look at those ObjectGUIDConverter functions and found out that there is also a way to convert the canonical String (GUID) back to a byte String (dominoUNID)

com.ibm.connections.directory.services.util.ObjectGUIDConverter.convertGUIDStringToByteString(GUIDString)

I wrote a small AssemblyLine that reads all profiles from IBM Connections Profilesdb and converts the GUID back to a dominoUNID and writes the results into a csv file.

The domino Admin now has to replace the dominoUNID and the account will be activated again. We agreed that this should be a manual way… You could also automate this completely so that the GUID is converted and automatically written into the domino directory. But you really have to keep an eye on something like this.

For sure there might be a bit more stuff necessary (e.g. if in the meantime a new IBM Connections account was created because the user married and changed its name, email … then you first have to remove this account)

The assembly line can look like this:

Bildschirmfoto 2015-04-07 um 12.59.14

I parse the result of the database GUID value directly into the converter function:

Bildschirmfoto 2015-04-07 um 13.00.01

And the result is written into a csv file with the displayname, email and original dominoUNID value:

Bildschirmfoto 2015-04-07 um 13.42.57

In order to test this I choose an active IBM Connections user “Robert Musiker” and compared this entry the with value in domino:

Bildschirmfoto 2015-04-07 um 13.42.39

Leave a Reply

Your email address will not be published. Required fields are marked *