Error printing BOM

I’ve got this error yesterday when printing the BOM. I have about 30 components in that BOM and none show up when the PDF file is generated. I haven’t modified the BOM template in any way. It’s the default report and it seems to be assigned under Apps Management in the Base configuration module. Could I be missing a parameter? I’m running Axelor 7.2.7

Here’s some of the log:

: action: com.axelor.meta.web.MetaController:moreAttrs
2024-03-26 13:16:55.640 DEBUG 43787 --- [0.0-8008-exec-7] c.a.meta.schema.actions.ActionGroup      : action: save
2024-03-26 13:16:55.641 DEBUG 43787 --- [0.0-8008-exec-7] c.a.meta.schema.actions.ActionGroup      : wait for 'save', pending actions: action-method-print-birt
2024-03-26 13:16:55.997 DEBUG 43787 --- [0.0-8008-exec-9] c.a.meta.schema.actions.ActionGroup      : action: action-method-print-birt
2024-03-26 13:16:56.141 ERROR 43787 --- [0.0-8008-exec-9] o.eclipse.birt.data.engine.odaconsumer   : Cannot get ODA driver parameter metadata.
org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot retrieve the parameter metadata.
SQL error #1:ERROR: relation "production_bill_of_material_bill_of_material_set" does not exist
  Position: 475

        at org.eclipse.birt.report.data.oda.jdbc.Statement.getParameterMetaData(Statement.java:914)
        at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.getParameterMetaData(OdaQuery.java:1335)
        at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getOdaDriverParamMetaData(PreparedStatement.java:1602)
        at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getParameterMetaData(PreparedStatement.java:1513)
        at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getParameterMetaData(PreparedStatement.java:1539)
        at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getScaleValue(PreparedStatement.java:4413)
        at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.doSetBigDecimal(PreparedStatement.java:4359)
        at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.setBigDecimal(PreparedStatement.java:3955)
        at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.setParameterValue(PreparedStatement.java:3141)
        at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.setParameterValue(PreparedStatement.java:3070)
        at org.eclipse.birt.data.engine.executor.DataSourceQuery.setInputParameterBinding(DataSourceQuery.java:1159)
        at org.eclipse.birt.data.engine.executor.DataSourceQuery.addParameterDefns(DataSourceQuery.java:605)
        at org.eclipse.birt.data.engine.executor.DataSourceQuery.prepare(DataSourceQuery.java:304)
        at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.prepareOdiQuery(PreparedOdaDSQuery.java:517)
        at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:346)
        at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:463)
        at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:190)
        at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:178)
        at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.execute(PreparedOdaDSQuery.java:178)
        at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:637)
        at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:158)
        at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:275)
        at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1947)
        at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
        at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)
        at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
        at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
        at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)
        at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
        at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
        at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
        at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.resumeLayout(HTMLInlineStackingLM.java:111)
        at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.layoutNodes(HTMLInlineStackingLM.java:160)
        at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
        at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
        at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
        at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
        at org.eclipse.birt.report.engine.layout.html.HTMLTableBandLM.layoutChildren(HTMLTableBandLM.java:67)
        at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
        at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
        at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
        at org.eclipse.birt.report.engine.layout.html.HTMLRepeatHeaderLM.layoutChildren(HTMLRepeatHeaderLM.java:46)
        at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
        at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
        at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
        at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:181)
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
        at com.axelor.apps.base.service.BaseReportGenerator$1.execute(BaseReportGenerator.java:160)
        at com.axelor.db.JPA$2.execute(JPA.java:678)
        at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:37)
        at org.hibernate.internal.AbstractSharedSessionContract.lambda$doWork$1(AbstractSharedSessionContract.java:1109)
        at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:308)
        at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1125)
        at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1112)
        at com.axelor.db.JPA.jdbcWork(JPA.java:674)
        at com.axelor.apps.base.service.BaseReportGenerator.generate(BaseReportGenerator.java:153)
        at com.axelor.apps.base.service.BaseReportGenerator.generate(BaseReportGenerator.java:204)
        at com.axelor.apps.report.engine.EmbeddedReportSettings.generate(EmbeddedReportSettings.java:45)
        at com.axelor.apps.report.engine.EmbeddedReportSettings.generate(EmbeddedReportSettings.java:29)
        at com.axelor.apps.base.service.birt.template.BirtTemplateReportSettingsBuilder.build(BirtTemplateReportSettingsBuilder.java:117)
        at com.axelor.apps.base.service.birt.template.BirtTemplateServiceImpl.generate(BirtTemplateServiceImpl.java:107)
        at com.axelor.apps.base.service.birt.template.BirtTemplateServiceImpl.generateBirtTemplateLink(BirtTemplateServiceImpl.java:48)
        at com.axelor.apps.base.service.birt.template.BirtTemplateServiceImpl.generateBirtTemplateLink(BirtTemplateServiceImpl.java:34)
        at com.axelor.apps.base.service.PrintFromBirtTemplateServiceImpl.print(PrintFromBirtTemplateServiceImpl.java:71)
        at com.axelor.apps.base.web.PrintingModelController.printTemplate(PrintingModelController.java:140)
        at com.axelor.apps.base.web.PrintingModelController.print(PrintingModelController.java:86)
        at com.axelor.apps.base.web.PrintingModelController$$EnhancerByGuice$$1243570226.GUICE$TRAMPOLINE(<generated>)
        at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:74)
        at com.axelor.apps.base.module.ControllerMethodInterceptor.invoke(ControllerMethodInterceptor.java:36)
        at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75)
        at com.google.inject.internal.InterceptorStackCallback.invoke(InterceptorStackCallback.java:55)
        at com.axelor.apps.base.web.PrintingModelController$$EnhancerByGuice$$1243570226.print(<generated>)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at com.axelor.meta.ActionHandler.call(ActionHandler.java:247)
        at com.axelor.meta.schema.actions.ActionMethod.evaluate(ActionMethod.java:77)
        at com.axelor.meta.schema.actions.Action.execute(Action.java:101)
        at com.axelor.meta.schema.actions.Action.wrap(Action.java:114)
        at com.axelor.meta.schema.actions.ActionGroup.evaluate(ActionGroup.java:236)
        at com.axelor.meta.schema.actions.Action.execute(Action.java:97)
        at com.axelor.meta.schema.actions.Action.wrap(Action.java:114)
        at com.axelor.meta.ActionHandler.execute(ActionHandler.java:516)
        at com.axelor.meta.ActionExecutor.execute(ActionExecutor.java:58)
        at com.axelor.meta.ActionExecutor$$EnhancerByGuice$$65770779.GUICE$TRAMPOLINE(<generated>)
        at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:74)
        at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:61)
        at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75)
        at com.google.inject.internal.InterceptorStackCallback.invoke(InterceptorStackCallback.java:55)
        at com.axelor.meta.ActionExecutor$$EnhancerByGuice$$65770779.execute(<generated>)
        at com.axelor.web.service.ActionService.execute(ActionService.java:79)
        at com.axelor.web.service.ActionService$$EnhancerByGuice$$69581622.GUICE$TRAMPOLINE(<generated>)
        at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:74)
        at com.axelor.rpc.RequestFilter.invoke(RequestFilter.java:56)
        at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75)
        at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:70)
        at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75)
        at com.google.inject.internal.InterceptorStackCallback.invoke(InterceptorStackCallback.java:55)
        at com.axelor.web.service.ActionService$$EnhancerByGuice$$69581622.execute(<generated>)
        at jdk.internal.reflect.GeneratedMethodAccessor493.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
        at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
        at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
        at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
        at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
        at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
        at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
        at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)
        at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:71)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:44)
        at io.buji.pac4j.filter.SecurityFilter.lambda$doFilter$1(SecurityFilter.java:79)
        at org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:140)
        at com.axelor.auth.pac4j.AxelorSecurityLogic.perform(AxelorSecurityLogic.java:82)
        at io.buji.pac4j.filter.SecurityFilter.doFilter(SecurityFilter.java:77)
        at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:41)
        at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
        at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
        at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
        at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:41)
        at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:450)
        at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
        at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
        at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
        at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
        at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
        at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.axelor.app.internal.AppFilter.doFilter(AppFilter.java:88)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:94)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:71)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.axelor.web.servlet.CorsFilter.doFilter(CorsFilter.java:138)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.axelor.web.servlet.ProxyFilter.doFilter(ProxyFilter.java:44)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:829)

when printing the cost sheet it is missing the Type label/graphic


It seems as though I’m missing a table in my database for production? I’ve looked into the BIRT template XML and it does show this in line 764

LEFT JOIN production_bill_of_material_bill_of_material_set as BOMSET ON (BOMSET.bill_of_material_set = BOM.id)

I got rid of it but I just get another unrelated issue it seems. I’ve tried this on both verison 7.2.7 and 8.0.2 with no success. I’m not sure how to even go about creating the right table and relations.

Does anyone else have this issue when printing the BOM report? It’s not the end of the world but it’s missing utility nonetheless.

After being able to access BOM on the demo and printing the result. I’m assuming this feature isn’t fully fleshed out. Not sure if this worked on earlier versions Axelor but it’s not working on 7.2.7 and later from what I can tell.

1 « J'aime »