Monday Feb 22, 2016

Integrate Oracle Forms 12c with Oracle Access Manager

Article by Dan Andronache, Principal Support Engineer, Oracle Corporation, Romania

A long story of products integration continues in 12c.

We've seen how Oracle Forms 11g can be integrated with Oracle Access Manager in A Case Study - Setting Up Oracle Forms 11g with OAM (Oracle Access Manager)

Now, Oracle Forms 12c can be protected by Oracle Access Managed (OAM) 11gR2 patch set 3.

Oracle Access Manager 11g is a Java Platform, Enterprise Edition (Java EE) - based enterprise - level security application that provides restricted access to confidential information and centralized authentication and authorization services.
Oracle Access Manager 11g, a component of Oracle Fusion Middleware 11g, is a Single Sign-On solution for authentication and authorization.

Authentication servers enable an application to authenticate users by means of a shared authentication token or authentication authority. That means that a user authenticated for one application is automatically authenticated for all other applications within the same authentication domain.

Forms applications use a single sign-on solution only for obtaining database connection information from Oracle Internet Directory or Oracle Platforms Security Services (OPSS).
Once the database information is obtained, interaction with the authentication server no longer occurs.
Exiting a Forms application does not perform a single sign-on logout unless the application has been coded with one of the SSO logout features introduced in Oracle Forms 12c.
Conversely, logging out of a single sign-on session does not terminate an active Forms session unless the application has been coded with one of the SSO logout features introduced
in Oracle Forms 12c. The database session exists until the Forms Runtime (for example, frmweb.exe) on the server terminates, usually by explicitly exiting the form.

As a prerequisite of the integration, following installations have to be complete:

  • Oracle Access Manager 11gR2 patch set 3
  • Oracle Forms 12c
  • If Oracle Internet Directory is used as an Identity Store, install Oracle Internet Directory and integrate it with OAM,
  • Webgate integrated with the HTTP Server fronting Oracle Forms 12c

Next, the integration is separated in sections as follows:

I. Integrate Webtier HTTP Server with Oracle Forms

If a remote HTTP Server is used, an additional step of integration with Forms has to be completed by following the steps in Configuring OHS on a Separate Host.
After the Webtier HTTP Server is restarted, the integration can be tested through URL: http://hostname:port/forms/frmservlet? , where hostname is the hostname where the Webtier HTTP Server is installed and the port is the Webtier HTTP Server listen port. Once Forms is accessible this way, the integration can proceed.

If the HTTP Server that comes with the Forms installation is used, only the accessibility test of Forms through HTTP Server is needed.

II. Install and configure Oracle HTTP Server Webgate for OAM

There are two ways to integrate the HTTP Server with Webgate.
1. Manually: follow the steps from B.2 Configuring Oracle HTTP Server 12c WebGate.
2. Automatically: Run the E.1 Oracle Forms Configuration Helper Script

III. Select the partner application registration approach

A.  Manual Method -  Use OAM Admin Console

1. Log in to the OAM console. - http://hostname:port/oamconsole
2. On the Welcome page, click on New OAM 11g Webgate
3. Provide all the details such as the Base URL, which should be http://hostname:port , where hostname is the hostname of the Webtier HTTP Server machine and the port is the Webtier HTTP Server listen port. Ensure that the Auto Create Policies check box is checked.
While creating the webgate agent, add the following URL to the Protected Resource List:

The parameter values for the Webgate agent will be created on the OAM machine in DOMAIN_HOME/output/<agent name>. There will be two files created, cwallet.sso and ObAccessClient.xml. These files need to be copied to the Webtier machine in WEBTIER_INSTANCE/config/OHS/ohs1/webgate/config. The cwallet.sso file needs to be copied in BINARY mode and the ObAccessClient.xml file needs to be copied in TEXT mode (for UNIX systems). After copying the files a restart of the Webtier HTTP Server is necessary.

B. Automatically using the Forms Configuration Helper Script

a. Download RREG.tar located on the Oracle Access Manager Server in OAM_HOME/oam/server/rreg/client and untar under the Oracle FMW 12c $FMW_HOME directory.
b. Set the MW_HOME and JAVA_HOME environment variables.

UNIX: export MW_HOME=/u01/Oracle/Middleware/Oracle_Home
      export JAVA_HOME=/u01/Oracle/jdk1.8.0_65
Windows: set MW_HOME=D:\Oracle\Middleware\Oracle_Home
         set JAVA_HOME=D:\Oracle\jdk1.8.0_65

c. Run the script:

./ enable_sso OAM_hostname OAM_adminport Forms_hostname
 httpserver_port Forms_DOMAINHOME httpserver_instance

where OAM_hostname is the hostname where OAM is installed, OAM_adminport is the Admin server port for OAM, Forms_hostname is the hostname where Forms is installed, httpserver_port is the listen port of the HTTP Server that is used to access Forms, Forms_DOMAINHOME is the Forms domain home and httpserver_instance is the name of the instance of the HTTP Server.

Note: If running the script, the webgate agent will be created automatically and all the necessary files will be copied to the HTTP Server instance, so no extra manual steps are required.
After running the script, a restart of the environment is required: Node Manager, Admin server, WLS_FORMS and HTTP Server (in this order)

C. Choose the Forms Identity Store type for storing Resource Access descriptors.

Available options:

  • Oracle Platform Security Services (OPSS) - Oracle Platform Security Services (OPSS) is configured as the default Forms Identity Store, so no action is required.
  • Oracle Internet Directory (OID) - The user opted to use .

If choosing Oracle Internet Directory (OID) as the Forms Identity Store, proceed with accessing the Associate/Disassociate page:

  • Start Fusion Middleware Control.
  • Navigate to the Forms Home page.
  • From the Forms menu, select Forms Runtime LDAP Associations.
  • The Forms Runtime LDAP Associations page is displayed.
  • Enter the Oracle Internet Directory Host details:

Parameter Description
OID Host 
Select the Oracle Internet Directory Host from the list or select New Oracle Internet Directory (OID) host to add new host details.
New OID Host Host name of the Oracle Internet Directory server. This field is enabled if you have selected to add new Oracle Internet Directory (OID) Host.
New OID Port Port number on which Oracle Internet Directory is listening. This field is enabled if you have selected to add new Oracle Internet Directory Host.
Oracle Internet Directory Administrator username
Oracle Internet Directory Administrator password
Use SSL Port Select this box if the connection to the Oracle Internet Directory Host should use SSL (in which case the port number provided should be the SSL port).

  • Click Associate and restart WLS_FORMS managed server.

IV. Enable SSO for Forms applications in formsweb.cfg

In order to protect Forms applications via SSO, the formswerb.cfg file needs to be modified.

Using the recommended method of managing formsweb.cfg, open Fusion Middleware Control and enable single sign-on for an application:

  • Start Fusion Middleware Control.
  • Select Web Configuration from the Forms menu.
  • Select the row that lists the configuration section for your application.
  • In the Section region, select sso in the Show drop down list.
  • In the Section region, select the row containing ssoMode.
  • In the Value field, enter webgate or TRUE.
  • Click Apply to update the formsweb.cfg file.
At this point, Forms can be accessed via http://hostname:port/forms/frmservlet?config=yourconfig and the SSO page should appear.

Wednesday Feb 10, 2016

Integrating Oracle Reports with Oracle Forms

Oracle Forms and Reports 12c have been recently released. Everybody talked about it.

To call Oracle Reports from Oracle Forms application, the most secure approach is to use the RUN_REPORT_OBJECT built-in.  Because the user’s database connection is implicitly passed from Oracle Forms to Oracle Reports on the middle tier server, there is no risk of interception as when passed such information in a URL.  

Sample code and detailed information can be found in any of these documents:

White Paper: Integrating Oracle Forms 10g and Oracle Reports 10g
White Paper: Oracle Forms Services - Using Run_Report_Object to call Reports with a Parameter Form
White Paper: Oracle Fusion Middleware 11gR1 & 11gR2 -Integrating Oracle Reports with Oracle Forms

Specific to 12c version , a new environment variable is needed in Oracle Forms 12c to be able to call reports using RUN_REPORTS_OBJECT() built-in. 

The new variable name is COMPONENT_CONFIG_PATH and its value should be the fully qualified path to the Reports Tools Component.
For example: DOMAIN_HOME/config/fmwconfig/components/ReportsToolsComponent/<reports_tools_component_name>

From Forms point of view, it will be necessary to add the new environment variable to the Forms environment configuration (that is, default.env).

Read more about this in:
Oracle® Fusion Middleware Release Notes for Oracle Forms and Reports 12c
2.3.8 Oracle Reports Integration Requires New Environment Variable

Thursday Jan 28, 2016

Tracing in Oracle Reports 12c

Just in case tracing is needed, here is a summary of steps needed to enable Reports Server Engine/Server/Servlet trace in Oracle Reports 12c:

Open the Enterprise Manager console.  
From the WebLogic Domain menu, select "System MBean Browser".

Depending on the type of trace needed, choose the corresponding section below:

In-process Reports Server engines Go to "Application Defined MBeans"
Expand "oracle.logging --> Server: WLS_REPORTS --> Application: reports --> LogConfig":
  • Click on "LogConfig" and go to the "Operations" TAB.
  • Click on row #11 "setLoggerLevel" operation.
  • For "loggerName", enter in the Value field "oracle.reports.engine". 
  • For "levelName", enter in the Value field any of the following values: INCIDENT_ERROR:1,         ERROR:1, WARNING:1, NOTIFICATION:1 (This is the default value), NOTIFICATION:16,        TRACE:1, TRACE:16, TRACE:32
  • Click on the "Invoke" button.
In-process Reports Server and Servlet

Go to "Configuration MBeans"
Expand "oracle.logging --> Server: WLS_REPORTS --> LogRuntime" :

  • Click on "WLS_REPORTS" and go to the "Operations" TAB
  • Click on row #6 "setLoggerLevel" operation.
  • For "loggerName", enter in the Value field "oracle.reports.server" for Reports Server trace or "oracle.reports.servlet" for Reports Servlet trace.
  • For "levelName", enter in the Value field any of the following values: INCIDENT_ERROR:1,  ERROR:1, WARNING:1, NOTIFICATION:1 (This is the default value), NOTIFICATION:16, TRACE:1, TRACE:16, TRACE:32
  • Click on the "Invoke" button.
Stand-alone Reports Server and Engine

Go to "Configuration MBeans"
Expand "oracle.logging --> LogConfig" :

  • Click on "[Reports Server Name]" and go to the "Operations" TAB.
  • Click on row #11 "setLoggerLevel" operation.
  • For "loggerName", enter in the Value field "oracle.reports.server" for Reports Server trace or "oracle.reports.engine" for Reports Server Engine trace.
  • For "levelName", enter in the Value field any of the following values: INCIDENT_ERROR:1,  ERROR:1, WARNING:1, NOTIFICATION:1 (This is the default value), NOTIFICATION:16, TRACE:1, TRACE:16, TRACE:32
  • Click on the "Invoke" button.

Re-start the Reports Server.

 Log Files Location:

    Reports Servlet trace file: DOMAIN_HOME/servers/WLS_REPORTS/logs/reports/rwservlet_diagnostic.log
    In-process Reports Server trace file:  DOMAIN_HOME/servers/WLS_REPORTS/logs/reports/rwserver_diagnostic.log
    In-process Reports Server Engine file: DOMAIN_HOME/servers/WLS_REPORTS/logs/reports/rwEng-X_diagnostic.log
    Stand-alone Reports Server trace file: DOMAIN_HOME/servers/[Reports Server Name]/logs/reports/rwserver_diagnostic.log
    Stand-alone Reports Server Engine file: DOMAIN_HOME/servers/[Reports Server Name]/logs/reports/rwEng-X_diagnostic.log

More information on this topic can be found in:  Note 2070743.1

Thursday Jan 21, 2016

WebUtil Overview

WebUtil main purpose is to provide a simple way to achieve client side integration while running Oracle Forms on the web.
It also simplifies the upgrade of existing applications to the web and enhances the capabilities of web based Oracle Forms applications.

WebUtil has an overriding goal to produce a utility that any Forms developer could use to carry out the complex tasks on the client browser machines by simply coding PL/SQL. With WebUtil, everything the programmer needs to do is exposed through a PL/SQL library.

WebUtil main features are:

  • Text_IO - Read and write text files on the client machine.
  • Tool_Env - Read client side variables
  • C API on the client - Interface with client side C.
  • Host - Run Host commands on the client machine
  • OLE2 - Integrate with client side OLE (e.g. Word and Excel)
  • Enhanced Host commands - Host command call back into Forms
  • Browser functions - Integrate with the browser.
  • File transfer - Move from between the client, application server and database
  • File Manipulation - Manipulate client side files.
  • Client machine information - Read information from the client machine
  • READ/WRITE_IMAGE_FILE - Read and write client side images
  • Get_File_Name - Use a file selection dialog on the client machine
  • D2KWUtil features - Client side interface into the D2KWUtil package.

General information about WebUtil like:

Where can I download WebUtil?
What is WebUtil?
The Goals of WebUtil?
Webutil Demo

can be found on OTN

While configuring WebUtil, jacob.jar can be included or not.

The configuration requires jacob.jar when Microsoft OLE functionality is needed.  
Microsoft OLE functions are used primarily in Forms by Forms Developers who wish to interact with Microsoft applications such as Word or Excel from Forms.  
If OLE functions are not needed, following note can be used: Note 1644754.1 WebUtil Demo with No Jacob Dependency/ No OLE Features.

Otherwise, depending on the Forms version used, WebUtil configuration can be completed using:
Note 1093985.1 : How to Configure WebUtil in Forms 11g  or Note 2070183.1 : How to Configure WebUtil in Forms 12c

Tuesday Jan 12, 2016

Just Released! Apex 5.0.3 - SQL Developer 4.1.3 - ORDS 3.0.3

Quite right in sync with the year change, we have a bunch of product updates.
New releases are in place

Find all details - new features, fix list, downloads - on the related product sites following the links above.

Tuesday Jan 05, 2016

Oracle Forms and Reports Builders in 12c

In Fusion Middleware 12c, Oracle Forms product introduces a new installation option named 'Forms Builder Only'.
This option offers the ability to install only the Forms Builder and its associated utilities. No runtime or related components will be installed.
This lighter weight installation option will be helpful when a runtime environment is not needed.

All the steps needed to configure Forms Builder Standalone 12c are presented in

Chapter 2.4.9 Configuring Form Builder Standalone 12c Using the Configuration Wizard

Apart from the 'Form Builder Only', Forms Builder can installed as part of 'Forms and Reports Deployment' option as shown below.

On the other side, Reports Builder can only be obtained as part of 'Forms and Reports Deployment' option illustrated above.

Read more about Oracle Forms and Reports 12c version in:

Oracle Forms and Reports 12c (12.2.1) Download and Readme
Oracle Forms and Reports 12c (12.2.1) - Overview
Oracle® Fusion Middleware Publishing Reports to the Web with Oracle Reports Services
Oracle® Fusion Middleware Oracle Reports User's Guide to Building Reports
Oracle® Fusion Middleware System Requirements and Specifications12c (12.2.1)

Tuesday Dec 22, 2015

Oracle RESTful Data Services

Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems such as the World Wide Web.
An API is described as RESTful when it conforms to the tenets of REST. Although a full discussion of REST is outside the scope of this document, a RESTful API has the following characteristics:
  •     Data is modelled as a set of resources. Resources are identified by URIs.
  •     A small, uniform set of operations are used to manipulate resources (for example, PUT, POST, GET, DELETE).
  •     A resource can have multiple representations (for example, a blog might have a HTML representation and a RSS representation).
  •     Services are stateless and since it is likely that the client will want to access related resources, these should be identified in the representation returned, typically by providing hypertext links.

Creating a RESTful Services can be achieved in two ways:

1. Using Oracle Application Express 4.2 SQL Workshop or above with ORDS 2.0.6 or above.
Detailed steps are presented in Doc ID 2085947.1.

2. Using SQL Developer 4.1 and above with ORDS 3.0.2 or above.  Oracle Application Express is not required with this combination.
Read more about this option in : Section E:Getting Started with RESTful Services

Check out the Oracle REST Data Services Installation, Configuration, and Development Guide and the Oracle RESTful Data Services FAQ ( Doc ID 2085904.1  ) for more details.

Thursday Dec 10, 2015

Oracle Lifetime Support Policy for Forms and Reports 12c

Oracle Forms and Reports 12c lifetime support dates are now defined.

At this point in time they are as follows:

Release  GA Date


Support Ends


Support Ends


Support Ends

Forms and Reports 11.1.2.x
Oct 2011
Dec 2016
Dec 2018
Forms and Reports 12.2.x
Oct 2015
Oct 2020
Oct 2023

For more specifics on Premier Support, Extended Support, and Sustaining Support, please refer to Oracle Lifetime Support Policy or visit us at

Monday Dec 07, 2015

Creating and Starting a Standalone Reports Server in 12c

Due to its properties, a Standalone Reports Server provides better control outside the rwservlet process with the ability to separate the server process from the WebLogic Server instance.

As stated in Oracle® Fusion Middleware Administering Oracle Fusion Middleware, starting with 12c version, OPMN is no longer used in Oracle Fusion Middleware. Instead, system components are managed by the WebLogic Management Framework, which includes WLST and Node Manager.

Therefore, managing reports component process has been adapted as well.

With no further ado, here are the instructions to create and start a standalone reports server in the latest 12c version.

A. Create the components

The first step after running the Configuration Wizard in a new environment with Oracle Reports 12c is, to run the WLST command createReportsToolsInstance().
This command will create all the components at the file system level needed for Oracle Reports:


1- Execute wlst.cmd/ from ORACLE_HOME/oracle_common/common/bin

2- Connect to AdminServer.


3- Run the following wlst command.


B. Create the standalone reports server


1- Execute wlst.cmd/ from ORACLE_HOME/oracle_common/common/bin

2- Connect to the AdminServer.


3- Run the following WLST command.


* this will create a new standalone Reports Server named 'rep_server1'

4- Start the Reports Server.

Note: The examples use default credentials and ports.

C. Start / Stop the standalone reports server

Go to the DOMAIN_HOME/bin folder and issue any of the following commands:

startComponent.cmd or [Reports Server Name]
stopComponent.cmd or [Reports Server Name]

Read more about Reports 12c in the official documentation:

Oracle® Fusion Middleware Publishing Reports to the Web with Oracle Reports Services
Oracle® Fusion Middleware Oracle Reports User's Guide to Building Reports

Tuesday Nov 24, 2015

JNLP embedded in HTML with Forms 12c

Last but not least in the list of new client deployment options available in Oracle Forms 12c is JNLP embedded in HTML.

By definition, Java Network Launch Protocol (JNLP) enables an application to be launched on a client desktop by using resources that are hosted on a remote web server.
Java Plug-in software and Java Web Start software are considered JNLP clients because they can launch remotely hosted applets and applications on a client desktop.

Starting with 12c version, Oracle Forms can be called through JNLP embedded in HTML.

This method requires Java Plugin and a browser and offers full support for SSO, SSO logout and Java Script Integration.
Also, Base64 encodes JNLP code in client side html source.

As with the other options, an example of how to use this type of configuration can be found in the Forms web configuration, formsweb.cfg.

For more details, consult Oracle Forms 12c Documentation and Oracle Forms Java Plugin FAQ

Thursday Nov 05, 2015

Browser-less access to Forms 12c

Oracle Forms 12c version can now be used without a browser while still keeping the native appearance of the application.

Either JDK or Java Plugin (JRE) has to be installed on the client PC.

An example of how to use this type of configuration can be found in the Forms web configuration file (formsweb.cfg), present in Forms 12c environment.

Keep in mind that, due to its standalone properties, there will be no support for SSO, SSO Logout, or Java Script Integration in this configuration.  The Java Web Start option is different from Standalone in that Java Web Start can still use SSO (using Oracle Access Manager).  Neither Standalone or Java Web Start can do SSO logout or Java script integration. 

For more details, check out the Oracle Forms 12c Documentation and Oracle Forms Java Plugin FAQ

Thursday Oct 29, 2015

Forms 12c and Webstart

Did you know?

Oracle Forms 12c offers support for Java Web Start.

Newer Oracle Forms versions (starting with 12c) are planned to support Java Web Start using a new configuration option.

Java Web Start applications should be called from a certified browser. A list of certified browsers that can optionally be used with Oracle Forms when configured for using Java Web
Start is provided in the Product Certification Guide

Because Java Web Start is not tightly dependent on a browser, the list of certified browsers is expected to be larger than the list of browsers supporting the Java Plugin.

Check out the Oracle Forms 12c Documentation  and this recently posted FAQ for more details: Oracle Forms Java Plugin FAQ

Monday Oct 26, 2015

Forms and Reports 12c are here!

 We are proud to announce the release of Oracle Forms and Reports 12c.

This version provides a compelling platform for developing and deploying your next generation of applications and upgrading your existing applications.

Read more about this version in the links below:

System Requirements and Specifications

For download go here

Thursday Oct 22, 2015

Apex 5.0.2 was released

A new Apex version was released on October 20, 2015.

This is a cumulative patch set for Application Express 5.0.0 and Application Express 5.0.1.
Full download, release notes and installation notes are available here.

Read more about the new features of this version in here.

Oct 2015 Critical Patch Update

The latest Critical Patch Update (CPU) has been released for Oracle products.

Start your reading here:
Critical Patch Updates, Security Alerts and Third Party Bulletin

This is the home page containing links to all "Critical Patch Updates" released to date, along with sections detailing: Security Alerts, Third Party Bulletin, Public Vulnerabilities Fixed, Policies and Reporting Security Vulnerabilities.

On this page you will find the link to the: Oracle Critical Patch Update Advisory - October 2015

For Oracle Fusion Middleware Forms and Reports, go to section Oracle Forms and Reports in note: Patch Set Update and Critical Patch Update October 2015 Availability Document (MOS authentication neededNote 2037108.1)


This is the official blog of the Proactive Support Team for Developer Tools: Oracle Forms, Oracle Reports, Apex, SQLDeveloper, ... . Find information about our activities, publications, product related information and more.


Follow @psdDevTools on Twitter


« July 2016