<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Pavol,<br>
      <br>
      Many thanks that looks ideal.  We'll give it a go shortly<br>
      <br>
      The scenario we have is we have a customer with multiple active
      directories and looking to synchronise to a single directory we've
      got midPoint to sync basic attributes such as names etc
      synchronising to midPoint and out again to the target directory,
      we also need to synchronise DN attributes especially assistant and
      manager so we need to maintain that link between users into the
      target directory.<br>
      <br>
      I was wondering if we could use associations in midPoint 3 to do
      this?<br>
      <br>
      Cheers<br>
      Paul<br>
      <br>
      On 12/03/15 20:14, Pavol Mederly wrote:<br>
    </div>
    <blockquote cite="mid:5501F397.3050202@evolveum.com" type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      <div class="moz-cite-prefix">Hello Paul,<br>
        <br>
        yes, midpoint.searchObjects can be used to implement that.<br>
        <br>
        An example that I was able to create is this:<br>
        <br>
        <small><tt><expression></tt><tt><br>
          </tt><tt>    <script></tt><tt><br>
          </tt><tt>        <code></tt><tt><br>
          </tt><tt>import com.evolveum.midpoint.prism.query.EqualFilter</tt><tt><br>
          </tt><tt>import com.evolveum.midpoint.prism.query.ObjectQuery</tt><tt><br>
          </tt><tt>import javax.xml.namespace.QName</tt><tt><br>
          </tt><tt>import
            com.evolveum.midpoint.xml.ns._public.common.common_3.UserType</tt><tt><br>
          </tt><tt>                            </tt><tt><br>
          </tt><tt>prismContext =
            midpoint.createEmptyObject(UserType.class).asPrismObject().getPrismContext()        

            // temporary solution </tt><tt>until there's a
            midpoint.getPrismContext() method<br>
          </tt><tt>                            </tt><tt><br>
          </tt><tt>log.info("Trying to find a user with a nickname =
            {}", input)</tt><tt><br>
          </tt><tt>filter = EqualFilter.createEqual(new
            QName("nickName"), UserType.class, prismContext, null,
            input)</tt><tt><br>
          </tt><tt>query = ObjectQuery.createObjectQuery(filter)</tt><tt><br>
          </tt><tt>list = midpoint.searchObjects(UserType.class, query)</tt><tt><br>
          </tt><tt>if (list.size() &gt; 0) {</tt><tt><br>
          </tt><tt>    'Found: ' + list.get(0).getFamilyName()</tt><tt><br>
          </tt><tt>} else {</tt><tt><br>
          </tt><tt>    'Nothing found'</tt><tt><br>
          </tt><tt>}</tt><tt><br>
          </tt><tt>        </code></tt><tt><br>
          </tt><tt>    </script></tt><tt><br>
          </tt><tt></expression></tt><tt><br>
          </tt></small><br>
        (Yes, I know it's a bit ugly. :-) Maybe someone could find a
        nicer solution.)<br>
        <br>
        This specific script is used as an inbound expression for an
        attribute. It tries to find a user with a nickName (chosen as an
        example) equals to the value of the attribute.<br>
        And then it uses a user's familyName attribute to construct the
        return value.<br>
        <br>
        I suppose we don't have anything like this in our examples
        because it is quite a non-usual thing - to search midPoint
        repository from within a mapping. Other aspects aside, I think
        it would be quite slow to execute. Maybe there would be some
        other way how to achieve what you'd like to do.<br>
        <br>
        What exactly is your scenario, your requirement?<br>
        <br>
        Best regards,<br>
        Pavol<br>
        <br>
        <br>
        On 12. 3. 2015 18:25, Paul Heaney wrote:<br>
      </div>
      <blockquote cite="mid:5501CBF3.1080604@pheaney.co.uk" type="cite">Hi,

        <br>
        <br>
        We're looking to synchronise users assistants from Active
        Directory to midPoint, to do this we need to do a search on
        midPoint based on the received assistant value.  I believe we
        should be able to do this with the searchObjects function within
        the midPoint script library (using Groovy) though unfortunatly
        I'm having a few difficulties getting the syntax of the query
        parameter correct in my groovy script. <br>
        <br>
        I've had a look at the samples and also the test scripts though
        don't seem to be able to find an example, does anyone have an
        example or pointers on this call? <br>
        <br>
        Thanks <br>
        Paul <br>
        _______________________________________________ <br>
        midPoint mailing list <br>
        <a moz-do-not-send="true" class="moz-txt-link-abbreviated"
          href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a>
        <br>
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
          href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
        <br>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>