<div dir="ltr">Ah so now it's getting a bit crazy. Apparently I have to convert it to an XMLGregorianCalendar type to put something in a dateTime attribute.<div><br></div><div>This is probably not the right way, but when I tried this Groovy couldn't find the XMLGregorianCalendar class.</div><div><br></div><attribute><br><ref>ri:birthdate</ref><br><displayName>DOB</displayName><br><inbound><br><target><br><path>$user/extension/birthDate</path><br></target><br><expression><br> <script><br> <language><a href="http://midpoint.evolveum.com/xml/ns/public/expression/language#Groovy">http://midpoint.evolveum.com/xml/ns/public/expression/language#Groovy</a></language><br> <code><br> <!-- Date.parse('yyyymmdd', input) --><br>GregorianCalendar c = new GregorianCalendar(); c.setTime(input); XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);<br> </code><br> </script><br> </expression><br></inbound><br></attribute><div><br></div><div>So is everyone just storing dates as strings in Midpoint?</div><div><br></div><div>Matt</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 23, 2016 at 12:24 PM, Pavol Mederly <span dir="ltr"><<a href="mailto:mederly@evolveum.com" target="_blank">mederly@evolveum.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<p>That's the usual process ;)</p>
<p>It seems that midPoint doesn't support xsd:date, only
xsd:dateTime.</p><span class="">
<p>Best regards,</p>
<pre cols="72">Pavol Mederly
Software developer
<a href="http://evolveum.com" target="_blank">evolveum.com</a>
</pre>
</span><div><div class="h5"><div>On 23.08.2016 19:20, Mencel, Matt
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">OK, that changed the error at least. :)
<div><br>
</div>
<div>2016-08-23 12:17:19,231 [] [midPointScheduler_Worker-6]
ERROR
(com.evolveum.midpoint.model.<wbr>impl.util.<wbr>AbstractSearchIterativeResultH<wbr>andler):
Import of object
shadow:4c7c2ce9-9041-46da-<wbr>b8c3-a57be022ce18(902073705) from
<a>resource:0d6babea-6896-11e6-<wbr>9d38-0050569aa9d2(CSV</a> TEADVS)
failed: java.lang.RuntimeException: No type mapping for XSD
type {<a href="http://www.w3.org/2001/XMLSchema%7Ddate%28%7B.../common/common-3%7Dinput=PPV%28String:19850405%29" target="_blank">http://www.w3.org/2001/<wbr>XMLSchema}date({.../common/<wbr>common-3}input=PPV(String:<wbr>19850405)</a>;
) in expression in mapping in inbound expression for {<a href="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3%7Dbirthdate" target="_blank">http://midpoint.evolveum.com/<wbr>xml/ns/public/resource/<wbr>instance-3}birthdate</a>
in <a>resource:0d6babea-6896-11e6-<wbr>9d38-0050569aa9d2(CSV</a> TEADVS)</div>
<div>com.evolveum.midpoint.util.<wbr>exception.SystemException:
java.lang.RuntimeException: No type mapping for XSD type {<a href="http://www.w3.org/2001/XMLSchema%7Ddate%28%7B.../common/common-3%7Dinput=PPV%28String:19850405%29" target="_blank">http://www.w3.org/2001/<wbr>XMLSchema}date({.../common/<wbr>common-3}input=PPV(String:<wbr>19850405)</a>;
) in expression in mapping in inbound expression for {<a href="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3%7Dbirthdate" target="_blank">http://midpoint.evolveum.com/<wbr>xml/ns/public/resource/<wbr>instance-3}birthdate</a>
in <a>resource:0d6babea-6896-11e6-<wbr>9d38-0050569aa9d2(CSV</a> TEADVS)</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.sync.<wbr>SynchronizationServiceImpl.<wbr>notifyChange(<wbr>SynchronizationServiceImpl.<wbr>java:316)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.<wbr>provisioning.impl.<wbr>ChangeNotificationDispatcherIm<wbr>pl.notifyChange(<wbr>ChangeNotificationDispatcherIm<wbr>pl.java:148)
~[provisioning-impl-3.4.jar:<wbr>na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.sync.<wbr>SynchronizeAccountResultHandle<wbr>r.handleObjectInternal(<wbr>SynchronizeAccountResultHandle<wbr>r.java:203)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.sync.<wbr>SynchronizeAccountResultHandle<wbr>r.handleObject(<wbr>SynchronizeAccountResultHandle<wbr>r.java:128)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.util.<wbr>AbstractSearchIterativeResultH<wbr>andler.processRequest(<wbr>AbstractSearchIterativeResultH<wbr>andler.java:327)
[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.util.<wbr>AbstractSearchIterativeResultH<wbr>andler.handle(<wbr>AbstractSearchIterativeResultH<wbr>andler.java:189)
[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.<wbr>provisioning.impl.<wbr>ProvisioningServiceImpl$4.<wbr>handle(<wbr>ProvisioningServiceImpl.java:<wbr>1184)
[provisioning-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.<wbr>provisioning.impl.ShadowCache$<wbr>2.handle(ShadowCache.java:831)
[provisioning-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.<wbr>provisioning.impl.<wbr>ResourceObjectConverter$3.<wbr>handle(<wbr>ResourceObjectConverter.java:<wbr>1102)
[provisioning-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.<wbr>provisioning.ucf.impl.<wbr>ConnectorInstanceIcfImpl$2.<wbr>handle(<wbr>ConnectorInstanceIcfImpl.java:<wbr>2316)
[provisioning-impl-3.4.jar:na]</div>
<div> at
org.identityconnectors.<wbr>framework.impl.api.<wbr>SearchResultsHandlerLoggingPro<wbr>xy.handle(<wbr>SearchResultsHandlerLoggingPro<wbr>xy.java:64)
[connector-framework-internal-<wbr>1.4.3.0-SNAPSHOT.jar:na]</div>
<div> at
org.identityconnectors.<wbr>framework.impl.api.<wbr>StreamHandlerUtil$<wbr>ObjectStreamHandlerAdapter.<wbr>handle(StreamHandlerUtil.java:<wbr>101)
[connector-framework-internal-<wbr>1.4.3.0-SNAPSHOT.jar:na]</div>
<div> at
org.identityconnectors.<wbr>framework.impl.api.<wbr>BufferedResultsProxy.invoke(<wbr>BufferedResultsProxy.java:262)
[connector-framework-internal-<wbr>1.4.3.0-SNAPSHOT.jar:na]</div>
<div> at
org.identityconnectors.<wbr>framework.impl.api.<wbr>DelegatingTimeoutProxy.invoke(<wbr>DelegatingTimeoutProxy.java:<wbr>94)
[connector-framework-internal-<wbr>1.4.3.0-SNAPSHOT.jar:na]</div>
<div> at com.sun.proxy.$Proxy170.<wbr>search(Unknown Source)
[na:na]</div>
<div> at
sun.reflect.<wbr>NativeMethodAccessorImpl.<wbr>invoke0(Native Method)
~[na:1.8.0_101]</div>
<div> at
sun.reflect.<wbr>NativeMethodAccessorImpl.<wbr>invoke(<wbr>NativeMethodAccessorImpl.java:<wbr>62)
~[na:1.8.0_101]</div>
<div> at
sun.reflect.<wbr>DelegatingMethodAccessorImpl.<wbr>invoke(<wbr>DelegatingMethodAccessorImpl.<wbr>java:43)
~[na:1.8.0_101]</div>
<div> at java.lang.reflect.Method.<wbr>invoke(Method.java:498)
~[na:1.8.0_101]</div>
<div> at
org.identityconnectors.<wbr>framework.impl.api.<wbr>LoggingProxy.invoke(<wbr>LoggingProxy.java:83)
[connector-framework-internal-<wbr>1.4.3.0-SNAPSHOT.jar:na]</div>
<div> at com.sun.proxy.$Proxy170.<wbr>search(Unknown Source)
[na:na]</div>
<div> at
org.identityconnectors.<wbr>framework.impl.api.<wbr>AbstractConnectorFacade.<wbr>search(<wbr>AbstractConnectorFacade.java:<wbr>177)
[connector-framework-internal-<wbr>1.4.3.0-SNAPSHOT.jar:na]</div>
<div> at
com.evolveum.midpoint.<wbr>provisioning.ucf.impl.<wbr>ConnectorInstanceIcfImpl.<wbr>search(<wbr>ConnectorInstanceIcfImpl.java:<wbr>2412)
[provisioning-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.<wbr>provisioning.impl.<wbr>ResourceObjectConverter.<wbr>searchResourceObjects(<wbr>ResourceObjectConverter.java:<wbr>1112)
[provisioning-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.<wbr>provisioning.impl.ShadowCache.<wbr>searchObjectsIterative(<wbr>ShadowCache.java:838)
[provisioning-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.<wbr>provisioning.impl.ShadowCache.<wbr>searchObjectsIterative(<wbr>ShadowCache.java:763)
[provisioning-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.<wbr>provisioning.impl.<wbr>ProvisioningServiceImpl.<wbr>searchObjectsIterative(<wbr>ProvisioningServiceImpl.java:<wbr>1232)
[provisioning-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.ModelObjectResolver.<wbr>searchIterative(<wbr>ModelObjectResolver.java:224)
[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.util.<wbr>AbstractSearchIterativeTaskHan<wbr>dler.runInternal(<wbr>AbstractSearchIterativeTaskHan<wbr>dler.java:239)
[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.util.<wbr>AbstractSearchIterativeTaskHan<wbr>dler.run(<wbr>AbstractSearchIterativeTaskHan<wbr>dler.java:155)
[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.task.<wbr>quartzimpl.execution.<wbr>JobExecutor.executeHandler(<wbr>JobExecutor.java:479)
[task-quartz-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.task.<wbr>quartzimpl.execution.<wbr>JobExecutor.executeSingleTask(<wbr>JobExecutor.java:300)
[task-quartz-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.task.<wbr>quartzimpl.execution.<wbr>JobExecutor.execute(<wbr>JobExecutor.java:164)
[task-quartz-impl-3.4.jar:na]</div>
<div> at
org.quartz.core.JobRunShell.<wbr>run(JobRunShell.java:213)
[quartz-2.1.3.jar:na]</div>
<div> at
org.quartz.simpl.<wbr>SimpleThreadPool$WorkerThread.<wbr>run(SimpleThreadPool.java:557)
[quartz-2.1.3.jar:na]</div>
<div>Caused by: java.lang.RuntimeException: No type mapping for
XSD type {<a href="http://www.w3.org/2001/XMLSchema%7Ddate%28%7B.../common/common-3%7Dinput=PPV%28String:19850405%29" target="_blank">http://www.w3.org/2001/<wbr>XMLSchema}date({.../common/<wbr>common-3}input=PPV(String:<wbr>19850405)</a>;
) in expression in mapping in inbound expression for {<a href="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3%7Dbirthdate" target="_blank">http://midpoint.evolveum.com/<wbr>xml/ns/public/resource/<wbr>instance-3}birthdate</a>
in <a>resource:0d6babea-6896-11e6-<wbr>9d38-0050569aa9d2(CSV</a> TEADVS)</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.expression.evaluator.<wbr>AbstractValueTransformationExp<wbr>ressionEvaluator$1.process(<wbr>AbstractValueTransformationExp<wbr>ressionEvaluator.java:434)
~[model-common-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.expression.evaluator.<wbr>AbstractValueTransformationExp<wbr>ressionEvaluator$1.process(<wbr>AbstractValueTransformationExp<wbr>ressionEvaluator.java:352)
~[model-common-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.util.<wbr>MiscUtil.carthesian(MiscUtil.<wbr>java:367)
~[util-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.util.<wbr>MiscUtil.carthesian(MiscUtil.<wbr>java:357)
~[util-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.expression.evaluator.<wbr>AbstractValueTransformationExp<wbr>ressionEvaluator.<wbr>evaluateRelativeExpression(<wbr>AbstractValueTransformationExp<wbr>ressionEvaluator.java:442)
~[model-common-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.expression.evaluator.<wbr>AbstractValueTransformationExp<wbr>ressionEvaluator.evaluate(<wbr>AbstractValueTransformationExp<wbr>ressionEvaluator.java:114)
~[model-common-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.expression.Expression.<wbr>evaluate(Expression.java:133)
~[model-common-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.mapping.Mapping.<wbr>evaluateExpression(Mapping.<wbr>java:985)
~[model-common-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.mapping.Mapping.<wbr>evaluate(Mapping.java:520)
~[model-common-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.projector.<wbr>MappingEvaluator.<wbr>evaluateMapping(<wbr>MappingEvaluator.java:95)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.projector.<wbr>InboundProcessor.<wbr>evaluateInboundMapping(<wbr>InboundProcessor.java:490)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.projector.<wbr>InboundProcessor.<wbr>processInboundExpressionsForPr<wbr>ojection(InboundProcessor.<wbr>java:319)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.projector.<wbr>InboundProcessor.<wbr>processInboundFocal(<wbr>InboundProcessor.java:186)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.projector.<wbr>InboundProcessor.<wbr>processInbound(<wbr>InboundProcessor.java:128)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.projector.<wbr>FocusProcessor.<wbr>processFocusFocus(<wbr>FocusProcessor.java:212)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.projector.<wbr>FocusProcessor.processFocus(<wbr>FocusProcessor.java:146)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.projector.Projector.<wbr>projectInternal(Projector.<wbr>java:208)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.projector.Projector.<wbr>project(Projector.java:106)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.Clockwork.click(<wbr>Clockwork.java:302)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.lens.Clockwork.run(<wbr>Clockwork.java:214)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.sync.<wbr>SynchronizationServiceImpl.<wbr>reactToChange(<wbr>SynchronizationServiceImpl.<wbr>java:766)
~[model-impl-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>impl.sync.<wbr>SynchronizationServiceImpl.<wbr>notifyChange(<wbr>SynchronizationServiceImpl.<wbr>java:299)
~[model-impl-3.4.jar:na]</div>
<div> ... 34 common frames omitted</div>
<div>Caused by: java.lang.<wbr>IllegalArgumentException: No type
mapping for XSD type {<a href="http://www.w3.org/2001/XMLSchema%7Ddate" target="_blank">http://www.w3.org/2001/<wbr>XMLSchema}date</a></div>
<div> at
com.evolveum.midpoint.prism.<wbr>xml.XsdTypeMapper.toJavaType(<wbr>XsdTypeMapper.java:184)
~[prism-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.prism.<wbr>xml.XsdTypeMapper.toJavaType(<wbr>XsdTypeMapper.java:173)
~[prism-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.expression.script.<wbr>jsr223.Jsr223ScriptEvaluator.<wbr>evaluate(<wbr>Jsr223ScriptEvaluator.java:<wbr>129)
~[model-common-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.expression.script.<wbr>ScriptExpression.evaluate(<wbr>ScriptExpression.java:111)
~[model-common-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.expression.script.<wbr>ScriptExpressionEvaluator.<wbr>transformSingleValue(<wbr>ScriptExpressionEvaluator.<wbr>java:60)
~[model-common-3.4.jar:na]</div>
<div> at
com.evolveum.midpoint.model.<wbr>common.expression.evaluator.<wbr>AbstractValueTransformationExp<wbr>ressionEvaluator$1.process(<wbr>AbstractValueTransformationExp<wbr>ressionEvaluator.java:422)
~[model-common-3.4.jar:na]</div>
<div> ... 55 common frames omitted</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Aug 23, 2016 at 12:14 PM, Pavol
Mederly <span dir="ltr"><<a href="mailto:mederly@evolveum.com" target="_blank">mederly@evolveum.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote">
<div>
<p>Hello Matt,</p>
<p>I assume you get something like "unknown variable
'birthdate'" exception. When creating inbound mappings,
you refer to the incoming value (from the resource) via
"input" variable.</p>
<p>So your line should be something like Date.parse(...,
input).</p>
<p>Best regards,<br>
</p>
<pre cols="72">Pavol Mederly
Software developer
<a href="http://evolveum.com" target="_blank">evolveum.com</a>
</pre>
<div>
<div>
<div>On 23.08.2016 19:10, Mencel, Matt wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div>
<div>
<div dir="ltr">So in my CSV I have a birthday field
stored as a string value like so... '20160822'.
I've created a DOB field in my custom schema of
type date...
<div><br>
</div>
<div>
<div> <xsd:element
name="birthDate" type="xsd:date" minOccurs="0"
maxOccurs="1"></div>
<div> <xsd:annotation></div>
<div> <xsd:appinfo></div>
<div>
<a:indexed>false</a:indexed></div>
<div>
<a:displayName>DOB</a:displayN<wbr>ame></div>
<div>
<a:displayOrder>130</a:display<wbr>Order></div>
<div> </xsd:appinfo></div>
<div> </xsd:annotation></div>
<div> </xsd:element></div>
</div>
<div><br>
</div>
<div>and am trying to parse the string to the date
field using the following in my mapping...which
doesn't work at the moment.</div>
<div><br>
</div>
<attribute><br>
<ref>ri:birthdate</ref><br>
<displayName>DOB</displayName><br>
<inbound><br>
<target><br>
<path>$user/extension/birthDat<wbr>e</path><br>
</target><br>
<expression><br>
<script><br>
<language><a href="http://midpoint.evolveum.com/xml/ns/public/expression/language#Groovy" target="_blank">http://midpoint.evo<wbr>lveum.com/xml/ns/public/expres<wbr>sion/language#Groovy</a></language<wbr>><br>
<code><br>
Date.parse('yyyymmdd',
birthdate)<br>
</code><br>
</script><br>
</expression><br>
</inbound><br>
</attribute>
<div><br>
</div>
<div>Do I need to do the script in the user object
template instead?</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Matt</div>
</div>
<br>
<fieldset></fieldset>
<br>
</div>
</div>
<pre>______________________________<wbr>_________________
midPoint mailing list
<a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank">http://lists.evolveum.com/mail<wbr>man/listinfo/midpoint</a>
</pre>
</blockquote>
</div>
______________________________<wbr>_________________
midPoint mailing list
<a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" rel="noreferrer" target="_blank">http://lists.evolveum.com/mail<wbr>man/listinfo/midpoint</a>
</blockquote></div>
</div>
<fieldset></fieldset>
<pre>______________________________<wbr>_________________
midPoint mailing list
<a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank">http://lists.evolveum.com/<wbr>mailman/listinfo/midpoint</a>
</pre>
</blockquote>
</div></div></div><br>______________________________<wbr>_________________<br>
midPoint mailing list<br>
<a href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a><br>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" rel="noreferrer" target="_blank">http://lists.evolveum.com/<wbr>mailman/listinfo/midpoint</a><br>
<br></blockquote></div><br></div>