Reduce the presence of inactive Profiles

By default the TDI solution directory is configured to inactivate Profiles
instead of deleting them. For most companies this is also the prefered setting
as they want to have the ability to restore Profiles. This so no link between
a Profile and the contributed data inside Connections goes lost.

For your TDI filter you could decide to include the following LDAP line.


This checks the 2nd bit of userAccountControl if it is set then the Windows AD
account is disabled. So with the extra (! (….) ) it checks if it is not set.

When a person leaves his Windows AD account will be disabled once the
TDI runs it will also mark the corresponding Connections Profile as inactive.
When the person comes back and his AD account enabled again than
TDI will take care of activating the corresponding Connections Profile.

This all works okay the only downside is that all the users who permanently
left the company will stay present as their inactive Profiles remain visible
through the different view in the Profiles application.

And this is because the process of inactivating users will not remove those inactive
Profiles from a number of views. Inactive Profiles will continue to show up in:

– Network contacts lists
– Report-to-chains
– Tag search results

Also something that is not always wanted is that a lot of information about a person
remains visible on his in-active Profile page.

To clean this all up I came with the following SQL scripts and widget-config.xml
and profiles-policy.xml configurations.

Some notes:

– The photo, the board, the full contact information, the background tab and the recent
   posts tab of in-active Profiles are configured not to be displayed.
   When the Profile is activated again all this information becomes visible again.
– This setup requires Fixpack 1 for IC301 for the profiles-policy.xml file to work properly.
   This file controls the hiding of the photo for in-active Profiles.

– This will remove all the network contacts from in-active Profiles
– It will remove all the tags assigned to in-active Profiles 

// It is a good approach to enhance the LDAP filter so people
// their Profiles who are one temporarely leave will not be marked
// as inactive as this will delete al their network contacts and assigned tags.
// For example: a check on a LDAP attribute which tells the current status
// of an employee or just don’t mark these AD accounts as disabled.

– 0 is the new Profile type introduced to reflect inactive Profiles.

Thanks to Elizabeth Hecht from IBM Support for pushing me in the right direction.

Clean up the in-active Profile page lay-out

On the DMGR edit the following two files.

widget-config.xml edits

After line 123 add the following XML code.

         <layout resourceSubType=”0″>
             <page pageId=”profilesView”>      
                <widgetInstance uiLocation=”col2″ defIdRef=”contactInfo”/>

profiles-policy.xml edits

Note including the comments the features xml section is used twice in the profiles-policy sample.
Replace everything between <features> </features> with

            <feature name=””>
                <profileType type=”0″ enabled=”false”/>

In the WAS console do a full sync and restart the Profiles application.





















SQL queries to cleanup the presence of in-active Profiles

Use the following SQL queries and schedule them to run once a week or whatever suits you.
These SQL queries are written for Oracle.

— Delete inactive Profiles from people their networks 

delete from empinst.prof_connections a
where exists ( select b.prof_key, b.prof_mail from empinst.employee b where
a.PROF_SOURCE_KEY = b.prof_key and b.prof_mail is null
a.PROF_TARGET_KEY = b.prof_key and b.prof_mail is null

— Take care that every current in-active Profile gets a value for the PROF_TYPE column

— Prevent inactive Profiles from showing up in the report-to-chain by cleaning up the manager columns

update empinst.employee set prof_type = ‘0’, prof_manager_uid = ”, prof_manager_uid_lower = ”, prof_is_manager = ‘N’ where PROF_MAIL is null and PROF_TYPE is null;

–Prevent inactive Profiles from showing up under Profile tag search results

delete from empinst.people_tag a
where exists ( select b.prof_key, b.prof_mail from empinst.employee b where
a.prof_source_key = b.prof_key and b.prof_mail is null
a.prof_target_key = b.prof_key and b.prof_mail is null

This entry was posted in ibm connections. Bookmark the permalink.

Leave a Reply

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

Please leave these two fields as-is:

Protected by Invisible Defender. Showed 403 to 890,155 bad guys.