Oracle9i Reports Release Notes (Patch 4)
Release 4 (9.0.2) Part Number B13551-01 |
|
This chapter describes general issues and their work arounds pertaining to previous patch releases, that is, Patch Release 1 and Patch Release 2 for Oracle9i Reports.
For information about migration, please refer to Oracle9i Application Server Migrating from Oracle9iAS Release 1 (1.0.2.2.x) to Release 2 (9.0.2), part number A96157-01.
Some features available in Oracle Reports 6i that have been deprecated or removed from Oracle9i Reports.
Following is a list of the deprecated features. Existing reports using these features will continue to run without modification, but these features are no longer documented and their further use is strongly discouraged:
user exits
RWCGI
Web executable
command line options: CURRENCY,THOUSANDS,DECIMAL,PROFILE,ERRFILE,LOGFILE,BACKGROUND,KEYIN,KEYOUT
SRW.SET_ATTR
built-in
OLE2 object support
Following is a list of features that have been removed from Oracle9i Reports:
RWRUNC
character mode runtime
client/server GUI report previewer in rwrun
RWRBE60 background engine
RWOWS60 OAS cartridge
OBE60 query builder
OBS60 schema builder
More detailed information about these deprecated and obsolete features can be found in the Oracle9i Reports Statement of Direction white paper available from the Oracle Technology Network, (http://otn.oracle.com/products/reports/
).
On UNIX, this patch will overwrite reports.sh
. If you have modified your current reports.sh
file, you should save it and, after the patch is installed, merge your modifications into the version of reports.sh
installed with the patch. The version installed with the patch contains some required changes.
Reports 9.0.2 Patch 1 uses the Classic JVM instead of the Hotspot performance engine. This proved to be an issue when Reports Builder handled large xml/jsp reports. To work around this issue you need to specify the path (ORACLE_HOME\jdk\jre\bin\hotspot
) to the Hotspot performance engine using the PATH
environment variable.
On Windows : Alter the PATH
environment variable to point to the Hotspot performance engine, instead of the Classic JVM.
Bug number: 2441615
The REPORTS_NO_HTML_SPACE_REPLACE
environment variable specifies whether spaces should not be replaced with
in HTML
or HTMLCSS
output.
Oracle9i Reports will map HTML metadata characters in the data retrieved for a field to the appropriate encoding. That is, Oracle9i Reports automatically maps: <
to <
and Ó
to "
. In most cases, the browser produces the correct results and handles the spaces correctly. In some cases, the browser’s handling of spaces does not produce the required output. This happens in such cases as where the user has padded the front of the data to produce indentation. Since the browser will treat multiple spaces as single space, the indentation is lost.
YES |NO
NO
(Windows only) Use the registry to specify the value. (UNIX only) Set the value as an environment variable (shell script).
If the value is set NO
, all spaces are replaced by
. This could cause problems in your output where you want the browsers to handle line breaks on spaces. It will also increase the size of the generated HTML file.
If a field's Contains HTML Tags property is set to YES
, then no encoding will take place since Oracle9i Reports just passes the field’s value through to the output.
If REPORTS_NO_HTML_SPACE_REPLACE
is set to YES
, then the output for the sentence [ Typical data output]
will be:
[ Typical data output]
and display as (ignoring preceding spaces):
[Typical data output]
Setting the environment variable to NO
will cause the output to change to:
[ Typical data output
and display as (maintaining preceding spaces):
[ Typical data output]
Note: Brackets in the earlier example are used to show preceding spaces; they are not part of the sentence. |
As part of this change, the previous functionality of the DELIMITER
command line argument for HTML
and HTMLCSS
output is removed. DELIMITER
is still used with the DELIMITED DESFORMAT
as in previous releases.
Bug No: 387196
(Windows only) From Patch Release 2 onwards, the REPORTS_ADD_HWMARGIN
environment variable specifies whether to include the printer hardware-based left margin. By default, this margin is ignored. The printing origin starts from the top-left corner (0,0) of the physical paper and not the printable area. This is to facilitate the design of printer-independent independent reports.
YES | NO
NO
(Windows only) Use the registry to specify the value. (UNIX only) Set the value as an environment variable (shell script).
You must ensure that your report's layout contains enough margin spacing such that your data falls within the printable area. Margin fields in the Page Setup dialog box of Reports Builder have been disabled to ensure consistency with Oracle9iAS Reports Services
To revert to the old behavior of including the hardware margin, set the value to YES
.
If you are using the Report Block Wizard to insert multiple report blocks that share one or more data columns between them, the generated JSP tags will end up with duplicate IDs. These duplicate tags will cause a JSP compilation failure and the report will not execute. You can work around this issue by manually editing the Web source to make the tag IDs unique.
In Oracle9iAS Reports Services, you can subset the TrueType fonts for multibyte, Unicode, and single byte PDF output. This functionality and more information about PDF report output can be found in the white paper, Using PDF with Oracle9i Reports, available from the Oracle Technology Network (http://otn.oracle.com/products/reports/
).
The Pluggable Data Source API supports the number, date, and string data types. An individual pluggable data source should appropriately map its types to these three types.
For example, XML schema data types would be mapped to the nearest ones of the three supported types. These types would then be passed to the XML pluggable data source. In the case of the JDBC pluggable data source, if the query tries to retrieve a BLOB column from the database, the pluggable data source driver would give an error, Column type not supported
.
When you create an invalid link between two queries of pluggable data sources, you will receive the following error message:
Fail to fetch Plugin Data Source Java.lang.NumberExpection:G
When you receive this error, you should check the validity of your links (for example, are the data types of the columns compatible).
Within Oracle9iAS Portal, you can choose whether to make a report’s parameters visible to users through the Customization page of a Reports Definition File Access component.
To make a report’s parameters visible to users:
Click Customize at the bottom of the Manage Component page for the report
Click Customize at the bottom of the Manage Component page for the report
Note: Click Customize at the bottom of the Manage Component page for the report. |
If the parameter you are exposing has a corresponding Oracle9iAS Portal page parameter, the default value from the Manage Component page will be used as the default value in the Customize page for the portlet. If the user leaves the parameter value empty in the Customize page, the portlet inherits the page parameter’s value. If the user enters a value for the report portlet’s parameter, that value will override the page parameter value.
For more information about Oracle9iAS Portal, refer to the Oracle Technology Network (http://portalcenter.oracle.com
)
In Oracle9iAS Portal with Netscape Communicator 4.7 on UNIX, if you add a reports portlet to a page, you will get an error message when you try to take another action such as adding another portlet. This problem does not occur on Windows or in Netscape Communicator 6.0.
If you run a report portlet on Windows through the servlet, you can control its size by specifying the Portlet Width and Portlet Height parameters in Additional User Parameters on the Customize page for the Reports Definition File object. The value of these parameters may be a percentage (%) or a number of pixels.
For example, you can enter:
Portlet Width: 90%
Portlet Height: 480
If no value is specified, Oracle9iAS Reports Services uses its default value (640 pixels wide and 320 pixels high). This functionality is not available on UNIX platforms yet.
In some cases, Microsoft Internet Explorer ignores the mimetype of a URL’s return stream and instead sets the type by looking at the URL. This can be a problem when you are using the distribution feature of Oracle9iAS Reports Services because your URL might end with the destination parameter, for example:
...distribute=yes destination=c:\oracle\reports\distribution\mydist.xml
In this scenario, your URL ends with the extension XML and Internet Explorer treats the return stream as XML, when in fact it is HTML. As a result, you will receive a browser error. To work around this issue, you should never use recognized file extensions at the end of a URL. In the earlier example, you could switch the positions of the distribute and destination parameters in your URL.
When using key mapping, the order in which the parameters are substituted from the URL into the key is determined by the placement of CMDKEY
in the URL. For example, suppose you have a key such as the following one in the cgicmd.dat file:
mykeys: DEPTNO=%1 MYPARAM=%2
Now, you execute a JSP report that references this key as follows:
http://neptune.world.com:80/jsp/myreport.jsp?userid=scott/tiger@hrdb&cmdkey=mykeys&10&test
Because of the placement of CMDKEY
in this URL, the 10 corresponds to %1 and test corresponds to %2. Even though they are not the first and second parameters in the URL, 10 and test are the first and second parameters to follow CMDKEY
in the URL.
Setting DIAGNOSTIC=NO
causes the Web commands display, to be suppressed. This posed a problem for EM as it obtained Reports Server information from the Web commands. The remedy is to conditionally enable administrators whose username and password matches the values stored in the <identifier>
element to access Web commands, even when DIAGNOSTIC
is set to NO
. If the values do not match then an error message similar to the following is displayed:
REP-52262: Diagnostic output is disabled.
The <identifier> element is set in the Reports Server configuration file by the first Web command call if it is not defined in the server configuration file and the values are automatically encrypted when Reports Server is started. The format to preset the <identifier>
element in the Reports Server configuration file is:
<identifier confidential="yes" encrypted="no">username/password</identifier>
The clear text of username and password will be encrypted by Reports Server once it starts up, and the encrypted
atttribute is changed to yes to indicate the content is encrypted.
Refer to Oracle9iAS Reports Services Publishing Reports to the Web, for more information on how to change the values of the <identifier>
element.
If you are using one of the default report templates, you cannot combine two report blocks that use different default templates in a single report. All of your report-blocks in any one report must use the same default template.
If you use these features, the JDBC database connections made by Oracle9iAS Reports Services may override the initial NLS_LANG
setting. This change may in turn affect the behavior of the running report, such as bidirectional output in PDF. On UNIX platforms, you can work around this issue by setting the NLS_LANG
explicitly in report.sh
.
You can also use the new environment switching functionality to dynamically set the environment for reports. Refer to Dynamic Environment Switching.
In order import a report component into Oracle9iAS Portal, you must update the import_portal_config.xml file to point to the correct ORACLE_HOME
. import_portal_config.xml
is located in:
ORACLE_HOME/reports/templates
In the file, you need to find the following line and replace orawin90
with your ORACLE_HOME
.
<template_base_dir>/orawin90/reports/templates</template_base_dir>
This sections discusses the various issues that occur with JDeveloper integration.
When debugging an Oracle9iAS Reports Services JSP in Oracle JDeveloper, you must disable any breakpoints that are not of source type. If you do not disable these breakpoints, a deadlock is detected. You can disable breakpoints that are not of source type in the Breakpoints window.
When running a JSP report with the rw:graph tag in Oracle JDeveloper, the image is not visible in the browser. To fix this problem, set the IMAGEURL in the rwservlet.properties file in ORACLE_HOME
/reports/conf
:
IMAGEURL=http://host:port/Workspace-Project-context-root/servlet/oracle.reports.rwclient.RWClient
If the Java Virtual Machine (JVM) is set to ojvm, minimal, or vanilla in Oracle JDeveloper’s Virtual Machine settings (Project Settings > Runner > Virtual Machine), the rwservlet's in-process server is not killed when JDeveloper’s embedded OC4J server is terminated. As a result, a port conflict occurs the next time OC4J is started. To avoid this problem, do one of the following:
Set the JVM to Java Virtual Machine to hotspot.
Disable the in-process server in ORACLE_HOME
/reports/conf/rwservlet.properties
and use the standalone Reports Server instead.
The default configuration for Oracle9iAS Forms Services does not run in Single Sign-On (SSO) mode. The default configuration for Oracle9iAS Reports Services does run in SSO mode.
Forms applications calling integrated Oracle9iAS Reports Services using the Run_Report_Object built-in will not experience any problems when Oracle9iAS Forms Services is running in non-SSO mode and Oracle9iAS Reports Services is running in SSO mode as long as the Reports Server and the requested report are not registered in Oracle9iAS Portal.
Other Requirements
The property, Reports Server, must be set explicitly for all report objects in the Oracle9i Forms module.
If a Reports Server other than the default is being used, that server must be started from the command line as follows:
rwserver server=Reports Server name
The system variable, REPORTS_PATH
, must be modified in the file ORACLE_HOME
/bin/reports.sh
to reference the path of the reports to be run.
The first time a Reports Server is started, it creates a configuration file called ORACLE_HOME
/server/conf/
server_name
.conf.
The default status of a Reports Server is secure. To change the Reports Server status to non-secure, modify ORACLE_HOME
/server/conf/
reports_server_name
.conf
by commenting out the <security>
tag and removing securityId from the <job>
tags.
After making these modifications, the Reports Server must be stopped and restarted.
If Oracle9iAS Forms Services is configured to run in SSO mode, then report requests are sent with the authid provided, based on the SSO user login.
Protected reports and Reports Servers can be registered in Oracle9iAS Portal.
The Table 2-1 lists the possible Forms/Reports combinations and expected results:
Table 2-1 Outcome of Forms/Reports Integration when Forms is Running in SSO Mode or Non-SSO Mode
Report Type | Registered, Secure Reports Server (runs only registered reports) | Registered, Secure Reports Server (runs any reports) | Non-SecureReports Server |
---|---|---|---|
Reports with public access | report generated | report generated | report generated |
Reports with specific user access | report generated | report generated | report generated |
Reports with no specific user access | report not generated | report not generated | report generated |
Non-registered reports | report not generated | report not generated | report generated |
To ensure that spaces and control characters are passed correctly, you may need to turn URL encoding on or off for the fields in your report. You can turn URL encoding on or off with the RW:FIELD
tag in a report:
<rw:field...urlEncode=yes|no.../>
The default value for urlEncode
is no.
This section describes the various command line options that are currently applicable.
Refer to Section 1.2.8.4, "engineResponseTimeOut Parameter" for more information.
Table 2-2 indicates which commands can use the SUPPRESSLAYOUT
keyword.
Table 2-2 Commands that can use SUPPRESSLAYOUT
rwclient | rwrun | rwbuilder | rwconverter | rwservlet | rwcgi | rwserver |
---|---|---|---|---|---|---|
yes | yes | yes | no | yes | yes | no |
Use SUPPRESSLAYOUT
to to specify whether to suppress the formatting of the paper layout at runtime. The keyword allows users to control whether the paper layout in a report is executed at runtime. The most common use of this keyword is to increase the performance of JSP reports. Since a JSP report may have a paper layout and reference objects in it through an <rw:include>
tag, Oracle9i Reports formats the paper layout before running the JSP section of the report. To improve the performance of single source JSP reports that store both paper and Web layouts but do not reference paper layout objects, set SUPPRESSLAYOUT=YES
on the command line.
Note: If there is an<rw:include> tag, then no output will be created for the tag.
|
SUPPRESSLAYOUT=[YES|NO]
YES
Paper layout objects will not be formatted at runtime
NO
Paper layout objects will be formatted at runtime.
NO
Table 2-3 indicates which commands can use the UPGRADE_PLSQL
keyword.
Table 2-3 Commands that can use UPGRADE_PLSQL
rwclient | rwrun | rwbuilder | rwconverter | rwservlet | rwcgi | rwserver |
---|---|---|---|---|---|---|
no | no | no | yes | no | no | no |
Use UPGRADE_PLSQL
to specify whether to upgrade any PL/SQL code in the report to the latest version required by Oracle9i Reports Developer.
UPGRADE_PLSQL=[YES|NO]
YES
PL/SQL code will be upgraded automatically if necessary.
NO
PL/SQL code will not be updated.
YES
Table 2-4 indicates which commands can use the RECURSIVE_LOAD
keyword.
Table 2-4 Commands that can use RECURSIVE_LOAD
rwclient | rwrun | rwbuilder | rwconverter | rwservlet | rwcgi | rwserver |
---|---|---|---|---|---|---|
yes | yes | no | yes | yes | yes | no |
Use RECURSIVE_LOAD
to specify whether to validate external references in program units when running a report. If any of the references become invalid, the program unit is automatically recompiled. Setting RECURSIVE_LOAD
to NO
is useful when running your report against a different database than the one against which its PL/SQL was originally compiled.
RECURSIVE_LOAD=[YES|NO
]
YES
External references will be validated.
NO
External references will not be validated.
YES
Table 2-5 indicates which commands can use the SQLTRACE
keyword.
Table 2-5 Commands that can use SQL_TRACE
rwclient | rwrun | rwbuilder | rwconverter | rwservlet | rwcgi | rwserver |
---|---|---|---|---|---|---|
yes | yes | yes | no | yes | yes | no |
Use SQLTRACE
to specify whether to perform SQL tracing on your report without modifying the report definition.
SQLTRACE=[YES|NO
]
YES
SQL tracing will be performed on the report.
NO
SQL tracing will not be performed on the report.
NO
This section outlines the various SRW functions and procedures that are currently applicable.
SRW.GET_VALUE
is equivalent to the Oracle9i Forms Developer NAME_IN
built-in. It permits developers to get the value of a field at runtime indirectly. This method of obtaining a field’s value is useful if you are writing business logic in a PL/SQL library but need to obtain report values directly.
Instead of using :field_name, the user can use SRW.GET_VALUE
(field_name) to obtain the value of a field. For example:
function func_one return varchar2 is the_fieldname varchar2(20):='ENAME'; begin return(srw.get_value(the_fieldname)); end func_one;
By default, a new JSP created in Reports Builder contains the following:
<%@ page contentType="text/html;charset=ISO-8859-1" %>
If you are creating your JSP outside of Reports Builder, you should ensure that it contains similar encoding information.
This environment variable provides an override option to enable you to define the character set encoding used when saving a report in XML format. This is only required where the required character set mapping for Oracle9i Reports NLS_LANG to XML IANA character sets do not produce the required results.
Set of mapping pairs separated by semicolons. The first value is the encoding that is being produced and the second mapped value is the value that should be used for these cases.
Not Defined
This environment variable should not be required and is currently only used as a workaround to Bug 2224413:
NLS:NEED STABLE MAPPING FROM ORACLE'S NLS_CHARACTER_SET TO IANA ENCODING
WINDOWS-936=WINDOWS-1252;CSEUCKR=EUC-KR;....
In order to run reports that rely on Java classes, you must:
Add the necessary jar files to the REPORTS_CLASSPATH
(for Reports Builder).
Add the necessary jar files to the classPath attribute of the engine element in the Reports Server configuration file (ORACLE_HOME
\reports\conf\
server_name
.conf
).
If you open an existing report that contains buttons in Oracle9iAS Reports Services, the buttons will be converted into text items. You cannot add new buttons in Oracle9iAS Reports Services.
If you open an existing report that contains user parameters and you save it as a JSP, the parameter form is lost. If you create a new JSP with user parameters, the parameter form will appear when you run it in Reports Builder, but you have to create your own parameter form for runtime.
When you open the RTF output from Oracle9iAS Reports Services in Microsoft Word 95 for Japanese, you may encounter anomalies in the output, such as dashes not appearing correctly. These issues are specific to Microsoft Word 95 for Japanese and do not occur in Microsoft Word 97 for Japanese.