This is my first on Tivoli Directory Integrator development though not the first thing I got stuck on but a subject I feel I would like to share with the rest of the TDI community.

My challenge was how to rename a user by using Domino AdminP with TDI. My initial though was to use the Domino AdminP connector that is shipped with TDI. The documentation says that you can use this connector to create documents in the admin4 database and get the requests to be signed. This proved to be a truth with some modification. The connector signs the documents but is unable to create signatures with the server id. Which means that in this case it is unusable.

After a lot of searching I got some help from IBM and they showed a PMR (Bugreport) about this issue in which there was a solution for this. The solution itself was so simple that I had some trouble accepting it. Anyways the solution was to use the Domino Java API through TDIs scripting component to initiate a rename request and sign it with the server certificate. Below is the sample script I was provided from IBM the final result was a bit more refined with parameters to handle all the specific cases for the implementation.

    var session = Packages.lotus.domino.NotesFactory.createSession( "<Domino Server Address>","<Domino Connection User Name>", "<Connection
    User Password>");

    var idfile = "<Certifier ID file>";
    var idpassword = "<Certifier File Password>";
    var username = "<Current Users Name (Prior to Change)>";
    var lastname = "<New Surname>";
    var firstname = "<New First Name>";

    var adminp= session.createAdministrationProcess("<Domino Server Name>");
    // "servername", for example: "serverX/TestServer/GB"
    adminp.setCertifierFile(idfile);
    adminp.setCertifierPassword(idpassword);
    adminp.renameNotesUser(username,lastname,firstname,"*","*");
    // insert a string with * for No change to middleinitial and orgunit.
    adminp.recycle();
    session.recycle();
    session = null;

References

API Reference for renameNotesUser
Samplecode for renameNotesUser