Tuesday, April 15, 2008

Session timeouts, profile options and adconfig for the Oracle eBusiness Suite

Tired of your Oracle eBusiness Sessions timing out?

Symptoms:

Your log on session is no longer valid. Would you like to log back in so you can continue working? If you do not log in, any outstanding data changes in your forms will not be saved.
Your Session has expired, please login again

Solution:

Set the values of the following profile options appropriately. See Note:171261.1 for details:

ICX:Session Timeout
E.g. From 30 to null (minutes)

ICX: Limit time
E.g. From 10 to 24 (hours)

But when you refresh or clone Test / Development environments the setting for ICX:Session Timeout gets reset!

No problem just need to find the appropriate variable in the adconfig context file e.g. $APPL_TOP/admin/$CONTEXT_NAME.xml.

<session_timeout oa_var="s_sesstimeout">1800000</session_timeout>

And set to the appropriate value. Note that s_sesstimeout is in milliseconds so multiple by (1000*60) to get the time in minutes that is represented in the profile option.

E.g. if you want to set it to 60 minutes then in the context file put value 60 * 1000 * 60 = 3600000. Either that or just set to null:

<session_timeout oa_var="s_sesstimeout">1800000</session_timeout>

Then next time you run adconfig.sh (or a patch/clone does) then you won't have to reset profile options.

BI Publisher + Release 12 Known Issues on Metalink

Quick pointer to a handy note on Metalink. I think it's excellent for Oracle to keep known issue lists and troubleshooting guides up to date.

Oracle XML Publisher Release 12 Known Issues

Some of the key issues that I think deserve reference as I've seen posts on the Oracle forums / public blogs about them:

12.1. Decimal Numbers and Rounding with BI Publisher syntax

Rounding Issue When Adding Decimal Numbers

As Oracle XDK conforms to XSL standards for IEEE 754, you might encounter rounding issues when adding numbers that are decimals. For example, suppose you add 13683.80 and 516.39, using this syntax in Oracle BI Publisher:
<?13683.80 + 516.39?>
The value returned is 14200.189999999999 which is caused by a limitation based on the IEEE 754 Binary Floating-Point-Arithmetic.

To work around this issue, use the format-number function or the round syntax as shown here to obtain a return value of 14200.19:
<?format-number:(13683.80 + 516.39);'D99'?>
or
<?(round((13683.80 + 516.39)*100) div 100)?>

12.2. XML Publisher Bursting "Request ID" parameter LOV values

Request ID Parameter LOV Not Populated for XML Publisher Bursting Report Program and XML Report Publisher Program

When you submit the XML Publisher Bursting Report Program (XDOBURSTREP) or the XML Report Publisher Program (XDOREPPB) you are prompted to select the Request ID for the data generation program. The LOV for this parameter is not being populated due to an incorrect profile option reference. You therefore cannot select the appropriate data file to complete the request.

See Note:404928.1 for details of workaround.

If anyone hits any other known issues not documented in the above note whether Release 11i or 12 related, please comment on this post, or ask Support to add it to Note:404928.1!

Monday, April 07, 2008

Oracle Discoverer Statement of Direction March 2008

Quite a bit of noise and even FUD surrounding the position of Oracle Discoverer and its fit (or lack of fit) within the Fusion roadmap. Good to see Oracle come out with a statement of direction on this last month firmly cementing its place in the BI toolset and hence Fusion Middleware stack.

For details see: Statement of Direction Oracle Business Intelligence Discoverer March 2008

Great to keep that Disco happenin!

Wednesday, April 02, 2008

BI Publisher: How do I replace linefeeds, newline or carriage return whitespace / special characters

Over on the forums, one post came up that is usually a quick answer.

How do I replace newlines (carriage returns or linefeeds) with a space? Well, with BI Publisher Template Builder things weren't exactly going to plan.

Basically you've got an XML element like this:

<sort_field1_inv>110
000
000
110000
0000
0000</sort_field1_inv>

And you want the output to be this: 110 000 000 110000 0000 0000

Should be easy. The 10.1.3.2.0 documentation for xdofx has replace function for replacing strings. Only problem is no mention of special characters. Doh! Okay, just throw in the chr(10) function and should be fine.

So let's try it out:

<?xdofx:replace(SORT_FIELD1_INV,chr(10),' ')?>  

Uh-oh: lovely error message on preview including:

oracle.xdo.parser.v2.XPathException: Extension function error: Method not found 'chr' 

Oh well, lets try some xsl magic similar to the following, including a bunch of variations not presented here!:

<xsl:value-of select='translate(/SORT_FIELD1_INV,"&#x20;&#x9;&#x10;&#x13;&#xD;&#xA;"," ")'/>

Nope, that didn't change anything, still newlines coming through.

Hmm, now what version of the BI Publisher Desktop Word Addin are on? In my case, a tad behind the times, but still matching the documentation that says chr should be available - 10.1.3.2.0 Build 87.

Luckily with Google, a ounce of Japanese reading ability, and of course Babelfish - found that 10.1.3.3.1 or higher would fix this.

So downloaded BI Publisher Desktop 10.1.3.3.2 from this page, uninstalled 10.1.3.2.0, installed 10.1.3.3.2 and now its all go, solution is as previously:

<?xdofx:replace(SORT_FIELD1_INV,chr(10),' ')?>  

Sorted!

UPDATE: Since the eBusiness Suite is still on 5.6.3, the above solution does not work. Here is an alternative solution:

<fo:inline linefeed-treatment="treat-as-space"><?SORT_FIELD1_INV?></fo>

On with it!