<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi,<br>
      <br>
      Quick answer is that the "disputed" situation is currently not
      that well supported in midPoint. There wasn't much demand amongst
      midPoint subscribers so far.<br>
      <br>
      However, the upside is that there is a plenty of room for
      improvement :-)<br>
      <br>
      Ad 1: Notification would be just another reaction to a
      synchronization situation. This should not be that difficult to
      develop. In fact it needs to implement action class in
      com.evolveum.midpoint.model.impl.sync.action package, and use
      existing notification framework in midPoint to deliver the
      notification. As always we are open to community contributions ...
      or new midPoint platform subscribers :-)<br>
      <br>
      Ad 2: As you have already discovered there is a way how to do that
      in midPoint GUI - albeit it is not entirely convenient. One of the
      issues here is that we do not store the candidate matches in
      midPoint repository. So, if GUI is supposed to display the
      candidate matches then it has to re-run the correlation query.
      Which is possible, but it is not implemented yet. In fact, few
      years ago we have went even one step further: we have experimented
      with a recommender for account linking (which would be called
      "machine learning" system now). The idea was for a recommender to
      suggest possible matches during manual linking of accounts, even
      in generic "unmatched" case. The recommender was learning based on
      recommendations that were accepted or refused by system operator.
      This was just a very early prototype, but it produced some
      encouraging results. Unfortunately, we haven't been able to secure
      the funding to fully develop this functionality.<br>
      <br>
      Ad 3: Currently, the confirmation expression is not built for this
      purpose. The idea was to use correlation query to quickly select
      candidates for a match and the use confirmation to filter them one
      by one. It would not be that difficult to implement a variant of
      the expression that will take all the candidates in a single
      collection. But it is not implemented in midPoint now. And as far
      as I can tell the only way to do this now to change midPoint
      source code.<br>
      <br>
      Your questions suggest a really interesting extension to midPoint
      features. But such functionality is not implemented yet. So, the
      best approach that I can recommend here is to contribute the
      missing functionality or to purchase midPoint platform
      subscription.<br>
      <br>
      <pre class="moz-signature" cols="72">-- 
Radovan Semancik
Software Architect
evolveum.com
</pre>
      <br>
      <br>
      <br>
      On 02/14/2018 01:13 PM, Shilen Patel wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:914EFACC-B304-408F-BF1B-2FAD55FC7784@duke.edu">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta name="Title" content="">
      <meta name="Keywords" content="">
      <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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
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.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1523473276;
        mso-list-type:hybrid;
        mso-list-template-ids:368348870 67698711 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1
        {mso-list-id:1786656351;
        mso-list-type:hybrid;
        mso-list-template-ids:193989696 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
      <div class="WordSection1">
        <p class="MsoNormal"><span style="font-size:11.0pt">Hi,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt">I found out
            how to do (2) in the UI and I’m not too worried about (1)
            since we can always make our own UI to handle it.  So I’m
            mainly interested in (3) now.  Let me elaborate on a use
            case for it.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt">Say I want
            my matching logic to be based on first name, middle name,
            last name, DOB, and a national ID.  Here are the rules (for
            example):<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
        <ol style="margin-top:0in" start="1" type="a">
          <li class="MsoListParagraph"
            style="margin-left:0in;mso-list:l0 level1 lfo2"><span
              style="font-size:11.0pt">If first name, middle name, last
              name, and DOB match exactly to one existing user in
              MidPoint, then proceed with that match.  If it matches
              more than one user, then it needs to be looked at manually
              (e.g. disputed state).<o:p></o:p></span></li>
          <li class="MsoListParagraph"
            style="margin-left:0in;mso-list:l0 level1 lfo2"><span
              style="font-size:11.0pt">If the national ID matches one
              existing user in MidPoint, proceed with that match.<o:p></o:p></span></li>
          <li class="MsoListParagraph"
            style="margin-left:0in;mso-list:l0 level1 lfo2"><span
              style="font-size:11.0pt">If first name and last name or
              middle name and last name match one or more users, then I
              would consider that a weak match and somebody should
              evaluate it manually regardless of whether there was only
              one match or there were multiple matches.<o:p></o:p></span></li>
        </ol>
        <p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt">Is this type
            of behavior possible?<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt">Thanks!<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt">- Shilen<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
        <div style="border:none;border-top:solid #B5C4DF
          1.0pt;padding:3.0pt 0in 0in 0in">
          <p class="MsoNormal" style="margin-left:.5in"><b><span
                style="color:black">From: </span>
            </b><span style="color:black">Shilen Patel
              <a class="moz-txt-link-rfc2396E" href="mailto:shilen@duke.edu"><shilen@duke.edu></a><br>
              <b>Date: </b>Tuesday, February 13, 2018 at 9:59 AM<br>
              <b>To: </b><a class="moz-txt-link-rfc2396E" href="mailto:midpoint@lists.evolveum.com">"midpoint@lists.evolveum.com"</a>
              <a class="moz-txt-link-rfc2396E" href="mailto:midpoint@lists.evolveum.com"><midpoint@lists.evolveum.com></a><br>
              <b>Subject: </b>Question about the disputed situation<o:p></o:p></span></p>
        </div>
        <div>
          <p class="MsoNormal" style="margin-left:.5in"><span
              style="font-size:11.0pt"><o:p> </o:p></span></p>
        </div>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt">Hi folks,</span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt"> </span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt">Say if I have an automated
            connector that brings new users into MidPoint.  And say if
            my correlation and confirmation expressions are pretty
            simple and just match using first and last name.  If I have
            a new entry in the incoming feed that has a name that
            matches 2 users in MidPoint, the synchronization situation
            becomes “disputed”.  I have a few questions about that state
            that I’m hoping folks may have some thoughts on.</span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt"> </span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt">1. Other than manually going
            through every resource in the MidPoint UI and seeing if any
            states are “DISPUTED” in the Accounts tab, how do you figure
            out that entries get into this state?  Is there some place
            you can go in the UI to view all disputed entries for all
            resources?  Do folks send notifications (e.g. emails) when
            entries get into that state?  </span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt"> </span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt">2. Say if I figure out that an
            entry is in the disputed state because there are 2 potential
            matches.  Then I manually look at those 2 potential matches
            and figure out that the 2 users are really different people
            and that the incoming entry matches with exactly one of
            them.  How do I change that disputed state into a linked
            state with the match that I manually figured out?</span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt"> </span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt">3.  Also, one more question on a
            slightly different topic.  For the confirmation step (which
            occurs after correlation), is it possible to send all the
            potential matches to some java method where I can evaluate
            them all together?  For example, if I have 2 potential
            matches from the correlation step but in the confirmation
            step, 1 of the 2 is much stronger than the other, I may want
            to proceed with that match.  However, if both are somewhat
            weak, I may want it to go into the disputed state so
            somebody can look at it.  Or do you have to evaluate each
            potential match without having knowledge on what the other
            potential matches are?</span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt"> </span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt">Thanks, and I appreciate any input
            or best practices.</span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt"> </span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt">Thanks!</span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt"> </span><o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in"><span
            style="font-size:11.0pt">- Shilen</span><o:p></o:p></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>