<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"Cascadia Code Light";
        panose-1:2 11 6 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Aptos",sans-serif;
        mso-ligatures:standardcontextual;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#467886;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Calibri",sans-serif">Hi,<br>
<br>
the solution is to use the relativity mode in the expression inside the outbound mapping:<br>
<br>
<expression><br>
    <script><br>
        <relativityMode>absolute</relativityMode><br>
        <code><br>
            </span><span lang="EN-GB">imput</span><span lang="EN-US" style="font-family:"Calibri",sans-serif">?.join(";")<br>
        </code><br>
    </script><br>
</expression><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Calibri",sans-serif"><br>
<br>
This will only evaluate the mapping once with the whole list as input.<br>
<br>
Kind Regards<br>
<br>
</span><span style="font-size:10.0pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:DE"><o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:DE">Emil Militzer<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:DE">__________________________<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:DE"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:DE"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-ligatures:none;mso-fareast-language:DE">Techniker Krankenkasse</span><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black;mso-ligatures:none;mso-fareast-language:DE"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-ligatures:none;mso-fareast-language:DE">Unternehmenszentrale<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-ligatures:none;mso-fareast-language:DE"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-ligatures:none;mso-fareast-language:DE"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-ligatures:none;mso-fareast-language:DE">Emil Militzer<o:p></o:p></span></b></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-ligatures:none;mso-fareast-language:DE">Team Access & Web Applications (AWA)<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:12.0pt;font-family:"Calibri",sans-serif;color:black;mso-ligatures:none;mso-fareast-language:DE">Von:
</span></b><span style="font-size:12.0pt;font-family:"Calibri",sans-serif;color:black;mso-ligatures:none;mso-fareast-language:DE">midPoint <midpoint-bounces@lists.evolveum.com> im Auftrag von Sebastian Beetz via midPoint <midpoint@lists.evolveum.com><br>
<b>Antworten an: </b>midPoint General Discussion <midpoint@lists.evolveum.com><br>
<b>Datum: </b>Dienstag, 17. Dezember 2024 um 16:32<br>
<b>An: </b>"midpoint@lists.evolveum.com" <midpoint@lists.evolveum.com><br>
<b>Cc: </b>Sebastian Beetz <sebastian.beetz@kogit.de><br>
<b>Betreff: </b>[midPoint] Multi-Valued Attributes And Outbound Mapping Script Issue<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-ligatures:none;mso-fareast-language:DE"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><strong><span style="font-size:10.0pt;font-family:Helvetica;color:black;background:#FFEB9C;mso-ligatures:none;mso-fareast-language:DE">EXTERNE E-MAIL - Bitte prüfen Sie die Vertrauenswürdigkeit der Absender-Informationen, bevor Sie Links
 oder Anhänge öffnen.</span></strong><span style="font-size:12.0pt;mso-ligatures:none;mso-fareast-language:DE">
</span><strong><span style="font-size:9.0pt;font-family:Helvetica;color:black"><o:p></o:p></span></strong></p>
<div class="MsoNormal" align="center" style="text-align:center"><strong><span style="font-family:"Aptos",sans-serif;mso-ligatures:none">
<hr size="0" width="100%" align="center">
</span></strong></div>
<p class="MsoNormal"><span lang="EN-GB">Hi Community,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">I am looking for directions or advice for using an extended user attribute in an outbound mapping.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">We have set up a schema extension with multi-valued attribute “employeeType” as following:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light""><xsd:complexType name="UserExtensionType"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                <xsd:annotation><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                        <xsd:appinfo><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                                <a:extension ref="c:UserType"/><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                        </xsd:appinfo><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                </xsd:annotation><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                <xsd:sequence><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                        <xsd:element name="employeeType" type="xsd:string" minOccurs="0" maxOccurs="unbounded"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                                <xsd:annotation><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                                        <xsd:appinfo><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                                                <a:indexed>true</a:indexed><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                                                <a:displayName>Employee Type</a:displayName><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                                        </xsd:appinfo><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                                        <xsd:documentation><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                                                A multi-valued attribute that collects multiple employee types for one user.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                                        </xsd:documentation><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                                </xsd:annotation><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                        </xsd:element><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">                </xsd:sequence><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light"">        </xsd:complexType><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Cascadia Code Light""></xsd:schema><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">The values, of which can be multiple on one user, are strings like “S”, “M”, “MHD”. I now need to concatenate all the present values into one string, like “;M;MHD;S;” in an outbound mapping.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">I am currently facing the issue that the outbound mapping is executed multiple times, as often as there are values present.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Is there any mechanism how all the multiple values can be accessed at once? For example to do sth like: “employeeTypeValues.join(";")” in the expression script.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Best regards and thanks in advance<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Sebastian<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
<br>
<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif">Sebastian Beetz
</span></b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif">| Solution Consultant, Head of Internal IT<br>
Mobil: +49 151 67806842 | Tel: +49 6151 7869-142 <br>
<br>
<b>KOGIT GmbH </b>| Rheinstr. 40-42 | 64283 Darmstadt <br>
<a href="https://www.kogit.de">www.kogit.de</a> | <a href="https://de.linkedin.com/company/kogit-gmbh">
LinkedIn</a> | <a href="https://www.xing.com/pages/kogitgmbh">Xing</a> | <a href="https://www.instagram.com/kogit_gmbh/">
Instagram</a> <br>
<br>
Geschäftsführer: Gerald Kaufhold <br>
Amtsgericht Darmstadt | HRB 8640 | Ust-IdNr: DE224251141<br>
Datenschutzhinweise | <a href="https://www.kogit.de/datenschutz">www.kogit.de/datenschutz</a><o:p></o:p></span></p>
</div>
</div>
</body>
</html>