[midPoint] DatabaseTable Multi-Value Fields

Radovan Semancik radovan.semancik at evolveum.com
Sat Oct 8 15:29:52 CEST 2016


Hi,

Once again, the DatabaseTable connector is a Sun legacy. As far as I 
know it does not support multivalue fields. But this time there are also 
deeper reasons. Multiple-value properties are typically stored in 
multiple tables. This is how relational data models usually work. It is 
not that easy to discover these tables from the tables definitions. The 
original connector was not built to do this. As most Sun connectors it 
is not using the schema very well. That is one of the reasons that we 
want to rewrite this connector. The ConnId framework evolved during the 
last 5 years after the fork from Sun Identity Connector Framework. But 
the old Sun connectors haven't. And that made these connectors quite 
obsolete. We have already rewritten LDAP connector from scratch. We are 
currently working on new CSVFile connector. But there is no funding for 
rewriting the DB table connector yet.

I would suggest to use either Scripted SQL connector or to develop your 
own custom connector. It is not that difficult. The guide is here:
https://wiki.evolveum.com/display/midPoint/Connector+Development+Guide

-- 
Radovan Semancik
Software Architect
evolveum.com



On 10/07/2016 08:40 PM, Martin Marchese wrote:
> Hi All,
>
> Within our MidPoint implementation we have a DatabaseTable resource in 
> order to create Users in MidPoint from a DB table.
>
> We have also, another table where we store User IDs (FK to the 1st 
> table) and a multivalue attribute (say employeeType). So we'll have N 
> records per user in this table (PK is formed by the 2 columns userid 
> and employeeType) e.g.
>
> User1,Type1
> User1,Tyep2
> User2,Type1
> User2,Type2
> User2,Type3
> User3,Type3
>
> For this last table, we have another DatabaseTable resource and we are 
> trying to achieve the following behavior:
>
> - Users are created in MidPoint from the 1st DB table, using the first 
> resource.
> - EmployeeType attribute values are added to the user only, if it is 
> already created, from the 2nd DB table, using the second resource. And 
> also removing the employeeType values as they are removed from the 2nd 
> table.
>
> So far we are able to create the users from the 1st table but as far 
> as it concerns the employeeType addition, we are being able to set 
> only one value (the last one the connector sees).
> As we could see in the traces, every time the connector reads a new 
> line for a user, adds the new employeeType value but removes the 
> previous one.
>
> We were wondering if this is the correct approach for our needs or if 
> we are missing something.
>
> Thanks in advance
>
> *Ing. Martín Marchese*
> Identicum S.A.
> Jorge Newbery 3226
> Tel: +54 (11) 4552-3050
> mmarchese at identicum.com <mailto:mmarchese at identicum.com>
> www.identicum.com <http://www.identicum.com>
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20161008/e37846e9/attachment.htm>


More information about the midPoint mailing list