Hello Jon,

Thanks for the tip! after your suggestion I modified the js code a
bit. Our ldap directory already contains the uid of the member in the
memberUid attributes of the group objects. Updated code looks like
this:
<snip>
                var membersSrcDn = srcBean.getDatasetValuesById("memberUid");
                var membersDstDn = [];

                for  (var i=0; i<membersSrcDn.size(); i++) {
                  var uid = membersSrcDn.get(i);
                  var destDn = ldap.search("OU=People",
"(sAMAccountName=" + uid + ")");
                  if (destDn.size() == 0 || destDn.size() > 1) {
                    continue;
                  }
                  var destMemberDn = destDn.get(0) + "," +  ldap.getContextDn();
                  membersDstDn.push(destMemberDn);
                }
                membersDstDn
</snip>

Now I get this output:
Jun 07 16:20:18 - INFO  - Starting sync for group
Jun 07 16:20:18 - DEBUG - In object
"CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com":  List of
attributes considered for writing in destination: [member, cn,
description, objectClass]
Jun 07 16:20:18 - DEBUG - In object
"CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"member" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"member" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"cn" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"cn" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"objectClass" is in KEEP status
Jun 07 16:20:19 - DEBUG - Entry
"CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com" will not be
written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=tech,OU=Group,DC=adds,DC=example,DC=com":  List of attributes
considered for writing in destination: [member, cn, description,
objectClass]
Jun 07 16:20:19 - DEBUG - In object
"CN=tech,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member" is
in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=tech,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member" will
not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=tech,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" is in
FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=tech,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" will not
be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=tech,OU=Group,DC=adds,DC=example,DC=com":  Attribute "description"
is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=tech,OU=Group,DC=adds,DC=example,DC=com":  Attribute "description"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=tech,OU=Group,DC=adds,DC=example,DC=com":  Attribute "objectClass"
is in KEEP status
Jun 07 16:20:19 - DEBUG - Entry
"CN=tech,OU=Group,DC=adds,DC=example,DC=com" will not be written to
the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=finance,OU=Group,DC=adds,DC=example,DC=com":  List of attributes
considered for writing in destination: [member, cn, description,
objectClass]
Jun 07 16:20:19 - DEBUG - In object
"CN=finance,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member"
is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=finance,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=finance,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" is in
FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=finance,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" will
not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=finance,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=finance,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=finance,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"objectClass" is in KEEP status
Jun 07 16:20:19 - DEBUG - Entry
"CN=finance,OU=Group,DC=adds,DC=example,DC=com" will not be written to
the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=pm,OU=Group,DC=adds,DC=example,DC=com":  List of attributes
considered for writing in destination: [member, cn, description,
objectClass]
Jun 07 16:20:19 - DEBUG - In object
"CN=pm,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member" is in
FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=pm,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member" will
not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=pm,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" is in
FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=pm,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" will not
be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=pm,OU=Group,DC=adds,DC=example,DC=com":  Attribute "description"
is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=pm,OU=Group,DC=adds,DC=example,DC=com":  Attribute "description"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=pm,OU=Group,DC=adds,DC=example,DC=com":  Attribute "objectClass"
is in KEEP status
Jun 07 16:20:19 - DEBUG - Entry
"CN=pm,OU=Group,DC=adds,DC=example,DC=com" will not be written to the
destination
Jun 07 16:20:19 - DEBUG - In object
"CN=smbFinanceScanner,OU=Group,DC=adds,DC=example,DC=com":  List of
attributes considered for writing in destination: [member, cn,
description, objectClass]
Jun 07 16:20:19 - DEBUG - In object
"CN=smbFinanceScanner,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"member" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=smbFinanceScanner,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"member" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=smbFinanceScanner,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"cn" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=smbFinanceScanner,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"cn" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=smbFinanceScanner,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=smbFinanceScanner,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=smbFinanceScanner,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"objectClass" is in KEEP status
Jun 07 16:20:19 - DEBUG - Entry
"CN=smbFinanceScanner,OU=Group,DC=adds,DC=example,DC=com" will not be
written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=service,OU=Group,DC=adds,DC=example,DC=com":  List of attributes
considered for writing in destination: [member, cn, description,
objectClass]
Jun 07 16:20:19 - DEBUG - In object
"CN=service,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member"
is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=service,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=service,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" is in
FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=service,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" will
not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=service,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=service,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=service,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"objectClass" is in KEEP status
Jun 07 16:20:19 - DEBUG - Entry
"CN=service,OU=Group,DC=adds,DC=example,DC=com" will not be written to
the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=dev,OU=Group,DC=adds,DC=example,DC=com":  List of attributes
considered for writing in destination: [member, cn, description,
objectClass]
Jun 07 16:20:19 - DEBUG - In object
"CN=dev,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member" is in
FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=dev,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member" will
not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=dev,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" is in
FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=dev,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" will not
be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=dev,OU=Group,DC=adds,DC=example,DC=com":  Attribute "description"
is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=dev,OU=Group,DC=adds,DC=example,DC=com":  Attribute "description"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=dev,OU=Group,DC=adds,DC=example,DC=com":  Attribute "objectClass"
is in KEEP status
Jun 07 16:20:19 - DEBUG - Entry
"CN=dev,OU=Group,DC=adds,DC=example,DC=com" will not be written to the
destination
Jun 07 16:20:19 - DEBUG - In object
"CN=smpadmins,OU=Group,DC=adds,DC=example,DC=com":  List of attributes
considered for writing in destination: [member, cn, description,
objectClass]
Jun 07 16:20:19 - DEBUG - In object
"CN=smpadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member"
is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=smpadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=smpadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" is
in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=smpadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=smpadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=smpadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=smpadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"objectClass" is in KEEP status
Jun 07 16:20:19 - DEBUG - Entry
"CN=smpadmins,OU=Group,DC=adds,DC=example,DC=com" will not be written
to the destination
Jun 07 16:20:19 - ERROR - There is no future associated with operation
message ID 12, perhaps the operation would have been completed
Jun 07 16:20:19 - ERROR - There is no future associated with operation
message ID 12, perhaps the operation would have been completed
Jun 07 16:20:19 - DEBUG - In object
"CN=sales,OU=Group,DC=adds,DC=example,DC=com":  List of attributes
considered for writing in destination: [member, cn, description,
objectClass]
Jun 07 16:20:19 - DEBUG - In object
"CN=sales,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member" is
in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=sales,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=sales,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" is in
FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=sales,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" will
not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=sales,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=sales,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=sales,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"objectClass" is in KEEP status
Jun 07 16:20:19 - DEBUG - Entry
"CN=sales,OU=Group,DC=adds,DC=example,DC=com" will not be written to
the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=svn,OU=Group,DC=adds,DC=example,DC=com":  List of attributes
considered for writing in destination: [member, cn, description,
objectClass]
Jun 07 16:20:19 - DEBUG - In object
"CN=svn,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member" is in
FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=svn,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member" will
not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=svn,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" is in
FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=svn,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" will not
be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=svn,OU=Group,DC=adds,DC=example,DC=com":  Attribute "description"
is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=svn,OU=Group,DC=adds,DC=example,DC=com":  Attribute "description"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=svn,OU=Group,DC=adds,DC=example,DC=com":  Attribute "objectClass"
is in KEEP status
Jun 07 16:20:19 - DEBUG - Entry
"CN=svn,OU=Group,DC=adds,DC=example,DC=com" will not be written to the
destination
Jun 07 16:20:19 - DEBUG - In object
"CN=webadmins,OU=Group,DC=adds,DC=example,DC=com":  List of attributes
considered for writing in destination: [member, cn, description,
objectClass]
Jun 07 16:20:19 - DEBUG - In object
"CN=webadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member"
is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=webadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute "member"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=webadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn" is
in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=webadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute "cn"
will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=webadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" is in FORCE status
Jun 07 16:20:19 - DEBUG - In object
"CN=webadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"description" will not be written to the destination
Jun 07 16:20:19 - DEBUG - In object
"CN=webadmins,OU=Group,DC=adds,DC=example,DC=com":  Attribute
"objectClass" is in KEEP status

Is there any way I can enable more debugging? Like printing the whole
arrays or something like that?

Thanks,

Frederic

On Tue, Jun 7, 2016 at 4:05 PM, Jon C Kidder <[email protected]> wrote:
> It appears you do not have a dataset for cn.  Cn is the rdn of the record and 
> you must include at least one cn value that matches the cn value of the dn.
>
> -Jon C. Kidder
> American Electric Power
> Middleware Services
> Email: [email protected]
> Phone: 614-716-4970
>
> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Frederic Van 
> Espen
> Sent: Tuesday, June 07, 2016 9:51 AM
> To: [email protected]
> Subject: [lsc-users] group membership sync from openldap to active directory
>
>  This is an EXTERNAL email. STOP. THINK before you CLICK links or OPEN 
> attachments.
>
> **********************************************************************
> Hi,
>
> I'm making a first attempt to synchronize group membership from our openldap 
> server to our active directory server. Groups are created correctly, but 
> unfortunately I'm receiving some errors while syncing the group membership. 
> Here's the config I'm using right now:
>
> <lsc xmlns="http://lsc-project.org/XSD/lsc-core-2.1.xsd"; revision="0">
>   <connections>
>     <!-- Connection to Active Directory. -->
>     <ldapConnection>
>       <name>AD</name>
>       <url>ldaps://addc.adds.example.com:636/dc=example,dc=com</url>
>       <username>cn=Administrator,cn=Users,dc=adds,dc=example,dc=com</username>
>       <password>REDACTED</password>
>       <authentication>SIMPLE</authentication>
>       <pageSize>1000</pageSize>
>     </ldapConnection>
>     <!-- Connection to OpenLDAP. -->
>     <ldapConnection>
>       <name>openldap</name>
>       <url>ldaps://ldap.intranet.example.com:636/dc=example,dc=com</url>
>       <username>cn=admin,dc=example,dc=com</username>
>       <password>REDACTED</password>
>       <authentication>SIMPLE</authentication>
>       <pageSize>1000</pageSize>
>     </ldapConnection>
>   </connections>
>   <!-- Tasks configuration. -->
>   <tasks>
>     <!-- Task for synchronize users from OpenLDAP to Active Directory. -->
>     <task>
>       <name>SyncPeople</name>
>       <bean>org.lsc.beans.SimpleBean</bean>
>       <!-- LDAP source service. -->
>       <ldapSourceService>
>         <name>openldap-source-service</name>
>         <connection reference="openldap" />
>         <baseDn>ou=People,dc=example,dc=com</baseDn>
>         <pivotAttributes>
>           <string>uid</string>
>         </pivotAttributes>
>         <fetchedAttributes>
>           <string>cn</string>
>           <string>description</string>
>           <string>givenName</string>
>           <string>mail</string>
>           <string>sn</string>
>           <string>uid</string>
>           <string>userpassword</string>
>           <string>homePhone</string>
>           <string>randomstuff</string>
>         </fetchedAttributes>
>         <getAllFilter><![CDATA[(objectClass=inetOrgPerson)]]></getAllFilter>
>         
> <getOneFilter><![CDATA[(&(objectClass=inetOrgPerson)(uid={uid}))]]></getOneFilter>
>         
> <cleanFilter><![CDATA[(&(objectClass=inetOrgPerson)(uid={sAMAccountName}))]]></cleanFilter>
>       </ldapSourceService>
>       <!-- LDAP destination service. -->
>       <ldapDestinationService>
>         <name>ad-dst-service</name>
>         <connection reference="AD" />
>         <baseDn>ou=People,dc=adds,dc=example,dc=com</baseDn>
>         <pivotAttributes>
>           <string>sAMAccountName</string>
>         </pivotAttributes>
>         <fetchedAttributes>
>           <string>objectclass</string>
>           <string>cn</string>
>           <string>description</string>
>           <string>givenName</string>
>           <string>mail</string>
>           <string>pwdLastSet</string>
>           <string>sAMAccountName</string>
>           <string>sn</string>
>           <string>unicodePwd</string>
>           <string>userAccountControl</string>
>           <string>userPrincipalName</string>
>           <string>homePhone</string>
>         </fetchedAttributes>
>         <getAllFilter><![CDATA[(objectClass=user)]]></getAllFilter>
>         
> <getOneFilter><![CDATA[(&(objectClass=user)(sAMAccountName={uid}))]]></getOneFilter>
>       </ldapDestinationService>
>       <!-- Synchronization rules. -->
>       <propertiesBasedSyncOptions>
>         <mainIdentifier>js:"cn=" +
> srcBean.getDatasetFirstValueById("cn") + ",ou=" + getOu(srcBean.DN) + 
> ",dc=adds,dc=example,dc=com"</mainIdentifier>
>         <defaultDelimiter>;</defaultDelimiter>
>         <defaultPolicy>FORCE</defaultPolicy>
>         <conditions>
>           <create>true</create>
>           <update>true</update>
>           <delete>true</delete>
>           <changeId>true</changeId>
>         </conditions>
>         <!-- objectClass = user/organizationalPerson/person/top -->
>         <dataset>
>           <name>objectClass</name>
>           <policy>KEEP</policy>
>           <createValues>
>             <string>"user"</string>
>             <string>"organizationalPerson"</string>
>             <string>"person"</string>
>             <string>"top"</string>
>           </createValues>
>           <delimiter>,</delimiter>
>         </dataset>
>         <!-- sAMAccountName = uid -->
>         <dataset>
>           <name>sAMAccountName</name>
>           <policy>KEEP</policy>
>           <createValues>
>             <string>srcBean.getDatasetFirstValueById("uid")</string>
>           </createValues>
>         </dataset>
>         <!-- userPrincipalName = uid + "@domainName.org" -->
>         <dataset>
>           <name>userPrincipalName</name>
>           <policy>FORCE</policy>
>           <forceValues>
>             <string>srcBean.getDatasetFirstValueById("uid") + 
> "@example.com"</string>
>           </forceValues>
>         </dataset>
>         <!-- Configuring account like normal and non admin. -->
>         <dataset>
>           <name>userAccountControl</name>
>           <policy>KEEP</policy>
>           <createValues>
>             <string>AD.userAccountControlSet( "0", [ 
> AD.UAC_SET_PASSWD_NOTREQD,AD.UAC_SET_NORMAL_ACCOUNT ])</string>
>           </createValues>
>         </dataset>
>         <!-- pwdLastSet = -1; no require to user for changing password on 
> next logon. -->
>         <dataset>
>           <name>pwdLastSet</name>
>           <policy>KEEP</policy>
>           <createValues>
>             <string>"0"</string>
>           </createValues>
>         </dataset>
>         <dataset>
>           <name>unicodePwd</name>
>           <policy>KEEP</policy>
>           <createValues>
>             
> <string>AD.getUnicodePwd(srcBean.getDatasetFirstValueById("userpassword"))</string>
>           </createValues>
>         </dataset>
>       </propertiesBasedSyncOptions>
>       <scriptInclude>
>         <string>../scripts/getOu.js</string>
>       </scriptInclude>
>     </task>
>     <!-- Task for synchronize groups from OpenLDAP to Active Directory. -->
>
>     <task>
>       <name>group</name>
>       <bean>org.lsc.beans.SimpleBean</bean>
>       <asyncLdapSourceService>
>         <name>group-source-service</name>
>         <connection reference="openldap" />
>         <baseDn>ou=Group,dc=example,dc=com</baseDn>
>         <pivotAttributes>
>           <string>cn</string>
>         </pivotAttributes>
>         <fetchedAttributes>
>           <string>cn</string>
>           <string>description</string>
>           <string>memberUid</string>
>         </fetchedAttributes>
>         <getAllFilter><![CDATA[(objectClass=posixGroup)]]></getAllFilter>
>         
> <getOneFilter><![CDATA[(&(objectClass=posixGroup)(cn={cn}))]]></getOneFilter>
>         
> <cleanFilter><![CDATA[(&(objectClass=posixGroup)(cn={cn}))]]></cleanFilter>
>         <serverType>OpenLDAP</serverType>
>       </asyncLdapSourceService>
>       <ldapDestinationService>
>         <name>group-dst-service</name>
>         <connection reference="AD" />
>         <baseDn>OU=Group,DC=adds,DC=example,DC=com</baseDn>
>         <pivotAttributes>
>           <string>cn</string>
>         </pivotAttributes>
>         <fetchedAttributes>
>           <string>cn</string>
>           <string>description</string>
>           <string>member</string>
>           <string>objectClass</string>
>         </fetchedAttributes>
>         <getAllFilter><![CDATA[(objectClass=group)]]></getAllFilter>
>         
> <getOneFilter><![CDATA[(&(objectClass=group)(cn={cn}))]]></getOneFilter>
>       </ldapDestinationService>
>       <propertiesBasedSyncOptions>
>         <mainIdentifier>js:"cn=" +
> javax.naming.ldap.Rdn.escapeValue(srcBean.getDatasetFirstValueById("cn"))
> + ",OU=Group,DC=adds,DC=example,DC=com"</mainIdentifier>
>         <defaultDelimiter>;</defaultDelimiter>
>         <defaultPolicy>FORCE</defaultPolicy>
>         <conditions>
>           <create>true</create>
>           <update>true</update>
>           <delete>true</delete>
>           <changeId>true</changeId>
>         </conditions>
>         <dataset>
>           <name>objectclass</name>
>           <policy>KEEP</policy>
>           <createValues>
>             <string>"group"</string>
>             <string>"top"</string>
>           </createValues>
>         </dataset>
>         <dataset>
>           <name>member</name>
>           <policy>FORCE</policy>
>           <forceValues>
>             <string>
> <![CDATA[
>               rdjs:
>
>                 var membersSrcDn = srcBean.getDatasetValuesById("memberUid");
>                 var membersDstDn = [];
>
>                 for  (var i=0; i<membersSrcDn.size(); i++) {
>                   var memberSrcDn = membersSrcDn.get(i);
>                   var uid = "";
>                   try {
>                     uid = srcLdap.attribute(memberSrcDn, "uid").get(0);
>                   } catch(e) {
>                     continue;
>                   }
>                   var destDn = ldap.search("ou=People", "(sAMAccountName=" + 
> uid + ")");
>                   if (destDn.size() == 0 || destDn.size() > 1) {
>                     continue;
>                   }
>                   var destMemberDn = destDn.get(0) + "," +  
> ldap.getContextDn();
>                   membersDstDn.push(destMemberDn);
>                 }
>                 membersDstDn
>              ]]>
>             </string>
>           </forceValues>
>         </dataset>
>       </propertiesBasedSyncOptions>
>     </task>
>   </tasks>
> </lsc>
>
>
> This is the error I'm receiving:
> Jun 07 15:43:40 - ERROR - All entries: 69, to modify entries: 1, successfully 
> modified entries: 0, errors: 1 Jun 07 15:43:40 - INFO  - Starting clean for 
> SyncPeople Jun 07 15:43:40 - DEBUG - Using pagedResults control for 1000 
> entries at a time Jun 07 15:43:41 - INFO  - All entries: 68, to modify 
> entries: 0, successfully modified entries: 0, errors: 0 Jun 07 15:43:41 - 
> INFO  - Starting sync for group Jun 07 15:43:41 - DEBUG - In object
> "CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com":  List of 
> attributes considered for writing in destination: [member, cn, description, 
> objectClass] Jun 07 15:43:41 - DEBUG - In object
> "CN=vpn-smp-production,OU=Group,DC=adds,DC=example,DC=com":  Attribute 
> "member" is in FORCE status Jun 07 15:43:41 - ERROR - Programmatic error
> java.lang.reflect.InvocationTargetException: null at 
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_67] at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> ~[na:1.7.0_67]
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[na:1.7.0_67]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_67] at 
> org.lsc.jndi.ScriptableObject.wrap(ScriptableObject.java:92)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.jndi.ScriptableObject.wrapString(ScriptableObject.java:155)
> [lsc-core-2.1.3.jar:na]
> at 
> org.lsc.jndi.ScriptableJndiServices.attribute(ScriptableJndiServices.java:211)
> [lsc-core-2.1.3.jar:na]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_67] 
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> ~[na:1.7.0_67]
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[na:1.7.0_67]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_67] at 
> sun.org.mozilla.javascript.internal.MemberBox.invoke(MemberBox.java:167)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.NativeJavaMethod.call(NativeJavaMethod.java:245)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.Interpreter.interpretLoop(Interpreter.java:1706)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.Interpreter.interpret(Interpreter.java:849)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.InterpretedFunction.call(InterpretedFunction.java:162)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.ContextFactory.doTopCall(ContextFactory.java:430)
> [na:1.7.0_67]
> at 
> com.sun.script.javascript.RhinoScriptEngine$1.superDoTopCall(RhinoScriptEngine.java:116)
> [na:1.7.0_67]
> at 
> com.sun.script.javascript.RhinoScriptEngine$1.doTopCall(RhinoScriptEngine.java:109)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.ScriptRuntime.doTopCall(ScriptRuntime.java:3160)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.InterpretedFunction.exec(InterpretedFunction.java:173)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.Context.evaluateReader(Context.java:1169)
> [na:1.7.0_67]
> at 
> com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:214)
> [na:1.7.0_67]
> at 
> com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:240)
> [na:1.7.0_67]
> at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233)
> [na:1.7.0_67]
> at org.lsc.utils.JScriptEvaluator.instanceEval(JScriptEvaluator.java:222)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.utils.JScriptEvaluator.evalToStringList(JScriptEvaluator.java:119)
> [lsc-core-2.1.3.jar:na]
> at 
> org.lsc.utils.ScriptingEvaluator.evalToStringList(ScriptingEvaluator.java:136)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.beans.BeanComparator.getValuesToSet(BeanComparator.java:602)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.beans.BeanComparator.getUpdatedObject(BeanComparator.java:284)
> [lsc-core-2.1.3.jar:na]
> at 
> org.lsc.beans.BeanComparator.calculateModifications(BeanComparator.java:176)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:773)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:707)
> [lsc-core-2.1.3.jar:na]
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> [na:1.7.0_67]
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [na:1.7.0_67]
> at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67] Caused by: 
> java.lang.RuntimeException:
> org.apache.directory.api.ldap.model.exception.LdapInvalidDnException:
> ERR_04202 A value is missing on some RDN at 
> org.lsc.jndi.JndiServices.rewriteBase(JndiServices.java:659)
> ~[lsc-core-2.1.3.jar:na]
> at org.lsc.jndi.JndiServices.doReadEntry(JndiServices.java:691)
> ~[lsc-core-2.1.3.jar:na]
> at org.lsc.jndi.JndiServices.readEntry(JndiServices.java:666)
> ~[lsc-core-2.1.3.jar:na]
> at org.lsc.jndi.ScriptableJndiServices._attr(ScriptableJndiServices.java:218)
> [lsc-core-2.1.3.jar:na]
> ... 36 common frames omitted
> Caused by: 
> org.apache.directory.api.ldap.model.exception.LdapInvalidDnException:
> ERR_04202 A value is missing on some RDN at 
> org.apache.directory.api.ldap.model.name.Dn.<init>(Dn.java:279)
> ~[api-all-1.0.0-M22.jar:1.0.0-M22]
> at org.apache.directory.api.ldap.model.name.Dn.<init>(Dn.java:211)
> ~[api-all-1.0.0-M22.jar:1.0.0-M22]
> at org.lsc.jndi.JndiServices.rewriteBase(JndiServices.java:647)
> ~[lsc-core-2.1.3.jar:na]
> ... 39 common frames omitted
> Jun 07 15:43:41 - ERROR - Programmatic error
> java.lang.reflect.InvocationTargetException: null at 
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_67] at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> ~[na:1.7.0_67]
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[na:1.7.0_67]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_67] at 
> org.lsc.jndi.ScriptableObject.wrap(ScriptableObject.java:92)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.jndi.ScriptableObject.wrapString(ScriptableObject.java:155)
> [lsc-core-2.1.3.jar:na]
> at 
> org.lsc.jndi.ScriptableJndiServices.attribute(ScriptableJndiServices.java:211)
> [lsc-core-2.1.3.jar:na]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_67] 
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> ~[na:1.7.0_67]
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[na:1.7.0_67]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_67] at 
> sun.org.mozilla.javascript.internal.MemberBox.invoke(MemberBox.java:167)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.NativeJavaMethod.call(NativeJavaMethod.java:245)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.Interpreter.interpretLoop(Interpreter.java:1706)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.Interpreter.interpret(Interpreter.java:849)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.InterpretedFunction.call(InterpretedFunction.java:162)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.ContextFactory.doTopCall(ContextFactory.java:430)
> [na:1.7.0_67]
> at 
> com.sun.script.javascript.RhinoScriptEngine$1.superDoTopCall(RhinoScriptEngine.java:116)
> [na:1.7.0_67]
> at 
> com.sun.script.javascript.RhinoScriptEngine$1.doTopCall(RhinoScriptEngine.java:109)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.ScriptRuntime.doTopCall(ScriptRuntime.java:3160)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.InterpretedFunction.exec(InterpretedFunction.java:173)
> [na:1.7.0_67]
> at 
> sun.org.mozilla.javascript.internal.Context.evaluateReader(Context.java:1169)
> [na:1.7.0_67]
> at 
> com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:214)
> [na:1.7.0_67]
> at 
> com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:240)
> [na:1.7.0_67]
> at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233)
> [na:1.7.0_67]
> at org.lsc.utils.JScriptEvaluator.instanceEval(JScriptEvaluator.java:222)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.utils.JScriptEvaluator.evalToStringList(JScriptEvaluator.java:119)
> [lsc-core-2.1.3.jar:na]
> at 
> org.lsc.utils.ScriptingEvaluator.evalToStringList(ScriptingEvaluator.java:136)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.beans.BeanComparator.getValuesToSet(BeanComparator.java:602)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.beans.BeanComparator.getUpdatedObject(BeanComparator.java:284)
> [lsc-core-2.1.3.jar:na]
> at 
> org.lsc.beans.BeanComparator.calculateModifications(BeanComparator.java:176)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:773)
> [lsc-core-2.1.3.jar:na]
> at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:707)
> [lsc-core-2.1.3.jar:na]
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> [na:1.7.0_67]
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [na:1.7.0_67]
> at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67] Caused by: 
> java.lang.RuntimeException:
> org.apache.directory.api.ldap.model.exception.LdapInvalidDnException:
> ERR_04202 A value is missing on some RDN at 
> org.lsc.jndi.JndiServices.rewriteBase(JndiServices.java:659)
> ~[lsc-core-2.1.3.jar:na]
> at org.lsc.jndi.JndiServices.doReadEntry(JndiServices.java:691)
> ~[lsc-core-2.1.3.jar:na]
> at org.lsc.jndi.JndiServices.readEntry(JndiServices.java:666)
> ~[lsc-core-2.1.3.jar:na]
> at org.lsc.jndi.ScriptableJndiServices._attr(ScriptableJndiServices.java:218)
> [lsc-core-2.1.3.jar:na]
> ... 36 common frames omitted
>
> I assume the error is in the javascript code, but I'm at a loss on finding 
> out where exactly, or how to do the debugging. Can anyone point me in the 
> right direction?
>
> Any help would be greatly appreciated!
>
> Cheers,
>
> Frederic
> _______________________________________________________________
> Ldap Synchronization Connector (LSC) - http://lsc-project.org
>
> lsc-users mailing list
> [email protected]
> http://lists.lsc-project.org/listinfo/lsc-users
_______________________________________________________________
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