On Fri, Mar 4, 2016 at 12:00 PM, <[email protected]> wrote:
> > Hi, > > you should be able to do all that you need in a single task. The problem > may be with the pivotAttribute, which is used by LSC to know if the > entry already exists in destination. If LSC tries to add existing > entries, it means it did not find them. So try to search on this side. > > If you need more help, you will have to send your complete configuration > (lsc.xml and iBatis files). > > -- > Cl?ment OUDOT > Consultant en logiciels libres, Expert infrastructure et s?curit? > Savoir-faire Linux > Hi Clement, I'm not sure what is wrong if you could take a look, please. I tried changing "mainIdentifier" tag value but it did not change the outcome. I still get lsc trying to insert instead of update existing records in the database. I'm attaching lsc.xml, InsertOrgPerson.xml and customer_user.ddl.sql if you could take a look and point me to what is wrong with this configuration. Thank you, Misel
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <sqlMap namespace="InetOrgPerson"> <select id="getInetOrgPerson" resultClass="java.util.HashMap" parameterClass="java.util.Map"> SELECT 'inetOrgPerson' objectClass , u.login AS uid , u.pw AS userPassword , u.email AS primaryMail , u.title AS personalTitle , u.first_name AS cn , u.last_name AS sn , u.comments AS o , u.country AS c , (CASE u.valid_id WHEN 1 THEN 'TRUE' ELSE 'FALSE' END) AS userEnabled FROM customer_user AS u WHERE u.login = #login# </select> <insert id="insertInetOrgPerson" parameterClass="java.util.Map"> INSERT INTO customer_user( login , email , pw , customer_id , title , first_name , last_name , country , comments , valid_id , create_time , create_by , change_time , change_by ) VALUES( #login# , #email# , '' , 'ELU_UNASSIGNED' , #title# , #first_name# , #last_name# , #country# , #comments# , (CASE #valid_id# WHEN 'TRUE' THEN 1 ELSE 3 END) , NOW() , 1 , NOW() , 1 ) </insert> <update id="updateInetOrgPerson" parameterClass="java.util.Map"> UPDATE customer_user AS u SET u.first_name = #first_name# , u.last_name = #last_name# , u.title = #title# , u.email = #email# , u.change_time = NOW() , u.change_by = 1 WHERE u.login = #login# </update> <update id="deleteInetOrgPerson" parameterClass="java.util.Map"> UPDATE customer_user AS u SET u.change_time = NOW() , u.change_by = 1 , valid_id = 3 WHERE u.login = #login# </update> <select id="getInetOrgPersonList" resultClass="java.util.HashMap"> SELECT u.login AS uid FROM customer_user AS u </select> <!-- <resultMap id="InetOrgPersonResult" class="InetOrgPerson"> <result property="sn" column="last_name"/> <result property="cn" column="first_name"/> <result property="uid" column="uname"/> <result property="personalTitle" column="title"/> <result property="mail" column="mail"/> </resultMap> --> </sqlMap>
<?xml version="1.0" ?> <lsc xmlns="http://lsc-project.org/XSD/lsc-core-2.1.xsd" revision="0"> <connections> <databaseConnection> <name>mysql-dst-conn</name> <!-- <url><![CDATA[jdbc:mysql://localhost:3306/test1]]></url> <username>testuser</username> <password>testuser123</password> --> <url><![CDATA[jdbc:mysql://localhost:3306/otrs]]></url> <username>otrs</username> <password>GMsOOjkkvWKv8ZV7</password> <driver>com.mysql.jdbc.Driver</driver> </databaseConnection> <ldapConnection> <name>ldap-src-conn</name> <url>ldaps://ldap.emergency.lu:636/ou=users,ou=people,dc=emergency,dc=lu</url> <username>cn=ses-read,ou=ldapAccess,dc=emergency,dc=lu</username> <password>RlsOVSYFocqMGnMKTdh2</password> <authentication>SIMPLE</authentication> <referral>IGNORE</referral> <derefAliases>NEVER</derefAliases> <version>VERSION_3</version> <pageSize>-1</pageSize> <factory>com.sun.jndi.ldap.LdapCtxFactory</factory> <tlsActivated>false</tlsActivated> </ldapConnection> </connections> <!-- <audits> <csvAudit> <name>csv</name> <append>true</append> <operations>create, update</operations> <file>/tmp/dump.csv</file> <datasets>login, email</datasets> <separator>,</separator> </csvAudit> </audits> --> <tasks> <task> <name>HitecLDAPSyncTask</name> <bean>org.lsc.beans.SimpleBean</bean> <ldapSourceService> <name>ldap-src-service</name> <connection reference="ldap-src-conn" /> <baseDn>ou=users,ou=people,dc=emergency,dc=lu</baseDn> <pivotAttributes> <string>uid</string> </pivotAttributes> <fetchedAttributes> <string>uid</string> <string>primaryMail</string> <string>personalTitle</string> <string>cn</string> <string>sn</string> <string>o</string> <string>c</string> <string>userEnabled</string> <string>userPassword</string> <string>objectClass</string> </fetchedAttributes> <getAllFilter><![CDATA[(&(objectClass=inetOrgPerson)(uid=*))]]></getAllFilter> <getOneFilter><![CDATA[(&(objectClass=inetOrgPerson)(uid={uid}))]]></getOneFilter> <cleanFilter><![CDATA[(&(objectClass=inetOrgPerson)(uid={uid}))]]></cleanFilter> </ldapSourceService> <databaseDestinationService> <name>mysql-dst-service</name> <connection reference="mysql-dst-conn" /> <requestNameForList>getInetOrgPersonList</requestNameForList> <requestNameForObject>getInetOrgPerson</requestNameForObject> <requestsNameForInsert><string>insertInetOrgPerson</string></requestsNameForInsert> <requestsNameForUpdate><string>updateInetOrgPerson</string></requestsNameForUpdate> <requestsNameForDelete><string>deleteInetOrgPerson</string></requestsNameForDelete> </databaseDestinationService> <propertiesBasedSyncOptions> <!-- <mainIdentifier>"uid=" + srcBean.getDatasetFirstValueById("uid") + ",ou=users,ou=people,dc=emergency,dc=lu"</mainIdentifier> --> <mainIdentifier>srcBean.getDatasetFirstValueById("uid")</mainIdentifier> <defaultDelimiter>;</defaultDelimiter> <defaultPolicy>MERGE</defaultPolicy> <conditions> <changeId>false</changeId> </conditions> <dataset> <name>login</name> <defaultValues></defaultValues> <forceValues></forceValues> <createValues> <string>srcBean.getDatasetFirstValueById("uid")</string> </createValues> </dataset> <dataset> <name>email</name> <defaultValues> </defaultValues> <forceValues></forceValues> <createValues> <string>srcBean.getDatasetFirstValueById("primaryMail")</string> </createValues> </dataset> <dataset> <name>title</name> <defaultValues> <string>""</string> </defaultValues> <createValues> <string>srcBean.getDatasetFirstValueById("personalTitle")</string> </createValues> </dataset> <dataset> <name>first_name</name> <defaultValues> <string>""</string> </defaultValues> <createValues> <string>srcBean.getDatasetFirstValueById("cn")</string> </createValues> </dataset> <dataset> <name>last_name</name> <defaultValues> <string>""</string> </defaultValues> <createValues> <string>srcBean.getDatasetFirstValueById("sn")</string> </createValues> </dataset> <dataset> <name>comments</name> <defaultValues></defaultValues> <forceValues></forceValues> <createValues> <string>srcBean.getDatasetById("o")</string> </createValues> </dataset> <dataset> <name>country</name> <defaultValues></defaultValues> <forceValues></forceValues> <createValues> <string>srcBean.getDatasetFirstValueById("c")</string> </createValues> </dataset> <dataset> <name>valid_id</name> <defaultValues></defaultValues> <forceValues></forceValues> <createValues> <string>srcBean.getDatasetFirstValueById("userEnabled")</string> </createValues> </dataset> </propertiesBasedSyncOptions> </task> </tasks> </lsc>
customer_user.ddl.sql
Description: application/sql
_______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-users mailing list [email protected] http://lists.lsc-project.org/listinfo/lsc-users

