<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi Deepak,<br>
    <br>
    just a note from a practice: I've never used iterations on inbound.
    But you can use them in object template to generate (for example)
    unique user/name property.<br>
    <br>
    So in a few words, you would not set user/name from inbound
    expressions, but you would compute it from object template.<br>
    <br>
    I believe I've dropped some example to the list before, if not, I
    can drop one later today if you're interested.<br>
    <br>
    Regards<br>
    <br>
    Ivan<br>
    <br>
    <div class="moz-cite-prefix">On 07/01/2014 12:41 PM, Deepak
      Natarajan wrote:<br>
    </div>
    <blockquote cite="mid:53B2906F.4060303@trilobytesystems.com"
      type="cite">
      <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
      <br>
      Hmmm. Looking at the documentation again, it seems inbound
      mappings are mentioned nowhere.<br>
      <br>
      Are these iteration tokens only valid for outbound mappings (i.e
      should I move this usage on inbound mappings to a user creation
      template?)<br>
      <br>
      Why is this so....? <br>
      <br>
      <blockquote style="border: 0px none;"
        cite="mid:53B28F7B.3010502@trilobytesystems.com" type="cite">
        <div style="margin:30px 25px 10px 25px;" class="__pbConvHr">
          <div style="display:table;width:100%;border-top:1px solid
            #EDEEF0;padding-top:5px">
            <div
              style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
                photoaddress="dnataraj@trilobytesystems.com"
                photoname="Deepak Natarajan"
                src="cid:part1.01080106.01070201@evolveum.com"
                name="compose-unknown-contact.jpg" height="25px"
                width="25px"></div>
            <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
              <a moz-do-not-send="true"
                href="mailto:dnataraj@trilobytesystems.com"
                style="color:#737F92
                !important;padding-right:6px;font-weight:bold;text-decoration:none
                !important;">Deepak Natarajan</a></div>
            <div
              style="display:table-cell;white-space:nowrap;vertical-align:middle;">
              <font color="#9FA2A5"><span style="padding-left:6px">July
                  1, 2014 at 1:37 PM</span></font></div>
          </div>
        </div>
        <div style="color:#888888;margin-left:24px;margin-right:24px;"
          __pbrmquotes="true" class="__pbConvBody">
          <div>Hi -<br>
            <br>
            I'm trying to formulate unique uid's for the user on an
            inbound mapping.<br>
            I am using iterationToken (I am using a snippet from one of
            Ivan's<br>
            examples).<br>
            <br>
            This is my attribute mapping<br>
            <br>
            <attribute><br>
            <ref>icfs:name</ref><br>
            <limitations><br>
            <minOccurs>0</minOccurs><br>
            <access><br>
            <read>true</read><br>
            <add>true</add><br>
            <modify>true</modify><br>
            </access><br>
            </limitations><br>
            <inbound><br>
            <c:expression><br>
            <c:script><br>
            <c:code><br>
            input + '-apos' + iterationToken<br>
            </c:code><br>
            </c:script><br>
            </c:expression><br>
            <target><br>
            <path>$user/name</path><br>
            </target><br>
            </inbound><br>
            </attribute><br>
            <br>
            followed by the iteration definition :<br>
            <br>
            <iteration><br>
            <maxIterations>999</maxIterations><br>
            <tokenExpression><br>
            <script><br>
            <code><br>
            if (iteration == 0) {<br>
            return "";<br>
            } else {<br>
            return "" + (iteration + 1)<br>
            }<br>
            </code><br>
            </script><br>
            </tokenExpression><br>
            </iteration><br>
            <br>
            I am getting the following exception, when I import users :<br>
            <br>
            Caused by:<br>
com.evolveum.midpoint.util.exception.ExpressionEvaluationException:<br>
            groovy.lang.MissingPropertyException: No such property:
            iterationToken<br>
            for class: Script17 expression in mapping in inbound
            expression for<br>
            {<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3">http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3</a>}name<br>
            in <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="resource:036f0100-2fe8-49e1-a8fd-5548374f8703%28APOS">resource:036f0100-2fe8-49e1-a8fd-5548374f8703(APOS</a>
            CSV Feeder<br>
            Resource Definition)<br>
            at<br>
com.evolveum.midpoint.model.common.expression.script.jsr223.Jsr223ScriptEvaluator.evaluate(Jsr223ScriptEvaluator.java:124)<br>
            ~[model-common-3.0.jar:na]<br>
            at<br>
com.evolveum.midpoint.model.common.expression.script.ScriptExpression.evaluate(ScriptExpression.java:108)<br>
            ~[model-common-3.0.jar:na]<br>
            at<br>
com.evolveum.midpoint.model.common.expression.script.ScriptExpressionEvaluator.transformSingleValue(ScriptExpressionEvaluator.java:58)<br>
            ~[model-common-3.0.jar:na]<br>
            at<br>
com.evolveum.midpoint.model.common.expression.evaluator.AbstractValueTransformationExpressionEvaluator$1.process(AbstractValueTransformationExpressionEvaluator.java:420)<br>
            ~[model-common-3.0.jar:na]<br>
            ... 50 common frames omitted<br>
            Caused by: javax.script.ScriptException:<br>
            groovy.lang.MissingPropertyException: No such property:
            iterationToken<br>
            for class: Script17<br>
            at<br>
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:323)<br>
            ~[groovy-1.8.6.jar:1.8.6]<br>
            at<br>
org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:41)<br>
            ~[groovy-1.8.6.jar:1.8.6]<br>
            at javax.script.CompiledScript.eval(CompiledScript.java:92)<br>
            ~[na:1.7.0_45]<br>
            at<br>
com.evolveum.midpoint.model.common.expression.script.jsr223.Jsr223ScriptEvaluator.evaluate(Jsr223ScriptEvaluator.java:122)<br>
            ~[model-common-3.0.jar:na]<br>
            ... 53 common frames omitted<br>
            Caused by: groovy.lang.MissingPropertyException: No such
            property:<br>
            iterationToken for class: Script17<br>
            at<br>
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)<br>
            ~[groovy-1.8.6.jar:1.8.6]<br>
            at<br>
org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)<br>
            ~[groovy-1.8.6.jar:1.8.6]<br>
            at<br>
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)<br>
            ~[groovy-1.8.6.jar:1.8.6]<br>
            at Script17.run(Script17.groovy:2) ~[na:na]<br>
            at<br>
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:320)<br>
            ~[groovy-1.8.6.jar:1.8.6]<br>
            ... 56 common frames omitted<br>
            <br>
            I seem to be following the general guidelines here :<br>
            <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://wiki.evolveum.com/display/midPoint/Unique+Account+Username+HOWTO">https://wiki.evolveum.com/display/midPoint/Unique+Account+Username+HOWTO</a><br>
            <br>
            Am I missing something?<br>
            <br>
            Thanks in advance -<br>
            BR/Deepak<br>
            <br>
            <br>
            <br>
            <br>
          </div>
        </div>
      </blockquote>
      <br>
      <div class="moz-signature">-- <br>
        Deepak Natarajan<br>
        Director<br>
        <br>
        Trilobyte Systems ApS<br>
        <br>
        Falkoner Alle 1, 3            Frederikinkatu 61A, 6th Floor<br>
        2000 Frederiksberg         Business Center Papula<br>
        Denmark                          00100 Helsinki<br>
                                                Finland<br>
        <br>
        Tel : +45 29375068<br>
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
          href="http://www.trilobytesystems.com">http://www.trilobytesystems.com</a><br>
        <br>
        <br>
      </div>
      <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>
    <pre class="moz-signature" cols="72">-- 
  Ing. Ivan Noris
  Senior Identity Management Engineer
  evolveum.com
  ___________________________________________
           "Idem per idem - semper idem Vix."
</pre>
  </body>
</html>