Delete users from IBM Connections when you have only the Display Name

A few days ago i was in charge do remove some users from IBM Connections. The case was  to delete the inactivated users.

The users was removed from the corporate LDAP a few months ago and no one know the DN or CN of the users. The only information was the Display Name

I need to know the user_dn and user_uid  to create the file delete_or_inactivate_employees.in and then run delete_or_inactivate_employees.sh script.

The only way i found was to export some data from PEOPLEDB. Reading the table EMPINST . Inactivated users does not have the PROF_MAIL data.

I created an java program using Eclipse, connect to PEOPLEDB and export all users without the PROF_MAIL.

I was able to see the user list and compare with the display name.

The java program print the results on eclipse console.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class DAO {
 
    public static void main(String[] args) {
        String jdbcClassName="com.ibm.db2.jcc.DB2Driver";
        String url="jdbc:db2://mydb2server:50000/PEOPLEDB";
        String user="lcuser";
        String password="password";
 
        Connection connection = null;
        try {
            //Load class into memory
            Class.forName(jdbcClassName);
            //Establish connection
            connection = DriverManager.getConnection(url, user, password);
           
            Statement stmt = connection.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT PROF_UID, PROF_SOURCE_UID, PROF_DISPLAY_NAME FROM "EMPINST"."EMPLOYEE" WHERE PROF_MAIL IS NULL");
            while (rs.next()){
                    String x = rs.getString("PROF_SOURCE_UID");
                    String y = rs.getString("PROF_UID");
                    System.out.println ("$dn:"+x);
                    System.out.println("uid:"+y);
                    System.out.println(".");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            if(connection!=null){
                System.out.println("Exported successfully.");
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
 
    }
 
}