<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>Oracle BI Publisher Blog</title>
      <link>http://blogs.oracle.com/xmlpublisher/</link>
      <description>Tim Dexter</description>
      <language>en</language>
      <copyright>Copyright 2008</copyright>
      <lastBuildDate>Tue, 30 Sep 2008 13:09:58 -0700</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>Got a 10.1.3.4 Upgrade Issue?</title>
         <description><![CDATA[<p>Over the past week I have received a few mails concerning a problem in some 10.1.3.4 upgrades. They all seem to be related to a full BIEE upgrade rather than a BIP upgrade. the dev team are still investigating as it seems to be hard to reproduce, but just in case you are out there suffering ... we have a solution.</p>

<p>If you have specifically chosen to upgrade in the installer process and find that you can not get into the BI Publisher server interface after upgrading to 10.1.3.4. Trying either from the More Products > BI Publisher link in BIEE or going directly to the BIP server you get a user security error. You will hopefully have hit an issue that was found today. The fix is simple enough, it looks as thou the <Repository>/Admin/Security/security.xml file contains some incorrect entries. The sample file we saw today had the following:</p>

<pre>&lt;folderPermission&gt;
  &lt;allow path="/Business Intelligence" /&gt;
  &lt;allow path="/Executive" /&gt;
  &lt;allow path="/Financials" /&gt;
  &lt;allow path="/HR Manager" /&gt;
  &lt;allow path="/Marketing" /&gt;
  &lt;allow path="/Sales Manager" /&gt;
  &lt;allow path="/Supply Chain Management" /&gt;
  &lt;allow path="/Training" /&gt;
<font color=red>  &lt;allow path="D:/OracleBI/xmlp/XMLP/Reports/Business Intelligence" /&gt;
  &lt;allow path="D:/OracleBI/xmlp/XMLP/Reports/Executive" /&gt;
  &lt;allow path="D:/OracleBI/xmlp/XMLP/Reports/Financials" /&gt;
  &lt;allow path="D:/OracleBI/xmlp/XMLP/Reports/HR Manager" /&gt;
  &lt;allow path="D:/OracleBI/xmlp/XMLP/Reports/Marketing" /&gt;
  &lt;allow path="D:/OracleBI/xmlp/XMLP/Reports/Sales Manager" /&gt;
  &lt;allow path="D:/OracleBI/xmlp/XMLP/Reports/Supply Chain Management" /&gt;
  &lt;allow path="D:/OracleBI/xmlp/XMLP/Reports/Training" /&gt;</font>
&lt;/folderPermission&gt;</pre>

<p>The entries in red are incorrect. Just simply remove them from the file, save it and bounce the server and all should be well. Investigations are ongoing to check why they entries were in there and as soon as I have some confirmation I will let you know.<br />
If you have hit this issue, can you share the OS and platforms you upgraded on. The install.log file located at $BIHome/BIServer/log would be very useful along with the steps you took during the install, if you can remember.</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/got_a_10134_upgrade_issue.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/got_a_10134_upgrade_issue.html</guid>
        
        
         <pubDate>Tue, 30 Sep 2008 13:09:58 -0700</pubDate>
      </item>
            <item>
         <title><![CDATA[OOW Thursday &amp; Label Printing]]></title>
         <description><![CDATA[<p>I know, it's Monday, what happened on Thursday? A hectic morning on the demo grounds is what, lots of folks wanting to know more about BIP for Apps and lots of 'follow the leader' to get the folks interested in standalone or BIEE BIP through the demopod maze to get to the standalone pod and vice versa.</p>

<p>Here's what I mean, you can see the BIP for Apps pod on the right hand corner (great location, thanks Nadia) and the BIP Standalone pod circled on the left.</p>

<p align=center><img alt="DemoPod1.jpg" src="http://blogs.oracle.com/xmlpublisher/images/DemoPod1.jpg" width="665" height="301" /></p>

<p>Do you take the easier route 1 or go for the more scenic route 2? Route 2 is more fun, but fraught with the imminent danger of losing the 4 people trailing behind you, as you move through the crowds of people around the intermediate pods. We should have had a sign on a pole that we could carry above our heads to ensure folks knew where we were and could not get lost. OK, I have beaten that train of thought to death but you get the picture - it was busy!</p>

<p>During the week, Wednesday I think, I bumped into Rick Pollina from <a href="http://www.arrow.com/">Arrow Electronics</a>. A hot topic recently has been getting BIP content to label printers, whether they be Zebra, Intermec or others. Im hoping to get an entry out on a more 'conventional' approach soon, but Rick came up with a neat solution - eText templates.</p>

<p>For those of you that have not come across eText templates yet, they are another template type, built in MSWord but are for 'electronic' output e.g. EDI messages or EFT - basically position or delimited based content. In recent months I have seen folks using them to generate flat file output - not what they were designed for, but they work.</p>

<p>I'll let Rick explain the problem and their final approach:<br />
<blockquote><br />
The first approach the team was working used BI Publisher loaded with the proper barcode fonts and would generate a PDF that looked exactly as the label would print.  They were then going to use a PASTA driver to convert the image to postscript and send it to the ZEBRA printer that accepts postscript.)  Basically this approach eliminated the need for ZPL coding and just send an image to the printer.  For some reason they were not able to get this to work, not sure why as it appears the old ZEBRA printers seem to accept postscript. (Tim: this is the conventional approach, I had not heard that Zebra could accept PS, the solution we have worked on finally generates a Raster image of the label that Zebra supports)<br />
 <br />
The alternative approach and the one we ultimately chose was to build the template with the ZPL code's embedded in the template and send the RAW text image to the ZEBRA printer.   On a Linux/Unix platform you define the printers as RAW and you can run it through CUPS or local define the printer.  On windows you can probably setup the printer as Text, although I did not try this.<br />
 <br />
Attach find the sample template I built using etext format supported by BI Publisher.  I choose this over native XSL-FO template (also supported by BI Publisher), because the development team was already using ms-word for the development of all their other templates.  <br />
 <br />
To view the template as it would be created you need to install the BI Publisher desktop (free download from Oracle) and use the template viewer--but you probably new this already :)<br />
 <br />
The advantage to this approach is that the new ZEBRA printers are Accepting XML and the old ones like we have still require ZPL so you can account for both types with the same SQL and a different Template. <br />
 <br />
I also noticed that ZEBRA got an award here this week along with presenting.  It looks like they already have a nice design tool that they could probably extend to produce the XSL-FO that can be used for the template. (looks like they already support SAP through there smartform client tool to design labels. </blockquote></p>

<p>You can get the sample files Rick kindly provided <a href="http://blogs.oracle.com/xmlpublisher/files/Label.zip">here</a>.</p>

<p>To fill in the gap you might have spotted, 'how do I know the ZPL format?'<br />
Rick used the label creation application that <a href="http://www.zebra.com/">Zebra </a>provide with their printers to build a label layout, more information available from Zebra - I'll try and get more info on this for you. He then exported it to the ZPL format and then built the eText template to create the skeleton of the ZPL and filled in the data items. not for everyone I know but it was a quick and straightforward solution and still leverages the one data source, multiple layout templates mantra that I keep pushing to all of you.</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/oow_thursday_label_printing.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/oow_thursday_label_printing.html</guid>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">label printing</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">zebra</category>
        
         <pubDate>Mon, 29 Sep 2008 11:11:11 -0700</pubDate>
      </item>
            <item>
         <title>OOW Wednesday</title>
         <description><![CDATA[<p>Another busy day on the demogrounds, or at least a morning for me. I got to slope off for 2 hours at the Meet the Experts session at the Applications Lounge. Apparently, Im an expert, and folks value my input - thanks to those of you that came. Apologies, to Helga from Deloitte, whose notepad I drew all over trying to explain how Publisher worked inside Siebel CRM. I think it helped.</p>

<p>After the MTE session and break for some food and a quick visit to the JDE and PeopleSoft reporting demopods. I got to see Mikhail from the PeopleSoft dev team in full flight, sadly he spotted me and tolds the folks he was talking to, to emial me if they had questions.Then it was off to the Unconference session, where I stumbled through a more complex template. Apologies to all - after the session I realized I had opened a completely mangled Invoice template - hence the confusion on all the for-each's.</p>

<p>The day wrapped up back in the demogrounds and on the phone to try and procure a wrist band for the evenings entertainment. That in hand I got over to Treasure Island to check out the music. Seal was great, took me back to my youth.</p>

<p align=center><img alt="Seal.jpg" src="http://blogs.oracle.com/xmlpublisher/images/Seal.jpg" width="640" height="480" /></p>

<p>Bit blurry but we were dancing!</p>

<p>Then to UB40, these were/are a reggae band from the 80s, I think alot of folks were a little bemused by the beat. When they opened their set they had a great Publisher back drop.</p>

<p align=center><img alt="UB402.JPG" src="http://blogs.oracle.com/xmlpublisher/images/UB402.JPG" width="640" height="480" /></p>

<p>The first PDF template, probably around before PDFs had even been thought of. The UB40 form was a form you filled out every week to explain that you had not worked and could rightfully claim unemployment benefit in the UK.</p>

<p align=center><img alt="ub401.jpg" src="http://blogs.oracle.com/xmlpublisher/images/ub401.jpg" width="400" height="396" /></p>

<p>If the form were around today, it would a prime candidate for either using as a template or for data entry!</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/oow_wednesday.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/oow_wednesday.html</guid>
        
        
         <pubDate>Thu, 25 Sep 2008 01:32:53 -0700</pubDate>
      </item>
            <item>
         <title>OOW Tuesday</title>
         <description><![CDATA[<p>Nearly half way through ... phew! I have not seen this many people since last years OOW. Now that we live out 'in the sticks' and rarely visit downtown Denver seeing this much huanity at once is a bit of a shock. Now I sound like some country hick, but it it pretty quiet where we live, blink and you miss it.</p>

<p>Attended a full session on JDEdwards E1 and Publisher this morning. Publisher was billed as 'Oracle's best kept secret'. To a large extent I have to agree - poling the attendees at my session last night, nearly half the room had only just heard of Publisher. I feel a little guilty trolling out the same old intro slides but the majority of folks are still wanting to learn about it. Tomorrow, I rectify things a bit and I have a session at the 'Unconference.'</p>

<p>For the uninitiated, its held outside of the main rooms, projector, microphone(I think) and your laptop and how ever turns up. Im going to try and get into some of the more advanced techniques in templating and anything else folks want to cover. Hope to see you there with some goodies to give away - Moscone West 3rd Floor Overlook I.<br />
If you have more generic questions, Im at the Meet the Experts session from 12-2pm Moscone West  2nd Floor Lobby - Section 2</p>

<p>This afternoon was spent on the demo grounds switching between the Publisher for Applications and the Enterprise pods. Very busy with lots of questions. Here's the worn out Applications pod gang.</p>

<p><br />
<p align=center><img alt="DemoPodCrew.jpg" src="http://blogs.oracle.com/xmlpublisher/images/DemoPodCrew.jpg" /></p></p>

<p>Thats Bogeon 'the Patchman' Kim, Kevin the I've had a little too much coffee, Support Meister McDermott and Noelle 'the Fixer' Bartlam. Sorry about the photo guys and gal - I blame the camera! Kevin was 'in da house' this afternoon giving demo after demo ... awesome stuff. He's here all week, so come on by and catch a performance.<br />
</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/oow_tuesday.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/oow_tuesday.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">General</category>
        
        
         <pubDate>Tue, 23 Sep 2008 22:15:26 -0700</pubDate>
      </item>
            <item>
         <title>OOW Monday</title>
         <description><![CDATA[<p>A hectic Monday, a morning on the demo grounds and an agonising afternoon getting ready for our 5.30 dinner appointment, sorry Publisher session. I think it was too late in the day, I could hear stomachs rumbling from the stage.</p>

<p>The spot we have on the demo grounds is prime real estate, we are right on the front of the demo section at the end of the main walkway into the exhibition hall - you can not miss us and yoiu have no excuse not to come and say Hi! In the south hall we have EBS and a standalone demo pods. Over in the West hall you'll find JDE, PeopleSofy and Siebel pods - yep, Publisher is taking over!</p>

<p>Other than the session being late, its went OK. Somewhere between my hotel room and the room my presentation managed to mangle itself completely. I'll et that cleaned up and posted here soon.</p>

<p>We had a good mix of folks, majority of you still EBS but a good smattering of JDE, PeopleSoft and Siebel bippers. You all certainly seem to be 'maturing' in your use of Publisher with many folks now live and generating some of the tougher documents that you need, Im talking check printing, invoices and purchase orders.</p>

<p>Special mention to Lisa, Lisa volunteered as a complete newbie to come up on stage and build a template with a little help from Noelle. She finished way faster than I expected and proceeded to tell the audience 'how simple building templates' was, a bit like 'mail merge' AT this point I have to say, I did not know Lisa, did not pay her, etc - she got a cool t-shirt for here trouble thou!</p>

<p>Tomorrow I have scheduled an Unconference session @3pm on 3rd Floor Moscone West - I have some t-shirts left so come, if not for the session, on advanced templating, then for the free shirt !</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/oow_monday.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/oow_monday.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">General</category>
        
        
         <pubDate>Tue, 23 Sep 2008 07:25:34 -0700</pubDate>
      </item>
            <item>
         <title>OOW Sunday</title>
         <description><![CDATA[<p>After a frantic week of preparation Im finally here in San Francisco, this year I get toi stay downtown, so no busing it in from the peninsular. The flip side is, lots of walking Im a good 10 blocks from the Moscone center but thats all good.</p>

<p>Arrived in Oracle town where even the pavements have Oracle blurb, the town has been truly painted red. There was supposed to be an OAUG XML Publisher user group meeting this afternoon, sadly it got canceled.</p>

<p>So we nade up for it by getting over to the APEX/Publisher hands on session at the Marriott. </p>

<p align=center><img alt="ApexHandsOn.jpg" src="http://blogs.oracle.com/xmlpublisher/images/ApexHandsOn.jpg" width="640" height="480" /></p>

<p>A nicely filled room with folks getting some experience developing and implementing Publisher reports with APEX. </p>

<p>Tomorrow, demo grounds and my session @5.30pm in Moscone West 2024 - still got plenty of room, so come on down. </p>

<p>Plenty of other BI related sessions worth checking out too.</p>

<p>11:30 am – 12:30 pm<br />
S299587 - Introduction to Oracle Business Intelligence Publisher<br />
Mike Donohue, Oracle;<br />
Nick Psomas, Oracle<br />
Marriott Salon 9<br />
1:00 pm – 2:00 pm</p>

<p>S299155- Smart Reporting in Oracle E-Business Suite Financials<br />
Amarnath Molugu, Oracle;<br />
Mohit Saggi, Oracle<br />
Moscone West - 2006<br />
1:00 pm – 2:00 pm</p>

<p>S299581- Oracle Business Intelligence Road Map and Strategy<br />
Paul Rodwick, Oracle<br />
Marriott Salon 9<br />
1:00 pm – 2:00 pm</p>

<p>S300603 - Oracle Business Intelligence Publisher Automation: Bursting and Document Delivery in E-Business Suite<br />
Tim Sharpe, CD Group<br />
Moscone West - 3003<br />
4:00 pm – 5:00 pm</p>

<p>S300247 - Considering an Upgrade to Oracle E-Business Suite Release 11.5.10.2 or 12? Learn from a Recent R12 Upgrade<br />
Teresa Kim, California Department of General Services;<br />
Glenn Webb, Deloitte Consulting LLP<br />
Moscone West - 3006</p>

<p>5:30 pm – 6:30 pm<br />
S298463 - What's New with Oracle Business Intelligence Publisher: The Standard Reporting Platform for All Applications<br />
Tim Dexter, Oracle<br />
Moscone West - 2024</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/oow_sunday.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/oow_sunday.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">General</category>
        
        
         <pubDate>Sun, 21 Sep 2008 20:00:13 -0700</pubDate>
      </item>
            <item>
         <title>Focus On Publisher</title>
         <description><![CDATA[<p>With <a href="http://www.oracle.com/openworld/index.html">OpenWorld </a>looming, Mike and his Product management team have put together a document on all of the BI Publisher related sessions going on next week.</p>

<p>With 25 sessions listed ranging from JD Edwards World integration to APEX BIP reporting there is sure to be something of interest to everyone.</p>

<p>Get the document <a href="http://blogs.oracle.com/xmlpublisher/files/FocusOnBIPublisher.pdf">here</a>.</p>

<p>Would love to hear from anyone that's coming, leave a comment or drop me a mail. We can meet up and chew the fat!</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/focus_on_publisher.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/focus_on_publisher.html</guid>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">openworld</category>
        
         <pubDate>Tue, 16 Sep 2008 11:03:17 -0700</pubDate>
      </item>
            <item>
         <title>Configure the Account Analysis Report  in SLA/GL</title>
         <description><![CDATA[<p>Kevin 'Support Meister' McDermott dropped me a mail today. He has seen multiple service requests around the Account Analysis Report in SLA/GL, several folks are struggling in this area. So to try and help you to help yourselves and calm Kevin's SR queue, here's the solution.</p>

<p>In R12 the Account Analysis Report in applications Subledger Accounting<br />
and General Ledger, have been completely written as XML Publisher programs. The data is extracted and generated into XML format using a Data Template extract via the JAVA program XDODTEXE.<br />
The layout is then generated using the Output Post Processor concurrent manager. The problem for users of these reports is that they generate very large data sets so the Release 12 instance needs to be configured to handle these large programs.</p>

<p>A. Set the Scalable Option to on for these programs.<br />
This prevents this error in the Subledger Accounting program's log:<br />
Calling XDO Data Engine... <br />
****Warning!!! Due to high volume of data, got out of memory exception...*** <br />
****Please retry with scalable option or modify the Data template to run in scalable mode...*** <br />
1. As System Administrator: Navigate to Concurrent->Program->Define.<br />
2. Query up the report: Account Analysis Report <br />
(do this for both the General Ledger and the Subledger Accounting program definitions).<br />
3. Add a parameter:<br />
ScalableFlag.<br />
Value set should be yes_no<br />
Default value should be Y.<br />
Select checkboxes Enable and Required.<br />
Do not select the check box Displayed, or users could turn this off at runtime.<br />
Token needs to be ScalableFlag (this is a case sensitive value).</p>

<p>B. Configure the XML Publisher Administrator Configuration settings.<br />
This prevents "java.lang.OutOfMemoryError" errors in the Output Post Processor log associated to the Subledger Accounting program.</p>

<p>1. As XML Publisher Administrator navigate to Administration->Configuration.<br />
2. Under Temporary Directory pick a temporary file location on your concurrent processing node. This should be at least 5GB or 20x larger than largest XML data file you generate.<br />
3. Under FO Processing: <br />
Use XML Publisher's XSLT processor set to True <br />
Enable scalable feature of XSLT processor set to False<br />
Enable XSLT runtime optimization set to True </p>

<p>C. Configure the Output Post Processor's JVM. <br />
These steps set the JVM to 2GB, depending upon your server's size you might find 3 GB (-mx3072m), 4GB (-mx4096m) or even 5GB (-mx5120m) is a better value.  This setting prevents the error "java.lang.OutOfMemoryError: Java heap space"  in the Output Post Processor's log associated to the Subledger Accounting Program.</p>

<p>1.  Login to SQL*Plus as APPS.<br />
2. SQL>update FND_CP_SERVICES set DEVELOPER_PARAMETERS = <br />
'J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx2048m' <br />
where SERVICE_ID = (select MANAGER_TYPE from FND_CONCURRENT_QUEUES <br />
where CONCURRENT_QUEUE_NAME = 'FNDCPOPP'); <br />
3. Bounce the concurrent managers.</p>

<p>D. Test the reports.</p>

<p>There you go, no excuses, no need for an SR you got it here from the 'horses' mouth, well Kevin's anyhoo.</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/configure_the_account_analysis.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/configure_the_account_analysis.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">E Business Suite</category>
        
        
         <pubDate>Mon, 15 Sep 2008 08:50:49 -0700</pubDate>
      </item>
            <item>
         <title>Pad Your Reports</title>
         <description><![CDATA[<p>Im not talking about filling your reports with fluff. I can remember, mistakenly filling my high school essays with fluff and padding. Why use 5 words when 10 can say it more eloquently and fill the word count more quickly. Sadly, there was no pulling the wool over my teacher's eyes - just had to learn more facts!</p>

<p>I have just been helping out on a demo for a customer proof of concept. They wanted the following report output.</p>

<p align=center><img alt="Padding1.jpg" src="http://blogs.oracle.com/xmlpublisher/images/Padding1.jpg" /></p>

<p>Nothing fancy there on the surface, building the report is straightforward enough. We can get this output very quickly.</p>

<p align=center><img alt="Padding2.jpg" src="http://blogs.oracle.com/xmlpublisher/images/Padding2.jpg" width="627" height="313" /></p>

<p>But have you noticed in the original, there is some space after each set of categories.</p>

<p>We can achieve this by manipulating the 'padding' in the first cell of the row to effectively increase the height of the whole row. This increases the space between the last row of the group and the beginning of the next.</p>

<p>Just insert the following in a form field in the first cell: </p>

<pre>&lt;?if:LAST='Y'?&gt;
&lt;?attribute@incontext:padding-bottom;'10.0pt'?&gt;
&lt;?end if?&gt;</pre>

<p>The LAST element was in the XML to define whether the current  member of a group is the last. You could equally use a position() based if statement, you just need to have some means of identifying the last member of a give grouping. The next line just manipulates the 'padding-bottom' attribute - here we are making it 10pts. This effectively provides us the row height we need to provide the spacing between the rows we need. There are of course other padding attributes:<br />
<ul><li>padding-top</li><li>padding-bottom</li><li>padding-start</li><li>padding-end</li></ul></p>

<p>XSL uses 'end' and 'start' rather than 'right' and 'left' for internationalization purposes. With the extra conditional field we can now generate the required output.</p>

<p align=center><img alt="Padding3.jpg" src="http://blogs.oracle.com/xmlpublisher/images/Padding3.jpg" /></p>

<p>this post kinda begs the question, 'how the heck do you know what you can manipulate?' Well there is the XSL-FO spec available, if you want to wade through it. Personally, I dont very often. My best friend is the Template Builder for Word -> Tools > Export > XSL-FO Stylesheet. this will dump your current RTF template into the browser. There you can check out whats going on in the template. Its not that tough - it's bit like complex HTML, there are tables, rows, cells, etc and each have attributes that you can override to your hearts content. Yes, you have to write some code at the moment, but the extra power in the formatting is worth it I think. I have not touched Oracle Reports (in anger) in a while but I can not think how I would achieve the layout above, not off the top of my head anyway. So get padding!</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/pad_your_reports_1.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/pad_your_reports_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">RTF</category>
                  <category domain="http://www.sixapart.com/ns/types#category">XSL/XPATH</category>
        
        
         <pubDate>Thu, 11 Sep 2008 11:11:11 -0700</pubDate>
      </item>
            <item>
         <title>PS Font Support?</title>
         <description><![CDATA[<p>I have had a few questions recently asking about our support for Postscript fonts. Yes, we do support them but we dont document it. Why? We want you to use Truetype fonts if at all possible. We support those thoroughly, PS Fonts, not quite so well.</p>

<p>If you still want to use the PS fonts you will need the pfb and pfm files and you'll have to do some manual set up in the config file yourself. The xdo.cfg file needs to sit under the JAVA_HOME/jre/lib directory and will need the following entry under the fonts section.</p>

<pre>&lt;font family="IDAutomationC128S" style="normal" weight="normal"&gt;
 &lt;type1 pfb="D:\fonts\IDAutomationC128S.pfb" pfm="D:\fonts\IDAutomationC128S.pfm" /&gt;
&lt;/font&gt;</pre>

<p>Same rules apply as for Truetype fonts the <em>family</em> attribute needs to contain the font name you see in MSWord when selecting the font.<br />
Once you have that set up on the server you will be able to see the font in your outputs. Just remember, we strongly recommend using truetype fonts. If you get an issue with your PS fonts let us know through an SR but no promises on addressing it.<br />
</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/ps_font_support.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/ps_font_support.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">General</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">fonts</category>
        
         <pubDate>Wed, 10 Sep 2008 09:09:09 -0700</pubDate>
      </item>
            <item>
         <title>Barcoding Again!</title>
         <description><![CDATA[<p>More on barcoding today but I think this will be it ... read on!</p>

<p>I have been exchanging emails with Nisha from the warm and sunny town of <a href="http://stpete.org/">St.Petersburg</a> That should have been enough of a clue for you to realize I did not mean the cooler and only slightly less sunny Russian <a href="http://en.wikipedia.org/wiki/Saint_Petersburg">city</a> of the same name. Im talking about the Floridian '<a href="http://en.wikipedia.org/wiki/St._Petersburg,_Florida">St Pete</a>'. Geography lesson over ... we have been talking barcodes, more specifically advanced barcodes, in fact the Code128 variety.</p>

<p>Those of you that have used these barcodes will know that the data needs to be encoded before applying the barcode font. you will also know that you need to write and mount some java code for us to call so the data can be encoded. I think Nisha will not mind me saying that she was a java novice between her, Kevin in Oracle support and myself, Nisha now has Code128 barcodes coming out on their outputs in E Business Suite.</p>

<p>So what? I hear you cry, 'you've written loads of articles on <a href="http://blogs.oracle.com/mte1521/mt-search.cgi?tag=barcodes&blog_id=63">barcoding</a>.' Well once we had gotten things sorted out, I cheekily asked Nisha to come up with a small doc on the process that was followed to get the barcodes out on to the paper. It seems the solution is somewhat broken up and spread out. Unbelievably, Nisha stepped up and wrote a document for us. Im very grateful.</p>

<p>Get the real Barcoding 101 for EBS <a href="http://blogs.oracle.com/xmlpublisher/files/BarcodePrinting.pdf">here</a>! <br />
Yes, its specific to Nisha's requirement and yours might vary a little but its a good guide on what you need to do to get everything up and in the right place to get advanced barcoding working. Its written by someone that actually needed to get it into production, rather than us writing what we think you need. Maybe we should send developers to customers before they write a jot of code and then send them again afterward so that they know what its like to use their software. Anyhoo, thanks Nisha, you rock!</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/barcoding_again.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/barcoding_again.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Barcoding</category>
                  <category domain="http://www.sixapart.com/ns/types#category">RTF</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">barcodes</category>
        
         <pubDate>Tue, 09 Sep 2008 13:13:13 -0700</pubDate>
      </item>
            <item>
         <title>Date Functions</title>
         <description><![CDATA[One thing from the XSL 2.0 specification that we can not leverage (for various reasons) is the native date|time support. Its not that the Oracle XSLT engine does not support, more tha we are stuck on an earlier version for now. Dont ask, its a sore point and gets way too complicated too quickly.

We are currently working on some migration tools for Crystal to Publisher conversion - before you ask, no I dont have a date. Out of that work we have been building out some new functions in the template layer to handle various Crystal funkiness. Thats not to say date calculations are funky - we needed those anyway but definitely needed them for any potential Crystal migration. Leslie has 'lovingly' written up all of the XSL extensions <a href="http://download.oracle.com/docs/cd/E12844_01/doc/bip.1013/e12187/T421739T481158.htm">here</a>, I was almost moved to tears while reading them - nah, Im kidding, come on, its a tech doc! Sorry Leslie. Here, Im just highlighting the date related functions below.
<br/>
<table cellspacing="0" cellpadding="4" summary="table is summarized in text" border="1">
    <tbody>
      <tr class="HEADER" valign="center" bgcolor="#E0E0E0">
        <th scope="col"><b>SQL Statement or XSL Expression</b></th>

        <th scope="col"><b>Usage</b></th>

        <th scope="col"><b>Description</b></th>
      </tr>
      <tr valign="top">
        <td>to_date</td>

        <td>&lt;?xdofx:to_date ( char [, <i>fmt</i> [, 'nlsparam']]
        )</td>

        <td>TO_DATE converts char of CHAR, VARCHAR2, NCHAR, or
        NVARCHAR2 datatype to a value of DATE datatype. The
        <i>fmt</i> is a date format specifying the format of
        <i>char</i>. If you omit <i>fmt</i>, then <i>char</i> must
        be in the default date format. If <i>fmt</i> is 'J', for
        Julian, then <i>char</i> must be an integer.</td>
      </tr>

      <tr valign="top">
        <td>sysdate()</td>

        <td>&lt;?xdofx:sysdate()?&gt;</td>

        <td>SYSDATE returns the current date and time. The datatype
        of the returned value is DATE. The function requires no
        arguments.</td>
      </tr>

      <tr valign="top">
        <td>current_date()</td>

        <td>&lt;?xdoxslt:current_date($_XDOLOCALE,
        $_XDOTIMEZONE)?&gt;<br />
        Example: &lt;?xdoxslt:current_date('ja-JP',
        'Asia/Tokyo')?&gt;</td>

        <td>Returns the current date in "yyyy-MM-dd" format in the
        given locale and timezone. This function supports only the
        Gregorian calendar.</td>
      </tr>

      <tr valign="top">
        <td>current_time()</td>

        <td>&lt;?xdoxslt:current_time($_XDOLOCALE,
        $_XDOTIMEZONE)?&gt;<br />
        Example:<br />
        &lt;?xdoxslt:current_time('ja-JP', 'Asia/Tokyo')?&gt;</td>

        <td>Returns the current time in the given locale and
        timezone. This function supports only the Gregorian
        calendar.</td>
      </tr>

      <tr valign="top">
        <td>date_diff</td>

        <td>&lt;?xdoxslt:date_diff(&lsquo;y',
        &lsquo;YYYY-MM-DD&rsquo;, &lsquo;YYYY-MM-DD&rsquo;,
        $_XDOLOCALE, $_XDOTIMEZONE)?&gt;</td>

        <td>
          This function provides a method to get the difference
          between two dates in the given locale. The dates need to
          be in "yyyy-MM-dd" format. This function supports only
          the Gregorian calendar. The syntax is as follows:<br />
          &lt;?xdoxslt:date_diff(&lsquo;<i>format</i>&rsquo;,
          &lsquo;YYYY-MM-DD&rsquo;, &lsquo;YYYY-MM-DD&rsquo;,
          $_XDOLOCALE, $_XDOTIMEZONE)?&gt;<br />
          where<br />
          format is the time value for which the difference is to
          be calculated. Valid values are :

          <ul>
            <li>y - for year</li>
            <li>m - for month</li>
            <li>w - for week</li>
            <li>d - for day</li>
            <li>h - for hour</li>
            <li>mi - for minute</li>
            <li>s - for seconds</li>
            <li>ms - for milliseconds</li>
          </ul>Example:<br />
          &lt;?xdoxslt:date_diff(&lsquo;y&rsquo;,
          &lsquo;2000-04-08&rsquo;, &lsquo;2001-05-01&rsquo;,
          $_XDOLOCALE, $_XDOTIMEZONE)?&gt;<br />
          returns<br />
          1<br />
          Example:<br />
          &lt;?xdoxslt:date_diff(&lsquo;m&rsquo;,
          &lsquo;2001-04-08&rsquo;, &lsquo;2000-02-01&rsquo;,
          $_XDOLOCALE, $_XDOTIMEZONE)?&gt;<br />
          returns<br />
          -14<br />
          Example:<br />
          &lt;?xdoxslt:date_diff(&lsquo;d&rsquo;,
          &lsquo;2006-04-08&rsquo;, &lsquo;2006-04-01&rsquo;,
          $_XDOLOCALE,
          &lsquo;America/Los_Angeles&rsquo;)?&gt;<br />
          returns<br />
          -7
        </td>
      </tr>

      <tr valign="top">
        <td>sec_diff</td>

        <td>
        &lt;?xdoxslt:sec_diff(&lsquo;2000-04-08T20:00:00&rsquo;,
        &lsquo;2000-04-08T21:00:00&rsquo;, $_XDOLOCALE,
        $_XDOTIMEZONE?&gt;</td>

        <td>This function provides a method to get the difference
        between two dates in seconds in the given locale. The dates
        need to be in "yyyy-MM-dd'T'HH:mm:ss". This function
        supports only Gregorian calendar.<br />
        Example:<br />
        &lt;?xdoxslt:sec_diff(&lsquo;2000-04-08T20:00:00&rsquo;,
        &lsquo;2000-04-08T21:00:00&rsquo;, $_XDOLOCALE,
        $_XDOTIMEZONE?&gt;<br />
        returns<br />
        3600</td>
      </tr>

      <tr valign="top">
        <td>get_day</td>

        <td>&lt;?xdoxslt:get_day(&lsquo;2000-04-08&rsquo;,
        $_XDOLOCALE)?&gt;</td>

        <td>This function provides a method to get the day value of
        a date in "yyyy-MM-dd" format in the given locale. This
        function supports only the Gregorian calendar.<br />
        Example:<br />
        &lt;?xdoxslt:get_day(&lsquo;2000-04-08&rsquo;,
        $_XDOLOCALE)?&gt;<br />
        returns<br />
        8</td>
      </tr>

      <tr valign="top">
        <td>get_month</td>

        <td>&lt;?xdoxslt:get_month(&lsquo;2000-04-08&rsquo;,
        $_XDOLOCALE)?&gt;</td>

        <td>This function provides a method to get the month value
        of a date in "yyyy-MM-dd" format in the given locale. This
        function supports only the Gregorian calendar.<br />
        Example:<br />
        &lt;?xdoxslt:get_month(&lsquo;2000-04-08&rsquo;,
        $_XDOLOCALE)?&gt;<br />
        returns<br />
        4</td>
      </tr>

      <tr valign="top">
        <td>get_year</td>

        <td>&lt;?xdoxslt:get_year(&lsquo;2000-04-08&rsquo;,
        $_XDOLOCALE)?&gt;</td>

        <td>This function provides a method to get the year value
        of a date in "yyyy-MM-dd" format in the given locale. This
        function supports only the Gregorian calendar.<br />
        Example:<br />
        &lt;?xdoxslt:get_year(&lsquo;2000-04-08&rsquo;,
        $_XDOLOCALE)?&gt;<br />
        returns<br />
        2000</td>
      </tr>

      <tr valign="top">
        <td>month_name</td>

        <td></td>

        <td>This function provides a method to get the name of the
        month in the given locale. This function supports only the
        Gregorian calendar.<br />
        The syntax for this function is:<br />
        &lt;?xdoxslt:month_name(<i>month</i>, [<i>abbreviate</i>?],
        $_XDOLOCALE)?&gt;<br />
        where<br />
        month is the numeric value of the month (Januany = 1)<br />
        and<br />
        [abbreviate?] is the value 0 for do not abbreviate or 1 for
        abbreviate.<br />
        Example:<br />
        &lt;?xdoxslt:month_name(12, 1,
        &lsquo;fr-FR&rsquo;)?&gt;<br />
        returns<br />
        dec.<br />
        Example"<br />
        &lt;?xdoxslt:month_name(1, 0, $_XDOLOCALE)?&gt;<br />
        returns<br />
        January</td>
      </tr>
    </tbody>
  </table>
<br/><br/>
Some neat functions in there, Im gonna be doing something with that date_diff function for sure. Not all good news thou, they are only currently for those of you on 10.1.3.3.2.]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/date_functions.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/date_functions.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">RTF</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">10.1.3.3.2</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">date calculations</category>
        
         <pubDate>Mon, 08 Sep 2008 08:08:08 -0700</pubDate>
      </item>
            <item>
         <title>A funny thing ...</title>
         <description><![CDATA[<p>... happened on the way to the <a href="http://forums.oracle.com/forums/forum.jspa?forumID=245">forum</a>. For the uninitiated, <a href="http://www.frankiehowerd.com/1960s_forum.htm">Frankie Howerd</a> was a fabulous British comedian from my youth, fantastically camp and ever so slightly 'saucy' - "Oooh nooo missus". I can't think of an American comedian that even comes close?</p>

<p align=left>Now things seemed to have calmed down on the Oracle Forums with respect to performance I think its safe to talk about the new version of the <a href="http://forums.oracle.com/forums/forum.jspa?forumID=245">Publisher forum</a>. We have a very active forum, not one of the top guns like SQL or the database but the top BI related</p>
<p align=left><img alt="forum2.jpg" src="http://blogs.oracle.com/xmlpublisher/images/forum2.jpg" width="705" height="295" /></p>
<p align=left>Maybe not in number of threads, Disco still holds that crown but in sheer number of views we have steamed ahead. So it appears folks are at least finding the forum whether directly or through their favorite search engine. I can not say whether the quality of the answers is good enough for folks but that brings me to another talking point.</p>
<p align=left><img src="http://blogs.oracle.com/xmlpublisher/images/forum1.jpg" alt="forum1.jpg" width="210" height="241" align="left" /></p>
<p align=left>  I have had a couple of mails asking why folks have been demoted to 'noob' status on the forum. The forum is no longer rewarding folks for the volume of posts but now there is a reward scheme for the quality of the posts. </p>
<p>If you ask a question and someone answers it you can award them points, 10 for a perfect answer, 5 for a 'helpful' one. So, if someone has taken the time to look at your question, go and look up the solution or share some of their knowledge please reward them with some points. We are certainly not a forum of newbies so don't be put off by everyone's status. 

<p>There are now a core bunch of helpful folks out there contributing to the forum. Im very appreciative, its making my life easier to login of a morning and seeing that <a href="http://forums.oracle.com/forums/profile.jspa?userID=521750">Vetsrini</a>, <a href="http://forums.oracle.com/forums/profile.jspa?userID=390263">SteveCallan</a>, <a href="http://forums.oracle.com/forums/profile.jspa?userID=621417">M14</a>, <a href="http://forums.oracle.com/forums/thread.jspa?messageID=2733261#2733261">rwillems</a>  and others have jumped into the fray and have bashed out answers to questions. Sorry, if I missed any other regulars, I know I have.<br />
  <br><br />
  <br><br />
The other new thang is the new message editor, no more pain writing HTML that you could not easily re-edit of you made a mistake, there is now a rich text editor. You can even add emoticons to your post, if you are so inclined?!? <br><br />
Sadly the only thing lacking, that would really help our forum is the ability to upload files. If I had a dollar for the number of times I see a question that could be so easily answered more quickly, if I could 'see' the template and data files, I'd have a lot of dollars. I guess that wont be here anytime soon. As a workaround, if you can mount your files somewhere on the web and point to them you are going to get an answer much more quickly! </p><br />
<p>So, onward dear readers, keep posting questions and please give back by answering when you can and very quickly you'll move out of 'noob' status and into the realm of 'Journeyman' Sorry ladies, this is evidently a man's forum, I guess Journeylady, Journeygal or Journeyperson does not trip off the tongue so well :0(</p></p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/a_funny_thing.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/a_funny_thing.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">General</category>
        
        
         <pubDate>Fri, 05 Sep 2008 09:09:09 -0700</pubDate>
      </item>
            <item>
         <title>Cool String Sorting</title>
         <description><![CDATA[<p>Got a good internal question from Nikos one of our Product managers this week, it was a sorting question but a tough one. He had the following data: </p>
<p>
<pre>&lt;ROWSET&gt;
  &lt;ROW&gt;
   &lt;YEAR&gt;Total Year&lt;/YEAR&gt;
   &lt;MARKET&gt;East&lt;/MARKET&gt;
   &lt;PRODUCT&gt;Audio&lt;/PRODUCT&gt;
   &lt;SALES&gt;75241.0&lt;/SALES&gt;
  &lt;/ROW&gt;
  &lt;ROW&gt;
   &lt;YEAR&gt;Total Year&lt;/YEAR&gt;
   &lt;MARKET&gt;East&lt;/MARKET&gt;
   &lt;PRODUCT&gt;Visual&lt;/PRODUCT&gt;
   &lt;SALES&gt;143054.0&lt;/SALES&gt;
  &lt;/ROW&gt;
  &lt;ROW&gt;
   &lt;YEAR&gt;Total Year&lt;/YEAR&gt;
   &lt;MARKET&gt;West&lt;/MARKET&gt;
   &lt;PRODUCT&gt;Audio&lt;/PRODUCT&gt;
   &lt;SALES&gt;108053.0&lt;/SALES&gt;
  &lt;/ROW&gt;
  &lt;ROW&gt;
   &lt;YEAR&gt;Total Year&lt;/YEAR&gt;
   &lt;MARKET&gt;West&lt;/MARKET&gt;
   &lt;PRODUCT&gt;Visual&lt;/PRODUCT&gt;
   &lt;SALES&gt;171242.0&lt;/SALES&gt;
  &lt;/ROW&gt;
  &lt;ROW&gt;
   &lt;YEAR&gt;Total Year&lt;/YEAR&gt;
   &lt;MARKET&gt;South&lt;/MARKET&gt;
   &lt;PRODUCT&gt;Visual&lt;/PRODUCT&gt;
   &lt;SALES&gt;110312.0&lt;/SALES&gt;
  &lt;/ROW&gt;
  &lt;ROW&gt;
   &lt;YEAR&gt;Qtr1&lt;/YEAR&gt;
   &lt;MARKET&gt;East&lt;/MARKET&gt;
   &lt;PRODUCT&gt;Audio&lt;/PRODUCT&gt;
   &lt;SALES&gt;18132.0&lt;/SALES&gt;
  &lt;/ROW&gt;
  &lt;ROW&gt;
   &lt;YEAR&gt;Qtr1&lt;/YEAR&gt;
   &lt;MARKET&gt;East&lt;/MARKET&gt;
   &lt;PRODUCT&gt;Visual&lt;/PRODUCT&gt;
   &lt;SALES&gt;32847.0&lt;/SALES&gt;
  &lt;/ROW&gt;
  ...
  &lt;/ROWSET&gt;
</pre> 
</p>
<p>You get the picture, unsorted sales data with funky values for the YEAR. What he wanted to do was get an output that sorted by Market then Product then by the YEAR value ie Jan, Feb,Mar, Qtr1 ... Total Year.
He then wanted to highlight the Qtr and Year rows with other background colors. 
Something like this:

<p align=center><img alt="Stringsort1.jpg" src="http://blogs.oracle.com/xmlpublisher/images/Stringsort1.jpg" width="312" height="462" /><?p>

<p>The first two criteria are easy, just use the for-each-group functionality. The last is a bit tougher, you could hard code the YEAR values into a table, that would get what he wanted but not very satisfying from a 'Templaters' point of view.</p><br />
<p>A quick <a href="http://www.google.com/search?q=xsl+sort+by+month&rls=com.microsoft:en-us&ie=UTF-8&oe=UTF-8&startIndex=&startPage=1">Google </a>and I had a plan - hat tips to XSL miesters, <a href="http://saxonica.blogharbor.com/">Michael Kay</a> and <a href="http://www.jenitennison.com/">Jeni Tennison</a>.Still a little hard coding but nothing like the other hard coding option and a bit more satisfying. It relies some string calculations to come up with the sort order. Here's the sort command:</p><br />
<p><pre> &lt;?sort: string-length(<br />
   substring-before ('JanFebMarQtr1AprMayJunQtr2JulAugSepQtr3OctNovDecQtr4Total Year'<br />
  ,YEAR));<br />
    'ascending';<br />
     data-type='number'?&gt;</pre> <br />
</p><br />
You need to list out all the possible YEAR values in the order in which you want them sorted ie JanFebMarQtr1...DecQtr4Total Year.Then you find current YEAR value that you are currently looping over, in that string and then find the length of the string before that position. So you get :<br><br />
<br></p>

<table border="1" cellpadding="0" cellspacing="0" height="228" width="245">
  <tbody>
    <tr>
      <th valign="top">Length<br>
      </th>
      <th valign="top">Period<br>
      </th>
    </tr>
    <tr>
      <td align="center">0 </td>
      <td align="center">Jan</td>
    </tr>
    <tr>
      <td align="center">3 </td>
      <td align="center">Feb</td>
    </tr>
    <tr>
      <td align="center">6 </td>
      <td align="center">Mar</td>
    </tr>
    <tr>
      <td align="center">9 </td>
      <td align="center">Qtr1</td>
    </tr>
    <tr>
      <td align="center">13 </td>
      <td align="center">Apr</td>
    </tr>
    <tr>
      <td align="center">16 </td>
      <td align="center">May</td>
    </tr>
    <tr>
      <td align="center">19 </td>
      <td align="center">Jun</td>
    </tr>
    <tr>
      <td align="center">22 </td>
      <td align="center">Qtr2</td>
    </tr>
  </tbody>

</table>
<p><br>
  then you sort by the string length ... coool! Now you just plug that into the template. </p>
<p><pre>&lt;?for-each:current-group()?&gt;
&lt;?sort: string-length(
         substring-before ('JanFebMarQtr1AprMayJunQtr2JulAugSepQtr3OctNovDecQtr4Total Year'
          ,YEAR))
        ;'ascending';data-type='number'?&gt;</pre>

<p>Hok Min from the dev team made a good point here. To avoid that ugly and potentially unmanageable (if you wanted to use it again in the template) sort string. Just create a variable to hold the string and then reference it in the sort command:</p>

<pre>&lt;xsl:variable name="mnthtbl"&gt;JanFebMarQtr1AprMayJunQtr2JulAugSepQtr3OctNovDecQtr4Total Year&lt;/xsl:variable&gt;</pre>

<p>Add to the sort by:</p>

<p>  &lt;?sort:string-length(substring-before($mnthtbl, ./YEAR));'ascending';data-type='number'?&gt;</pre></p>

</p>
<p>For the conditional highlighting of the 'Qtr' and 'Total Year' rows we can use the string manipulation again.</p>
<p>For the QtrX
<pre>&lt;?if@row:substring(YEAR,1,1)='Q'?&gt;&lt;?attribute@incontext:background-color;'#80FFFF'?&gt;&lt;?end if?&gt;</pre>
<p>For the Total Year</p>
<pre>&lt;?if@row:substring(YEAR,1,1)='T'?&gt;&lt;?attribute@incontext:background-color;'#00CACA'?&gt;&lt;?end if?&gt;</pre> 
</p>
<p>All Im doing is testing the first character of the YEAR value and looking for a 'Q' or a 'T'. Using the @row gets the formatting applied to the whole row. If you want the source files you can get them <a href="http://blogs.oracle.com/xmlpublisher/files/StringSort.zip">here</a>.<br>
You can of course apply this sort to any set of strings, its going to come at a small price thou. Its far far better to sort in the XML extract if at all possible.
So what have we learned? this XSL stuff is cool! Google is a 'Templaters' friend and there is always an easier way!</p>]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/cool_string_sorting_1.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/cool_string_sorting_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">RTF</category>
                  <category domain="http://www.sixapart.com/ns/types#category">XSL/XPATH</category>
        
        
         <pubDate>Thu, 04 Sep 2008 12:12:12 -0700</pubDate>
      </item>
            <item>
         <title>One of our Attributes is Missing!</title>
         <description><![CDATA[A few folks having been hitting a problem recently, they 'build a report', try and run it and get:

<pre>Error: The report cannot be rendered because of an error, please contact the administrator.
Error Detail: Attribute missing in : 'url'</pre>

I have not been able to reproduce this, the iAdvise blog covers the error in an entry in their <a href="http://iadvise.blogspot.com/2008/07/tips-tricks-in-bip.html">Hints and Tips</a> post back in July.

If you take a look at the .xdo file that is generated by the report builder a simple report looks likes this:
<pre>
&lt;?xml version = '1.0' encoding = 'utf-8'?&gt;
&lt;report xmlns=&quot;http://xmlns.oracle.com/oxp/xmlp&quot; version=&quot;1.1&quot; defaultDataSourceRef=&quot;Oracle BI EE&quot;&gt;
&lt;title&gt;Test&lt;/title&gt;
&lt;properties&gt;
&lt;property name=&quot;showControls&quot; value=&quot;true&quot;/&gt;
&lt;property name=&quot;showReportLinks&quot; value=&quot;true&quot;/&gt;
&lt;property name=&quot;online&quot; value=&quot;true&quot;/&gt;
&lt;property name=&quot;parameterColumns&quot; value=&quot;3&quot;/&gt;
&lt;property name=&quot;openLinkInNewWindow&quot; value=&quot;true&quot;/&gt;
&lt;property name=&quot;autoRun&quot; value=&quot;true&quot;/&gt;
&lt;property name=&quot;cacheDocument&quot; value=&quot;true&quot;/&gt;
&lt;property name=&quot;useExcelProcessor&quot; value=&quot;false&quot;/&gt;
&lt;/properties&gt;
&lt;dataModel defaultDataSet=&quot;New DataSet 1&quot;&gt;
&lt;dataSet id=&quot;New DataSet 1&quot;&gt;
&lt;sql dataSourceRef=&quot;demo&quot;&gt;
&lt;![CDATA[select EMPLOYEES.FIRST_NAME as FIRST_NAME,
EMPLOYEES.LAST_NAME as LAST_NAME,
EMPLOYEES.EMAIL as EMAIL,
EMPLOYEES.PHONE_NUMBER as PHONE_NUMBER,
EMPLOYEES.HIRE_DATE as HIRE_DATE,
EMPLOYEES.SALARY as SALARY 
from HR.EMPLOYEES EMPLOYEES]]&gt;
&lt;/sql&gt;
&lt;/dataSet&gt;
&lt;/dataModel&gt;
&lt;valueSets/&gt;
&lt;parameters/&gt;
&lt;templates default=&quot;New Template 2&quot;&gt;
&lt;template label=&quot;New Template 2&quot; type=&quot;rtf&quot; <b>url=&quot;APXSOBLX.rtf&quot;</b>/&gt;
&lt;/templates&gt;
&lt;burst enabled=&quot;false&quot;/&gt;
&lt;/report&gt;</pre>

Now the only reference to a 'url' attribute is in the 'template' element. I can only think that when you upload a template file, then create a template in the builder (we default in the template file) and you hit save without touching the template definition.  That at certain times we do not write the template file name into the 'url' attribute and when the report is run it throws the error.

If you hit the problem, try going back into the definition and explicitly picking a template file and then saving.

As I mentioned its all working for me (of course :0) I tried 10.1.3.4 and 10.1.3.3.3 - if any of you can reproduce the problem consistently on a given release let us know.]]></description>
         <link>http://blogs.oracle.com/xmlpublisher/2008/09/one_of_our_attributes_is_missi.html</link>
         <guid>http://blogs.oracle.com/xmlpublisher/2008/09/one_of_our_attributes_is_missi.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">BI Publisher Enterprise</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">error</category>
        
         <pubDate>Wed, 03 Sep 2008 11:28:38 -0700</pubDate>
      </item>
      
   </channel>
</rss>
