Just to let everyone know, this is a more in-depth posting that is related to the end half of this post: more on fonts and templates
Wednesday, November 28, 2007
Wednesday, November 21, 2007
One should not underestimate the fact that if you are going to be doing RTF templating with BI Publisher Desktop, you better be more than a little familiar with Microsoft Word. Of course we know you can use other tools for templating as well like Adobe Acrobat. The focus of this post is to study an area that has plagued me a bit- Header and Footers.
There is a lot you can do in header and footers, and even more that you CANNOT do. So, unless you're going to be making VERY simple headers, or you'd like your headers created dynamically, or other fancy bits...I'd suggest becoming familiar with the following XSL tags:
These nice tags make your life SO much easier when you're trying to do fancy things in your headers that Word just doesn't seem to like. If you have already tried to use BI Publisher's ever-so-nice tool set that lets you directly insert form fields, stop right there. You can't use it in a header, at least not yet! You have to code the actual XSL element into the header, that look like the tags above instead of simply doing a drag and drop from the XML palette.
Where the 'body' tags come in very handy is when you're trying to incorporate special characters and check boxes and things of that nature- or advanced logic. Ever need BI Publisher check boxes embedded into your template and in the header? Not fun! Here's how I got this to work, and what I tried that did NOT WORK. If anyone has tips or extra hints on this, comment or drop me a line.
As you can see, above I have a Quotation and Acknowledgement checkbox structure. You can use simple if/else logic in your header since you're likely using the 'start:body' and 'end body' tags I mentioned. These tags, again, allow you to define a header and footer using xsl and allow you more flexibilty in terms of what is allowed in a header and footer.
Now, the actual check boxes themselves are WingDings font. I inserted them into my template using the MS Word options: INSERT-->SYMBOL--> and then chose either the checked box or the empty box. Since this IS a font, and not one that is native to Oracle Applications (since it is a TTF or true type font), you will need to map to the font locally using your xdo.cfg file (to run it locally), or if you need it to appear in a BI Publisher Report out of Oracle Apps, you need to register to the font in Oracle Apps' Font Manager.
To see how to map fonts either locally or in Apps, please see my other post on fonts (yes, a barcode IS a font): fonts post. That post will lead you through the process, and you will understand where the screen shot below came from. One final thing to note that is not included in that post is a special little area JUST for checkboxes. If you need to register the WingDings font for a checkbox to Apps, in the font/template manager there is an area for checkbox characters seen below. I entered the following corresponding with the WingDings character codes entered through Word:
Monday, November 19, 2007
I was in a recent discussion with some friends of mine that went on to work at a handful of different places, Intel, Oracle, Microsoft, NVidia, AMD, Google, Pixar to name a few.
I've been thinking about this early in my career and even now. I really think what I have heard from 1 of my former VPs, as well as what Google puts out as its 'defined philosophy' rings very true. They state:
It's best to do one thing really, really well.
Google does search. With one of the world's largest research groups focused exclusively on solving search problems, we know what we do well, and how we could do it better. Through continued iteration on difficult problems, we've been able to solve complex issues and provide continuous improvements to a service already considered the best on the web at making finding information a fast and seamless experience for millions of users. Our dedication to improving search has also allowed us to apply what we've learned to new products, including Gmail, Google Desktop, and Google Maps. As we continue to build new products* while making search better, our hope is to bring the power of search to previously unexplored areas, and to help users access and use even more of the ever-expanding information in their lives.
So in the end when I think of the strongest technical and techno-business people I know, sincerely, they are well rounded and know 'enough' about a lot of things, but they are KILLER at one or 2 particular skills, with almost no exceptions. When you follow your path, so to speak, it tends to rub against so many other areas that naturally fall onto your plate for you to digest. I've met too many people that get 'good' at a 'lot' of things. These people are smart and fast learners, but will always be below so-called subject area experts. I also firmly believe that the people that build the tools, and don't just employ them to build other things and use them are the ones that are the real experts. While there are thousands of DBAs, and even many top DBAs, and many great developers and managers....there simply are nowhere near as many experts that BUILD these tools at the actual software companies.
Sunday, November 18, 2007
We were the recipient of the 2007 Oracle Partner Network Partner of the Year Titan Award. This was awarded to our company on behalf of Oracle and Piocon's technical innovation at one of our clients. This award was offered in the Healthcare Solutions area. This is a very prestigious award, that is only given to 10-12 partners worldwide. The Oracle Partner Network is comprised of thousands of partner firms. It is good to see us moving in the right direction. I was used to seeing awards like this at my previous employer, where I was able to work and contribute on a project that eventually won ANOTHER Oracle Partner of the Year award for our client at that time. This is a great team award, as these are rarely given for small 2-3 man projects.
I recently was contacted by one of my former clients that had a pretty good question. I actually had this questions asked a few times by various parties, so here is a summery and an answer!
"Quick OWB question for you: Is it possible to execute process flows from outside of OWB once they have been created. Wondering if there is a template provided by oracle(like “Sql_exec_template for OWB mappings) to execute Process flows…"
Well, OWB does contain a pl/sql package called WB_RT_API_EXEC with a function inside it called RUN_TASK that submits execution requests to the OWB runtime engine. The requests could be for mappings, process flows or scheduled jobs. The function spec looks like:
( p_location_name in varchar2
, p_task_type in varchar2
, p_task_name in varchar2
, p_custom_params in varchar2 default null
, p_system_params in varchar2 default null
, p_oem_friendly in number default 0
, p_background in number default 0
) return number;
This is actually the same function used by the sqlplus_exec_template.sql script in OWB 10gR2 that you mentioned in your email. It can be called using (assuming a repository owner connection exists):
(this is an example…)
result_num:= wb_rt_api_exec.run_task('PFMOD_LOCATION1', 'PROCESS', 'MY_PKG/MY_PF', ',', ',', 0 ,0);
The full documentation of the function can be found in
Friday, November 16, 2007
OK, people know that I like Business Intelligence and BI in general. But I am seriously blown away with how nice Google Analytics is. The tool simply rocks. Even non-techies can use this tool on their websites. And when it comes to consulting with this tool for clients....hahah evil laugh) I am only getting started.
Go have a look yourself to see how amazing this tool is: google analytics
Wow. I like it. I am downloading this now and will report my findings.
Check it out at Oracle's OTN site: link
Also see a compelling article here about why VMWare is 'good' for your Oracle DB: click here!
Tuesday, November 13, 2007
I say its fine every now and then to blog about something that is not technical in nature or that exclusively deals with Oracle. After all, I am looking at data, databases, security, apps, frameworks, and other stuff that fries my eyes during the day.....so why not talk about this stuff at night?
My Fantasy Football Team sucks. Part of this is on me and my drafting. MOST of it is on my team.
With a great Running back draft for me, I have brandon Jacobs (NY Giants), Larry Johnson (KC), and Rudi Johnson (Cincinnati). ALL of them were hurt for multiple games this season. None have been great. They have had games here and there. NO consistency.
I had 2 top tier Wide Receivers in Lee Evans and Larry Fitzgerald. Lee Evans caught less footballs than I have eyeballs in his first 2 games. That's not good. It took Fitz quite a while to realize he was supposed to be catching balls too.
My QB? Philip Rivers. Cry me a river, you bastard. I luckily took the Cleveland QB -Derek Anderson- and he is playing well! My Cowbody 'D' is performing relatively well too.
My Tight end (always a hard drafting choice outside of Antonio Gates) was Vernon Davis of SF. He had high hopes this season. Me too. I think he has played..?! Anyone seen him lately? IS he out there? Are ANY 49ers out there??
SAD thing is with all the injuries and crappy play by my crappy team, I might make the playoffs.
Who is our #1 guy in the league? he has Brady, Moss, Patriot's 'D', Adrian Peterson, Braylon Edwards, Hines Ward, just to name a few....LOL. Rediculous.
Thursday, November 8, 2007
I know I have a fair amount of BI Publisher posts here, and I will continue tp update old ones too. However I figured I would mention a few gotchas and little tips here that have confused me sometimes and I know confused the heck out of clients and some smart colleagues I've worked with as well. I'll be updating this post here and there.
XML Nodes and comparing tags in different nesting levels:
The dreaded copy paste... a binding problem?:
Do not, under almost any circumstance copy-paste things inside your microsoft word BI Publisher RTF template. Pay special attention to form fields and XSL code. I have copy-pasted these form time to time from one place in my code to another and it failed to work. But wait! You might be thinking I pasted the elements into parts of a template that SHOULD work differently because of other tags involved, such as posting something outside of an if/else statement, or pasting something outside of the body tags, and so forth. NOPE! It happened to me multiple times if I merely pasted the code or form field right next to the original! It would not render!
Pay attention if your output data behaves or displays differently after a copy-paste. Simply TYPE what you want to alleviate this problem :)