Excel-Exporter, InputObject problem

0
Hi, I have installed the Excel Exporter module (and MxReflection). At the ExcelDocumentOverview page I've created a new template and defined an InputObject. But when I run this report (using the 'Create Report' button on this same page) I get an error. Can somebody help along the correct path to solve this problem? It looks as if the objects are not being retrieved. I have placed the error dump below: An error has occurred while handling the request. [User 'gonzo' with session id '7d13b1b9-2893-4aff-8ef9-e07d20646ee2' and roles 'Administrator'] -------- com.mendix.modules.microflowengine.MicroflowException: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreException: Cannot create excel, because the inputobject isn't given. Expect: RiskReporting.RiskReportingPeriod at XLSReport.GenerateReport (JavaAction : 'GenerateExcelDoc') Advanced stacktrace: at com.mendix.modules.microflowengine.MicroflowUtil.processException(MicroflowUtil.java:158) Caused by: com.mendix.core.CoreException: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreException: Cannot create excel, because the inputobject isn't given. Expect: RiskReporting.RiskReportingPeriod at com.mendix.core.component.InternalCore.execute(InternalCore.java:275) Caused by: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreException: Cannot create excel, because the inputobject isn't given. Expect: RiskReporting.RiskReportingPeriod at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:217) Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreException: Cannot create excel, because the inputobject isn't given. Expect: RiskReporting.RiskReportingPeriod at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:43) Caused by: com.mendix.core.CoreException: Cannot create excel, because the inputobject isn't given. Expect: RiskReporting.RiskReportingPeriod at xlsreport.actions.GenerateExcelDoc.executeAction(GenerateExcelDoc.java:72) at xlsreport.actions.GenerateExcelDoc.executeAction(GenerateExcelDoc.java:36) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:53) at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:291) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:276) at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:204) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:37) at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:199) at com.mendix.core.component.InternalCore.execute(InternalCore.java:263) at com.mendix.modules.microflowengine.actions.actioncall.JavaAction.execute(JavaAction.scala:42) at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:49) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:193) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:148) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:53) at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:291) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:276) at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:204) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:37) at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:199) at com.mendix.core.component.InternalCore.execute(InternalCore.java:263) at com.mendix.webui.actions.client.ExecuteAction.execute(ExecuteAction.java:135) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply$mcV$sp(ClientRequestHandler.scala:300) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:293) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:293) at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2$$anon$1.execute(ActionDispatching.scala:151) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:37) at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2.apply(ActionDispatching.scala:153) at scala.util.Try$.apply(Try.scala:191) at com.mendix.core.session.Worker$$anonfun$receive$3.applyOrElse(ActionDispatching.scala:147) at akka.actor.Actor$class.aroundReceive(Actor.scala:465) at com.mendix.core.session.Worker.aroundReceive(ActionDispatching.scala:140) 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)
asked
2 answers
1

The InputObject on a template can be used to constrain data based on an association. For example you have a top entity 'Report' that you create for each export. For each worksheet there is a child entity that is attached to the 'Report' entity. With a microflow you create and fill the data for each worksheet and attach those to the 'Report'. So basically you create the custom data for each report that someone needs.

The advantage with this construction is that you can set an association on the worksheet of the template to the InputObject from the RowObject. The module will automatically add an constrain based on the association when retrieving the data from the database.

When executing 'Create Report' the module will check if the expected InputObject is given when the Java action is called to add the association constrain, which you have configured it in the template. If the InputObject is empty, it will raise this exception, because the association can't be added.

answered
0

Thanks Joel. It's seems to be working correctly now. BTW, each time a new report is generated a new InputObject is created. I specify Attribute DeleteAfterDownload = 'true', but the object remains after download. Do you know why?

answered