Saturday, October 25, 2008

BI Publisher: 500 Plus Downloads

The BIPublisherIDE standard and OAF edition have been downloaded over 500+ times from this site!

If you are interested an integrated bi publisher developer environment then BIPublisherIDE is the right fit for you. To find more out about the BIPublisherIDE I would suggest you read the following posts:

http://bipublisher.blogspot.com/2008/03/bi-publisher-bipublisheride.html

If your an experienced developer looking to do cutting edge reporting inside the eBusiness suite using the OA Framework I would suggest the following posts:

Part I: http://bipublisher.blogspot.com/2008/03/bi-publisher-bip-in-oa-framework-part-1.html
Part II: http://bipublisher.blogspot.com/2008/03/bi-publisher-bip-in-oa-framework-part.html

Wednesday, October 8, 2008

BI Publisher: xdodebug.cfg troubleshooting

Using the xdodebug.cfg file is a great way to debug the BI Publisher API's for custom code that is calling the BI Publisher API's. Below is the metalink note (Note:364547.1) on how to do this but beware.....
Direct report publishing via the XML Publisher Core APIs (without concurrent processing)
1. Connect to the Apache Server as ‘applmgr’. Run the APPSORA.env to set the APPS environment (Windows: envshell.cmd).
2. Create an $XDO_TOP/temp directory.
3. Go to the $OA_JRE_TOP/jre/lib directory.
4. Create an xdodebug.cfg file with the following 2 lines:
LogLevel=STATEMENT
LogDir=[full XDO_TOP]/temp
5. Restart the Apache server.
6. Reproduce the problem.
Unfortunately, Oracle's metalink note is missing one key setup that has to be done. In order for debugging to work you must have a temp directory setup via the template manager. Unbelievably, if you do not have the temp directory setup, debugging actually causes the BI Publisher API's to crash.

The situation is really a quagmire since the reason one would turn on the debugging is to troubleshoot a template issue and in doing so they have exacerbated the issue. Below is the error you can expect to see.

java.io.FileNotFoundException: xdo-1225988068296.tmp (Permission denied)

I retrived this from JSERV log file, see Stack Trace below. Note: We had turned on debugging for the BIPublisher_OAF (bi publisher report pop-ups from forms6i) code to troubleshoot an issue. If your interested in learning how to develop pop bip reports for forms6i, see http://bipublisher.blogspot.com/2008/03/bi-publisher-bip-in-oa-framework-part.html

So, what's happening here is that the bip api's are trying to create a temporary file in $XDO_TOP code tree which only has r-x permissions, hence a file not being able to be created.

The resolution was to setup the temp directory in the template manager (see below) and to do a graceful bounce of apache. Ironically afterwards, there was no issue except turning on the debugging so beware about this configuration in production environments if you have not setup temp directory!


java.io.FileNotFoundException: xdo-1225988068296.tmp (Permission denied)
at java.io.RandomAccessFile.open(Native Method)
at java.io.RandomAccessFile.(RandomAccessFile.java:204)
at java.io.RandomAccessFile.(RandomAccessFile.java:94)
at oracle.apps.xdo.dataengine.ScalableStringList.initSessionIfNecessary(ScalableStringList.java:53)
at oracle.apps.xdo.dataengine.StringList.(StringList.java:51)
at oracle.apps.xdo.dataengine.ScalableStringList.(ScalableStringList.java:38)
at oracle.apps.xdo.dataengine.StringList.createStringList(StringList.java:43)
at oracle.apps.xdo.dataengine.DataGroup.(DataGroup.java:76)
at oracle.apps.xdo.dataengine.DataTemplateParser.groupParser(DataTemplateParser.java:779)
at oracle.apps.xdo.dataengine.DataTemplateParser.dataStructureParser(DataTemplateParser.java:745)
at oracle.apps.xdo.dataengine.DataTemplateParser.templateParser(DataTemplateParser.java:324)
at oracle.apps.xdo.dataengine.XMLPGEN.setDataTemplate(XMLPGEN.java:599)
at oracle.apps.xdo.dataengine.DataProcessor.setDataTemplate(DataProcessor.java:193)
at oracle.apps.xdo.oa.util.DataTemplate.(DataTemplate.java:136)
at oracle.apps.xbol.bipublisher.api.XMLPublisherApi.oaDataEngine(XMLPublisherApi.java:193)
at oracle.apps.xbol.pfp.execsumm.webui.EXECSummGenerator.(EXECSummGenerator.java:92)
at oracle.apps.xbol.pfp.execsumm.webui.EXECSummCO.processRequest(EXECSummCO.java:35)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2335)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1734)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:508)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:429)
at _oa__html._OA._jspService(_OA.java:85)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
at _oa__html._RF._jspService(_RF.java:102)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
at org.apache.jserv.JServConnection.run(JServConnection.java:294)
at java.lang.Thread.run(Thread.java:534)


oracle.apps.fnd.framework.OAException: EXECSummGenerator - Failed to generate xml file
at oracle.apps.xbol.pfp.execsumm.webui.EXECSummGenerator.(EXECSummGenerator.java:97)
at oracle.apps.xbol.pfp.execsumm.webui.EXECSummCO.processRequest(EXECSummCO.java:35)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2335)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1734)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:508)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:429)
at _oa__html._OA._jspService(_OA.java:85)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
at _oa__html._RF._jspService(_RF.java:102)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
at org.apache.jserv.JServConnection.run(JServConnection.java:294)
at java.lang.Thread.run(Thread.java:534)