LSC is going to treat your database like a directory.  For every record in your 
directory there can only be 1 matching record in your database. Regardless of 
the direction you’re trying to sync you will not be able to manage a many to 
one relationship between your relational data and your directory using LSC.  
You could probably make it work with additional coding and the new executable 
plug-in as Raphael suggests.

-Jon C. Kidder
American Electric Power
Middleware Services
Email: [email protected]<mailto:[email protected]>
Phone: 614-716-4970

From: [email protected] 
[mailto:[email protected]] On Behalf Of Natan Sanson
Sent: Thursday, July 31, 2014 12:00 PM
To: lsc-userslsc-users
Subject: [lsc-users] Is there any way to update the source service during a 
task execution?

This is an EXTERNAL email. STOP. THINK before you CLICK links or OPEN 
attachments.
________________________________
Hi lsc users,

  I have to sync a lot of jdbc rows with an ldap destination. Any row to update 
is composed by

COL1: USERID
COL2: ROLEID
COL3: ROLESTATUS

The "key" is composed by USERID an ROLEID

Inside my ldap I have the users stored with an ldap attribute valued with 
USERID value, and for each user a multivalued attribute with all the ROLEID 
values

If I try to create a task where the "ldap store" is the sourceservice and the 
jdc store the "destination service", I don't have a smart way to have multiple 
entries for each USERID, because the multivalued attribute ROLEID cannot be 
used to fetch more than a time the same user. LDAP returns always only one time 
each DN, it doesn't matter how you compose your filter

If I try to create a task where the JDBC is the source service and LDAP the 
destination, I cannot find a way to update the JDBC rows, that it is my goal to 
achieve

I tried to put inside my lsc.xml rows like that without success

//If a user does not have this ROLEID, I have to update that it was removed.
getOneFilter:
(&amp;(objectClass=inetOrgPerson)(USERID={USERID})(!(ROLEID={ROLEID})))

//IF THE ROLEID IS NOT LONGER REPLICATED ON THE LDAP STORE SO I HAVE TO REPORT 
THE REVOCATION WITHOUT DELETING THE JDBC ROW

srcBean.setDataset("ROLESTATUS",dstBean.getDatasetById("AnyLdapAttributeJustToTestTheWriteCapability"));
srcBean.datasets().put("ROLESTATUS",dstBean.getDatasetById("AnyLdapAttributeJustToTestTheWriteCapability"));
srcBean.datasets().put("ROLESTATUS",dstBean.getDatasetById("AnyLdapAttributeJustToTestTheWriteCapability"));

THIS DOES NOT WORK

Please let me know if there is a way to update the lack of a value inside an 
LDAP multivalued attribute on a JDBC store where each value is represented by a 
row

Thanks in advance,

   Natan
_______________________________________________________________
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