Monday, June 2, 2008

BI Publisher: xdo.cfg & BIPublisherIDE

For those of you out there that have downloaded the BIPublisherIDE a question may be plaguing you: "How do I use the xdo.cfg or xdodebug.cfg file, where do I put those suckers?"

After some digging today I helped out a soon to be poster on this blog, Brett Baldwin. Here's how you dig into this problem.

Step 1: Run the BIPublisherIDE
Step 2: Pause it in JDeveloper and look at the log for the following text:

Note: Directory structures will differ based on your versions of jre or drive letters

[060208_051345725][][STATEMENT] XDO version = Oracle XML Publisher 5.6.3
[060208_051345725][][STATEMENT] java.home = C:\Program Files\Java\jre1.6.0_06
[060208_051345725][][STATEMENT] XDO_TOP = null
[060208_051345725][][STATEMENT] Config Path = null
[060208_051345725][][STATEMENT] Debug Cfg Path= null
[060208_051345740][][STATEMENT] Font dir = C:\Program Files\Java\jre1.6.0_06\lib\fonts\
[060208_051345740][][STATEMENT] Locale = en-US
[060208_051345740][][STATEMENT] Fallback font = type1.Helvetica

Step 3: Find the java home, see above and blue and create two files in the lib directory for our example it would the following:

C:\Program Files\Java\jre1.6.0_06\lib\xdo.cfg
C:\Program Files\Java\jre1.6.0_06\lib\xdodebug.cfg

Step 4: Add whatever additions you need to these files, for xdo.cfg this is particularly useful for fonts (barcodes), currencies, etc (see oracle's bip manual). For xdodebug, you can use the xdodebug.cfg (really not necessary client side, however very useful server-side and for oaf customizations.

Step 5: Re-run or click debug, You should see the following the configs are now being picked up!

[060208_052916553][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[060208_052916553][][STATEMENT] XDO version = Oracle XML Publisher 5.6.3
[060208_052916553][][STATEMENT] java.home = C:\Program Files\Java\jre1.6.0_06
[060208_052916553][][STATEMENT] XDO_TOP = null
[060208_052916553][][STATEMENT] Config Path = C:\Program Files\Java\jre1.6.0_06\lib\xdo.cfg
[060208_052916553][][STATEMENT] Debug Cfg Path= C:\Program Files\Java\jre1.6.0_06\lib\xdodebug.cfg
[060208_052916553][][STATEMENT] Font dir = C:\Program Files\Java\jre1.6.0_06\lib\fonts\
[060208_052916553][][STATEMENT] Locale = en-US
[060208_052916553][][STATEMENT] Fallback font = type1.Helvetica


Hope this was helpful, Keep on Bipin!

3 comments:

Anonymous said...

Excellent just what I needed. Thanks.

Anonymous said...

Why does xdo.cfg _need_ to be in jre/lib/? It is because it becomes findable via Java CLASSPATH?

If I were to move this file to a application specific folder and add that folder to the CLASSPATH? Would that still work?

shreyas said...

Hi BI Experts,
I am getting below error while GENERATING A TEMPLATE. 'Failed to load Auto Layout'

End tag does not match start tag 'group'.
at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:320)
at oracle.xml.parser.v2.NonValidatingParser.parseEndTag(NonValidatingParser.java:1395)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1340)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:362)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:308)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:306)
at oracle.apps.xdo.dataengine.DataProcessor.getSQLRTFLayout(Unknown Source)
at oracle.apps.xdo.dataengine.DataProcessor.writeDefaultLayout(Unknown Source)
at oracle.apps.xdo.servlet.resources.ResourceServlet.createAutoLayout(ResourceServlet.java:288)
at oracle.apps.xdo.servlet.resources.ResourceServlet.service(ResourceServlet.java:144)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
at oracle.apps.xdo.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:100)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.jav:303)