LDAP usage, working on multivalued attributes

One Star

LDAP usage, working on multivalued attributes

Hello,
We have problems to use the LDAPOutput component.
On one side, as source, we have a relational database which is a HR repo, and on the other, as destination, we have an LDAP directory.
We have several cases where we need to work on multivalued attributes. For example, adding one person in the Person group and adding this person in a multivalued list of members of one profile.
Actually, I couldn't point how to handle the case when we want to delete a value from a multi-valued attribute. That means for example, in LDIF (partly taken from an LDIF article on the Internet):
dn: uid=Profil1,ou=users,o...
changetype: modify
delete: uniqueMember
UniqueMember: uid=000101,dmdName=Personnes,dc=i...

Please, can you provide me a way to do this operation on the LDAP directory ? Maybe the LDAP component is not enough complete to implement such operation ?
Thanks in advance,
Thomas
Four Stars

Re: LDAP usage, working on multivalued attributes

Hello,
About tLDAPOutput component, I'm agree with you, we can ask several fetaures
about this component.
- Rename entry (for changing DN)
- a list box for choosing the DN field (currently, no choice, it's the first!)
- a "fields options" in the advanced settings tab, same as tMySQLOutput for
example. In your case, I see 3 columns when the user set the insert mode on
"Update" or "Insert or Update" => On update, select Add (for adding value in a
multi values attribute), Replace (it's your case, so update the value), Remove
(for deleting the attribute... In this case, data in the input column are not
required ;-))
Do you see another subjects? Are you agree with my
point of view? It's interresting to have your feedback before to ask for features.
About your problem, perhaps a workarround exists.
If you want replace values, just set the component on "Insert or Update" mode.
For making a multi value field with Talend, do you know the tDenormalize component?
Can you give me more details about your scenario?
Thank you,
SeB
Four Stars

Re: LDAP usage, working on multivalued attributes

One Star

Re: LDAP usage, working on multivalued attributes

Hello,
I think you misunderstand the meaning of the « remove attribute » method and maybe misunderstand our needs. We don't want to replace the actual value of an attribute, but simply remove a single value in a multi-valued attribute. To get another picture, on a relationnal database you want to delete a single line from a detail-table that refers to a master table. But an LDAP directory is a simple and stupid thingy that implements this behaviour with multi-valued attributes.
So, take the case you want to delete a single value on a multi-valued attribute (see the example LDIF I gave in the first post), you need to identify the value you want to remove (kind of key). So, when processing an attribute where you want to delete the attribute, it would be good to take account of the value given in the data flow.
Also, in our case, using the tDenormalize component may work but will be very inefficient. Instead of using a single row from a table from the source database, you'll have to read many lines to recreate the entries of the multivalued attribute. That's simply overkill just to remove a single value from the list.
I hope this helps to understand the issue.
Anyhow, expect this misunderstanding, you made a good analyse of the weakness' of the actual tLDAPOutput component. Also, I'll update the issues on the bugtracker ASAP.