[midPoint] Assign org to user with extension attribute on the assignment
Ana Pereyra
apereyra at identicum.com
Fri Feb 3 18:29:21 CET 2017
Hi all,
This is the solution I came up with. I share the code with all of you:
org = midpoint.searchObjectByName(OrgType.class, "orgName");
> orgOrt = new ObjectReferenceType();
> orgOrt.setOid(org.getOid());
> orgOrt.setType(OrgType.COMPLEX_TYPE);
>
> AssignmentType assignment = new AssignmentType();
> assignment.setTargetRef(orgOrt);
>
> QName relationQName = new QName("http://midpoint.identicum.com/xml/ns/
> metaAssignment", "metaRelation");
> ExtensionType ext = new ExtensionType();
> ext.asPrismContainerValue().setPropertyRealValue(relationQName,
> "relation test value", midpoint.getPrismContext());
> assignment.setExtension(ext);
> return assignment
Best regards
2017-01-20 11:59 GMT-03:00 Ana Pereyra <apereyra at identicum.com>:
> Thank you very much for answering so fast.
>
> I've been trying to solve this, and got to the point of creating an
> Item<?,?> object to add to the extension (https://evolveum.com/download
> s/midpoint/3.4/midpoint-3.4-javadoc/com/evolveum/midpoint/
> prism/PrismContainerValue.html#add(com.evolveum.midpoint.prism.Item).
> Does anyone have an example of this? I couldn't find any.
>
> Thanks in advance.
> Best regards
>
> 2017-01-19 16:54 GMT-03:00 Martin Lízner - AMI Praha a.s. <
> martin.lizner at ami.cz>:
>
>> Although not having hands-on experience, I think you are right about setExtension(ExtensionType
>> value), you will need to play with it a bit as you can construct new
>> ExtensionType in simillar fashion:
>>
>> ExtensionType et = new ExtensionType(getPrismContext());
>> et.asPrismContainerValue().add(....
>>
>> M.
>>
>> Martin Lízner
>> solution architect
>>
>> gsm: [+420] 737 745 571
>> e-mail: martin.lizner at ami.cz
>>
>>
>> AMI Praha a.s.
>> Pláničkova 11
>> 162 00 Praha 6
>> tel.: [+420] 274 783 239
>> web: www.ami.cz
>>
>>
>>
>> [image: AMI Praha a.s.] <http://www.skyidentity.com/>
>>
>> Textem tohoto e-mailu podepisující neslibuje uzavřít ani neuzavírá za
>> společnost AMI Praha a.s.
>> jakoukoliv smlouvu. Každá smlouva, pokud bude uzavřena, musí mít výhradně
>> písemnou formu.
>>
>>
>> 2017-01-19 20:20 GMT+01:00 Ana Pereyra <apereyra at identicum.com>:
>>
>>> Hi all.
>>>
>>> We have the following situation: we have extended the schema of the
>>> AssignmentType object and added one attribute.
>>>
>>> Simultaneously, in the user template, we have logic that assigns an org
>>> to the user based on his "organization" attribute. The tricky part is that
>>> we need to assign the org to the user, and *also *set the extended
>>> attribute of the assignment with a certain value.
>>>
>>> This is the script we have so far for that mapping in the user template:
>>>
>>> <mapping>
>>>> <authoritative>true</authoritative>
>>>> <strength>strong</strength>
>>>> <source>
>>>> <c:path>$focus/organization</c:path>
>>>> </source>
>>>> <expression>
>>>> <script>
>>>> <code>
>>>> import com.evolveum.midpoint.xml.ns._public.common.common_3.Assignm
>>>> entType;
>>>> import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectR
>>>> eferenceType;
>>>> import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
>>>> import java.util.*;
>>>> org = midpoint.searchObjectByName(OrgType.class,
>>>> organization);
>>>> log.info("org {}" , org);
>>>> orgOrt = new ObjectReferenceType();
>>>> orgOrt.setOid(org.getOid());
>>>> orgOrt.setType(OrgType.COMPLEX_TYPE);
>>>> <!-- creating assignment -->
>>>> AssignmentType assignment = new AssignmentType();
>>>> assignment.asPrismContainerValue();
>>>> assignment.setTargetRef(orgOrt);
>>>>
>>>> *<!-- right here we would need to that something like "setValue" for
>>>> the extended attribute -->*
>>>> return assignment
>>>> </code>
>>>> </script>
>>>> </expression>
>>>> <target>
>>>> <c:path>assignment</c:path>
>>>> </target>
>>>> </mapping>
>>>
>>>
>>> I read in the definition of the AssignmentType class, that there's a
>>> method "setExtension" that we could use, but had no luck understanding how
>>> to create and ExtensionType object with that value set.
>>>
>>> Any help is appreciated. Thanks in advance.
>>> Regards,
>>> --
>>> *Ana Pereyra*
>>> Identicum S.A.
>>>
>>> *Jorge Newbery 3226, ArgentinaTel: +54 (11) **4552.3050*
>>> *apereyra at identicum.com <apereyra at identicum.com>*
>>> www.identicum.com
>>>
>>> _______________________________________________
>>> midPoint mailing list
>>> midPoint at lists.evolveum.com
>>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>>
>>>
>>
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com
>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>
>>
>
>
> --
> *Ana Pereyra*
> Identicum S.A.
>
> *Jorge Newbery 3226, ArgentinaTel: +54 (11) **4552.3050*
> *apereyra at identicum.com <apereyra at identicum.com>*
> www.identicum.com
>
--
*Ana Pereyra*
Identicum S.A.
*Jorge Newbery 3226, ArgentinaTel: +54 (11) **4552.3050*
*apereyra at identicum.com <apereyra at identicum.com>*
www.identicum.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20170203/14705523/attachment.htm>
More information about the midPoint
mailing list