<div dir="ltr"><div>Hi Petr,</div><div><br></div><div>Thanks for your answer, we tried your sugestion and it is working correctly.</div><div>Anyways today we found another solution using QueryBuilder.</div><div><br></div><div>Here is an example:</div><div><br></div><div>q = QueryBuilder.queryFor(UserType.class, midpoint.getPrismContext()).item(UserType.F_NAME).eq(managerName).build();</div><div>user = midpoint.searchObjects(UserType.class, q);</div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-04-04 15:33 GMT-03:00  <span dir="ltr"><<a href="mailto:petr.kulheim@ibacz.eu" target="_blank">petr.kulheim@ibacz.eu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font size="2" face="sans-serif">Hi Ezequiel, </font>
<br><font size="2" face="sans-serif">have you tried function</font>
<br><font size="2" face="sans-serif">midpoint.searchObjectByName(<wbr>UserType.class,</font><font size="2" color="#2f2f2f" face="Arial">managerName</font><font size="2" face="sans-serif">)
   ?</font>
<br>
<br><font size="2" face="sans-serif">Petr</font>
<br>
<br>
<br>
<br>
<br>
<br><font size="1" color="#5f5f5f" face="sans-serif">From:      
 </font><font size="1" face="sans-serif">Ezequiel Alonso <<a href="mailto:ealonso@identicum.com" target="_blank">ealonso@identicum.com</a>></font>
<br><font size="1" color="#5f5f5f" face="sans-serif">To:      
 </font><font size="1" face="sans-serif">midPoint General Discussion
<<a href="mailto:midpoint@lists.evolveum.com" target="_blank">midpoint@lists.evolveum.com</a>></font>
<br><font size="1" color="#5f5f5f" face="sans-serif">Date:      
 </font><font size="1" face="sans-serif">03/04/2018 23:20</font>
<br><font size="1" color="#5f5f5f" face="sans-serif">Subject:    
   </font><font size="1" face="sans-serif">Re: [midPoint]
Dynamically set approvers of an approval step</font>
<br><div class="HOEnZb"><div class="h5"><font size="1" color="#5f5f5f" face="sans-serif">Sent by:    
   </font><font size="1" face="sans-serif">"midPoint"
<<a href="mailto:midpoint-bounces@lists.evolveum.com" target="_blank">midpoint-bounces@lists.<wbr>evolveum.com</a>></font>
<br>
<hr noshade>
<br>
<br>
<br><font size="2" color="#2f2f2f" face="Arial">Hello Petr, thanks for your
answer!</font>
<br>
<br><font size="2" color="#2f2f2f" face="Arial">The role that we are trying
to set approver actually doesn't have any approver, that's why we are trying
to set it dynamically from the information of the user object that is being
assign.</font>
<br><font size="2" color="#2f2f2f" face="Arial">The user object of the request
have an attribute (extension attribute managerName) that references to
an attribute value of another user (name), so what we need to do is get
that attribute from the user, search for the user that meet that criteria
and return the approver oid for the ApproverExpression.</font>
<br>
<br><font size="2" color="#2f2f2f" face="Arial">What we have up to now is the
following script:</font>
<br>
<br><font size="2" color="#2f2f2f" face="Arial"><approverExpression></font>
<br><font size="2" color="#2f2f2f" face="Arial">    <script></font>
<br><font size="2" color="#2f2f2f" face="Arial">      
   <code></font>
<br><font size="2" color="#2f2f2f" face="Arial">      
        import com.evolveum.midpoint.xml.ns._<wbr>public.common.common_3.*; </font>
<br><font size="2" color="#2f2f2f" face="Arial">      
        import java.util.*; </font>
<br>
<br><font size="2" color="#2f2f2f" face="Arial">      
        managerName = basic.<wbr>getExtensionPropertyValue(<wbr>object,
'</font><a href="http://midpoint.identicum.com/xml/ns/metaPerson" target="_blank"><font size="2" color="#0062e1" face="Arial"><u>http://midpoint.identicum.<wbr>com/xml/ns/metaPerson</u></font></a><font size="2" color="#2f2f2f" face="Arial">',
'managerName');</font>
<br><font size="2" color="#2f2f2f" face="Arial">      
        log.debug("Manager Name : "
+ managerName);</font>
<br>
<br><font size="2" color="#2f2f2f" face="Arial">      
        userInMPQuery = QueryBuilder.queryFor(<wbr>UserType.class,
getPrismContext()).item(<wbr>UserType.F_NAME).eq(<wbr>managerName).build();</font>
<br><font size="2" color="#2f2f2f" face="Arial">      
        userInMP = midpoint.searchObjects(<wbr>UserType.class,
userInMPQuery);</font>
<br>
<br><font size="2" color="#2f2f2f" face="Arial">      
        log.debug(" Query Result" +
userInMP.get(0).toString());</font>
<br>
<br><font size="2" color="#2f2f2f" face="Arial">      
        return userInMP.get(0).getOid();</font>
<br><font size="2" color="#2f2f2f" face="Arial">      
   </code></font>
<br><font size="2" color="#2f2f2f" face="Arial">     <script></font>
<br><font size="2" color="#2f2f2f" face="Arial"></approverExpression></font>
<br><font size="3"><br>
But for some reason we are not getting any value from that query, we get
the "managerName" value successfully but then we can't search
for the users that meet that criteria.<br>
<br>
Can anyone give us a clue on how can we execute a query with that criteria
?<br>
<br>
Thanks!</font>
<br>
<br>
<br><font size="3">2018-03-28 6:15 GMT-03:00 <</font><a href="mailto:petr.kulheim@ibacz.eu" target="_blank"><font size="3" color="blue"><u>petr.kulheim@ibacz.eu</u></font></a><font size="3">>:</font>
<br><font size="2" face="sans-serif">Hi Ezequiel,</font><font size="3"> </font><font size="2" face="sans-serif"><br>
actually we are using metarole with policyRule in inducement with approverExpression,
e.g.:</font><font size="3"> </font><font size="2" face="sans-serif"><br>
<inducement id="1"></font><font size="3"> </font><font size="2" face="sans-serif"><br>
         <policyRule></font><font size="3">
</font><font size="2" face="sans-serif"><br>
            <policyConstraints></font><font size="3">
</font><font size="2" face="sans-serif"><br>
               <assignment></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                  <operation>add</operation></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                  <relation>q:any</relation></font><font size="3">
</font><font size="2" face="sans-serif"><br>
               </assignment></font><font size="3">
</font><font size="2" face="sans-serif"><br>
            </policyConstraints></font><font size="3">
</font><font size="2" face="sans-serif"><br>
            <policyActions></font><font size="3">
</font><font size="2" face="sans-serif"><br>
               <approval></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                  <compositionStrategy></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     <order>20</order></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                  </compositionStrategy></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                  <approvalSchema></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     <level></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
  <name>Role Approvers</name></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
  <approverExpression></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
     <script xsi:type="c:<wbr>ScriptExpressionEvaluatorType"<wbr>></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
        <code></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
          import com.evolveum.midpoint.xml.ns._<wbr>public.common.common_3.*;</font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
          import java.util.*;</font><font size="3">
<br>
</font><font size="2" face="sans-serif"><br>
                     
          //object - user's  object whom
the approval is related to</font><font size="3"> <br>
</font><font size="2" face="sans-serif"><br>
                     
          roleApproverRefs = target.getApproverRef();</font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
          approvers = [];</font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
          for (user in roleApproverRefs) {</font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
                 approvers.add(user.getOid());</font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
          }</font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
          return approvers;</font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
      </code></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
     </script></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
  </approverExpression></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
  <evaluationStrategy><wbr>firstDecides</<wbr>evaluationStrategy></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
  <outcomeIfNoApprovers>reject</<wbr>outcomeIfNoApprovers></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
  <duration>PT1H</duration></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
  <timedActions></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
     <actions></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
        <complete></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
           <outcome>reject</outcome></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                     
        </complete></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
     </actions></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     
  </timedActions></font><font size="3"> </font><font size="2" face="sans-serif"><br>
                     </level></font><font size="3">
</font><font size="2" face="sans-serif"><br>
                  </approvalSchema></font><font size="3">
</font><font size="2" face="sans-serif"><br>
               </approval></font><font size="3">
</font><font size="2" face="sans-serif"><br>
            </policyActions></font><font size="3">
</font><font size="2" face="sans-serif"><br>
         </policyRule></font><font size="3">
</font><font size="2" face="sans-serif"><br>
</inducement></font><font size="3"> <br>
</font><font size="2" face="sans-serif"><br>
Perhaps you can use <i>object</i>  and/or <i>target </i> objects
and provide your list of approvers.</font><font size="3"> <br>
</font><font size="2" face="sans-serif"><br>
Hope it helps</font><font size="3"> <br>
</font><font size="2" face="sans-serif"><br>
Best regard</font><font size="3"> <br>
</font><font size="2" face="sans-serif"><br>
</font><font size="3"><br>
</font><font size="2" face="Arial"><br>
Petr Kulheim<br>
JEE Developer<br>
<br>
IBA CZ, s.r.o.<br>
Office: Petržílkova 2565/23, 158 00 Praha, CZ<br>
Phone: +420 603 272826<br>
E-mail: </font><a href="mailto:petr.kulheim@ibacz.eu" target="_blank"><font size="2" color="blue" face="Arial"><u>petr.kulheim@ibacz.eu</u></font></a><font size="3">
</font>
<br><a href="http://www.ibacz.eu/email-signature/index.html" target="_blank"><img src="cid:_4_0531A09805319D1C0065E6BEC1258265" alt="IBACZ email signature" style="border:0px solid"></a><font size="3"><br>
<br>
</font><font size="2" face="sans-serif"><br>
 </font><font size="3"> <br>
<br>
<br>
</font><font size="1" color="#5f5f5f" face="sans-serif"><br>
From:        </font><font size="1" face="sans-serif">Ezequiel
Alonso <</font><a href="mailto:ealonso@identicum.com" target="_blank"><font size="1" color="blue" face="sans-serif"><u>ealonso@identicum.com</u></font></a><font size="1" face="sans-serif">></font><font size="3">
</font><font size="1" color="#5f5f5f" face="sans-serif"><br>
To:        </font><a href="mailto:midpoint@lists.evolveum.com" target="_blank"><font size="1" color="blue" face="sans-serif"><u>midpoint@lists.evolveum.com</u></font></a><font size="3">
</font><font size="1" color="#5f5f5f" face="sans-serif"><br>
Date:        </font><font size="1" face="sans-serif">27/03/2018
23:23</font><font size="3"> </font><font size="1" color="#5f5f5f" face="sans-serif"><br>
Subject:        </font><font size="1" face="sans-serif">[midPoint]
Dynamically set approvers of an approval step</font><font size="3"> </font><font size="1" color="#5f5f5f" face="sans-serif"><br>
Sent by:        </font><font size="1" face="sans-serif">"midPoint"
<</font><a href="mailto:midpoint-bounces@lists.evolveum.com" target="_blank"><font size="1" color="blue" face="sans-serif"><u>midpoint-bounces@lists.<wbr>evolveum.com</u></font></a><font size="1" face="sans-serif">></font><font size="3">
</font>
<br>
<hr noshade>
<br><font size="3"><br>
<br>
<br>
Hello,  <br>
<br>
We are trying to figure out how to set approvers of an approval step using
a certain criteria instead of using references to roles or organizations
as it is on several examples on the documentation. <br>
<br>
For example, if a user that is requesting a role needs an approval, then
the approver should be the user that is referenced on an extension attribute
of the user, so to set it as an approver, we need to get that attribute
from the user then search the users that meets that condition in order
to set it as the approver. <br>
<br>
Is this possible or we can only set approvers by members of a role or members
of an Org. <br>
<br>
Thanks!   <br>
<br>
-- </font><font size="1"><b><br>
Ezequiel Alonso</b></font><font size="1" color="#a2a2a2" face="Georgia"><i><br>
I</i></font><font size="1" color="#a2a2a2" face="Verdana"><i>denticum S.A.<br>
Jorge Newbery 3226, Argentina<br>
Tel: +54 (11) 4552-3050</i></font><font size="3"> </font><font size="3" color="blue"><u><br>
</u></font><a href="mailto:ealonso@identicum.com" target="_blank"><font size="1" color="#0062e1" face="Verdana"><i><u>ealonso@identicum.com</u></i></font></a>
<br><a href="http://www.identicum.com/" target="_blank"><font size="1" color="#0062e1" face="Verdana"><i><u>www.identicum.com</u></i></font></a><tt><font size="2">_____________<wbr>______________________________<wbr>____<br>
midPoint mailing list</font></tt><tt><font size="2" color="blue"><u><br>
</u></font></tt><a href="mailto:midPoint@lists.evolveum.com" target="_blank"><tt><font size="2" color="blue"><u>midPoint@lists.evolveum.com</u></font></tt></a><font size="3" color="blue"><u><br>
</u></font><a href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank"><tt><font size="2" color="blue"><u>http://lists.evolveum.com/<wbr>mailman/listinfo/midpoint</u></font></tt></a><font size="3"><br>
</font><font size="2" face="sans-serif"><br>
<br>
</font><font size="3"><br>
</font>
<hr><font size="2" face="sans-serif">Disclaimer:<br>
<br>
The information contained in this communication is intended solely for
the use of the individual or entity to whom it is addressed and others
authorized to receive it.<br>
It may contain confidential or legally privileged information.<br>
If you are not the intended recipient you are hereby notified that any
disclosure, copying, distribution or taking any action in reliance on the
contents of this information is strictly prohibited and may be unlawful.<br>
If you have received this communication in error, please notify us immediately
by forwarding this email to </font><a href="mailto:ict@ibacz.eu" target="_blank"><font size="2" color="blue" face="sans-serif"><u>ict@ibacz.eu</u></font></a><font size="2" face="sans-serif">
and then delete it from your system.<br>
IBA Group is neither liable for the proper and complete transmission of
the information contained in this communication nor for any delay in its
receipt.</font><font size="3"> </font>
<p><font size="3"><br>
______________________________<wbr>_________________<br>
midPoint mailing list</font><font size="3" color="blue"><u><br>
</u></font><a href="mailto:midPoint@lists.evolveum.com" target="_blank"><font size="3" color="blue"><u>midPoint@lists.evolveum.com</u></font></a><font size="3" color="blue"><u><br>
</u></font><a href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank"><font size="3" color="blue"><u>http://lists.evolveum.com/<wbr>mailman/listinfo/midpoint</u></font></a><font size="3"><br>
</font>
<br><font size="3"><br>
</font>
<br>
<br><font size="3">-- </font>
<br><font size="1"><b>Ezequiel Alonso</b></font><font size="1" color="#a2a2a2" face="Georgia"><i><br>
I</i></font><font size="1" color="#a2a2a2" face="Verdana"><i>denticum S.A.<br>
Jorge Newbery 3226, Argentina<br>
Tel: +54 (11) 4552-3050</i></font>
<br><a href="mailto:ealonso@identicum.com" target="_blank"><font size="1" color="#0062e1" face="Verdana"><i><u>ealonso@identicum.com</u></i></font></a><font size="1" color="#0062e1" face="Verdana"><i><u><br>
</u></i></font><a href="http://www.identicum.com/" target="_blank"><font size="1" color="#0062e1" face="Verdana"><i><u>www.identicum.com</u></i></font></a><tt><font size="2">_____________<wbr>______________________________<wbr>____<br>
midPoint mailing list<br>
<a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a><br>
</font></tt><a href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank"><tt><font size="2">http://lists.evolveum.com/<wbr>mailman/listinfo/midpoint</font></tt></a><tt><font size="2"><br>
</font></tt>
<br><font size="2" face="sans-serif"><br>
<br>
</font>
</p><hr><font size="2" face="sans-serif">Disclaimer:<br>
<br>
The information contained in this communication is intended solely for
the use of the individual or entity to whom it is addressed and others
authorized to receive it.<br>
It may contain confidential or legally privileged information.<br>
If you are not the intended recipient you are hereby notified that any
disclosure, copying, distribution or taking any action in reliance on the
contents of this information is strictly prohibited and may be unlawful.<br>
If you have received this communication in error, please notify us immediately
by forwarding this email to <a href="mailto:ict@ibacz.eu" target="_blank">ict@ibacz.eu</a> and then delete it from your system.<br>
IBA Group is neither liable for the proper and complete transmission of
the information contained in this communication nor for any delay in its
receipt.</font>
<br>
<p></p></div></div><br>______________________________<wbr>_________________<br>
midPoint mailing list<br>
<a href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a><br>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" rel="noreferrer" target="_blank">http://lists.evolveum.com/<wbr>mailman/listinfo/midpoint</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><font size="1"><b>Ezequiel Alonso</b><br><i><font color="#999999"><font face="georgia, serif">I</font><font face="verdana, sans-serif">denticum S.A.<br>Jorge Newbery 3226, Argentina<br>Tel: +54 (11) 4552-3050<br></font></font></i></font><div><font color="#999999" face="verdana, sans-serif" size="1"><i><a href="mailto:ealonso@identicum.com" style="color:rgb(17,85,204)" target="_blank">ealonso@identicum.com</a><br><a href="http://www.identicum.com/" style="color:rgb(17,85,204)" target="_blank">www.identicum.com</a></i></font></div></div></div></div></div>
</div>