Thanks for your help, Clément... and putting up with my lack of skills ;)
This seems to be working for me now:

<dataset>
          <name>member</name>
          <policy>FORCE</policy>
          <forceValues>
            <string>
<![CDATA[js:
   var membersSrcDn = srcBean.getDatasetValuesById("memberUid").toArray();
   var memberUidValues = [];
      for  (var i=0; i<membersSrcDn.length; i++) {
var memberSrcDn = "uid="+membersSrcDn[i]+",OU=People,DC=ldapcompany,DC=work";
<!--         java.lang.System.out.println("Ldap DN: " + memberSrcDn);   -->
         var agriUid = "";
         try {
           agriCN = srcLdap.attribute(memberSrcDn, "cn").get(0);
<!--           java.lang.System.out.println("agriCN: " + agriCN); -->
         } catch (e) {
           continue;
         }
var destMembersDn = "CN="+agriCN+",OU=Users,OU=ADDepartment,DC=adcompany,DC=local"; if (parseInt(destMembersDn.length) == 0 && parseInt(destMembersDn.length) > 1) {
           continue;
         }  // not sure why Im doing this
         try {
var isDestDN = ldap.attribute(destMembersDn, 'distinguishedname').get(0);
<!--         java.lang.System.out.println("isDestDN: " + isDestDN);   -->
            memberUidValues.push(destMembersDn);
         } catch (e) {
            continue;
         }
      }
   memberUidValues
]]>
            </string>
          </forceValues>
        </dataset>

Regards,
George

On 10/29/2012 07:41 PM, Clément OUDOT wrote:
2012/10/29 George Dobson <[email protected]>:
Hi Clement,

I tried a different example again and also using the println for debugging
as seen in another post.

         <dataset>
           <name>member</name>
           <policy>FORCE</policy>
           <forceValues>
             <string>
<![CDATA[
    var membersSrcDn = srcBean.getDatasetValuesById("memberUid").toArray();
    var memberUidValues = [];
       for  (var i=0; i<membersSrcDn.length; i++) {
          var memberSrcDn = membersSrcDn[i];
          java.lang.System.out.println("memberSrc: " + memberSrcDn);
          var agriUid = "";
          try {
            agriUid = srcLdap.attribute(memberSrcDn, "uid").get(0);
            java.lang.System.out.println("agriUid: " + agriUid);   // NOT
EXECUTED

          } catch(e) {
          continue;
          }
          var destMembersDn = ldap.search("ou=UsersTEST", "(agriUid=" +
agriUid + ")");
          if (destMembersDn.size() == 0 || destMembersDn.size() > 1) {
            continue;
          }
          var destMemberDn = destMembersDn.get(0);
          var memberUid = ldap.attribute(destMemberDn, "uid").get(0);
          memberUidValues.push (memberUid);
       }
    memberUidValues
]]>
             </string>
           </forceValues>
         </dataset>


I'm seeing that the agriUid = srcLdap.attribute(memberSrcDn, "uid").get(0);
must be throwing the following (since the "agriUid: " line is never
printed):

memberSrc: akhoudair
Oct 29 11:45:11 - ERROR - Programmatic error
java.lang.reflect.InvocationTargetException: null
     at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) ~[na:na]

     at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:1.6.0_24]
     at java.lang.reflect.Method.invoke(Method.java:616) ~[na:1.6.0_24]
     at org.lsc.jndi.ScriptableObject.wrap(ScriptableObject.java:92)
[lsc-core-2.0.jar:na]
     at org.lsc.jndi.ScriptableObject.wrapString(ScriptableObject.java:155)
[lsc-core-2.0.jar:na]
     at
org.lsc.jndi.ScriptableJndiServices.attribute(ScriptableJndiServices.java:211)
[lsc-core-2.0.jar:na]
     at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) ~[na:na]


Hi George,


you try to do a search on a DN but you just provide an uid...

Try for example : userDn = "uid="+memberSrcDn+",yourpeoplebranch" and
then do the srcLdap.attribute on userDn.

Clément.

_______________________________________________________________
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