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 <[email protected]> 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 <[email protected]> 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
>>
>>
>

Reply via email to