[midPoint] bulk action task for removing assignment

Paul Caskey pcaskey at internet2.edu
Thu Aug 17 21:02:50 CEST 2023


Thanks, Pavol!

For the benefit of the list, here is the bulk action script which will remove all OrgType assignments from all users:

<s:search xmlns:s=http://midpoint.evolveum.com/xml/ns/public/model/scripting-3
          xmlns:q=http://prism.evolveum.com/xml/ns/public/query-3>
    <s:type>UserType</s:type>
    <s:unassign>
        <s:filter>
            <q:ref>
                <q:path>targetRef</q:path>
                <q:value type="OrgType"/>
            </q:ref>
        </s:filter>
    </s:unassign>
</s:search>


From: midPoint <midpoint-bounces at lists.evolveum.com> On Behalf Of Pavol Mederly via midPoint
Sent: Thursday, August 17, 2023 1:35 PM
To: midpoint at lists.evolveum.com
Cc: Pavol Mederly <mederly at evolveum.com>
Subject: Re: [midPoint] bulk action task for removing assignment


Hello Paul,

this is a quirk from the prehistory of midPoint: references are not filtered using q:equal but using q:ref.

Furthermore, you may eliminate custom coding by using "unassign" action that provides a filter for assigments to be removed.

See e.g. https://github.com/Evolveum/midpoint/blob/75e549f2e5ce52ab4b008c18e2e7ba8b2072e151/model/model-intest/src/test/resources/scripting/unassign-captain-from-jack.xml#L18-L26 for an example.

Hope this helps. No guarantees, though. :)

--

Pavol Mederly

Software developer

evolveum.com
On 17/08/2023 17:03, Paul Caskey via midPoint wrote:
I am trying to remove all user assignments to OrgType objects in a bulk action task but am having trouble.

I think I have the filter correct, but I’m having trouble with the script when it tries to examine the type on a given assignment (to prepare it for deletion).

This is the filter:
                        <q:filter>
                            <q:equal>
                                <q:path>assignment/targetRef</q:path>
                                <q:value type="OrgType" />
                            </q:equal>
                        </q:filter>

And this is the first part of the script that checks the assignment for a user:
                                  UserType user = input as UserType
                                  for (AssignmentType assignment : user.getAssignment()) {
                                        if (aassignment.targetRef.type == 'OrgType') {


The error I am getting is:
class com.evolveum.midpoint.prism.impl.PrismReferenceValueImpl cannot be cast to class com.evolveum.midpoint.prism.PrismPropertyValue (com.evolveum.midpoint.prism.impl.PrismReferenceValueImpl and com.evolveum.midpoint.prism.PrismPropertyValue are in unnamed module of loader org.springframework.boot.loader.LaunchedURLClassLoader @2e0fa5d3)


Thanks in advance for any help!
-Paul




_______________________________________________

midPoint mailing list

midPoint at lists.evolveum.com<mailto:midPoint at lists.evolveum.com>

https://lists.evolveum.com/mailman/listinfo/midpoint
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20230817/ea848f6e/attachment-0001.htm>


More information about the midPoint mailing list