Hi,
I think there is a bug in the Lookup orders page. If you deselect all the status and click on Find, you have this message : Error on line 167, column 13 in component://order/webapp/ordermgr/order/orderlist.ftl orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be assigned to status The problematic instruction: ---------- ==> assignment: status=orderHeader.getRelatedOneCache("StatusItem") [on line 167, column 13 in component://order/webapp/ordermgr/order/orderlist.ftl] ---------- Java backtrace for programmers: ---------- freemarker.core.InvalidReferenceException: Error on line 167, column 13 in component://order/webapp/ordermgr/order/orderlist.ftl orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be assigned to status at freemarker.core.Assignment.accept(Assignment.java:111) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167) at freemarker.core.Environment.visit(Environment.java:416) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.IfBlock.accept(IfBlock.java:82) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.Environment.process(Environment.java:189) at org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:205) at org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:201) at org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:245) at org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:107) at org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:976) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:676) at org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:167) at org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:706) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:676) at org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:167) at org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:706) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) at org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:552) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) at org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:552) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) at org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:646) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) at org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:646) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:129) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:92) at org.ofbiz.widget.screen.ScreenWidgetViewHandler.render(ScreenWidgetViewHandler.java:98) at org.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:781) at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:533) at org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:201) at org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:77) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:259) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) at org.ofbiz.catalina.container.CrossSubdomainSessionValve.invoke(CrossSubdomainSessionValve.java:44) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:595) Error rendering included template at location [component://order/webapp/ordermgr/order/orderlist.ftl]: freemarker.core.InvalidReferenceException: Error on line 167, column 13 in component://order/webapp/ordermgr/order/orderlist.ftl orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be assigned to status Cimballi |
I give more precision about this bug.
In fact, I added samples data in a XML data file and imported it. In my order, there was no status and no orderDate, but the import worked well. And then, in the application, if an order has no status or no orderDate (and maybe other fields), the lookup generates errors. So there is inconsistancy here because you can import data that generates errors in the application. There are 2 solutions : - The import tool should reject the data - The web application should accept this data even with the missing fields Cimballi On Fri, May 29, 2009 at 12:51 PM, Cimballi <[hidden email]> wrote: > Hi, > > I think there is a bug in the Lookup orders page. If you deselect all the > status and click on Find, you have this message : > > Error on line 167, column 13 in > component://order/webapp/ordermgr/order/orderlist.ftl > orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be > assigned to status The problematic instruction: ---------- ==> assignment: > status=orderHeader.getRelatedOneCache("StatusItem") [on line 167, column 13 > in component://order/webapp/ordermgr/order/orderlist.ftl] ---------- Java > backtrace for programmers: ---------- > freemarker.core.InvalidReferenceException: Error on line 167, column 13 in > component://order/webapp/ordermgr/order/orderlist.ftl > orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be > assigned to status at freemarker.core.Assignment.accept(Assignment.java:111) > at freemarker.core.Environment.visit(Environment.java:209) at > freemarker.core.MixedContent.accept(MixedContent.java:92) at > freemarker.core.Environment.visit(Environment.java:209) at > freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167) at > freemarker.core.Environment.visit(Environment.java:416) at > freemarker.core.IteratorBlock.accept(IteratorBlock.java:102) at > freemarker.core.Environment.visit(Environment.java:209) at > freemarker.core.MixedContent.accept(MixedContent.java:92) at > freemarker.core.Environment.visit(Environment.java:209) at > freemarker.core.IfBlock.accept(IfBlock.java:82) at > freemarker.core.Environment.visit(Environment.java:209) at > freemarker.core.MixedContent.accept(MixedContent.java:92) at > freemarker.core.Environment.visit(Environment.java:209) at > freemarker.core.Environment.process(Environment.java:189) at > org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:205) > at > org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:201) > at > org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:245) > at > org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:107) > at > org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:976) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:676) > at > org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:167) > at > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:706) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:676) > at > org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:167) > at > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:706) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) > at > org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) > at > org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:552) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) > at > org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) > at > org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:552) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) > at > org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) > at > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:646) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) > at > org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) > at > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:646) > at > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) > at > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) > at > org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) > at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:129) at > org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:92) at > org.ofbiz.widget.screen.ScreenWidgetViewHandler.render(ScreenWidgetViewHandler.java:98) > at > org.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:781) > at > org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:533) > at org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:201) at > org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:77) at > javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at > javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:259) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) > at > org.ofbiz.catalina.container.CrossSubdomainSessionValve.invoke(CrossSubdomainSessionValve.java:44) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:595) Error rendering included template > at location [component://order/webapp/ordermgr/order/orderlist.ftl]: > freemarker.core.InvalidReferenceException: Error on line 167, column 13 in > component://order/webapp/ordermgr/order/orderlist.ftl > orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be > assigned to status > > Cimballi > > |
After thinking about it, I think there is a difficult point here.
The fact that the entity engine is really permissive is a good point I think, so that each applications can choose which data is mandatory or not depending on its business. The import tool should be compliant with the entity engine, so that it lets you import data as for the previous rule. Now, the problem is if you want to import data that is compliant with the provided services and interfaces. Here is the problem because we don't know which data is mandatory from the provided code point of view. I don't have any solutions for this last point, but it's something on which you should thought. Maybe add an option in the import tool to tell if you want to validate your data for the provided services and interfaces (but this means you will also need to add a way to tell which data is mandatory or not). Cimballi On Fri, May 29, 2009 at 1:44 PM, Cimballi <[hidden email]> wrote: > I give more precision about this bug. > In fact, I added samples data in a XML data file and imported it. > In my order, there was no status and no orderDate, but the import worked well. > And then, in the application, if an order has no status or no > orderDate (and maybe other fields), the lookup generates errors. > > So there is inconsistancy here because you can import data that > generates errors in the application. There are 2 solutions : > - The import tool should reject the data > - The web application should accept this data even with the missing fields > > Cimballi > > > On Fri, May 29, 2009 at 12:51 PM, Cimballi <[hidden email]> wrote: >> Hi, >> >> I think there is a bug in the Lookup orders page. If you deselect all the >> status and click on Find, you have this message : >> >> Error on line 167, column 13 in >> component://order/webapp/ordermgr/order/orderlist.ftl >> orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be >> assigned to status The problematic instruction: ---------- ==> assignment: >> status=orderHeader.getRelatedOneCache("StatusItem") [on line 167, column 13 >> in component://order/webapp/ordermgr/order/orderlist.ftl] ---------- Java >> backtrace for programmers: ---------- >> freemarker.core.InvalidReferenceException: Error on line 167, column 13 in >> component://order/webapp/ordermgr/order/orderlist.ftl >> orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be >> assigned to status at freemarker.core.Assignment.accept(Assignment.java:111) >> at freemarker.core.Environment.visit(Environment.java:209) at >> freemarker.core.MixedContent.accept(MixedContent.java:92) at >> freemarker.core.Environment.visit(Environment.java:209) at >> freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167) at >> freemarker.core.Environment.visit(Environment.java:416) at >> freemarker.core.IteratorBlock.accept(IteratorBlock.java:102) at >> freemarker.core.Environment.visit(Environment.java:209) at >> freemarker.core.MixedContent.accept(MixedContent.java:92) at >> freemarker.core.Environment.visit(Environment.java:209) at >> freemarker.core.IfBlock.accept(IfBlock.java:82) at >> freemarker.core.Environment.visit(Environment.java:209) at >> freemarker.core.MixedContent.accept(MixedContent.java:92) at >> freemarker.core.Environment.visit(Environment.java:209) at >> freemarker.core.Environment.process(Environment.java:189) at >> org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:205) >> at >> org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:201) >> at >> org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:245) >> at >> org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:107) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:976) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:676) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:167) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:706) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:676) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:167) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:706) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >> at >> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:552) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >> at >> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:552) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >> at >> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:646) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >> at >> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:646) >> at >> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >> at >> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >> at >> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) >> at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:129) at >> org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:92) at >> org.ofbiz.widget.screen.ScreenWidgetViewHandler.render(ScreenWidgetViewHandler.java:98) >> at >> org.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:781) >> at >> org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:533) >> at org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:201) at >> org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:77) at >> javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at >> javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> at org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:259) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) >> at >> org.ofbiz.catalina.container.CrossSubdomainSessionValve.invoke(CrossSubdomainSessionValve.java:44) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) >> at >> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) >> at >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) >> at java.lang.Thread.run(Thread.java:595) Error rendering included template >> at location [component://order/webapp/ordermgr/order/orderlist.ftl]: >> freemarker.core.InvalidReferenceException: Error on line 167, column 13 in >> component://order/webapp/ordermgr/order/orderlist.ftl >> orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be >> assigned to status >> >> Cimballi >> >> > |
In reply to this post by Cimballi
not sure if you talking about the webtools import or not.
Looks like you may be talking about import thru seed, ext. The entity engine only checkes for Keys, unless you use the webtools import where you can turn it off. Now if you doing importing using your own code say from an external source if you call a service instead of using the entity then you the service will define mandatory data. you can define in the in-map if data is mandatory of a service. Cimballi sent the following on 5/31/2009 1:00 PM: > After thinking about it, I think there is a difficult point here. > > The fact that the entity engine is really permissive is a good point I > think, so that each applications can choose which data is mandatory or > not depending on its business. > > The import tool should be compliant with the entity engine, so that it > lets you import data as for the previous rule. > > Now, the problem is if you want to import data that is compliant with > the provided services and interfaces. Here is the problem because we > don't know which data is mandatory from the provided code point of > view. > > I don't have any solutions for this last point, but it's something on > which you should thought. Maybe add an option in the import tool to > tell if you want to validate your data for the provided services and > interfaces (but this means you will also need to add a way to tell > which data is mandatory or not). > > Cimballi > > > On Fri, May 29, 2009 at 1:44 PM, Cimballi <[hidden email]> wrote: >> I give more precision about this bug. >> In fact, I added samples data in a XML data file and imported it. >> In my order, there was no status and no orderDate, but the import worked well. >> And then, in the application, if an order has no status or no >> orderDate (and maybe other fields), the lookup generates errors. >> >> So there is inconsistancy here because you can import data that >> generates errors in the application. There are 2 solutions : >> - The import tool should reject the data >> - The web application should accept this data even with the missing fields >> >> Cimballi >> >> >> On Fri, May 29, 2009 at 12:51 PM, Cimballi <[hidden email]> wrote: >>> Hi, >>> >>> I think there is a bug in the Lookup orders page. If you deselect all the >>> status and click on Find, you have this message : >>> >>> Error on line 167, column 13 in >>> component://order/webapp/ordermgr/order/orderlist.ftl >>> orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be >>> assigned to status The problematic instruction: ---------- ==> assignment: >>> status=orderHeader.getRelatedOneCache("StatusItem") [on line 167, column 13 >>> in component://order/webapp/ordermgr/order/orderlist.ftl] ---------- Java >>> backtrace for programmers: ---------- >>> freemarker.core.InvalidReferenceException: Error on line 167, column 13 in >>> component://order/webapp/ordermgr/order/orderlist.ftl >>> orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be >>> assigned to status at freemarker.core.Assignment.accept(Assignment.java:111) >>> at freemarker.core.Environment.visit(Environment.java:209) at >>> freemarker.core.MixedContent.accept(MixedContent.java:92) at >>> freemarker.core.Environment.visit(Environment.java:209) at >>> freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167) at >>> freemarker.core.Environment.visit(Environment.java:416) at >>> freemarker.core.IteratorBlock.accept(IteratorBlock.java:102) at >>> freemarker.core.Environment.visit(Environment.java:209) at >>> freemarker.core.MixedContent.accept(MixedContent.java:92) at >>> freemarker.core.Environment.visit(Environment.java:209) at >>> freemarker.core.IfBlock.accept(IfBlock.java:82) at >>> freemarker.core.Environment.visit(Environment.java:209) at >>> freemarker.core.MixedContent.accept(MixedContent.java:92) at >>> freemarker.core.Environment.visit(Environment.java:209) at >>> freemarker.core.Environment.process(Environment.java:189) at >>> org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:205) >>> at >>> org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:201) >>> at >>> org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:245) >>> at >>> org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:107) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:976) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:676) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:167) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:706) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:676) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:167) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:706) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:292) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >>> at >>> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:552) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >>> at >>> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:552) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >>> at >>> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:646) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >>> at >>> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:646) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:138) >>> at >>> org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:227) >>> at >>> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:393) >>> at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:129) at >>> org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:92) at >>> org.ofbiz.widget.screen.ScreenWidgetViewHandler.render(ScreenWidgetViewHandler.java:98) >>> at >>> org.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:781) >>> at >>> org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:533) >>> at org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:201) at >>> org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:77) at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at >>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>> at org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:259) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>> at >>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >>> at >>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) >>> at >>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >>> at >>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >>> at >>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >>> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) >>> at >>> org.ofbiz.catalina.container.CrossSubdomainSessionValve.invoke(CrossSubdomainSessionValve.java:44) >>> at >>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) >>> at >>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) >>> at >>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >>> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) >>> at java.lang.Thread.run(Thread.java:595) Error rendering included template >>> at location [component://order/webapp/ordermgr/order/orderlist.ftl]: >>> freemarker.core.InvalidReferenceException: Error on line 167, column 13 in >>> component://order/webapp/ordermgr/order/orderlist.ftl >>> orderHeader.getRelatedOneCache("StatusItem") is undefined. It cannot be >>> assigned to status >>> >>> Cimballi >>> >>> > -- BJ Freeman http://www.businessesnetwork.com/automation http://bjfreeman.elance.com http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro Systems Integrator. |
Free forum by Nabble | Edit this page |