Please respect the syntax. properties files and Javascript are special, you can't write that.
Ths syntax is : lsc.tasks.<taskName>.dn = <script> where <script> is a Javascript script like this one, and where you must escape carriage return. Le Jeu 17 juin 2010 10:22, [email protected] a écrit : > The script didn't worked (the destination dn was undefined) and I changed > it into : > > var dn = "" + srcBean.getDistinguishedName() ; > var pos = dn.lastIndexOf("dc=testDomain,dc=com") ; > if (pos > 0) { > dn = dn.substring(0, pos - 1); > } > lsc.tasks.ADpam.dn = dn; > > With this script the telephone Number are added but there still have a lot > of errors : > juin 17 10:13:59 - ERROR - org.mozilla.javascript.EcmaError: > ReferenceError: "dn > " n'est pas dÚfini (<cmd>#1) > juin 17 10:13:59 - ERROR - org.mozilla.javascript.EcmaError: > ReferenceError: "dn > " n'est pas dÚfini (<cmd>#1) > juin 17 10:13:59 - ERROR - org.mozilla.javascript.EcmaError: > ReferenceError: "dn > " n'est pas dÚfini (<cmd>#1) > juin 17 10:13:59 - INFO - # Updating entry ou=UnitLevel2b,ou=UnitLevel1a > for AD > pam > dn: ou=UnitLevel2b,ou=UnitLevel1a,dc=testDomain,dc=com > changetype: modify > add: telephoneNumber > telephoneNumber: 0477000000 > These errors are printed for each unit... Do I have to ignore these > errors? > > Morover the unit I wanted to be created is not : > juin 17 10:13:59 - ERROR - org.mozilla.javascript.EcmaError: > ReferenceError: "dn > " n'est pas dÚfini (<cmd>#1) > juin 17 10:13:59 - WARN - No DN set! Trying to generate an DN based on > the uid > attribute! > juin 17 10:13:59 - ERROR - Error while synchronizing ID {ou=UnitLevel4c, > st=4c}: > java.lang.RuntimeException: -- Development error: No RDN found (uid by > default) > ! > How can I create the missing unit in the destination? > > François Chapuis > > > -------- Message d'origine-------- > De: Raphaël Ouazana-Sustowski [mailto:[email protected]] > Date: jeu. 17/06/2010 10:00 > À: François Chapuis ([email protected]) > Cc: Gunter Holzer; [email protected] > Objet : Re: RE : ldap2ldap synchro task configuration > > This is my fault... the script was not tested (and is still not...). > Please try: > lsc.tasks.ADpam.dn = var dn = "" + srcBean.getDistinguishedName() ; \ > var pos = dn.lastIndexOf("dc=testDomain,dc=com") ; \ > if (pos > 0) { \ > dn = dn.substring(0, pos - 1); \ > } \ > dn > > Regards, > Raphaël Ouazana. > > > Le Jeu 17 juin 2010 09:53, [email protected] a écrit : >> It worked when I had filtered with one item : >> lsc.tasks.ADpam.srcService.filterAll = >> (&(ou=UnitLevel2b)(objectClass=organizationalUnit)) >> Thank you all for your help >> However I tried to synchromize all units together by changing the >> command >> filter >> lsc.tasks.ADpam.srcService.filterAll = >> (&(ou=*)(objectClass=organizationalUnit)) >> Now I have a problem with the DN when a unit was in the source but not >> in >> the destination. I wished the unit in the source to be added in the >> destination. >> Here are an extract of the errors: >> juin 17 09:38:36 - ERROR - org.mozilla.javascript.EcmaError: >> ReferenceError: "dn >> " n'est pas dÚfini (<cmd>#1) >> juin 17 09:38:36 - WARN - No DN set! Trying to generate an DN based on >> the uid >> attribute! >> juin 17 09:38:36 - ERROR - Error while synchronizing ID {ou=UnitLevel4c, >> st=4c}: >> java.lang.RuntimeException: -- Development error: No RDN found (uid by >> default) >> ! >> juin 17 09:38:36 - ERROR - org.mozilla.javascript.EcmaError: >> ReferenceError: "dn >> " n'est pas dÚfini (<cmd>#1) >> juin 17 09:38:36 - ERROR - org.mozilla.javascript.EcmaError: >> ReferenceError: "dn >> " n'est pas dÚfini (<cmd>#1) >> juin 17 09:38:36 - ERROR - org.mozilla.javascript.EcmaError: TypeError: >> Cannot c >> all method "substring" of null (<cmd>#1) >> >> I think that Because the dn is not already created in the destination It >> can't change it. How about creating it? >> There are a lot more errors after but I think they are linked with. >> >> Regards, >> François Chapuis >> >> -------- Message d'origine-------- >> De: Raphaël Ouazana-Sustowski [mailto:[email protected]] >> Date: jeu. 17/06/2010 09:29 >> À: François Chapuis ([email protected]) >> Cc: Gunter Holzer; [email protected] >> Objet : Re: ldap2ldap synchro task configuration >> >> Hi, >> >> OK I see the problem: the dn is complete so the suffix is added twice. >> >> Please try the following: >> lsc.tasks.ADpam.dn = srcBean.getDistinguishedName().substring(0, >> dn.lastIndexOf("dc=testDomain,dc=com") - 1) >> >> >> Le Jeu 17 juin 2010 09:24, [email protected] a écrit : >>> Hi, >>> I changed it but it makes the same error. It seems that it wants to >>> delete >>> the previous item but can't do it because this item has children. >>> Here is again the error : >>> juin 17 09:15:04 - WARN - WARNING: updating the RDN of the entry will >>> cancel ot >>> her modifications! Relaunch synchronization to complete update. >>> juin 17 09:15:04 - ERROR - Object ou=UnitLevel2b,ou=UnitLevel1a not >>> deleted beca >>> use it has children (LDAP error code 66 received). To delete this entry >>> and it's >>> subtree, set the dst.java.naming.recursivedelete property to true >>> juin 17 09:15:04 - ERROR - Error while synchronizing ID >>> ou=UnitLevel2b,ou=UnitLe >>> vel1a: java.lang.Exception: Technical problem while applying >>> modifications >>> to di >>> rectory >>> dn: ou=UnitLevel2b,ou=UnitLevel1a,dc=testDomain,dc=com >>> changetype: modrdn >>> newrdn: ou=UnitLevel2b >>> deleteoldrdn: 1 >>> newsuperior: ou=UnitLevel1a,dc=testDomain,dc=com,dc=testDomain,dc=com >>> >>> Do I really have to set the dst.java.naming.recursivedelete property to >>> true? Is there any other way not to delete the element? >>> >>> Regards, >>> François Chapuis >>> >>> -------- Message d'origine-------- >>> De: Raphaël Ouazana-Sustowski [mailto:[email protected]] >>> Date: mer. 16/06/2010 18:03 >>> À: François Chapuis ([email protected]) >>> Cc: Gunter Holzer; [email protected] >>> Objet : Re: RE : [lsc-users] RE : RE : ldap2ldap synchro tasks >>> >>> If the dn is the same after and before, why don't you simply put: >>> lsc.tasks.ADpam.dn = srcBean.getDistinguishedName() >>> >>> Regards, >>> Raphaël Ouazana. >>> >>> Le Mer 16 juin 2010 18:00, [email protected] a écrit : >>>> I wanted to use the second solution so here was my DN creator : >>>> lsc.tasks.ADpam.dn = "ou=" + srcBean.getAttributeValueById("ou") + >>>> ","+srcBean.getDistinguishedName() >>>> There is now a new error >>>> juin 16 17:47:06 - WARN - WARNING: updating the RDN of the entry will >>>> cancel ot >>>> her modifications! Relaunch synchronization to complete update. >>>> juin 16 17:47:06 - ERROR - Object ou=UnitLevel2b,ou=UnitLevel1a not >>>> deleted beca >>>> use it has children (LDAP error code 66 received). To delete this >>>> entry >>>> and it's >>>> subtree, set the dst.java.naming.recursivedelete property to true >>>> juin 16 17:47:06 - ERROR - Error while synchronizing ID >>>> ou=UnitLevel2b,ou=UnitLe >>>> vel1a: java.lang.Exception: Technical problem while applying >>>> modifications >>>> to di >>>> rectory >>>> dn: ou=UnitLevel2b,ou=UnitLevel1a,dc=testDomain,dc=com >>>> changetype: modrdn >>>> newrdn: ou=UnitLevel2b >>>> deleteoldrdn: 1 >>>> newsuperior: >>>> ou=UnitLevel2b,ou=UnitLevel1a,dc=testDomain,dc=com,dc=testDomain,dc >>>> =com >>>> >>>> It maybe want to delete the current slot in order to create a new one >>>> to >>>> the specified dn but it can't because it has children. Quite strange >>>> because I don't want to change the dn (the new and the ancient are the >>>> same). >>>> >>>> >>>> -------- Message d'origine-------- >>>> De: Raphaël Ouazana-Sustowski [mailto:[email protected]] >>>> Date: mer. 16/06/2010 17:25 >>>> À: François Chapuis ([email protected]) >>>> Cc: Gunter Holzer; [email protected] >>>> Objet : Re: [lsc-users] RE : RE : ldap2ldap synchro tasks >>>> >>>> Hi, >>>> >>>> In fact the two solutions seems to be feasible: >>>> >>>> Le Mer 16 juin 2010 17:07, [email protected] a écrit : >>>>> I think that two solutions are possible but I don't know how to do it >>>>> my method filterAll : >>>>> lsc.tasks.ADpam.srcService.filterAll = >>>>> (&(ou=*)(objectClass=organizationalUnit)) >>>>> This method should be modified in something like: >>>>> lsc.tasks.ADpam.srcService.filterAll = >>>>> (&(ou=*)(objectClass=organizationalUnit)(dn=ou=UnitLevel1a,dc=testDomain,dc=com)) >>>>> (this doesn't work because dn in not an attribute) and I will have >>>>> two >>>>> make one task by level of hierarchy. >>>> >>>> No, but extended filters (if AD support them) exist: >>>> (entryDN:dnSubtreeMatch:=ou=UnitLevel1a,dc=testDomain,dc=com) >>>> >>>>> The other solution is to modify the dn where it is printed >>>>> here is the curent dn constructor: >>>>> lsc.tasks.ADpam.dn = "ou=" + srcBean.getAttributeValueById("ou") + >>>>> ",ou=UnitLevel1a" >>>>> lsc.tasks.ADpam.dn = "ou=" + srcBean.getAttributeValueById("ou") +"," >>>>> srcBean.getDN() >>>>> but this method doesn't exist. >>>>> Have you got suggestions? >>>> >>>> I think you are looking for the getDistinguishedName() method (named >>>> getDistinguishName in old versions). >>>> >>>> Regards, >>>> Raphaël Ouazana. >>>> >>>>> -------- Message d'origine-------- >>>>> De: Gunter Holzer [mailto:[email protected]] >>>>> Date: mer. 16/06/2010 15:37 >>>>> À: François Chapuis ([email protected]) >>>>> Cc: [email protected] >>>>> Objet : AW: RE : ldap2ldap synchro tasks >>>>> >>>>> How does your DN constructor look like? >>>>> >>>>> lsc.tasks.ADuser.dn = "CN=" + srcBean.getAttributeValueById("CN") + >>>>> ",OU=OpenLDAP" >>>>> >>>>> Von: [email protected] [mailto:[email protected]] >>>>> Gesendet: Mittwoch, 16. Juni 2010 15:32 >>>>> An: Gunter Holzer >>>>> Cc: [email protected] >>>>> Betreff: RE : ldap2ldap synchro tasks >>>>> >>>>> >>>>> This time it runned but I have some errors and warning >>>>> The first error comes from the fact that there is no UnitLevel4c in >>>>> my >>>>> destination serveur but I wanted this unit to be added : >>>>> juin 16 14:55:05 - ERROR - Error while adding entry >>>>> ou=UnitLevel4c,ou=UnitLevel1 >>>>> a in directory :javax.naming.directory.SchemaViolationException: >>>>> [LDAP: >>>>> error co >>>>> de 65 - entry has no objectClass attribute]; remaining name >>>>> 'ou=UnitLevel4c,ou=U >>>>> nitLevel1a' >>>>> juin 16 14:55:05 - ERROR - Error while synchronizing ID >>>>> ou=UnitLevel4c,ou=UnitLe >>>>> vel1a: java.lang.Exception: Technical problem while applying >>>>> modifications >>>>> to di >>>>> rectory >>>>> dn: ou=UnitLevel4c,ou=UnitLevel1a,dc=testDomain,dc=com >>>>> changetype: add >>>>> ou: UnitLevel4c >>>>> telephoneNumber: 0478444500 >>>>> st: 4c >>>>> >>>>> >>>>> The following INFO shows that all my sub-entries which were not >>>>> direct >>>>> sub-entries of UnitLevel1a are changed to sub-entries of UnitLevel1 >>>>> and >>>>> their telephoneNumber are not modified. >>>>> My hierarchy was like that in the source: >>>>> ou=UnitLevel1a >>>>> ou=UnitLevel2a >>>>> ou=UnitLevel3a >>>>> ou=UnitLevel4a >>>>> ou=UnitLevel4b >>>>> ou=UnitLevel3b >>>>> ou=UnitLevel4c >>>>> ou=UnitLevel2b >>>>> ou=UnitLevel3c >>>>> And after synchronization in the destination: >>>>> ou=UnitLevel1a >>>>> ou=UnitLevel2a >>>>> ou=UnitLevel2b >>>>> ou=UnitLevel3a >>>>> ou=UnitLevel3b >>>>> ou=UnitLevel3c >>>>> ou=UnitLevel4a >>>>> ou=UnitLevel4b >>>>> And except UnitLevel2a and UnitLevel2b no on has got the new >>>>> telephone >>>>> number. >>>>> One of the INFO : >>>>> juin 16 14:55:05 - INFO - # Renaming entry >>>>> ou=UnitLevel4b,ou=UnitLevel3a,ou=Uni >>>>> tLevel2a,ou=UnitLevel1a for ADpam >>>>> dn: >>>>> ou=UnitLevel4b,ou=UnitLevel3a,ou=UnitLevel2a,ou=UnitLevel1a,dc=testDomain,dc >>>>> =com >>>>> changetype: modrdn >>>>> newrdn: ou=UnitLevel4b >>>>> deleteoldrdn: 1 >>>>> newsuperior: ou=UnitLevel1a,dc=testDomain,dc=com >>>>> >>>>> What is the procedure in order to not to change the rdn? >>> >> >> >> >> >> >> > > > > > > _______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-users mailing list [email protected] http://lists.lsc-project.org/listinfo/lsc-users

