Hello,

I have a question about some of the data I try to synchronize :
I am synchronizing an ldap server with another ldap server. In lsc, I am using 
< ldapConnection> for both servers and <ldapDestinationService> for the tasks.
The root of my problem is that my users in SRC ldap are not in the same place 
as on my DST ldap (their DN is different). For example :

·         on SRC ldap : 
"uid=fr.admin.un,dmdName=users,dmdName=portal,dmdName=applications,dc=ad,dc=cap,dc=applis,dc=fr"

·         on DST ldap : 
"uid=fr.admin.un,dmdName=users,dmdName=community,dmdName=portal,dmdName=applications,dc=ad,dc=cap,dc=applis,dc=fr"

I can synchronize my users without any problem. But I need to modify attributes 
referencing those users (to update their full dn) and that is where my problem 
is. Those attributes I wish to update, are located inside a 
"groupOfUniqueNames" object.
Here is one of the object I'm talking about
[cid:[email protected]]

Each of the "uniqueMember" is a full DN of a user. But as said previously, the 
full DN are different on SRC ldap and DST ldap. So I wish to update the value 
of each of those "uniqueMember" using javascript. I need to add 
"dmdName=community," right after "dmdName=users,".
Here's what I've tried.


    <ldapDestinationService>
        <name>ldap-dst-service-roles-com1</name>
        <connection reference="ldap-dst-conn-com1" />
        
<baseDn>dmdName=roles,dmdName=community,dmdName=portal,dmdName=applications,dc=ad,dc=cap,dc=applis,dc=fr</baseDn>
                <pivotAttributes>
                        <string>cn</string>
                </pivotAttributes>
                <fetchedAttributes>
                        <string>objectClass</string>
                        <string>cn</string>
                        <string>uniqueMember</string>
                </fetchedAttributes>
        <getAllFilter>(&amp;(objectClass=groupOfUniqueNames))</getAllFilter>
        
<getOneFilter>(&amp;(objectClass=groupOfUniqueNames)(cn={cn}))</getOneFilter>
      </ldapDestinationService>
      <propertiesBasedSyncOptions>
        
<mainIdentifier>"cn="+srcBean.getDatasetFirstValueById("cn")+",dmdName=roles,dmdName=community,dmdName=portal,dmdName=applications,dc=ad,dc=cap,dc=applis,dc=fr
 "</mainIdentifier>
        <defaultDelimiter>;</defaultDelimiter>
        <defaultPolicy>FORCE</defaultPolicy>
        <conditions>
                <create>true</create>
                <update>true</update>
                <delete>true</delete>
                <changeId>false</changeId>
        </conditions>
        <dataset>
                <name>uniqueMember</name>
                <policy>FORCE</policy>
                <forceValues>
                        <string><![CDATA[js:
                               var userDNToModify = 
srcBean.getDatasetFirstValueById("uniqueMember");
                                if (userDNToModify != ""){
                                        var addFromPosition = 
userDNToModify.indexOf("dmdName=secureportal,");
                                        var stringToAdd = "dmdName=community,";
                                        var modifiedDNBegin = 
userDNToModify.substring(0,addFromPosition);
                                        var modifiedDNEnd = 
userDNToModify.substring(userDNToModify.indexOf("dmdName=secureportal"));
                                        var dstDN = 
modifiedDNBegin.concat(stringToAdd);
                                        dstDN.concat(modifiedDNEnd);
                                }        ]]>
                        </string>
                </forceValues>
        </dataset>
      </propertiesBasedSyncOptions>
    </task>

Here is my question :
Can I use anything else than « getDatasetFirstValueById" ? Because with this, I 
only work with the first occurrence of "uniqueMember", the rest is ignored.
Where could I find any documentation for what methods I can use with srcBean ?


_______________________________________________________________________
[Email_CBE.gif]Alexandre FOUCHET
Capgemini Application Services France - Division Aérospatiale & Défense

Rennes Atalante Champs Blancs
7 rue Claude Chappe - CS 67746 - 35577 CESSON SEVIGNE CEDEX
Tel.: +33 2 99 27 98 39
www.capgemini.com<http://www.capgemini.com/>
People matter, results count.

This message contains information that may be privileged or confidential and is 
the property of the Capgemini Group. It is intended only for the person to whom 
it is addressed. If you are not the intended recipient, you are not authorized 
to read, print, retain, copy, disseminate, distribute, or use this message or 
any part thereof. If you receive this message in error, please notify the 
sender immediately and delete all copies of this message.
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-users mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-users

Reply via email to