<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)"><style><!--
/* Font Definitions */
@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:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;
mso-fareast-language:EN-US;}
code
{mso-style-priority:99;
font-family:"Courier New";}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;
mso-fareast-language:EN-AU;}
tt
{mso-style-priority:99;
font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman",serif;
color:black;
mso-fareast-language:EN-AU;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;
color:black;}
span.EmailStyle23
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle24
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle25
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
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 bgcolor=white lang=EN-AU link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><a name="_MailEndCompose"><span style='color:windowtext'>Hi Pavol,<o:p></o:p></span></a></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'><o:p> </o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'>I was pretty sure I’d seen examples with and without a return statement and used return statements in previous scripts. It works now so I’m happy.<o:p></o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'><o:p> </o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'><o:p> </o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'>Thanks for your assistance<o:p></o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'><o:p> </o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'>Regards,<o:p></o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'><o:p> </o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'>Brad<o:p></o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'><o:p> </o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'><o:p> </o:p></span></span></p><p class=MsoNormal><span style='mso-bookmark:_MailEndCompose'><span style='color:windowtext'><o:p> </o:p></span></span></p><span style='mso-bookmark:_MailEndCompose'></span><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='color:windowtext;mso-fareast-language:EN-AU'>From:</span></b><span lang=EN-US style='color:windowtext;mso-fareast-language:EN-AU'> midPoint [mailto:midpoint-bounces@lists.evolveum.com] <b>On Behalf Of </b>Pavol Mederly<br><b>Sent:</b> Tuesday, 14 March 2017 9:19 AM<br><b>To:</b> midpoint@lists.evolveum.com<br><b>Subject:</b> Re: [midPoint] Correlation query problem<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p>Hello Brad,<span style='font-size:12.0pt;mso-fareast-language:EN-AU'><o:p></o:p></span></p><p>this is interesting. As far as I know, there is no problem in using the return statement. Actually, these two pieces of code:<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'>y + '-' + m + '-' + d</span><o:p></o:p></p><p>and<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'>db = y + '-' + m + '-' + d</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'>log.error('The date of birth is {}', db)</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'>return db</span><o:p></o:p></p><p>are (in my opinion) equivalent. I regularly write scripts within midPoint objects with and without the return statement; and there are no problems with both variants.<o:p></o:p></p><p>To be honest, although I'm not 100% sure (as I'm not a groovy expert). I suppose the problem is (was?) probably elsewhere.<o:p></o:p></p><pre>Pavol Mederly<o:p></o:p></pre><pre>Software developer<o:p></o:p></pre><pre>evolveum.com<o:p></o:p></pre><pre> <o:p></o:p></pre><div><p class=MsoNormal>On 14.03.2017 0:07, Brad Fardig wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span style='color:windowtext'>Thanks Pavol,</span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'>It is now working. I also realised that it wasn’t matching because of an issue with the DOB script, once I removed the logging and the return statement it started working.</span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'>The script now looks like:</span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;background:silver;mso-highlight:silver;mso-fareast-language:EN-AU'>q:equal</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> </span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;mso-fareast-language:EN-AU'>q:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'>extension/<u>dob</u></span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;mso-fareast-language:EN-AU'>q:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;mso-fareast-language:EN-AU'>c:expression</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;mso-fareast-language:EN-AU'>script</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;mso-fareast-language:EN-AU'>language</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'><a href="http://midpoint.evolveum.com/xml/ns/public/expression/language#Groovy">http://midpoint.evolveum.com/xml/ns/public/expression/language#Groovy</a></span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;mso-fareast-language:EN-AU'>language</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;mso-fareast-language:EN-AU'>code</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> DoB = basic.getAttributeValue(shadow, '<a href="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3">http://midpoint.evolveum.com/xml/ns/public/resource/instance-3</a>', 'DoB')</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> </span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> (d,m,y) = DoB?.<u>tokenize</u>('/')</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> y + '-' + m + '-' + d</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;mso-fareast-language:EN-AU'>code</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;mso-fareast-language:EN-AU'>script</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;mso-fareast-language:EN-AU'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;mso-fareast-language:EN-AU'>c:expression</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F;background:silver;mso-highlight:silver;mso-fareast-language:EN-AU'>q:equal</span><span style='font-size:10.0pt;font-family:Consolas;color:teal;mso-fareast-language:EN-AU'>></span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'>Should I not use a return statement within a script?</span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'>Regards,</span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'>Brad</span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:windowtext'> </span><o:p></o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='color:windowtext;mso-fareast-language:EN-AU'>From:</span></b><span lang=EN-US style='color:windowtext;mso-fareast-language:EN-AU'> midPoint [<a href="mailto:midpoint-bounces@lists.evolveum.com">mailto:midpoint-bounces@lists.evolveum.com</a>] <b>On Behalf Of </b>Pavol Mederly<br><b>Sent:</b> Monday, 13 March 2017 10:26 PM<br><b>To:</b> <a href="mailto:midpoint@lists.evolveum.com">midpoint@lists.evolveum.com</a><br><b>Subject:</b> Re: [midPoint] Correlation query problem</span><o:p></o:p></p></div></div><p class=MsoNormal> <o:p></o:p></p><p>Hello Brad,<o:p></o:p></p><p>normIgnoreCase is OK, because givenName and lastName are so called polystrings (polymorphic strings; they have original and normalized value). And these are to be compared using polyStringNorm, polyStringOrig, polyStringStrict, normIgnoreCase, origIgnoreCase, and strictIgnoreCase rules. (Just BTW, polyStringNorm comparison is already case-insensitive, so I'd suggest using it instead of normIgnoreCase. The latter is a bit of "hack". But nevertheless, it should work.)<o:p></o:p></p><p>Your query look right to me.<o:p></o:p></p><p>I would suggest you to enable logging: TRACE for <tt><span style='font-size:10.0pt'>com.evolveum.midpoint.model.impl.sync.CorrelationConfirmationEvaluator</span></tt>.<o:p></o:p></p><p>And then have a look for entry containing:<o:p></o:p></p><p><tt><span style='font-size:10.0pt'>SYNCHRONIZATION: CORRELATION: expression for results in filter</span></tt><o:p></o:p></p><p>If needed, you could post it here, we'll try to help you with that.<o:p></o:p></p><p>Best regards,<o:p></o:p></p><pre>Pavol Mederly<o:p></o:p></pre><pre>Software developer<o:p></o:p></pre><pre>evolveum.com<o:p></o:p></pre><div><p class=MsoNormal>On 13.03.2017 12:21, Brad Fardig wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>Having some issues with a correlation query on a csv resource with midpoint 3.4<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>The issue is I’m not getting any linking with existing user records i.e. all records read from the CSV file are unmatched.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>I need to do case insensitive string matching. I’ve tried stringIgnoreCase but receive an error. I’ve also set the <code><span style='font-size:10.0pt'><a href="http://prism.evolveum.com/xml/ns/public/matching-rule-3">http://prism.evolveum.com/xml/ns/public/matching-rule-3</a></span></code> namespace as mr but receive an error for mr:stringIgnoreCase as well<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>I’ve tried various selection from the known matching rules here: <a href="https://wiki.evolveum.com/display/midPoint/Matching+Rules">https://wiki.evolveum.com/display/midPoint/Matching+Rules</a><o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>If anybody can provide any insight into what I’m not seeing/doing it will be greatly appreciated.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>The query is:<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>correlation</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:description</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> match on givenName == FirstName , familyName == LastName , DoB == <u>dob</u></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:description</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:and</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:equal</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:matching</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><code><span style='font-size:10.0pt'>normIgnoreCase</span></code><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:matching</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><span style='font-size:10.0pt;font-family:Consolas'>familyName</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>c:expression</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>c:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><span style='font-size:10.0pt;font-family:Consolas'>$c:account/c:attributes/ri:LastName</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>c:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>c:expression</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:equal</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:equal</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:matching</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><code><span style='font-size:10.0pt'>normIgnoreCase</span></code><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:matching</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><span style='font-size:10.0pt;font-family:Consolas'>givenName</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>c:expression</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>c:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><span style='font-size:10.0pt;font-family:Consolas'>$c:account/c:attributes/ri:FirstName</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>c:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>c:expression</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:equal</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:equal</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><span style='font-size:10.0pt;font-family:Consolas'>extension/<u>dob</u></span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:path</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>c:expression</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>script</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>language</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><span style='font-size:10.0pt;font-family:Consolas'><a href="http://midpoint.evolveum.com/xml/ns/public/expression/language#Groovy">http://midpoint.evolveum.com/xml/ns/public/expression/language#Groovy</a></span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>language</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'><</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>code</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> DoB = basic.getAttributeValue(shadow, '<a href="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3">http://midpoint.evolveum.com/xml/ns/public/resource/instance-3</a>', 'DoB')</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> (d,m,y) = DoB?.<u>tokenize</u>('/')</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> <u>db</u> = y + '-' + m + '-' + d</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> log.error('The date of birth is {}', <u>db</u>)</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> return <u>db</u></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>code</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>script</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>c:expression</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:equal</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>q:and</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas'> </span><span style='font-size:10.0pt;font-family:Consolas;color:teal'></</span><span style='font-size:10.0pt;font-family:Consolas;color:#3F7F7F'>correlation</span><span style='font-size:10.0pt;font-family:Consolas;color:teal'>></span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;color:teal'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;color:teal'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;color:teal'>Regards</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;color:teal'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;color:teal'>Brad</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt'><br><br><br><br></span><o:p></o:p></p><pre>_______________________________________________<o:p></o:p></pre><pre>midPoint mailing list<o:p></o:p></pre><pre><a href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a><o:p></o:p></pre><pre><a href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a><o:p></o:p></pre></blockquote><p class=MsoNormal><span style='font-size:12.0pt'><br><br><br><i>This email, and any attachment, is confidential and also privileged. If you have received it in error, please notify me immediately and delete it from your system along with any attachments. You should not copy or use it for any purpose, nor disclose its contents to any other person. </i></span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif;mso-fareast-language:EN-AU'><br><br><br><o:p></o:p></span></p><pre>_______________________________________________<o:p></o:p></pre><pre>midPoint mailing list<o:p></o:p></pre><pre><a href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a><o:p></o:p></pre><pre><a href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a><o:p></o:p></pre></blockquote><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif;mso-fareast-language:EN-AU'><br><br><br><i>This email, and any attachment, is confidential and also privileged. If you have received it in error, please notify me immediately and delete it from your system along with any attachments. You should not copy or use it for any purpose, nor disclose its contents to any other person. </i><o:p></o:p></span></p></div></body></html>