Oracleforms 12210 Newfeatures 2906037
Oracleforms 12210 Newfeatures 2906037
Oracleforms 12210 Newfeatures 2906037
JUNE 2016
Disclaimer
The following is intended to outline our general product direction. It is intended for information
purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any
material, code, or functionality, and should not be relied upon in making purchasing decisions. The
development, release, and timing of any features or functionality described for Oracles products
remains at the sole discretion of Oracle.
Table of Contents
Disclaimer
Introduction
System Events
Client-Idle (SYSTEM_CLIENT_IDLE)
DB-Idle (SYSTEM_DB_IDLE)
Single-Sign-Off (SYSTEM_SINGLE_SIGN_OFF)
EM Notification (SYSTEM_NOTIFICATION)
Audio Playback
Single Sign-out
On Demand
On-Exit
Client Deployment
Embedded JNLP
Record Counter
10
Client IP Address
10
10
11
JVM Controller
11
11
Load Balancing
12
12
12
14
15
15
16
Builder Preferences
16
General Tab
16
Runtime Tab
16
Module Converter
17
17
17
17
Conclusion
18
Introduction
This document is intended to outline some of the many new features found in Oracle Forms 12c
(12.2.1). This document alone does not represent a complete collection of all the new features and
enhancements introduced into this new release. For a more information on these and other new
features, refer to the Oracle Forms Documentation Library and Oracle Form Builder Help.
The following assumes Oracle BI-Publisher has already been installed, configured, and is accessible from the
installation hosting Oracle Forms.
The BI-Publisher username and password must be passed programmatically in order for the request to succeed.
DECLARE
bi_username
varchar2(20);
bi_password
varchar2(20);
repid
REPORT_OBJECT;
v_rep
varchar2(256);
rep_status
varchar2(256);
-- Because Forms calls BIP with Java, we want to trap any Java errors that may occur.
ex
ora_java.jobject;
ex_msg varchar2(255);
BEGIN
-- Identify the Report Object.
repid := find_report_object ('BI_EMP');
-- Before reaching this point be sure to obtain the username and password for BI-Pub.
System Events
System Events allow developers to develop applications that can react to actions that occur relative to the running
application. The new System Events will include the following.
Client-Idle (SYSTEM_CLIENT_IDLE)
This event will be raised when the end-user has not performed any actions in the associated form for the
amount of time configured. The maximum idle time will be configurable using either a new applet parameter
idleTimeout or using a new SET_APPLICATION_PROPERTY argument CLIENT_IDLE_TIME. Setting the
value to 0 will disable idle time monitoring. The configured values will be in seconds. The values set for this
event may not exactly represent the time specified. For example, an idle time setting of 60 seconds may not
immediately raise the event until 61 seconds have elapsed. Therefore, this event should not be used for critical
time conditions. Also, idle time will be ignored while the running form is displaying modal content (e.g. Alert or
error dialogs, etc). Here is an example of how to use the SYSTEM_CLIENT_IDLE event.
First, either set the Forms applet parameter idleTimeout (in seconds) or set the application property
CLIENT_IDLE_TIME (in seconds) to enable the monitoring of client interactivity idle time in the form.
DB-Idle (SYSTEM_DB_IDLE)
This event will be raised when database interactions have not occurred in the associated form for the amount
of time configured. The maximum idle time will be configurable using either a new environment variable
FORMS_DB_IDLE_TIME or using a new SET_APPLICATION_PROPERTY argument DB_IDLE_TIME.
Setting the value to 0 will disable idle time monitoring. Once this event is raised, it will not reset/restart until
another database action occurs. To enable continued monitoring, set DB_IDLE_REPEAT to TRUE
(SET_APPLICATION_PROPERTY (DB_IDLE_REPEAT, PROPERTY_TRUE). This behavior differs from
CLIENT_IDLE, which monitors continually once enabled. The configured values will be in seconds. The
values set for this event may not exactly represent the time specified. For example, an idle time setting of 60
seconds may not immediately raise the event until 61 seconds have elapsed. Therefore, this event should not
be used for critical time conditions. Idle time monitoring will not begin until a value has been set for
DB_IDLE_TIME and the first database action has occurred (e.g. database query, etc). Here is an example of
how to use the SYSTEM_DB_IDLE.
First, either set the Forms environment variable FORMS_DB_IDLE_TIME (in seconds) or set the application
property DB_IDLE_TIME (in seconds) to enable the monitoring of database interactivity idle time in the form.
Next, in a WHEN-EVENT-RAISED trigger add something like the following:
BEGIN
If :SYSTEM.LAST_EVENT = 'SYSTEM_DB_IDLE' Then
-- Turn off DB Idle monitor so the logout action doesnt
-- cause the idle monitor to fire again. Then logout.
SET_APPLICATION_PROPERTY (DB_IDLE_TIME, 0);
Logout;
END;
Single-Sign-Off (SYSTEM_SINGLE_SIGN_OFF)
This event will be raised when single sign-off has occurred. The application developer can decide how the
application should respond to a logout condition. The Forms Server will not be notified of this event until the
next exchange from client to server (e.g. heartBeat, maxEventWait, user action, etc). Single Sign-out features
are not available when using Java Web Start or the Forms Standalone Launcher (FSAL). Here is an example
of how to use SYSTEM_SINGLE_SIGN_OFF.
EM Notification (SYSTEM_NOTIFICATION)
This event will be raised when a notification has been received from Fusion Middleware Control (FMC). FMC
will be able to send one of five notification levels to any or all of the running Forms sessions from the Forms
User Sessions page. The application developer will code the desired action for each notification level.
Notification levels can be determined using the new System variable :SYSTEM.NOTIFICATION_VALUE. Here
is an example of how to use the SYSTEM_NOTIFICATION event.
DECLARE
notification_level
varchar2(1);
BEGIN
-- NOTIFICATION_VALUE is the value/number sent from Fusion Middleware Control
notification_level := :SYSTEM.NOTIFICATION_VALUE;
If :SYSTEM.LAST_EVENT = 'SYSTEM_NOTIFICATION' Then
CASE notification_level
-- Each message should be customized as needed.
-- Customize these actions as needed.
WHEN '1' THEN MESSAGE ('Received Notification #1 from Fusion Middleware Control.');
WHEN '2' THEN MESSAGE ('Received Notification #2 from Fusion Middleware Control.');
WHEN '3' THEN MESSAGE ('Received Notification #3 from Fusion Middleware Control.');
WHEN '4' THEN MESSAGE ('Received Notification #4 from Fusion Middleware Control.');
WHEN '5' THEN MESSAGE ('Received Notification #5 from Fusion Middleware Control.');
END CASE;
End if;
END;
Audio Playback
Oracle Forms application will now be able to play audio files. This feature is not fully supported when using early
versions of Java 7 on the client tier. Therefore, using Java 8 is recommended. The feature provides a new built-in
called PLAY_AUDIO and will offer various arguments. Valid arguments include the following.
<audio file name>
ACTION_PAUSE
ACTION_STOP
ACTION_RESUME
ACTION_TOGGLE_MUTE
Audio files will be accessible via a properly signed jar file (recommended) or URL. Using a URL may result in Java
security warnings being presented to the end-user. Audio files will be stored on the servers local file system (e.g.
middle tier), similar to how images for iconic buttons might be stored. Supported formats will include the following.
MP3
AIFF containing uncompressed PCM
WAV containing uncompressed PCM
MPEG-4 multimedia container with Advanced Audio Coding (AAC) audio
Single Sign-out
Support for single sign-out and its detection are included with these variations; on demand (programmatic), on-exit,
and a new System Event (for detection of logout occurrences). The System Event will allow applications to react to
a single sign-out occurrence or explicit sign-out when commanded. Single Sign-out features are not supported
when using Java Web Start or the Forms Standalone Launcher (FSAL).
On Demand
On demand single sign-out provides a new built-in, LOGOUT_SSO, which allows the developer to
programmatically cause single sign-out to occur. Executing this built-in will cause a new web browser
window/tab to open briefly and call the SSO logout API, similar to what would occur in a full SSO partner
application.
On-Exit
On-exit single sign-out is activated using a new applet parameter, ssoLogout. Setting this parameter to TRUE
in the Forms Web Configuration (formsweb.cfg) will cause cleanly exiting forms to terminate the current SSO
session, if one exists. The applet parameter ssoLogoutRedirect can be used to redirect the browser to a target
URL upon successful SSO logout. The ssoLogoutRedirect parameter only works when used in conjunction
with ssoLogout and when an SSO session exists.
Single Sign-out Event
The Single Sign-out event, described in detail above, allows developers to design applications that can react to
a single sign-out action occurring.
Client Deployment
Traditional Oracle Forms web applications ran in a parent web browser, using the Java Plug-in. HTML sent to the
client from the Forms Servlet included the appropriate applet tags, which caused the Java Plug-in to load and launch
the Forms applet while embedded in a browser. Unfortunately, this method of deployment came with problems and
limitation. Some of those limitations included, insufficient display space, accidental navigation away from the
running Forms application, extra overhead of supporting the browser, limited support for the Java Plug-in, and
compatibility issues between browser version and Plugin version.
New client deployment options include; Java Web Start, embedded JNLP, and Standalone. Traditional HTML will
also continue to be supported and configured as the default.
Embedded JNLP
Embedded JNLP is a hybrid of traditional HTML and Java Web Start. As with traditional HTML, the Forms
Servlet delivers the needed HTML file for starting the applet. However, in the case of embedded JNLP,
parameters specific to the Oracle Forms applet are contained within a base64 encoded entry (the JNLP
contents). This entry is then surrounded by the needed HTML code to make up a surrounding web page.
Using this option offers several advantages. Those include; familiar look and feel to traditional HTML, ability to
use some JNLP features in addition to HTML features, support of Forms Java Script and SSO features, support
of Forms audio feature when using Java 8+.
Because FSAL runs the application without a browser, features that are browser dependent are not supported
in this mode. These will include Java Script, Single sign-off, and Single sign-on. FSAL should only be used for
internal applications where the environment is fully trusted.
The image can be include in a signed jar file or accessed via a URL (virtual path), however using a jar file is
recommended. Image size should be restricted to 16x16 pixels. Larger size images can be used, however this will
cause the tab label size to increase to match the size of the image. This may not be desirable.
Record Counter
The new SET_APPLICATION_PROPERTY argument, RECORD_COUNT_DISPLAYED, allows developers to
programmatically control when the message bars record counter is displayed or not. This can often be helpful when
the current form is not showing content that contains an obvious record, like a custom logon screen. By hiding the
record counter, users are less likely to be confused by what is presented.
ARROW
BUSY
CROSSHAIR
DEFAULT
INSERTION
HAND
MOVE
Resizing pointers
o
NRESIZE
SRESIZE
ERESIZE
WRESIZE
NERESIZE
NWRESIZE
SERESIZE
SWRESIZE
Client IP Address
In previous versions, the only way to obtain the client IP address was either with a custom Java Bean or by WebUtil
enabling the application. A new application property USER_IP_ADDRESS can be used to get the user IP address
without the need for Java Beans or WebUtil.
Declare
x varchar2(6);
Begin
x := GET_FORM_PROPERTY('myForm',FORM_QUERY_STATUS);
message (x);
End;
ODL_DEBUG
Generates FRM-91930 in ODL followed by the text provided in the "message_string".
ODL_NOTIFICATION
Generates FRM-91934 in ODL followed by the text provided in the "message_string".
ODL_WARNING
Generates FRM-91935 in ODL followed by the text provided in the "message_string".
ODL_ERROR
Generates FRM-91936 in ODL followed by the text provided in the "message_string".
The FRM error code can be used to easily find the desired entry in the log. Here is an example.
Declare
usr_name varchar2(20);
Begin
usr_name := GET_APPLICATION_PROPERTY(USERNAME);
MESSAGE (usr_name || ' attempted to insert a record.', ODL_NOTIFICATION);
END;
JVM Controller
The JVM Controller is used to manage the extra memory used by Forms applications. Specifically, the JVM
Controller manages memory used by Java calls made by the Forms Runtime. Java is used by the Forms Runtime
when calls are made to Oracle Reports, Oracle BI-Publisher, or Java that has been imported into a Forms
application. In previous versions, the JVM Controller was either on or off. It can now be configured to work in the
most efficient configuration appropriate for specific conditions.
Child JVM Management
Children JVMs are spawned as needed. When these extra JVMs are no longer needed, the Controller can be
configured to terminate them.
OFF (default)
JVMs would not be removed automatically by JVM Controller.
AGGRESSIVE
The frequency of removing Child JVMs is at its highest.
MODERATE
The frequency of removing Child JVMs is lower than AGGRESSIVE.
CONSERVATIVE
The frequency of removing Child JVMs is lower than the previous two options.
Load Balancing
Load balancing options include the following:
Random (default)
Round Robin
More details about using and configuring the JVM Controller can be found in the Forms Deployment Guide.
Applet Parameter
Description
idleTimeout
Specifies how much idle time (in seconds) can elapse before a
SYSTEM_CLIENT_IDLE event will fire.
ssoLogout
Specifies if the session should be SSO logged out when a successful Forms
logout occurs. If the application does not exit cleanly, SSO Logout may not
occur. Default is FALSE.
ssoLogoutRedirect
Used in conjunction with ssoLogout, sets the URL used for browser redirection
after a successful ssoLogout.
logoutTargetURLParamname
java_version
customColorScheme
webstart
webstart_codebase
Specifies the URL to the application Codebase. This may be required when
using Java Web Start and the Forms managed server (WLS) is behind a proxy
server.
Example: webstart_codebase=http://proxy_server:port/forms/java
alwaysOnTop
centerOnStartup
isResizable
dynamicLayout
Specifies whether or not the Forms applet should notify the server while
resizing the parent window. Enabling causes an increase of network traffic
while resizing is in progress.
hideActivityBar
Specifies whether or not the Forms activity bar (also known as progress bar)
should be hidden. Default is FALSE.
WebUtilVersion
Specifies whether or not to display the WebUtil version in the client side
console. Default is FALSE.
hideAppletVersion
Specifies whether or not to display the Forms applet version in the client side
console. Default is FALSE.
hideClientExceptions
fsalcheck
Environment Variable
Description
FORMS_SELECT_ON_CLICK
Specifies whether or not the text in a field should be selected when using
the mouse to enter the field.
FORMS_LOGON_HINT
Specifies the text that should be displayed in the default logon dialog
box. The total number of characters cannot exceed 255.
FORMS_CHANGE_PASSWORD_HINT Specifies the text that should be displayed in the default logon dialog
box. The total number of characters cannot exceed 255.
FORMS_HTTP_PROXY_HOST
Specifies the HTTP enabled proxy host. Proxying may be necessary for
calls to Oracle BI-Publisher, or when a form uses server-side Java
(Imported Java) to make HTTP/HTTPS. If using the JVM Controller,
refer to the Java documentation:
https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/netproperties.html
FORMS_HTTP_PROXY_PORT
FORMS_HTTPS_PROXY_HOST
FORMS_HTTPS_PROXY_PORT
FORMS_PROXY_BYPASS
Specifies a list of hosts that should not be accessed using a proxy. Hosts
in the list are separated by '|' character and individual host can include
wildcard character '*'.
FORMS_HIDE_LOGIN_RESET
FORMS_LOGIN_DIALOG_BLANK
FORMS_DB_IDLE_TIME
Specifies the amount of time, in seconds before the Forms DB Idle Time
System Event will fire.
Web Browser
Previously located on the Runtime tab, this preference has been moved to the General tab. The dropdown list can hold several browser locations which will be used by the Builder to both launch a form and
display other web content. By storing multiple browser locations, the developer can easily switch between
different browsers when testing.
Compiler Output
Enter the full path to the directory where generated modules (fmx, mmx, plx) should be saved. The user
must have read/write on the directory set in this field. This feature makes it easier to separate source code
from generated modules.
Runtime Tab
Module Converter
In a previous version, an XML conversion utility was provided which allowed for the conversion of Forms binary
menu and form modules to an XML format and back to binary. This utility was provided as a command-line only
tool. In this release, the utility is accessible directly from within the Builder. The XML conversion utility is now
integration with the previous binary to text converter. In addition to the necessary fields for choosing and converting
to and from XML, the dialog includes a check box to determine if overwriting an existing file should occur during
translations and whether or not the dialog should remain open after a conversion completes successfully. This can
be accessed by selecting File > Convert from the Builder menu.
Conclusion
Oracle Forms 12c (12.2.1) includes many new features and enhancements. These new features range from the
very complex to the very simple. By introducing new features into new and existing applications, those applications
take on a more modern presence. More importantly, by leveraging the power of new features and enhancements
an end-users interaction with the application becomes more efficient. Additional information about Oracle Forms
12c and its features can be found in the Oracle Forms 12c Documentation Library.
Worldwide Inquiries
Phone: +1.650.506.7000
Fax: +1.650.506.7200
CONNECT W ITH US
blogs.oracle.com/oracle
facebook.com/oracle
twitter.com/oracle
oracle.com
Copyright 2016, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only, and the
contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other
warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or
fitness for a particular purpose. We specifically disclaim any liability with respect to this document, and no contractual obligations are
formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any
means, electronic or mechanical, for any purpose, without our prior written permission.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and
are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are
trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. 0615
ORACLE FORMS 12C - NEW FEATURES
June 2016
Author: Michael Ferrante
Contributing Authors: Michael Mullennex