I had the following problem with external users in Connections 5. The customer used a function for the “displayName” instead of a LDAP property value like “cn” resulting in the following lines in “map_dbrepos_from_source.properties”:

displayName={func_decorate_displayName_if_visitor}
displayNameLdapAttr={func_compute_dn}
decorateVisitorDisplayName= - External User
mode={func_map_ext}

The function “func_map_ext” is a self-written function which just returns “external” so that all imported users will be handled as external ones.

While running a sync or populate job to import external users, the TDI job threw the following error message:

2015-02-12 18:02:22,244 ERROR [com.ibm.di.log.FileRollerAppender.5b5e0f8c-90a4-4b5f-a19e-0d3c6cc7777a] - CLFRN0104E: Failure during evaluation of mapping function for displayName. Exception is: Error while parsing script of eval() method, text func_map_ext}("displayName");

It took some time to realize that function “func_decorate_displayName_if_visitor” in “profile_functions.js” is buggy.

In this function there was a mixup between the evaluation of the function for the “displayName attribute” and the function specified by the “mode” attribute. To fix that bug you need to change the following lines in “profile_functions.js”:

OLD:

if ((displayNameLdapAttrVal.length >= 3) && (modeVal.charAt(0) == "{"))
{
    var dispFunctionName = modeVal.substring( 1, displayNameLdapAttrVal.length - 1);

 

NEW:

if ((displayNameLdapAttrVal.length >= 3) && (displayNameLdapAttrVal.charAt(0) == "{"))
{
   var dispFunctionName = displayNameLdapAttrVal.substring( 1, displayNameLdapAttrVal.length - 1);

If you change these lines then you also can use a function for”displayNameLdapAttr”.

Tagged with:  

One Response to IBM Connections with external Users: Bug in profiles_functions.js

  1. tks says:

    tks
    you helped me.

Leave a Reply

© 2000-2015 Michael Urspringer