[midPoint] Template modification
Pavol Mederly
mederly at evolveum.com
Fri Jan 26 12:52:11 CET 2018
Please try adding "return null" at the end of the script. If it would
not help, you can also rewrite it like
if (ADGroup == null) {
return null
}
etc.
Pavol Mederly
Software developer
evolveum.com
On 26.01.2018 12:35, Pavol Mederly wrote:
>
> Hello Jan,
>
> it is interesting but in my case the script works (invoking it as a
> bulk action, just to test it):
>
> <s:pipeline
> xmlns:s="http://midpoint.evolveum.com/xml/ns/public/model/scripting-3">
> <s:expression
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:type="s:SearchExpressionType">
> <s:type>ObjectType</s:type>
> <s:searchFilter>
> <q:inOid
> xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3">
> <q:value>00000000-0000-0000-0000-000000000002</q:value>
> <!-- administrator -->
> </q:inOid>
> </s:searchFilter>
> </s:expression>
> <s:expression
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:type="s:ActionExpressionType">
> <s:type>execute-script</s:type>
> <s:parameter>
> <s:name>script</s:name>
> <c:value xsi:type="c:ScriptExpressionEvaluatorType"
> xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3">
> <c:code>
> import
> com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
> import
> com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
> import
> com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
> import
> com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
> import java.util.*;
>
> ADGroup = "End user"
> log.warn("XXX assigning from SAP role {}", ADGroup)
> if (ADGroup != null) {
> orgName = ADGroup;
>
> org = midpoint.searchObjectByName(RoleType.class,
> orgName);
> if (org != null)
> {
> log.info("org {}" , org)
> orgOrt = new ObjectReferenceType();
> orgOrt.setOid(org.getOid());
> orgOrt.setType(RoleType.COMPLEX_TYPE);
>
> AssignmentType assignment = new AssignmentType();
> assignment.asPrismContainerValue()
> assignment.setTargetRef(orgOrt);
> return assignment
> }
> }
> </c:code>
> </c:value>
> </s:parameter>
> </s:expression>
> </s:pipeline>
>
> Just a few notes (but these have no impact on the exception you
> experience):
>
> 1. You use orgName/org but you search for RoleType.class - it
> probably should be OrgType.class.
> 2. assignment.asPrismContainerValue() can be probably eliminated; it
> does nothing.
>
> Maybe you could rewrite your groovy code in a bit different way... I
> really don't know.
>
> Pavol Mederly
> Software developer
> evolveum.com
> On 23.01.2018 7:32, Jan Kaspar wrote:
>> Hi Oskar, all,
>>
>> Yes i tryed this, but it didnt work. with that code:
>>
>> <code>
>> import
>> com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
>> import
>> com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
>> import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
>> import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
>> import java.util.*;
>> log.warn("XXX assigning from SAP role {}" , ADGroup)
>> if (ADGroup != null){
>> orgName = ADGroup;
>> org = midpoint.searchObjectByName(RoleType.class,
>> orgName);
>> if (org != null)
>> {
>> log.info("org {}" , org)
>> orgOrt = new ObjectReferenceType();
>> orgOrt.setOid(org.getOid());
>> orgOrt.setType(RoleType.COMPLEX_TYPE);
>>
>> AssignmentType assignment = new AssignmentType();
>> assignment.asPrismContainerValue()
>> assignment.setTargetRef(orgOrt);
>> return assignment
>> }
>> }
>> </code>
>>
>> I got error:
>>
>>
>> Operation
>> Reconcile user (Gui): {0}
>> Message
>> Couldn't reconcile user
>> user:08c284d4-8bc8-4b1a-a598-785773c51d62(ales.levinsky).
>>
>> Error
>> groovy.lang.MissingMethodException: No signature of method:
>> org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.If() is
>> applicable for argument types: (java.lang.Boolean,
>> Script31$_run_closure1) values: [true,
>> Script31$_run_closure1 at 2eb5683] Possible solutions: find(),
>> any(), is(java.lang.Object), wait(), dump(), grep() in expression
>> in mapping in inbound expression for
>> {http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}memberOf
>> in resource:746ecf5e-3e8c-11e6-b2f9-3c970e44b9e2(BLUED
>> (LDAP))({.../common/common-3}input=CN=POS_AX_ADMINS,OU=Groups,OU=CZ,DC=domain,DC=local;
>> ) in expression in mapping in inbound expression for
>> {http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}memberOf
>> in resource:746ecf5e-3e8c-11e6-b2f9-3c970e44b9e2(BLUED (LDAP))
>>
>> Any idea? I fouind some things on internet about bug in groovy. But
>> without solution for now.
>>
>> Jan
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com
>> http://lists.evolveum.com/mailman/listinfo/midpoint
>
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20180126/46adaf7a/attachment.htm>
More information about the midPoint
mailing list