2
User Exits in Oracle Reports SRW.USER_EXIT('FND SRWINIT'); in the before report formula, and SRW.USER_EXIT('FND SRWEXIT'); in the after report formula. also add P_CONC_REQUEST_ID user parameter with type number (15). Try to run again. 1. The "Unknown User Exit" error will only be when you try to run the report through Reports Builder (including the Live Preview mode). You will be able to copy it to your machine, open it, make changes, save it, put it back on the server - you just won't be able to run it locally. This is because in the Before Report trigger there will be a line like "srw.user_exit('FND SRWINIT');" which refers to code that is compiled into the Concurrent Manager's version of the Reports executable (set's up the Oracle Apps logon), but not your local Reports executable. One option to avoid the error is to put this call to srw.user_exit in it's own block with an exception handler (this ignores the error, but doesn't set up the Oracle Apps logon, so no Responsibility setup including no Org ID for the Org specific views), like: begin srw.user_exit('FND_SRWINIT'); exception when srw.unknown_user_exit then null; end; 2. Yes, it is possible to change the font size through Reports Builder BUT most Report concurrent programs are set up to only generate ascii text. Check the Output Format field of the Concurrent Program definition - if it is set to Text, then it will only produce ascii text output, with no formatting (except printer codes). 3. Yes, you can use printer codes to change font formatting, but I have only ever used this for making certain fields bold and even then had issues with different printer types showing the printer codes as text. The best way to produce a nicely formatted output from an Oracle concurrent program is to use BI Publisher - with this method, the report itself only produces XML text output, but you define a template for converting that to PDF (for example) where you do all of your formatting. Note that directly printing PDF concurrent request output on Unix requires additional setup over standard printing. We can integrate Oracle reports with Oracle Application Object Library, and run them as concurrent programs from your forms or through standard request submission. These are the user exits available in Oracle Reports that makes AOL integration. FND SRWINIT FND SRWEXIT FND FORMAT_CURRENCY FND FLEXIDVAL FND FLEXSQL FND SRWINIT This is a User Exit which sets your profile option values and allows Oracle AOL user exits to detect that they have been called by oracle repots. It must be included if one is using any ORACLE APPLICATION OBJECT LIBRARY features in his report (such as concurrent processing). FND SRWINIT also allows your report to use the correct organization automatically. Can be used in BEFORE-REPORT Trigger. Syntax is : SRW.USER_EXIT(‘FND SRWINIT’); FND SRWEXIT This user exit ensures that all the memory allocated for AOL user exits has been freed up properly. Can be used in AFTER- REPORT Trigger. Syntax is : SRW.USER_EXIT(‘FND SRWEXIT’); FND FORMAT_CURRENCY To format the currency amount dynamically depending upon the precision of the actual currency value, standard precision, users profile values and location (country) of the site. You obtain the currency value from the database into an Oracle Reports column.

162892804 User Exits in Oracle Reports

Embed Size (px)

Citation preview

Page 1: 162892804 User Exits in Oracle Reports

User Exits in Oracle Reports

SRW.USER_EXIT('FND SRWINIT'); in the before report formula, and

SRW.USER_EXIT('FND SRWEXIT'); in the after report formula.

also add P_CONC_REQUEST_ID user parameter with type number (15).

Try to run again.

1. The "Unknown User Exit" error will only be when you try to run the report through Reports Builder (including the Live Preview mode). You will be able to

copy it to your machine, open it, make changes, save it, put it back on the server - you just won't be able to run it locally. This is because in the Before

Report trigger there will be a line like "srw.user_exit('FND SRWINIT');" which refers to code that is compiled into the Concurrent Manager's version of the

Reports executable (set's up the Oracle Apps logon), but not your local Reports executable. One option to avoid the error is to put this call to srw.user_exit

in it's own block with an exception handler (this ignores the error, but doesn't set up the Oracle Apps logon, so no Responsibility setup including no Org ID

for the Org specific views), like:

begin

srw.user_exit('FND_SRWINIT');

exception

when srw.unknown_user_exit then null;

end;

2. Yes, it is possible to change the font size through Reports Builder BUT most Report concurrent programs are set up to only generate ascii text. Check the

Output Format field of the Concurrent Program definition - if it is set to Text, then it will only produce ascii text output, with no formatting (except printer

codes).

3. Yes, you can use printer codes to change font formatting, but I have only ever used this for making certain fields bold and even then had issues with

different printer types showing the printer codes as text.

The best way to produce a nicely formatted output from an Oracle concurrent program is to use BI Publisher - with this method, the report itself only

produces XML text output, but you define a template for converting that to PDF (for example) where you do all of your formatting. Note that directly printing

PDF concurrent request output on Unix requires additional setup over standard printing.

We can integrate Oracle reports with Oracle Application Object Library, and run them as concurrent programs from your forms or through

standard request submission.

These are the user exits available in Oracle Reports that makes AOL integration.

FND SRWINIT

FND SRWEXIT

FND FORMAT_CURRENCY

FND FLEXIDVAL

FND FLEXSQL

FND SRWINIT

This is a User Exit which sets your profile option values and allows Oracle AOL user exits to detect that they have been called by oracle

repots.

It must be included if one is using any ORACLE APPLICATION OBJECT LIBRARY features in his report (such as concurrent processing).

FND SRWINIT also allows your report to use the correct organization automatically.

Can be used in BEFORE-REPORT Trigger.

Syntax is : SRW.USER_EXIT(‘FND SRWINIT’);

FND SRWEXIT

This user exit ensures that all the memory allocated for AOL user exits has been freed up properly.

Can be used in AFTER- REPORT Trigger.

Syntax is : SRW.USER_EXIT(‘FND SRWEXIT’);

FND FORMAT_CURRENCY

To format the currency amount dynamically depending upon the precision of the actual currency value, standard precision, users profile

values and location (country) of the site.

You obtain the currency value from the database into an Oracle Reports column.

Page 2: 162892804 User Exits in Oracle Reports

Define another Oracle Reports column, a formula column of type CHAR, which executes the FORMAT_CURRENCY user exit to format the

currency value.

A displayed field has this formula column as its source so that the formatted value is automatically copied into the field for display.

Syntax:

FND FORMAT_CURRENCY

CODE=:column containing currency

DISPLAY_WIDTH=field width for display

AMOUNT=:source column name

DISPLAY=:display column name

[MINIMUM_PRECISION=:P_MIN_PRECISION]

[PRECISION={STANDARD|EXTENDED}]

[DISPLAY_SCALING_FACTOR=:P_SCALING_FACTOR]

FND FLEXSQL

Call this user exit to create a SQL fragment usable by your report to tailor your SELECT statement that retrieves flexfield values. This fragment

allows you to SELECT flexfield values or to create a WHERE, ORDER BY, GROUP BY, or HAVING clause to limit or sort the flexfield values

returned by your SELECT statement. You call this user exit once for each fragment you need for your select statement. You define all flexfield

columns in your report as type CHARACTER even though your table may use NUMBER or DATE or some other datatype.

Syntax:

FND FLEXSQL

CODE=”flexfield code”

APPL_SHORT_NAME=”application short name”

OUTPUT=”:output lexical parameter name”

MODE=”{ SELECT | WHERE | HAVING | ORDER BY}”

[DISPLAY="{ALL | flexfield qualifier | segment number}"]

[SHOWDEPSEG="{Y | N}"]

[NUM=":structure defining lexical" | MULTINUM="{Y | N}"]

[TABLEALIAS="code combination table alias"]

[OPERATOR="{ = | < | > | <= | >= | != | "||" | BETWEEN | QBE}"]

[OPERAND1=":input parameter or value"]

[OPERAND2=":input parameter or value"]

FND FLEXIDVAL

Call this user exit to populate fields for display. You pass the key flexfields data retrieved by the query into this exit from the formula column. With

this exit you display values, descriptions and prompts by passing appropriate token (any one of VALUE, DESCRIPTION, APROMPT or

LPROMPT).

Syntax:

FND FLEXIDVAL

CODE=”flexfield code”

APPL_SHORT_NAME=”application short name”

DATA=”:source column name”

[NUM=":structure defining source column/lexical"]

[DISPLAY="{ALL|flexfield qualifier|segment number}"]

[IDISPLAY="{ALL|flexfield qualifier|segment

number}"]

[SHOWDEPSEG="{Y | N}"]

[VALUE=":output column name"]

[DESCRIPTION=":output column name"]

[APROMPT=":output column name"]

[LPROMPT=":output column name"]

[PADDED_VALUE=":output column name"]

[SECURITY=":column name"]