[midPoint] Parsing Dates in Inbound Mapping

Pavol Mederly mederly at evolveum.com
Tue Aug 23 19:24:08 CEST 2016


That's the usual process ;)

It seems that midPoint doesn't support xsd:date, only xsd:dateTime.

Best regards,

Pavol Mederly
Software developer
evolveum.com

On 23.08.2016 19:20, Mencel, Matt wrote:
> OK, that changed the error at least.  :)
>
> 2016-08-23 12:17:19,231 [] [midPointScheduler_Worker-6] ERROR 
> (com.evolveum.midpoint.model.impl.util.AbstractSearchIterativeResultHandler): 
> Import of object 
> shadow:4c7c2ce9-9041-46da-b8c3-a57be022ce18(902073705) from 
> resource:0d6babea-6896-11e6-9d38-0050569aa9d2(CSV TEADVS) failed: 
> java.lang.RuntimeException: No type mapping for XSD type 
> {http://www.w3.org/2001/XMLSchema}date({.../common/common-3}input=PPV(String:19850405) 
> <http://www.w3.org/2001/XMLSchema%7Ddate%28%7B.../common/common-3%7Dinput=PPV%28String:19850405%29>; 
> ) in expression in mapping in inbound expression for 
> {http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}birthdate 
> <http://midpoint.evolveum.com/xml/ns/public/resource/instance-3%7Dbirthdate> 
> in resource:0d6babea-6896-11e6-9d38-0050569aa9d2(CSV TEADVS)
> com.evolveum.midpoint.util.exception.SystemException: 
> java.lang.RuntimeException: No type mapping for XSD type 
> {http://www.w3.org/2001/XMLSchema}date({.../common/common-3}input=PPV(String:19850405) 
> <http://www.w3.org/2001/XMLSchema%7Ddate%28%7B.../common/common-3%7Dinput=PPV%28String:19850405%29>; 
> ) in expression in mapping in inbound expression for 
> {http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}birthdate 
> <http://midpoint.evolveum.com/xml/ns/public/resource/instance-3%7Dbirthdate> 
> in resource:0d6babea-6896-11e6-9d38-0050569aa9d2(CSV TEADVS)
>         at 
> com.evolveum.midpoint.model.impl.sync.SynchronizationServiceImpl.notifyChange(SynchronizationServiceImpl.java:316) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.provisioning.impl.ChangeNotificationDispatcherImpl.notifyChange(ChangeNotificationDispatcherImpl.java:148) 
> ~[provisioning-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.sync.SynchronizeAccountResultHandler.handleObjectInternal(SynchronizeAccountResultHandler.java:203) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.sync.SynchronizeAccountResultHandler.handleObject(SynchronizeAccountResultHandler.java:128) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.util.AbstractSearchIterativeResultHandler.processRequest(AbstractSearchIterativeResultHandler.java:327) 
> [model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.util.AbstractSearchIterativeResultHandler.handle(AbstractSearchIterativeResultHandler.java:189) 
> [model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.provisioning.impl.ProvisioningServiceImpl$4.handle(ProvisioningServiceImpl.java:1184) 
> [provisioning-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.provisioning.impl.ShadowCache$2.handle(ShadowCache.java:831) 
> [provisioning-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.provisioning.impl.ResourceObjectConverter$3.handle(ResourceObjectConverter.java:1102) 
> [provisioning-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.provisioning.ucf.impl.ConnectorInstanceIcfImpl$2.handle(ConnectorInstanceIcfImpl.java:2316) 
> [provisioning-impl-3.4.jar:na]
>         at 
> org.identityconnectors.framework.impl.api.SearchResultsHandlerLoggingProxy.handle(SearchResultsHandlerLoggingProxy.java:64) 
> [connector-framework-internal-1.4.3.0-SNAPSHOT.jar:na]
>         at 
> org.identityconnectors.framework.impl.api.StreamHandlerUtil$ObjectStreamHandlerAdapter.handle(StreamHandlerUtil.java:101) 
> [connector-framework-internal-1.4.3.0-SNAPSHOT.jar:na]
>         at 
> org.identityconnectors.framework.impl.api.BufferedResultsProxy.invoke(BufferedResultsProxy.java:262) 
> [connector-framework-internal-1.4.3.0-SNAPSHOT.jar:na]
>         at 
> org.identityconnectors.framework.impl.api.DelegatingTimeoutProxy.invoke(DelegatingTimeoutProxy.java:94) 
> [connector-framework-internal-1.4.3.0-SNAPSHOT.jar:na]
>         at com.sun.proxy.$Proxy170.search(Unknown Source) [na:na]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[na:1.8.0_101]
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> ~[na:1.8.0_101]
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
> ~[na:1.8.0_101]
>         at java.lang.reflect.Method.invoke(Method.java:498) 
> ~[na:1.8.0_101]
>         at 
> org.identityconnectors.framework.impl.api.LoggingProxy.invoke(LoggingProxy.java:83) 
> [connector-framework-internal-1.4.3.0-SNAPSHOT.jar:na]
>         at com.sun.proxy.$Proxy170.search(Unknown Source) [na:na]
>         at 
> org.identityconnectors.framework.impl.api.AbstractConnectorFacade.search(AbstractConnectorFacade.java:177) 
> [connector-framework-internal-1.4.3.0-SNAPSHOT.jar:na]
>         at 
> com.evolveum.midpoint.provisioning.ucf.impl.ConnectorInstanceIcfImpl.search(ConnectorInstanceIcfImpl.java:2412) 
> [provisioning-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.provisioning.impl.ResourceObjectConverter.searchResourceObjects(ResourceObjectConverter.java:1112) 
> [provisioning-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.provisioning.impl.ShadowCache.searchObjectsIterative(ShadowCache.java:838) 
> [provisioning-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.provisioning.impl.ShadowCache.searchObjectsIterative(ShadowCache.java:763) 
> [provisioning-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.provisioning.impl.ProvisioningServiceImpl.searchObjectsIterative(ProvisioningServiceImpl.java:1232) 
> [provisioning-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.ModelObjectResolver.searchIterative(ModelObjectResolver.java:224) 
> [model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.util.AbstractSearchIterativeTaskHandler.runInternal(AbstractSearchIterativeTaskHandler.java:239) 
> [model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.util.AbstractSearchIterativeTaskHandler.run(AbstractSearchIterativeTaskHandler.java:155) 
> [model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.task.quartzimpl.execution.JobExecutor.executeHandler(JobExecutor.java:479) 
> [task-quartz-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.task.quartzimpl.execution.JobExecutor.executeSingleTask(JobExecutor.java:300) 
> [task-quartz-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.task.quartzimpl.execution.JobExecutor.execute(JobExecutor.java:164) 
> [task-quartz-impl-3.4.jar:na]
>         at org.quartz.core.JobRunShell.run(JobRunShell.java:213) 
> [quartz-2.1.3.jar:na]
>         at 
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) 
> [quartz-2.1.3.jar:na]
> Caused by: java.lang.RuntimeException: No type mapping for XSD type 
> {http://www.w3.org/2001/XMLSchema}date({.../common/common-3}input=PPV(String:19850405) 
> <http://www.w3.org/2001/XMLSchema%7Ddate%28%7B.../common/common-3%7Dinput=PPV%28String:19850405%29>; 
> ) in expression in mapping in inbound expression for 
> {http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}birthdate 
> <http://midpoint.evolveum.com/xml/ns/public/resource/instance-3%7Dbirthdate> 
> in resource:0d6babea-6896-11e6-9d38-0050569aa9d2(CSV TEADVS)
>         at 
> com.evolveum.midpoint.model.common.expression.evaluator.AbstractValueTransformationExpressionEvaluator$1.process(AbstractValueTransformationExpressionEvaluator.java:434) 
> ~[model-common-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.common.expression.evaluator.AbstractValueTransformationExpressionEvaluator$1.process(AbstractValueTransformationExpressionEvaluator.java:352) 
> ~[model-common-3.4.jar:na]
>         at 
> com.evolveum.midpoint.util.MiscUtil.carthesian(MiscUtil.java:367) 
> ~[util-3.4.jar:na]
>         at 
> com.evolveum.midpoint.util.MiscUtil.carthesian(MiscUtil.java:357) 
> ~[util-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.common.expression.evaluator.AbstractValueTransformationExpressionEvaluator.evaluateRelativeExpression(AbstractValueTransformationExpressionEvaluator.java:442) 
> ~[model-common-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.common.expression.evaluator.AbstractValueTransformationExpressionEvaluator.evaluate(AbstractValueTransformationExpressionEvaluator.java:114) 
> ~[model-common-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.common.expression.Expression.evaluate(Expression.java:133) 
> ~[model-common-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.common.mapping.Mapping.evaluateExpression(Mapping.java:985) 
> ~[model-common-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.common.mapping.Mapping.evaluate(Mapping.java:520) 
> ~[model-common-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.projector.MappingEvaluator.evaluateMapping(MappingEvaluator.java:95) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.projector.InboundProcessor.evaluateInboundMapping(InboundProcessor.java:490) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.projector.InboundProcessor.processInboundExpressionsForProjection(InboundProcessor.java:319) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.projector.InboundProcessor.processInboundFocal(InboundProcessor.java:186) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.projector.InboundProcessor.processInbound(InboundProcessor.java:128) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.projector.FocusProcessor.processFocusFocus(FocusProcessor.java:212) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.projector.FocusProcessor.processFocus(FocusProcessor.java:146) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.projector.Projector.projectInternal(Projector.java:208) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.projector.Projector.project(Projector.java:106) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.Clockwork.click(Clockwork.java:302) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.lens.Clockwork.run(Clockwork.java:214) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.sync.SynchronizationServiceImpl.reactToChange(SynchronizationServiceImpl.java:766) 
> ~[model-impl-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.impl.sync.SynchronizationServiceImpl.notifyChange(SynchronizationServiceImpl.java:299) 
> ~[model-impl-3.4.jar:na]
>         ... 34 common frames omitted
> Caused by: java.lang.IllegalArgumentException: No type mapping for XSD 
> type {http://www.w3.org/2001/XMLSchema}date 
> <http://www.w3.org/2001/XMLSchema%7Ddate>
>         at 
> com.evolveum.midpoint.prism.xml.XsdTypeMapper.toJavaType(XsdTypeMapper.java:184) 
> ~[prism-3.4.jar:na]
>         at 
> com.evolveum.midpoint.prism.xml.XsdTypeMapper.toJavaType(XsdTypeMapper.java:173) 
> ~[prism-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.common.expression.script.jsr223.Jsr223ScriptEvaluator.evaluate(Jsr223ScriptEvaluator.java:129) 
> ~[model-common-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.common.expression.script.ScriptExpression.evaluate(ScriptExpression.java:111) 
> ~[model-common-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.common.expression.script.ScriptExpressionEvaluator.transformSingleValue(ScriptExpressionEvaluator.java:60) 
> ~[model-common-3.4.jar:na]
>         at 
> com.evolveum.midpoint.model.common.expression.evaluator.AbstractValueTransformationExpressionEvaluator$1.process(AbstractValueTransformationExpressionEvaluator.java:422) 
> ~[model-common-3.4.jar:na]
>         ... 55 common frames omitted
>
> On Tue, Aug 23, 2016 at 12:14 PM, Pavol Mederly <mederly at evolveum.com 
> <mailto:mederly at evolveum.com>> wrote:
>
>     Hello Matt,
>
>     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.
>
>     So your line should be something like Date.parse(..., input).
>
>     Best regards,
>
>     Pavol Mederly
>     Software developer
>     evolveum.com <http://evolveum.com>
>
>     On 23.08.2016 19:10, Mencel, Matt wrote:
>>     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...
>>
>>                 <xsd:element name="birthDate" type="xsd:date"
>>     minOccurs="0" maxOccurs="1">
>>                     <xsd:annotation>
>>                         <xsd:appinfo>
>>     <a:indexed>false</a:indexed>
>>     <a:displayName>DOB</a:displayName>
>>     <a:displayOrder>130</a:displayOrder>
>>                         </xsd:appinfo>
>>                     </xsd:annotation>
>>                 </xsd:element>
>>
>>     and am trying to parse the string to the date field using the
>>     following in my mapping...which doesn't work at the moment.
>>
>>     <attribute>
>>     <ref>ri:birthdate</ref>
>>     <displayName>DOB</displayName>
>>     <inbound>
>>     <target>
>>     <path>$user/extension/birthDate</path>
>>     </target>
>>     <expression>
>>                <script>
>>                  
>>      <language>http://midpoint.evolveum.com/xml/ns/public/expression/language#Groovy
>>     <http://midpoint.evolveum.com/xml/ns/public/expression/language#Groovy></language>
>>                    <code>
>>                        Date.parse('yyyymmdd', birthdate)
>>                    </code>
>>                </script>
>>            </expression>
>>     </inbound>
>>     </attribute>
>>
>>     Do I need to do the script in the user object template instead?
>>
>>     Thanks,
>>     Matt
>>
>>
>>     _______________________________________________
>>     midPoint mailing list
>>     midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>>     http://lists.evolveum.com/mailman/listinfo/midpoint
>>     <http://lists.evolveum.com/mailman/listinfo/midpoint>
>     _______________________________________________ midPoint mailing
>     list midPoint at lists.evolveum.com
>     <mailto:midPoint at lists.evolveum.com>
>     http://lists.evolveum.com/mailman/listinfo/midpoint
>     <http://lists.evolveum.com/mailman/listinfo/midpoint> 
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20160823/197eb310/attachment.htm>


More information about the midPoint mailing list