<div style="font-family: Arial, sans-serif; font-size: 14px;">Got it!</div><div style="font-family: Arial, sans-serif; font-size: 14px;"><br></div><div style="font-family: Arial, sans-serif; font-size: 14px;">Thank you :) </div><div style="font-family: Arial, sans-serif; font-size: 14px;"><br></div>
<div style="font-family: Arial, sans-serif; font-size: 14px;" class="protonmail_signature_block">
    <div class="protonmail_signature_block-user">
        Markus Calmius<br>Proton AG
    </div>
    
            <div class="protonmail_signature_block-proton protonmail_signature_block-empty">
        
            </div>
</div>
<div style="font-family: Arial, sans-serif; font-size: 14px;"><br></div><div class="protonmail_quote">
        On Monday, 2 March 2026 at 09:01, Pavol Mederly via midPoint <midpoint@lists.evolveum.com> wrote:<br>
        <blockquote class="protonmail_quote" type="cite">
            
    <p>Hello Markus,</p>
    <p>the technical reasons are quite minor - as you said, resource
      usage (cpu and memory) - but nothing serious. Especially if it's
      only for a limited number of users.</p>
    <p>It's more a matter of solution elegance; I wanted to show you the
      preferred approach that we use in the production code. :-)</p>
    <p>Best regards,</p>
    <pre class="moz-signature" cols="72">--
Pavol Mederly
Interim Chief Product Officer
evolveum.com</pre>
    <div class="moz-cite-prefix">On 02/03/2026 08:55, Markus Calmius via
      midPoint wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div style="font-family: Arial, sans-serif; font-size: 14px;">Hi
        Pavol,</div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;"><br>
      </div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;">thank
        you for getting back to me again.</div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;"><br>
      </div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;">Can
        I ask though, are there any specific reasons to not do the
        clone&diff?</div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;">I
        assume it might have to do with resource-usage (memory etc) but
        would that be a major drawback? </div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;">In
        this particular case, I do not see it as a problem as it's a
        limited number of users we'd need to do this for, but maybe that
        might change.</div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;"><br>
      </div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;">Thanks,</div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;"><br>
      </div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;" class="protonmail_signature_block">
        <div class="protonmail_signature_block-user"> Markus Calmius<br>
          Proton AG </div>
        <div class="protonmail_signature_block-proton protonmail_signature_block-empty">
        </div>
      </div>
      <div style="font-family: Arial, sans-serif; font-size: 14px;"><br>
      </div>
      <div class="protonmail_quote"> On Monday, 16 February 2026 at
        16:42, Pavol Mederly via midPoint
        <a class="moz-txt-link-rfc2396E" href="mailto:midpoint@lists.evolveum.com" rel="noreferrer nofollow noopener"><midpoint@lists.evolveum.com></a> wrote:<br>
        <blockquote class="protonmail_quote" type="cite">
          <p>Hello Markus,</p>
          <p>I'd prefer direct creation of the delta, avoiding cloning
            and diffing, like</p>
          <p>1. If you know the resource (ResourceType), object class
            name, and shadow OID</p>
          <p><font face="monospace">Resource.of(...)<br>
              .deltaFor(objectClassName)<br>
              .item(ShadowType.F_ATTRIBUTES.append(attrName))<br>
              .replace(value)<br>
              .asObjectDelta(shadowOid);</font></p>
          <p>Resource is in com.evolveum.midpoint.schema.util package.</p>
          <p>(Or) 2. If you have the original shadow - which is probably
            your situation - I am sorry but we don't have nicer API for
            this in already released versions:</p>
          <p><font face="monospace">var objectDefinition =
              ShadowUtil.getResourceObjectDefinition(shadow)<br>
              var delta = PrismContext.get().deltaFor(ShadowType.class,
              new
              Resource.ResourceItemDefinitionResolver(objectDefinition))<br>
              .item(ShadowType.F_ATTRIBUTES.append(attrName))<br>
              .replace(value)<br>
              .asObjectDelta(shadowOid);<br>
            </font><br>
            This second variant is not tested, but it should work. </p>
          <p>Note that after <a href="https://github.com/Evolveum/midpoint/commit/177c011fdbc74b45615d103c1bd0451c29524ffc" class="moz-txt-link-freetext" target="_blank" rel="noreferrer nofollow noopener">https://github.com/Evolveum/midpoint/commit/177c011fdbc74b45615d103c1bd0451c29524ffc</a>
            it could be written like this</p>
          <p><font face="monospace">var objectDefinition =
              ShadowUtil.getResourceObjectDefinition(shadow)<br>
              var delta = objectDefinition.deltaFor()<br>
              .item(ShadowType.F_ATTRIBUTES.append(attrName))<br>
              .replace(value)<br>
              .asObjectDelta(shadowOid);</font></p>
          <p>Best regards,</p>
          <pre class="moz-signature" cols="72">--
Pavol Mederly
Interim Chief Product Officer
evolveum.com</pre>
          <div class="moz-cite-prefix">On 09/02/2026 14:53, Markus
            Calmius via midPoint wrote:<br>
          </div>
          <blockquote type="cite">
            <div style="font-family: Arial, sans-serif; font-size: 14px;">Hi
              Pavol,</div>
            <div style="font-family: Arial, sans-serif; font-size: 14px;"><br>
            </div>
            <div style="font-family: Arial, sans-serif; font-size: 14px;">thank
              you for the pointer.</div>
            <div style="font-family: Arial, sans-serif; font-size: 14px;"><br>
            </div>
            <div style="font-family: Arial, sans-serif; font-size: 14px;">It
              looks like it's working.</div>
            <div style="font-family: Arial, sans-serif; font-size: 14px;">Ended
              up doing it like this... not sure whether or not there are
              better ways though</div>
            <div style="font-family: Arial, sans-serif; font-size: 14px;"><br>
            </div>
            <div style="font-family: Arial, sans-serif; font-size: 14px;">
              <div style="color: rgb(101, 123, 131); background-color: rgb(253, 246, 227);">
                <pre style="font-family:'JetBrains Mono',monospace;font-size:12.0pt"><span style="background-color: rgb(238, 232, 213);">shadowBefore = shadow.clone()
</span>
<span style="background-color: rgb(238, 232, 213);">shadowPrism = shadow.asPrismObject()
</span><span style="background-color: rgb(238, 232, 213);">ipath = ItemPath.create(ShadowType.F_ATTRIBUTES, attrQname)
</span><span style="background-color: rgb(238, 232, 213);">shadowPrism.findOrCreateProperty(ipath).addRealValue(setAttrValue)
</span><span style="background-color: rgb(238, 232, 213);">delta = shadowBefore.asPrismObject().diff(shadowPrism)
</span><span style="background-color: rgb(238, 232, 213);">midpoint.executeChanges(delta)
</span></pre>
              </div>
            </div>
            <div style="font-family: Arial, sans-serif; font-size: 14px;">Kind
              regards,</div>
            <div style="font-family: Arial, sans-serif; font-size: 14px;">Markus</div>
            <div class="protonmail_quote"> On Saturday, 7 February 2026
              at 18:40, Pavol Mederly via midPoint <a class="moz-txt-link-rfc2396E" href="mailto:midpoint@lists.evolveum.com" rel="noreferrer nofollow noopener"><midpoint@lists.evolveum.com></a>
              wrote:<br>
              <blockquote class="protonmail_quote" type="cite">
                <p>Hi Markus,</p>
                <p>certainly. All you need to do is to execute a change
                  against a shadow object, modifying specified attribute
                  directly. The property path to be used is composed
                  from "attributes" and the attribute name, e.g.
                  "attributes/dn".</p>
                <p>Best regards,</p>
                <pre class="moz-signature" cols="72">--
Pavol Mederly
Interim Chief Product Officer
evolveum.com</pre>
                <div class="moz-cite-prefix">On 23/01/2026 13:12, Markus
                  Calmius via midPoint wrote:<br>
                </div>
                <blockquote type="cite">
                  <div style="font-family: Arial, sans-serif; font-size: 14px;">Hi,</div>
                  <div style="font-family: Arial, sans-serif; font-size: 14px;"><span>Is it
                      possible to create a task or groovy script to
                      modify a particular attribute directly on a
                      resource, in the same way as when editing a user’s
                      projection? </span><br>
                    <span>Even without an outbound mapping, the
                      attribute is updated on the resource. I would like
                      to do this via a task/script without defining an
                      outbound mapping, so that changes made by the
                      resource are not overwritten by midpoint during
                      reconciliations.</span><br>
                  </div>
                  <div style="font-family: Arial, sans-serif; font-size: 14px;"><br>
                  </div>
                  <div style="font-family: Arial, sans-serif; font-size: 14px;">Kind regards,</div>
                  <div style="font-family: Arial, sans-serif; font-size: 14px;"><br>
                  </div>
                  <div style="font-family: Arial, sans-serif; font-size: 14px;" class="protonmail_signature_block">
                    <div class="protonmail_signature_block-user"> Markus</div>
                    <div class="protonmail_signature_block-proton protonmail_signature_block-empty">
                    </div>
                  </div>
                  <br>
                  <fieldset class="moz-mime-attachment-header"></fieldset>
                  <pre wrap="" class="moz-quote-pre">_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:midPoint@lists.evolveum.com" rel="noreferrer nofollow noopener">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="https://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank" rel="noreferrer nofollow noopener">https://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
                </blockquote>
              </blockquote>
              <br>
            </div>
            <br>
            <fieldset class="moz-mime-attachment-header"></fieldset>
            <pre wrap="" class="moz-quote-pre">_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:midPoint@lists.evolveum.com" rel="noreferrer nofollow noopener">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="https://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank" rel="noreferrer nofollow noopener">https://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
          </blockquote>
        </blockquote>
        <br>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre wrap="" class="moz-quote-pre">_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com" rel="noreferrer nofollow noopener">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="https://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank" rel="noreferrer nofollow noopener">https://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
    </blockquote>
  


        </blockquote><br>
    </div>