Scripted dynamic report with dynamic drill-down hierarchy defined using datamodel

Options
Venu_Bachwale
edited February 11, 2022 in Analytics #1

Hi,
I am able to create dynamic scripted report which create dynamic cube, create dimensions, measure dynamically; scripts works depends on json input as parameter.

Now, same way I scripted creating datamodel with hierarchy inside rptdesign file (because my target to create report on the fly); seems both are creating fine as there is no error inside script.
But, later there is run-time error as below; I guess it is because iHub BIRT engine is assuming current file is datadesign; where I am scripting inside rptdesign
Is there any way to create dynamic datamodel,drilldown hierarchy inside report design?

java.lang.ClassCastException: org.eclipse.birt.report.model.api.ReportDesignHandle cannot be cast to com.actuate.birt.report.model.api.DataMartHandle
at org.eclipse.birt.report.data.adapter.impl.LinkedDataModelAdapter.adaptTransientDataMartDataSet(LinkedDataModelAdapter.java:837)
at org.eclipse.birt.report.data.adapter.impl.LinkedDataModelAdapter.adaptDataSetDesign(LinkedDataModelAdapter.java:821)
at org.eclipse.birt.report.data.adapter.impl.DataModelAdapter.adaptDataSet(DataModelAdapter.java:104)
at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.createDataSetDesign(ModelDteApiAdapter.java:300)
at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.defineDataSet(ModelDteApiAdapter.java:235)
at com.actuate.birt.report.engine.internal.ActuateGenerationEngine.prepare(ActuateGenerationEngine.java:43)
at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:122)
at org.eclipse.birt.report.engine.executor.ReportExtensionExecutor.execute(ReportExtensionExecutor.java:40)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)
at org.eclipse.birt.report.engine.internal.executor.emitter.ReportEmitterExecutor.execute(ReportEmitterExecutor.java:71)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.execute(SuppressDuplciateReportExecutor.java:42)
at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:234)
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:273)
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:115)
at com.actuate.reportapi.engine.birt.ReportGenerationTask.runTask(ReportGenerationTask.java:1130)
at com.actuate.reportapi.engine.birt.ReportGenerationTask.generateReport(ReportGenerationTask.java:208)
at com.actuate.reportapi.engine.ReportGenerationTaskBase.doTask(ReportGenerationTaskBase.java:154)
at com.actuate.reportapi.engine.Task.execute(Task.java:340)
at com.actuate.reportapi.enginemanager.ControlRunnable.runTask(ControlRunnable.java:84)
at com.actuate.reportapi.enginemanager.ControlRunnable.run(ControlRunnable.java:38)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)