[midPoint] Dynamically set approvers of an approval step
petr.kulheim at ibacz.eu
petr.kulheim at ibacz.eu
Wed Apr 4 20:33:06 CEST 2018
Hi Ezequiel,
have you tried function
midpoint.searchObjectByName(UserType.class,managerName) ?
Petr
From: Ezequiel Alonso <ealonso at identicum.com>
To: midPoint General Discussion <midpoint at lists.evolveum.com>
Date: 03/04/2018 23:20
Subject: Re: [midPoint] Dynamically set approvers of an approval
step
Sent by: "midPoint" <midpoint-bounces at lists.evolveum.com>
Hello Petr, thanks for your answer!
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.
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.
What we have up to now is the following script:
<approverExpression>
<script>
<code>
import
com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import java.util.*;
managerName = basic.getExtensionPropertyValue(object, '
http://midpoint.identicum.com/xml/ns/metaPerson', 'managerName');
log.debug("Manager Name : " + managerName);
userInMPQuery = QueryBuilder.queryFor(UserType.class,
getPrismContext()).item(UserType.F_NAME).eq(managerName).build();
userInMP = midpoint.searchObjects(UserType.class,
userInMPQuery);
log.debug(" Query Result" + userInMP.get(0).toString());
return userInMP.get(0).getOid();
</code>
<script>
</approverExpression>
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.
Can anyone give us a clue on how can we execute a query with that criteria
?
Thanks!
2018-03-28 6:15 GMT-03:00 <petr.kulheim at ibacz.eu>:
Hi Ezequiel,
actually we are using metarole with policyRule in inducement with
approverExpression, e.g.:
<inducement id="1">
<policyRule>
<policyConstraints>
<assignment>
<operation>add</operation>
<relation>q:any</relation>
</assignment>
</policyConstraints>
<policyActions>
<approval>
<compositionStrategy>
<order>20</order>
</compositionStrategy>
<approvalSchema>
<level>
<name>Role Approvers</name>
<approverExpression>
<script
xsi:type="c:ScriptExpressionEvaluatorType">
<code>
import
com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import java.util.*;
//object - user's object whom the
approval is related to
roleApproverRefs =
target.getApproverRef();
approvers = [];
for (user in roleApproverRefs) {
approvers.add(user.getOid());
}
return approvers;
</code>
</script>
</approverExpression>
<evaluationStrategy>firstDecides</evaluationStrategy>
<outcomeIfNoApprovers>reject</outcomeIfNoApprovers>
<duration>PT1H</duration>
<timedActions>
<actions>
<complete>
<outcome>reject</outcome>
</complete>
</actions>
</timedActions>
</level>
</approvalSchema>
</approval>
</policyActions>
</policyRule>
</inducement>
Perhaps you can use object and/or target objects and provide your list
of approvers.
Hope it helps
Best regard
Petr Kulheim
JEE Developer
IBA CZ, s.r.o.
Office: Petržílkova 2565/23, 158 00 Praha, CZ
Phone: +420 603 272826
E-mail: petr.kulheim at ibacz.eu
From: Ezequiel Alonso <ealonso at identicum.com>
To: midpoint at lists.evolveum.com
Date: 27/03/2018 23:23
Subject: [midPoint] Dynamically set approvers of an approval step
Sent by: "midPoint" <midpoint-bounces at lists.evolveum.com>
Hello,
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.
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.
Is this possible or we can only set approvers by members of a role or
members of an Org.
Thanks!
--
Ezequiel Alonso
Identicum S.A.
Jorge Newbery 3226, Argentina
Tel: +54 (11) 4552-3050
ealonso at identicum.com
www.identicum.com_______________________________________________
midPoint mailing list
midPoint at lists.evolveum.com
http://lists.evolveum.com/mailman/listinfo/midpoint
Disclaimer:
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.
It may contain confidential or legally privileged information.
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.
If you have received this communication in error, please notify us
immediately by forwarding this email to ict at ibacz.eu and then delete it
from your system.
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.
_______________________________________________
midPoint mailing list
midPoint at lists.evolveum.com
http://lists.evolveum.com/mailman/listinfo/midpoint
--
Ezequiel Alonso
Identicum S.A.
Jorge Newbery 3226, Argentina
Tel: +54 (11) 4552-3050
ealonso at identicum.com
www.identicum.com_______________________________________________
midPoint mailing list
midPoint at lists.evolveum.com
http://lists.evolveum.com/mailman/listinfo/midpoint
Disclaimer:
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.
It may contain confidential or legally privileged information.
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.
If you have received this communication in error, please notify us
immediately by forwarding this email to ict at ibacz.eu and then delete it
from your system.
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20180404/e2e2035d/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 48578 bytes
Desc: not available
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20180404/e2e2035d/attachment.png>
More information about the midPoint
mailing list