Hi,
We've been using the FlatFileInterface module to import data from .csv into our app. We've created a number of templates and it works well. However when we try to export the templates that include skip rows we run into the following error:
com.mendix.modules.microflowengine.MicroflowException: Exporting an empty object is not allowed when element is neither optional nor nillable (http://www.example.com/:InterfaceDefinition|ColumnDefinition|MappedAttribute attribute: FlatFileInterface.ColumnDefinition.MappedAttribute)
at FlatFileInterface.MB_ExportInterfaceDefinition (Export with mapping : 'Export to XML')
Advanced stacktrace:
at com.mendix.modules.microflowengine.MicroflowUtil.processException(MicroflowUtil.java:143)
Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: Exporting an empty object is not allowed when element is neither optional nor nillable (http://www.example.com/:InterfaceDefinition|ColumnDefinition|MappedAttribute attribute: FlatFileInterface.ColumnDefinition.MappedAttribute)
at com.mendix.integration.exporter.Exporter$class.com$mendix$integration$exporter$Exporter$$exportNull(Exporter.scala:160)
at com.mendix.integration.exporter.Exporter$class.com$mendix$integration$exporter$Exporter$$exportValue(Exporter.scala:118)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$exportObject$1$$anonfun$apply$1.apply(Exporter.scala:88)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$exportObject$1$$anonfun$apply$1.apply(Exporter.scala:86)
at scala.collection.Iterator$class.foreach(Iterator.scala:742)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1194)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$exportObject$1.apply(Exporter.scala:86)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$exportObject$1.apply(Exporter.scala:83)
at scala.Option.foreach(Option.scala:257)
at com.mendix.integration.exporter.Exporter$class.com$mendix$integration$exporter$Exporter$$exportObject(Exporter.scala:83)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$handleObjectMapping$2.apply(Exporter.scala:74)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$handleObjectMapping$2.apply(Exporter.scala:72)
at scala.Option.fold(Option.scala:158)
at com.mendix.integration.exporter.Exporter$class.com$mendix$integration$exporter$Exporter$$handleObjectMapping(Exporter.scala:72)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$exportObject$1$$anonfun$apply$1$$anonfun$apply$2.apply(Exporter.scala:95)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$exportObject$1$$anonfun$apply$1$$anonfun$apply$2.apply(Exporter.scala:95)
at scala.collection.immutable.List.foreach(List.scala:381)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$exportObject$1$$anonfun$apply$1.apply(Exporter.scala:95)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$exportObject$1$$anonfun$apply$1.apply(Exporter.scala:86)
at scala.collection.Iterator$class.foreach(Iterator.scala:742)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1194)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$exportObject$1.apply(Exporter.scala:86)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$exportObject$1.apply(Exporter.scala:83)
at scala.Option.foreach(Option.scala:257)
at com.mendix.integration.exporter.Exporter$class.com$mendix$integration$exporter$Exporter$$exportObject(Exporter.scala:83)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$handleObjectMapping$2.apply(Exporter.scala:74)
at com.mendix.integration.exporter.Exporter$$anonfun$com$mendix$integration$exporter$Exporter$$handleObjectMapping$2.apply(Exporter.scala:72)
at scala.Option.fold(Option.scala:158)
at com.mendix.integration.exporter.Exporter$class.com$mendix$integration$exporter$Exporter$$handleObjectMapping(Exporter.scala:72)
at com.mendix.integration.exporter.Exporter$class.export(Exporter.scala:43)
at com.mendix.integration.exporter.xml.XmlExporter.export(XmlExporter.scala:12)
at com.mendix.integration.internal.InternalIntegrationImpl.exportStream(InternalIntegrationImpl.scala:309)
at com.mendix.integration.actions.microflow.ExportAction.execute(ExportAction.scala:41)
at com.mendix.integration.actions.microflow.ExportAction.execute(ExportAction.scala:17)
at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47)
at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:192)
at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:149)
at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:49)
at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:260)
at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:248)
at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:168)
at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36)
at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:172)
at com.mendix.core.component.InternalCore.execute(InternalCore.java:414)
at com.mendix.webui.actions.client.ExecuteAction.execute(ExecuteAction.java:144)
at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply$mcV$sp(ClientRequestHandler.scala:311)
at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:301)
at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:301)
at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2$$anon$1.execute(ActionDispatching.scala:143)
at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36)
at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2.apply(ActionDispatching.scala:145)
at scala.util.Try$.apply(Try.scala:192)
at com.mendix.core.session.Worker$$anonfun$receive$3.applyOrElse(ActionDispatching.scala:139)
at akka.actor.Actor$class.aroundReceive(Actor.scala:465)
at com.mendix.core.session.Worker.aroundReceive(ActionDispatching.scala:135)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
at akka.actor.ActorCell.invoke(ActorCell.scala:487)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
at akka.dispatch.Mailbox.run(Mailbox.scala:220)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
I've resolved one of the errors by explicitly setting the StartPosition to 0 in the microflow, however not sure what to set the MappedAttribute & MappedAttributeType values to.
The problem is that the XML mapping is driven by an xsd that doesn't appear to be part of the project. I can't update some of the attributes to be nillable which i think is required.
Anyone encounter this with the FlatFileInterface module?
Thanks