Oracle® Application Express: Application Builder User's Guide Release 3.2
Oracle® Application Express: Application Builder User's Guide Release 3.2
Oracle® Application Express: Application Builder User's Guide Release 3.2
July 2009
Oracle Application Express Application Builder User's Guide, Release 3.2
E11838-02
Copyright © 2003, 2009, Oracle and/or its affiliates. All rights reserved.
Contributors: Marco Adelfio, Carl Backstrom, Christina Cho, Michael Hichwa, Christopher Jones, Joel
Kallman, Sharon Kennedy, Syme Kutz, Sergio Leunissen, Anne Romano, Kris Rice, Marc Sewtz, Scott
Spadafore, Scott Spendolini, Jason Straub, Simon Watt, and Steve Fogel
This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,
transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse
engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is
prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.
If this software or related documentation is delivered to the U.S. Government or anyone licensing it on
behalf of the U.S. Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data
delivered to U.S. Government customers are "commercial computer software" or "commercial technical data"
pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As
such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and
license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of
the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software
License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
This software is developed for general use in a variety of information management applications. It is not
developed or intended for use in any inherently dangerous applications, including applications which may
create a risk of personal injury. If you use this software in dangerous applications, then you shall be
responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use
of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of
this software in dangerous applications.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks
of their respective owners.
This software and documentation may provide access to or information on content, products, and services
from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all
warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and
its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of
third-party content, products, or services.
Contents
Preface ............................................................................................................................................................... xv
Topic Overview ......................................................................................................................................... xv
Audience..................................................................................................................................................... xvi
Documentation Accessibility ................................................................................................................... xvi
Related Documents .................................................................................................................................. xvii
Conventions ............................................................................................................................................. xviii
1 Quick Start
What is Oracle Application Express? ................................................................................................... 1-1
About Oracle Application Express Architecture ................................................................................ 1-5
Understanding Application Express User Roles................................................................................ 1-6
Logging In to Oracle Application Express .......................................................................................... 1-6
About Browser Requirements .......................................................................................................... 1-7
Configuring Your Oracle Application Express Environment ..................................................... 1-7
Logging In to Oracle Application Express as a Developer .......................................................... 1-8
About the Workspace Home Page...................................................................................................... 1-12
Navigation Alternatives ....................................................................................................................... 1-13
Using Online Help ................................................................................................................................ 1-14
iii
Viewing Pages in Printer Friendly Mode ....................................................................................... 2-8
Modifying a Demonstration Application............................................................................................ 2-8
About the Developer Toolbar........................................................................................................... 2-8
Editing a Demonstration Application ............................................................................................. 2-9
Viewing Underlying Database Objects ............................................................................................ 2-10
Viewing the Database Object Dependencies Report.................................................................. 2-10
Viewing Database Objects in Object Browser ............................................................................. 2-10
iv
5 Working with Application Pages
About the Page Definition...................................................................................................................... 5-1
Accessing a Page Definition ............................................................................................................. 5-2
Understanding the Page Definition................................................................................................. 5-2
Using the View List on the Page Definition ....................................................................................... 5-4
Accessing the View List on the Page Definition ............................................................................ 5-4
About Page Events ............................................................................................................................. 5-5
About Database Object Dependencies ............................................................................................ 5-5
About History ..................................................................................................................................... 5-5
About Export ...................................................................................................................................... 5-6
About Groups ..................................................................................................................................... 5-6
About Referenced............................................................................................................................... 5-6
Editing a Page Definition ....................................................................................................................... 5-7
About the Edit All Icon ..................................................................................................................... 5-7
About the Copy or Create Icons....................................................................................................... 5-8
Reordering Page Components ......................................................................................................... 5-8
About Page Rendering ...................................................................................................................... 5-9
About Page Processing ................................................................................................................... 5-11
About Shared Components ........................................................................................................... 5-12
Understanding Page Computations ............................................................................................. 5-14
Understanding Validations ........................................................................................................... 5-17
Understanding Page Processes ..................................................................................................... 5-20
Understanding Branches................................................................................................................ 5-22
Editing Page Attributes ........................................................................................................................ 5-23
Accessing Page Attributes ............................................................................................................. 5-23
About the Page Attributes Page.................................................................................................... 5-24
About the Developer Toolbar ............................................................................................................. 5-28
Working with Shared Components ................................................................................................... 5-29
Accessing the Shared Components Page..................................................................................... 5-29
About the Shared Components Page ........................................................................................... 5-30
About Exporting Shared Components......................................................................................... 5-33
Accessing Reports on Shared Components................................................................................. 5-34
Understanding Application Processes .............................................................................................. 5-34
About On Demand Application Processes.................................................................................. 5-34
Application Process Example........................................................................................................ 5-35
Creating an Application Process................................................................................................... 5-36
Accessing Application Processes Reports ................................................................................... 5-37
Understanding Application Computations...................................................................................... 5-37
About Application Computations ................................................................................................ 5-37
Creating an Application Computation ........................................................................................ 5-38
Accessing the Application Computation History Report ......................................................... 5-39
6 Building an Application
Creating an Application .......................................................................................................................... 6-1
About Creating an Application Using a Wizard ........................................................................... 6-2
About the Create Application Wizard ............................................................................................ 6-2
v
About the Create Application from Spreadsheet Wizard ............................................................ 6-6
About Demonstration Applications ................................................................................................ 6-7
Copying an Application .................................................................................................................... 6-8
Deleting an Application .................................................................................................................... 6-8
Managing Pages in an Application....................................................................................................... 6-9
About Creating Pages..................................................................................................................... 6-10
Creating a Page from the Application Home Page .................................................................... 6-10
Creating a Page from the Page Definition ................................................................................... 6-11
Creating a Page from the Developer Toolbar ............................................................................. 6-13
Copying a Page................................................................................................................................ 6-13
Running a Page or Application ..................................................................................................... 6-14
Grouping Pages ............................................................................................................................... 6-15
Locking and Unlocking a Page...................................................................................................... 6-19
Deleting a Page ................................................................................................................................ 6-21
Adding Application Comments ......................................................................................................... 6-22
Creating an Application Comment .............................................................................................. 6-22
Viewing the Application Comments Report............................................................................... 6-22
Adding Developer Comments ............................................................................................................ 6-22
Adding Developer Comments to an Application or Page ........................................................ 6-23
Viewing and Editing Developer Comments ............................................................................... 6-23
Deleting Developer Comments..................................................................................................... 6-24
About the Developer Comments Report ..................................................................................... 6-25
Creating Applications Groups............................................................................................................ 6-27
Viewing Application Groups ........................................................................................................ 6-27
Creating an Application Group .................................................................................................... 6-28
Assigning an Application to an Application Group .................................................................. 6-28
Removing an Application from an Application Group ............................................................ 6-29
Deleting an Application Group..................................................................................................... 6-29
Viewing Application Reports ............................................................................................................. 6-29
Accessing Application Reports ..................................................................................................... 6-30
Shared Components Reports......................................................................................................... 6-30
Page Components Reports............................................................................................................. 6-31
Activity Reports............................................................................................................................... 6-31
Cross Application Reports ............................................................................................................. 6-32
Understanding Page-Level Items ....................................................................................................... 6-32
Differences Between Page Items and Application Items........................................................... 6-33
About the Items Section of the Page Definition.......................................................................... 6-33
Creating Page-Level Items ............................................................................................................. 6-34
Editing Page-Level Items ............................................................................................................... 6-42
Using the Drag and Drop Layout Page........................................................................................ 6-46
Referencing Item Values ................................................................................................................ 6-49
Displaying Conditional or Read-Only Page Items..................................................................... 6-50
Working with a Multiple Select List Item.................................................................................... 6-50
Understanding Application-Level Items .......................................................................................... 6-51
Creating an Application-level Item .............................................................................................. 6-52
Accessing Application Item History ............................................................................................ 6-52
Editing Application-level Item Attributes................................................................................... 6-52
vi
7 Adding Application Components
Creating Reports....................................................................................................................................... 7-1
Creating a Report Using a Wizard .................................................................................................. 7-2
Using Interactive Reports ................................................................................................................. 7-4
Editing Interactive Reports ............................................................................................................ 7-15
Editing SQL and Wizard Reports ................................................................................................. 7-26
Printing Report Regions ................................................................................................................. 7-37
Creating Forms....................................................................................................................................... 7-46
Creating a Form Using a Wizard .................................................................................................. 7-47
Creating a Tabular Form ................................................................................................................ 7-48
Creating a Master Detail Form...................................................................................................... 7-49
Creating a Form Manually............................................................................................................. 7-51
Validating User Input in Forms .................................................................................................... 7-54
Creating Calendars................................................................................................................................ 7-55
About Creating Calendars ............................................................................................................. 7-55
Creating a New Calendar .............................................................................................................. 7-55
Editing a Calendar Title ................................................................................................................. 7-56
Editing Calendar Attributes .......................................................................................................... 7-57
Upgrading a Calendar Created in a Previous Releases............................................................. 7-60
Converting an Easy Calendar to a SQL Calendar ...................................................................... 7-60
Creating Charts ...................................................................................................................................... 7-61
About Supported Chart Types ...................................................................................................... 7-61
About Creating SQL Queries for Charts...................................................................................... 7-62
Creating an HTML Chart ............................................................................................................... 7-63
Creating a SVG Chart ..................................................................................................................... 7-65
Creating a Flash Chart.................................................................................................................... 7-71
Editing Chart Attributes................................................................................................................. 7-74
Using Custom XML with Flash Charts ........................................................................................ 7-74
Enabling Asynchronous Updates ................................................................................................. 7-75
Displaying SVG Charts in Other Languages .............................................................................. 7-75
Creating Buttons.................................................................................................................................... 7-76
About the Buttons Section of the Page Definition...................................................................... 7-76
Creating a Button Using a Wizard................................................................................................ 7-77
Creating Multiple Buttons ............................................................................................................. 7-78
Editing Buttons ................................................................................................................................ 7-78
Understanding the Relationship Between Button Names and REQUEST ............................. 7-80
About Branching with Buttons ..................................................................................................... 7-81
Displaying Buttons Conditionally ................................................................................................ 7-81
Creating Lists of Values ....................................................................................................................... 7-81
Creating a Named LOV at the Application Level ...................................................................... 7-82
About Static LOVs........................................................................................................................... 7-83
Editing an Existing LOV ................................................................................................................ 7-83
Referencing Session State Within an LOV................................................................................... 7-84
Referencing a Null Value in an Item Based on an LOV ............................................................ 7-84
Accessing LOV Reports.................................................................................................................. 7-85
Creating Dependent Select Lists ........................................................................................................ 7-85
Using Shortcuts...................................................................................................................................... 7-86
vii
About Shortcut Types..................................................................................................................... 7-86
Defining Shortcuts .......................................................................................................................... 7-87
Editing Existing Shortcuts.............................................................................................................. 7-88
Accessing Shortcut Reports ........................................................................................................... 7-88
Using the Find Icon............................................................................................................................... 7-89
About the Find Icon ........................................................................................................................ 7-89
About the Item Finder .................................................................................................................... 7-89
Using the Page Finder .................................................................................................................... 7-90
Using the Query Finder.................................................................................................................. 7-91
Using the Table Finder ................................................................................................................... 7-92
Using the PL/SQL Finder .............................................................................................................. 7-93
Using the Images Finder ................................................................................................................ 7-94
Using the CSS Finder ...................................................................................................................... 7-95
Controlling Access to Applications, Pages, and Page Components............................................ 7-96
How the Access Control List Works ............................................................................................ 7-96
Creating an Access Control List.................................................................................................... 7-97
Selecting an Application Mode and Adding Users.................................................................... 7-98
Controlling Access for Pages and Page Components.............................................................. 7-100
Incorporating JavaScript into an Application................................................................................ 7-100
Referencing Items Using JavaScript ........................................................................................... 7-101
Incorporating JavaScript Functions ............................................................................................ 7-101
Calling JavaScript from a Button ................................................................................................ 7-102
Optimizing a Page for Printing ........................................................................................................ 7-103
Selecting a Printer Friendly Template for an Application ...................................................... 7-103
Using f?p Syntax to Toggle to Printer Friendly Mode............................................................. 7-104
Creating a Help Page .......................................................................................................................... 7-104
Creating a Help Page and Region............................................................................................... 7-104
Defining Help Text........................................................................................................................ 7-104
Creating a Help Navigation Bar Entry....................................................................................... 7-106
8 Adding Navigation
Creating Tabs............................................................................................................................................. 8-1
About Template Support .................................................................................................................. 8-2
About the Tabs Section of the Page Definition .............................................................................. 8-2
Using the Reorder Tabs Icon ............................................................................................................ 8-3
About the Tabs Page .......................................................................................................................... 8-3
How to Create a Tab .......................................................................................................................... 8-3
Editing Tabs ........................................................................................................................................ 8-4
Accessing Tab Reports....................................................................................................................... 8-5
Creating Lists ............................................................................................................................................ 8-5
How To Create a List ......................................................................................................................... 8-6
Adding a List to a Page .................................................................................................................. 8-11
Editing a List .................................................................................................................................... 8-12
Editing Multiple List Entries Simultaneously............................................................................. 8-13
Accessing List Reports.................................................................................................................... 8-13
Creating Breadcrumbs.......................................................................................................................... 8-13
About Breadcrumbs........................................................................................................................ 8-14
viii
How to Create Breadcrumbs ......................................................................................................... 8-14
Editing Breadcrumbs ...................................................................................................................... 8-18
Reparenting Breadcrumb Entries.................................................................................................. 8-19
Accessing Breadcrumb Reports .................................................................................................... 8-20
Creating Trees......................................................................................................................................... 8-20
How To Create a Tree..................................................................................................................... 8-20
Editing a Tree................................................................................................................................... 8-22
Accessing Tree Reports .................................................................................................................. 8-22
Creating a Navigation Bar Entry ........................................................................................................ 8-23
About Navigation Bars................................................................................................................... 8-23
How to Create a Navigation Bar Entry ........................................................................................ 8-24
Editing a Navigation Bar Entry..................................................................................................... 8-25
Editing Multiple Navigation Bar Entries Simultaneously ........................................................ 8-26
Using the Reorder Navigation Bar Entries Icon ......................................................................... 8-26
Accessing Navigation Bar Entry Reports .................................................................................... 8-26
Controlling Navigation Using Branches........................................................................................... 8-27
ix
Accessing the Themes Page ........................................................................................................... 10-2
Changing the Default Templates in a Theme ............................................................................. 10-3
Creating a Theme ............................................................................................................................ 10-4
Editing a Theme .............................................................................................................................. 10-5
Switching the Active Theme.......................................................................................................... 10-6
Copying a Theme ............................................................................................................................ 10-6
Deleting a Theme ............................................................................................................................ 10-7
Managing Workspace Themes ...................................................................................................... 10-7
About Exporting and Importing Themes .................................................................................... 10-8
Changing a Theme Identification Number ................................................................................. 10-9
Viewing Theme Reports................................................................................................................. 10-9
Customizing Templates...................................................................................................................... 10-12
About Cascading Style Sheets ..................................................................................................... 10-13
Selecting a Default Page Template ............................................................................................. 10-13
Creating a New Template ............................................................................................................ 10-14
Viewing Template Reports .......................................................................................................... 10-14
Managing Templates .................................................................................................................... 10-15
Breadcrumb Templates ................................................................................................................ 10-18
Button Templates .......................................................................................................................... 10-20
Calendar Templates ...................................................................................................................... 10-21
Label Templates............................................................................................................................. 10-22
List Templates................................................................................................................................ 10-23
Page Templates.............................................................................................................................. 10-25
Popup LOV Templates ................................................................................................................. 10-30
Region Templates.......................................................................................................................... 10-31
Report Templates .......................................................................................................................... 10-33
Using Custom Cascading Style Sheets............................................................................................ 10-40
Uploading Cascading Style Sheets ............................................................................................. 10-40
Referencing an Uploaded Cascading Style Sheet in the Page Template............................... 10-41
12 Debugging an Application
About Tuning Performance ................................................................................................................. 12-1
Reviewing Session State ...................................................................................................................... 12-2
Accessing Debug Mode........................................................................................................................ 12-2
Enabling SQL Tracing and Using TKPROF ..................................................................................... 12-2
Monitoring Application and Page Resource Use............................................................................ 12-3
x
Viewing Reports .................................................................................................................................... 12-3
Debugging Problematic SQL Queries............................................................................................... 12-4
Removing Controls and Components to Isolate a Problem.......................................................... 12-4
14 Deploying an Application
About the Oracle Application Express Application Development Life Cycle.......................... 14-1
System Development Life Cycle Methodologies to Consider .................................................. 14-1
Understanding the Packaging Process .............................................................................................. 14-2
Deployment Options to Consider................................................................................................. 14-3
Deciding Whether to Copy a Workspace .................................................................................... 14-3
Deciding Whether to Copy a Database........................................................................................ 14-3
xi
About the Application ID .............................................................................................................. 14-3
Deciding to Install a New HTTP Server ...................................................................................... 14-4
How to Move an Application to Another Development Instance............................................... 14-4
About Managing Database Objects .............................................................................................. 14-4
How to Create a Packaged Application............................................................................................. 14-5
How a Packaged Application Simplifies Deployment .............................................................. 14-5
Creating a Packaged Application ................................................................................................. 14-6
Adding Installation Scripts for an Image, Cascading Style Sheet, or Static File.................... 14-8
Adding an Access Control List to a Packaged Application ...................................................... 14-8
Installing Supporting Objects........................................................................................................ 14-9
Deleting Supporting Objects Scripts, Messages, and Installation Options............................. 14-9
Upgrading a Packaged Application ........................................................................................... 14-10
Deinstalling Supporting Objects ................................................................................................. 14-11
Viewing an Install Summary ....................................................................................................... 14-11
Exporting an Application and Related Files .................................................................................. 14-12
Exporting an Application............................................................................................................. 14-12
Exporting Workspace Users ........................................................................................................ 14-13
Exporting Application Components .......................................................................................... 14-14
Exporting a Page in an Application............................................................................................ 14-15
Exporting Cascading Style Sheets............................................................................................... 14-16
Exporting Images .......................................................................................................................... 14-16
Exporting Static Files .................................................................................................................... 14-17
Exporting Script Files ................................................................................................................... 14-18
Exporting Themes ......................................................................................................................... 14-18
Exporting User Interface Defaults .............................................................................................. 14-19
Where Images, CSS, and Script Files Are Stored...................................................................... 14-20
Importing Export Files........................................................................................................................ 14-21
Importing an Application or Page .............................................................................................. 14-21
Importing Cascading Style Sheets .............................................................................................. 14-23
Importing Static Files.................................................................................................................... 14-23
Importing Images .......................................................................................................................... 14-24
Importing Themes......................................................................................................................... 14-24
Importing User Interface Defaults .............................................................................................. 14-25
Installing Export Files ........................................................................................................................ 14-25
Accessing the Export Repository ................................................................................................ 14-26
Installing an Application Export from the Export Repository ............................................... 14-26
Installing Other Files from the Export Repository ................................................................... 14-27
Deleting Files from the Export Repository ................................................................................ 14-27
Installing Export Files from SQL*Plus ....................................................................................... 14-28
About Publishing the Application URL ......................................................................................... 14-28
Using Build Options to Control Configuration ............................................................................ 14-29
Creating Build Options ................................................................................................................ 14-29
Managing Build Options.............................................................................................................. 14-30
Exporting Build Options or Build Option Status ..................................................................... 14-30
Viewing the Build Option Utilization Report ........................................................................... 14-31
xii
15 Advanced Programming Techniques
About DML Locking............................................................................................................................. 15-1
Accessing Data with Database Links ................................................................................................ 15-2
Sending Email from an Application.................................................................................................. 15-3
About Configuring Oracle Application Express to Send Email............................................... 15-3
Sending Email from an Application ............................................................................................. 15-3
Using Collections .................................................................................................................................. 15-4
About the APEX_COLLECTION API .......................................................................................... 15-5
Creating a Collection ...................................................................................................................... 15-5
Truncating a Collection .................................................................................................................. 15-6
Accessing a Collection .................................................................................................................... 15-6
Deleting a Collection....................................................................................................................... 15-7
Adding Members to a Collection.................................................................................................. 15-7
Updating Collection Members ...................................................................................................... 15-8
Deleting Collection Members ........................................................................................................ 15-9
Determining Collection Status ...................................................................................................... 15-9
Merging Collections...................................................................................................................... 15-10
Managing Collections ................................................................................................................... 15-10
Clearing Collection Session State................................................................................................ 15-12
Creating Custom Activity Reports Using APEX_ACTIVITY_LOG .......................................... 15-12
Running Background PL/SQL .......................................................................................................... 15-13
Understanding the APEX_PLSQL_JOB Package...................................................................... 15-13
About System Status Updates ..................................................................................................... 15-15
Using a Process to Implement Background PL/SQL .............................................................. 15-15
Implementing Web Services ............................................................................................................. 15-16
Understanding Web Service References .................................................................................... 15-17
Working with SSL Enabled Web Services ................................................................................. 15-18
Creating a Web Service Reference Based on a WSDL ............................................................. 15-18
Using the Web Service Reference Repository ........................................................................... 15-20
Testing a Web Service Reference Created from a WSDL ........................................................ 15-21
Testing a Web Service Reference Created Manually ............................................................... 15-21
Creating an Input Form and Report on a Web Service ........................................................... 15-21
Creating a Form on a Web Service ............................................................................................. 15-23
Invoking a Web Service as a Process.......................................................................................... 15-24
Editing a Web Service Process .................................................................................................... 15-26
Viewing a Web Service Reference History ................................................................................ 15-26
About BLOB Support in Forms and Reports ................................................................................. 15-26
About BLOB in Forms .................................................................................................................. 15-27
About BLOB Support in Reports ................................................................................................ 15-28
Working With BLOBs Procedurally ........................................................................................... 15-30
xiii
About Translatable Components .................................................................................................. 16-2
Specifying the Primary Language for an Application ................................................................... 16-4
Using Format Masks for Items ...................................................................................................... 16-5
Translating Applications for Multibyte Languages .................................................................. 16-5
Understanding the Translation Process ............................................................................................ 16-5
Step 1: Map the Target Language ................................................................................................. 16-6
Step 2: Seed and Export Text to a Translation File ..................................................................... 16-6
Step 3: Translate the XLIFF File..................................................................................................... 16-8
Step 4: Upload and Apply a Translated XLIFF Document and Publish the Application..... 16-9
Manually Editing a Translation .................................................................................................. 16-10
Translating Messages.......................................................................................................................... 16-11
Translating Messages Used in PL/SQL Procedures ................................................................ 16-11
Translating Messages Used Internally by Oracle Application Express ................................ 16-13
Translating Data That Supports List of Values.............................................................................. 16-25
Defining a Dynamic Translation................................................................................................. 16-26
APEX_LANG.LANG API ............................................................................................................ 16-26
About Supported Globalization Codes .......................................................................................... 16-27
A Available Conditions
Conditions in Application Builder ...................................................................................................... A-1
Index
xiv
Preface
Oracle Application Express Application Builder User’s Guide describes how to use the
Oracle Application Express development environment to build and deploy
database-centric Web applications. Oracle Application Express turns a single Oracle
database into a shared service by enabling multiple workgroups to build and access
applications as if they were running in separate databases.
This preface contains these topics:
■ Topic Overview
■ Audience
■ Documentation Accessibility
■ Related Documents
■ Conventions
Topic Overview
This document contains the following chapters:
Title Description
What’s New in Oracle Application Describes new features available in this release of Oracle
Express Application Express.
Quick Start Offers a quick introduction to using the Oracle
Application Express.
Running a Demonstration Describes how to run and modify the demonstration
Application applications that install with Application Builder.
Application Builder Concepts Provides basic conceptual information about Application
Builder. Use Application Builder to assemble an HTML
interface (or application) on top of database objects such
as tables and procedures.
Using Application Builder Provides important background information about using
Application Builder to build dynamically rendered
applications.
Working with Application Pages Provides important background information about
creating and managing pages within an application.
Building an Application Describes how to use Application Builder to build an
application and application components.
xv
Title Description
Adding Application Components Describes how to use Application Builder to add pages to
an application and add other components (reports, charts,
or forms), page controls (buttons, items, list of values),
and shared components (breadcrumbs, lists, or tabs).
Adding Navigation Describes how to implement navigation in your
application using different types of navigation controls,
including navigation bar entries, tabs, breadcrumbs, lists,
and trees.
Controlling Page Layout Describes different ways you can customize your
application’s page layout by customizing regions, editing
item attributes, and incorporating images.
Managing Themes and Templates Describes different ways you can alter your application’s
user interface and page layout through themes and
templates.
Managing User Interface Defaults Describes how to use user interface defaults to assign
default user interface properties to a table, column, or
view.
Debugging an Application Describes approaches to debugging your Application
Builder application, including viewing Debug Mode,
enabling SQL tracing, viewing page reports, and how to
manually remove a control or a component to isolate a
problem.
Managing Application Security Describes how to provide security for an Application
Builder application by utilizing cross-site scripting
protection, session state protection, authentication, and
authorization.
Deploying an Application Explains how to package an application built within
Application Builder.
Advanced Programming Provides information about advanced programming
Techniques techniques including establishing database links, using
collections, running background SQL, utilizing Web
services, and managing user preferences.
Managing Application Explains how to translate an application built-in
Globalization Application Builder.
Audience
Oracle Application Express Application Builder User’s Guide is intended for application
developers who are building database-centric Web applications using Oracle
Application Express. The guide describes how to use the Oracle Application Express
development environment to build, debug, manage, and deploy applications.
To use this guide, you must have a general understanding of relational database
concepts and an understanding of the operating system environment under which you
are running Oracle Application Express.
Documentation Accessibility
Our goal is to make Oracle products, services, and supporting documentation
accessible to all users, including users that are disabled. To that end, our
documentation includes features that make information available to users of assistive
xvi
technology. This documentation is available in HTML format, and contains markup to
facilitate access by the disabled community. Accessibility standards will continue to
evolve over time, and Oracle is actively engaged with other market-leading
technology vendors to address technical obstacles so that our documentation can be
accessible to all of our customers. For more information, visit the Oracle Accessibility
Program Web site at http://www.oracle.com/accessibility/.
Related Documents
For more information, see these Oracle resources:
■ Oracle Application Express Release Notes
■ Oracle Application Express Installation Guide
■ Oracle Database 2 Day + Oracle Application Express Developer’s Guide
■ Oracle Application Express Administration Guide
■ Oracle Application Express SQL Workshop and Utilities Guide
■ Oracle Application Express API Reference
■ Oracle Application Express Migration Guide
■ Oracle Application Express Advanced Tutorials
■ Oracle Database Concepts
■ Oracle Database Advanced Application Developer's Guide
■ Oracle Database Administrator's Guide
■ Oracle Database SQL Language Reference
■ SQL*Plus User's Guide and Reference
For information about Oracle error messages, see Oracle Database Error Messages.
Oracle error message documentation is available only in HTML. If you have access to
the Oracle Database Documentation Library, you can browse the error messages by
range. Once you find the specific range, use your browser's "find in page" feature to
locate the specific message. When connected to the Internet, you can search for a
xvii
specific error message using the error message search feature of the Oracle online
documentation.
Many books in the documentation set use the sample schemas of the seed database,
which is installed by default when you install Oracle. Refer to Oracle Database Sample
Schemas for information on how these schemas were created and how you can use
them yourself.
For additional application examples, please visit the Oracle by Examples (OBEs)
Application Express page, located on Oracle’s Technology Network. The OBEs provide
step-by-step examples with screenshots on how to perform various tasks within
Application Express.
http://www.oracle.com/technology/products/database/application_e
xpress/html/obes.html
Printed documentation is available for sale in the Oracle Store at
http://oraclestore.oracle.com/
To download free release notes, installation documentation, white papers, or other
collateral, please visit the Oracle Technology Network (OTN). You must register online
before using OTN; registration is free and can be done at
http://www.oracle.com/technology/membership/
If you already have a user name and password for OTN, then you can go directly to
the documentation section of the OTN Web site at
http://www.oracle.com/technology/documentation/
Conventions
The following text conventions are used in this document:
Convention Meaning
boldface Boldface type indicates graphical user interface elements associated
with an action, or terms defined in text or the glossary.
italic Italic type indicates book titles, emphasis, or placeholder variables for
which you supply particular values.
monospace Monospace type indicates commands within a paragraph, URLs, code
in examples, text that appears on the screen, or text that you enter.
xviii
What’s New in Oracle Application Express
This section describes new features available in Oracle Application Express Release 3.2
and points you to additional information.
This preface contains these topics:
■ Oracle Application Express Release 3.2 New Features
■ Highlights of Oracle Application Express Release 3.1
xix
those that have not previously been used for a specified duration and, for new
installations, require that service administrator account passwords conform to a
strong password policy.
Oracle Application Express documentation has also been improved to provide you
with more resources to build secure Web applications. These new features
complement existing Oracle Application Express security features including
flexible authentication, authorization schemes, URL tampering protection, and so
on. For further information, see "Managing Application Security" on page 13-1.
xx
This release includes a new Hidden and Protected item type. This item type
greatly simplifies the developer's task of protecting item session state. This
together with other minor improvements makes the default security functionality
more robust within Oracle Application Express. See Table 6–2, " Available Item
Types" on page 6-36.
■ Enhanced Report Printing.
Release 3.1 now includes XML as a download format and supports multiple SQL
statements. See "Printing Report Regions" on page 7-37.
■ Declarative BLOB Support.
Declarative BLOB support enables files to be declaratively uploaded in forms, and
downloaded or displayed using reports. BLOB display and download can also be
authored procedurally using PL/SQL. See "About BLOB Support in Forms and
Reports" on page 15-26.
■ Application Builder refinements introduced with this release include:
– The ability to define an Application Date Format
– The ability to add a search region when creating a report
– You can now include attachments with emails sent using the Application
Express mail APIs
– The previous 32K limit on data when creating an application on a spreadsheet
has been removed
– You can now create master detail reports in the Create Application Wizard
– Master detail report implementation has been improved and refined
– Support for declarative Media Type enables generation of pages of type other
than 'text/html'
■ Simplified URLs Used During Branching.
In this release, you can perform the clear cache and session state setting actions
immediately before the branch in the same database session used to process the
page submission. This results in less information being shown in the application
URLs. This enhancement improves security by making URLs less susceptible to
tampering and by exposing fewer item names, values, and indications of program
logic. It also reduces the potential of URL encoding and character set problems.
To use this feature, select the save state before branching check box on the Edit
Branch page or when creating a new branch using the Create Branch wizard. See
"Controlling Navigation Using Branches" on page 8-27.
xxi
xxii
1
Quick Start
Reporting
With Oracle Application Express, you can quickly generate HTML reports that display
the results of SQL queries. You can also download and print reports in HTML, an
Adobe Portable Document Format (PDF), Microsoft Word Rich Text Format (RTF), or
Microsoft Excel format (XLS), or XML.
You can declaratively link reports together to provide drill-down reporting and use
bind variables to pass information from session state to a report. Reports support
declarative column heading sorting, control breaks, sums, and pagination. Report
sorting and pagination can use Partial Page Refresh (PPR) technology to avoid
refreshing the entire page. You can also add declarative links to a report to download
the report data to CSV or XML formats. Plus, you can customize the report appearance
using templates. See "About Bind Variable Syntax" on page 3-14 and "Creating
Reports" on page 7-1.
Interactive Reporting Regions enable end users to customize reports. Users can alter
the layout of report data by choosing the columns they are interested in, applying
filters, highlighting, and sorting. They can also define breaks, aggregations, different
charts, and their own computations. Users can create multiple variations of the report
and save them as named reports, output to comma-delimited files, and print them to
PDF documents. See "Editing Interactive Reports" on page 7-15.
Forms
Using wizards, you can easily create forms on tables or on a stored procedure. For
example, when creating a form on a table, these wizards provide automatic
management of insert, update, and delete as well as lost update detection. Once you
create a form, you can rearrange form fields (called form items) using a visual
representation, enabling you to quickly achieve the layout you want. Form items offer
a variety of display options including text fields, text areas, radio groups, select lists,
check boxes, date pickers, and popup list of values. See "Creating Forms" on page 7-46.
Charting
You can also use wizards to create HTML, SVG, or Flash charts. You can create charts
that enable users to drill down from one chart to another chart or report. Charts can
also be refreshed using Partial Page Refresh (PPR) technology, avoiding the need to
refresh an entire page. You can also configure a chart to refresh at defined intervals.
Additionally, you can take advantage of report column templates to add simple HTML
bar charts to any report. See "Creating Charts" on page 7-61.
Spreadsheet Upload
Use the Create Application from Spreadsheet Wizard to quickly upload spreadsheet
data directly into the database. You can choose to store the data in a new database
table or add it to an existing database table. Once the data is uploaded, you can
quickly create an application. This handy wizard enables you to go from spreadsheet
to a shared application in just a few clicks. See "About the Create Application from
Spreadsheet Wizard" on page 6-6.
In this example, the value in the item P1_ID is automatically bound when the query is
run. You can also reference session state within a static context by prefixing the item
name with an ampersand (&) and suffixing it with a period(.), for example:
&P1_NAME.
For management of two dimensional data sets, Oracle Application Express provides a
robust collections infrastructure. Best of all, session management is stateless and does
not consume any memory. See "Managing Session State Values" on page 3-11 and
"About Bind Variable Syntax" on page 3-14.
Security
With Oracle Application Express, you can create public applications that do not
require a user log in, or you can create secure applications that require authentication.
Oracle Application Express provides a number of built-in authentication schemes
including Single Sign On, Database Account Credentials, and an easy-to-use user
management system. You can also use custom schemes that interface with just about
any authentication service including Microsoft Active Directory and Oracle
Applications.
Additionally, you can customize authorization to meet the needs of your environment
and apply authorization selectively to an entire application, a page, or a page
component. Finally, you can also take advantage of an innovative session state
protection feature to prevent URL tampering and built-in features to protect an
application form SQL Injection and cross-site scripting (XSS) attacks. See "Managing
Application Security" on page 13-1.
Performance
Oracle Application Express provides application developers and application users
with an extremely high level of performance. Because Oracle Application Express
resides in the Oracle database, it has minimal impact on network traffic. Plus,
Application Builder includes a large number of monitoring reports to enable you to
identify and tune application performance. See "Debugging an Application" on
page 12-1.
Hosted Development
Oracle Application Express enables a single database to host large numbers of users.
Users work in a dedicated work area called a workspace. A workspace is a virtual
private database that enables multiple users to work within the same Oracle
Application Express installation while keeping their objects, data and applications
private. This flexible architecture enables a single database instance to manage
thousands of applications.
You determine how the process of provisioning (or creating) a workspace works. For
example, in email verification provision mode, users request a workspace using a link
on the login page. After the workspace request has been granted, users receive an
email containing a link that they must click to verify the validity of their email
address. Then they receive an email with their login credentials. To see an example of
email verification provision mode, go to:
http://apex.oracle.com
See "Configuring Your Oracle Application Express Environment" on page 1-7 and
"Oracle Application Express Hosted Instance Administration" in Oracle Application
Express Administration Guide.
About Oracle HTTP Server (Apache) and the Embedded PL/SQL Gateway
The version of Oracle Database you use determines how the URL is translated:
■ Versions prior to Oracle Database 11.1 require Oracle HTTP Server (Apache) with
mod_plsql. The following graphic illustrates the three-tier architecture.
■ With Oracle Database 11.1 or later or Oracle Database 10g Express Edition, you can
remove Oracle HTTP Server and mod_plsql from the architecture and replace it
with the embedded PL/SQL gateway. The following graphic illustrates the
two-tier architecture using the embedded PL/SQL gateway.
The embedded PL/SQL gateway provides the Oracle database with a Web server and
also the necessary infrastructure to create dynamic applications. The embedded
PL/SQL gateway runs in the XML DB HTTP server in the Oracle database and
includes the core features of mod_plsql, but does not require the Oracle HTTP Server
powered by Apache. Inclusion of the embedded PL/SQL gateway simplifies the
architecture and eliminates the middle tier entirely.
Where:
hostname is the name of the system where Oracle XML DB HTTP Server
is installed.
port is the port number assigned to Oracle XML DB HTTP Server. In a
default installation, this number is 8080. See "Verifying the Oracle XML DB
HTTP Server Port" in Oracle Application Express Application Builder User's
Guide.
apex is the database access descriptor (DAD) defined in the configuration
file.
– If your setup uses Apache and mod_plsql, go to:
http://hostname:port/pls/apex/apex_admin
Where:
hostname is the name of the system where Oracle HTTP Server is
installed.
Requesting a Workspace
Before you can log in to Oracle Application Express, an administrator must grant you
access to a workspace. Each workspace has a unique ID and name.
To request a workspace:
1. In a Web browser, navigate to the Oracle Application Express Login page.
If you do not know the URL for logging in to Application Express, see "Logging in
to a Workspace" on page 1-9.
The Login page appears.
2. Under Tasks, click Request a Workspace.
The Request Service Wizard appears.
3. Click Next and follow the on-screen instructions.
Logging in to a Workspace
After an Oracle Application Express administrator approves a workspace request, an
e-mail arrives with your login credentials (the workspace name, user name, and
password).
Note that if your administrator selected Email Verification as the automated method
for handling new workspace requests, you might first receive an email containing a
verification link. This step ensures that your email is a valid one before the workspace
request is approved.
Where:
– hostname is the name of the system where Oracle XML DB HTTP Server
is installed.
– port is the port number assigned to Oracle XML DB HTTP Server. In a
default installation, this number is 8080. See "Verifying the Oracle XML DB
HTTP Server Port" on page 1-10.
Where:
– hostname is the name of the system where Oracle HTTP Server is
installed.
– port is the port number assigned to Oracle HTTP Server. In a default
installation, this number is 7777. You can find information about your
Oracle HTTP Server installation’s port number from either of the
following files:
ORACLE_BASE\ORACLE_HOME\install\portlist.ini
ORACLE_BASE\ORACLE_HTTPSERVER_HOME\Apache\Apache\conf\httpd.conf
Verifying the Oracle XML DB HTTP Server Port To verify the port number where the Oracle
XML DB HTTP Server is running:
1. Start SQL*Plus and connect the database where Oracle Application Express is
installed as SYS:
■ On Windows:
If the port number returns 0, the Oracle XML DB HTTP Server is disabled.
Tip: You can also reset your password on the Login page by clicking
the Reset Password link.
About Administration
An Administration list appears on the right side of the Workspace home page. Use the
following links to administer your application development environment:
■ Administration links to the Application Administration page. Use this page to
perform administrative tasks. See "About the Application Administration Page" in
Oracle Application Express Administration Guide.
– Manage Services links to the Manage Services page. Use this page to manage
session state, log files, preferences, and application models. See "About the
Manage Services Page" in Oracle Application Express Administration Guide.
– Manage Application Express Users links to the Existing Users page. Use this
page to manage existing Application Express users and user groups. See
"Managing Application Express Users" and "Using Groups to Manage
Application Express Users" in Oracle Application Express Administration Guide.
– Monitor Activity links to the Monitor Activity page. Use this page to monitor
page views and view application changes. See "Monitoring Activity within a
Workspace" in "Oracle Application Express Administration Guide.
■ Change Password links to the Change Password page. Use this page to change
your workspace password. See "Resetting Your Password" in Oracle Application
Express Administration Guide.
■ About Application Express links to the About Application Express page. This
page displays version and configuration information for both Application Express
and the Oracle database. See "Viewing the Application Express Product
Information Page" in Oracle Application Express Administration Guide.
About Migrations
Use the Application Migrations link to migrate a Microsoft Access application and
generate an Oracle Application Express application. See Oracle Application Express
Migration Guide.
About Links
The Links list displays on the lower side of the Workspace home page. Use this list to
access the following Application Express resources:
■ Oracle Technology Network links to the Oracle Application Express section of
Oracle Technology Network. Use this page to access additional information and
resources about using Oracle Application Express.
■ Discussion Forum links to Oracle Application Express Discussion Forum. Use this
page as a resource for research and for posting your own questions or answering
those of other users.
■ User’s Guide links to an HTML-based online Help system. You can also access
online Help by clicking the Help link in the upper right corner of any page in
Oracle Application Express. See "About Procedural Online Help" on page 1-14.
Navigation Alternatives
This section describes alternative methods for navigating between pages in the
Application Express user interface.
When you click the Help link, a help topic appears that describes the current page. To
view the table of contents of another help set, select it from the list in the upper left
side of the window.
Tip: With Oracle Database 11g, you must enable network services in
order use the Find link. See "Enabling Network Services in Oracle
Database 11g" on page 13-5
This section describes how to run the two demonstration applications provided with
Oracle Application Express. It also explains how to modify the demonstration
application called Sample Application that installs with Application Builder. Running
and analyzing how an application works is an effective way to better understand how
you can use Application Builder to build your own applications.
This section contains the following topics:
■ Installing a Demonstration Application
■ Running an Installed Demonstration Application
■ Understanding Sample Application
■ Modifying a Demonstration Application
■ Viewing Underlying Database Objects
Tip: The Flash Dial Chart only displays if you log in using the user
name demo.
My Orders is a interactive report based on a SQL query. This report displays a subset
of the information that appears on the Orders page. Users can link to order details by
selecting the Edit icon. Users can also change the appearance of the report using the
Actions menu.
Sample Application is a simple HTML region that displays static text. You can create
this type of region to display explanatory information to users.
Tasks contains a list with links to other pages within the application. Links available
on the Home page Tasks list include:
■ About this Application links to an informational page that describes this
application.
■ Enter a New Order links to a wizard for creating a new order.
■ Add a New Customer links to a form for entering new customer information.
■ Add a New Product links to a form for adding new products.
Products displays an interactive report for tracking product information. This region is
based on a SQL query that uses a custom function for displaying images stored in the
database. To sort by product category, click the column heading. To edit a product
description, click the Edit icon. To add a new product, click the Create Product button
at the top of the page. Users can change the appearance of the report using the Actions
menu.
Top 10 Products is also a SQL report. This report outlines the top ten products based
on quantities sold.
My Orders is a wizard report that summarizes the current orders in the system. To
sort a column, click the column heading. A Sort icon then appears to the right of the
column heading. To edit an existing order, click the Edit icon. To add a new order, click
the Enter New Order button.
Orders by Day is a Calendar report. This report displays each order on the
appropriate date in a calendar. Users can select a calendar entry to view order details.
Click the Previous and Next buttons to previous and future entries.
You can run the current application, edit supporting objects, create shared
components, or export and import information by clicking one of the following:
■ Run Application submits the pages in the current application to the Application
Express engine to render viewable HTML. See "How the Application Express
Engine Renders and Processes Pages" on page 3-2.
■ Supporting Objects links to the Supporting Objects page. See "How to Create a
Packaged Application" on page 14-5.
■ Shared Components links to a list of shared components and user interface
controls that can display or be applied on every page within an application. See
"Working with Shared Components" on page 5-29.
■ Export/Import links you to the Export/Import Wizard. Use this wizard to import
and export an entire application and related files such as cascading style sheets,
images, static files, script files, themes, user interface defaults, and workspace
users. See "Exporting an Application and Related Files" on page 14-12.
The pages that make up the application appear on the Application home page. To
access a specific page, simply click it. To search for a specific page, enter a case
insensitive query for the page title or page number in the Page field and click Go.
See Also: "About the Application Home Page" on page 4-1 and
"About the Page Definition" on page 5-1
1. On the Workspace home page, click SQL Workshop and then Object Browser.
Object Browser appears.
2. Select an object type from the Object list in the upper left corner of the page. For
example, to view tables, select Tables.
3. To search for an object name, enter keywords in the search field beneath the Object
list.
A list of matching objects appears.
4. To perform a specific task related to the selected object, select the appropriate task
button.
For example, to modify a column in the DEMO_CUSTOMERS table:
a. From the Objects list, select Tables.
b. From the Tables list, select DEMO_CUSTOMERS.
c. Click Modify Column.
5. To view additional object details, select a tab beneath the object name. For
example, to view the data in the DEMO_CUSTOMERS table:
a. From the Tables list, select DEMO_CUSTOMERS.
b. Select the Data tab.
A report appears that displays the data in the DEMO_CUSTOMERS table
appears.
This section provides basic conceptual information about Application Builder. Use
Application Builder to assemble an HTML interface (or application) on top of database
objects such as tables and procedures. Each application is a collection of pages linked
together using tabs, buttons, or hypertext links.
This section contains the following topics:
■ What Is a Page?
■ Understanding Page Processing and Page Rendering
■ Understanding Session State Management
■ Understanding URL Syntax
■ Managing Session State Values
■ Understanding Substitution Strings
What Is a Page?
A page is the basic building block of an application. When you build an application in
Application Builder, you create pages that contain user interface elements, such as
tabs, lists, buttons, items, and regions.
You add controls to a page on the Page Definition.
To view the Page Definition of an existing page:
1. Navigate to the Workspace home page.
2. Click the Application Builder icon.
3. Select an application.
4. Select a page.
The Page Definition appears and is divided into three main sections:
■ Page Rendering lists user interface controls and logic that are executed when
a page is rendered. Page Rendering is the process of generating a page from
the database. See "About Page Rendering" on page 5-9.
■ Page Processing lists logic controls (such as computations and processes) that
are evaluated and executed when the page is processed. See "About Page
Processing" on page 5-11.
See Also: "About the Page Definition" on page 5-1 and "Editing a
Page Definition" on page 5-7
Note: Whether you use the Expression fields depends upon the
selected condition type. Some condition types do not require values in
either field, others require a value only for Expression 1, and other
condition types require values in both fields. Although these fields are
labeled "Expression 1" and "Expression 2", the values for a given
condition type do not necessarily conform to any formal definition of
the term expression. They are simply text values appropriate for the
selected condition type.
To view a complete list of all available conditions for a given component or control,
click the arrow to the right of the Condition Type list. Shortcuts to common selections
appear directly beneath the list. If your condition requires an expression, enter it in the
appropriate field.
The following sections offer examples of some commonly used condition types.
If the current page is 100, then this condition evaluates to true and the condition
passes.
Exists
Exists (SQL query returns at least one row) is expressed as a SQL query. If the query
returns at least one row, then the condition evaluates as true. For example:
SELECT 1 FROM employees WHERE department_id = :P101_DEPTNO
This example references item P101_DEPTNO as a bind variable. You can use bind
variables within application processes and SQL query regions to reference item session
state. If one or more employees are in the department identified by the value of P101_
DEPTNO, then the condition evaluates as true.
PL/SQL Expression
Use PL/SQL Expression to specify an expression in valid PL/SQL syntax that
evaluates to true or false. For example:
NVL(:MY_ITEM,'NO') = 'YES'
If the value of :MY_ITEM is Yes, as in the previous example, then the condition
evaluates as true. If the value of :MY_ITEM is No, then the condition evaluates as false.
What Is a Session?
A session is a logical construct that establishes persistence (or stateful behavior) across
page views. Each session is assigned a unique identifier. The Application Express
engine uses this identifier (or session ID) to store and retrieve an application's working
set of data (or session state) before and after each page view.
Because sessions are entirely independent of one another, any number of sessions can
exist in the database at the same time. Also, because sessions persist in the database
until purged by an administrator, a user can return to an old session and continue
running an application long after first launching it. A user can also run multiple
instances of an application simultaneously in different browser sessions.
Sessions are logically and physically distinct from Oracle database sessions used to
service page requests. A user runs an application in a single Oracle Application
Express session from log in to log out with a typical duration measured in minutes or
hours. Each page requested during that session results in the Application Express
engine creating or reusing an Oracle database session to access database resources.
Often these database sessions last just a fraction of a second.
Table 3–2 describes the arguments you can pass when using f?p syntax.
Although it is important to understand how f?p syntax works, you rarely have to
construct this syntax yourself. Application Builder includes many wizards that
automatically create these references for you. The following sections describe specific
instances that utilize f?p syntax to link pages.
Note that this is only one approach to using a button. This method bypasses page
submission and acts as a hyperlink on the page. Another method is to submit the page
first. In that approach, clicking the button submits the page for processing, allowing
forms to be submitted and session state to be saved.
About APEX_UTIL.PREPARE_URL
Oracle provides a utility function to enable developers to use PL/SQL to generate
anchors to application pages using the f?p syntax. Use APEX_UTIL.PREPARE_URL
whenever PL/SQL in the application produces f?p anchors that might require a zero
session ID. To learn more, see "PREPARE_URL" in Oracle Application Express API
Reference.
which a user can enter a phone number. You defined this form by creating an item
named P2_PhoneNo. On the second page, you want to display the information the
user enters in the form.
When the page is submitted, Oracle Application Express captures the value entered in
the phone number field and stores the value for future use. The phone number entered
by the user can then be retrieved from session state by referencing the item associated
with the field on the page.
The following example resets the value of the items THE_EMPNO and THE_DEPTNO.
f?p=100:5:&APP_SESSION.::NO:THE_EMPNO,THE_DEPTNO
Clearing Session Cache for Two Pages While Resetting Pagination This example clears the
session cache for two pages and resets pagination.
f?p=6000:6003:&APP_SESSION.::NO:RP,6004,6014
This example:
■ Runs page 6003 of application 6000 and uses the current session ID
■ Indicates to not show debug information (NO)
■ Clears all values maintained by the current session's cache for items of pages 6004
and 6014
■ Resets region pagination (RP) on page 6003 (the requested page)
Clearing Session Cache on a Page and Passing an Item Value This example shows how to
implement an update form. It clears existing information and sets the item's value
(typically a primary key).
f?p=6000:6003:&APP_SESSION.::NO:6003:MY_ITEM:1234
This example:
■ Runs page 6003 of application 6000 and uses the current session ID
■ Indicates to not show debug information (NO)
■ Clears all values maintained by the current session's cache for items on page 6003
■ Sets the session state of an item called MY_ITEM to the value 1234
Clearing Session Cache on a Page and Passing Values to Multiple Items This example is
similar to the previous example, except it passes values to multiple items.
f?p=6000:6004:&APP_SESSION.::NO:6003:MY_ITEM1,MY_ITEM2,MY_ITEM3:1234,,5678
This example:
■ Runs page 6004 of application 6000 and uses the current session ID
■ Clears the current session's cache for items on page 6003
■ Indicates debug information should be hidden (NO)
■ Sets the value of MY_ITEM1 to 1234, sets the value of MY_ITEM2 to null (indicated
by the comma used as placeholder), and sets the value of MY_ITEM3 to 5678
Note: Resetting the cache for an entire application does not restore
the application to a completely reset state. For example, if an
application includes on-new instance computations or on-new
instance processes, the Application Express engine runs these
computations and processes when the application session is
created. Then, it processes the clear cache request and displays the
requested page.
To reset an application completely without a session ID (if no
cookie is used to track the session ID), you must request it using a
URL without a session ID, or by calling APEX_UTIL.CLEAR_APP_
CACHE from another application. If the session ID is tracked using a
cookie, you will need to logout to reset the state.
In this example, the search string is a page item. If the region type is defined as SQL
Query, you can reference the value using standard SQL bind variable syntax. Using
bind variables ensures that parsed representations of SQL queries are reused by the
database, optimizing memory usage by the server.
When using bind variable syntax, remember the following rules:
■ Bind variable names must correspond to an item name.
■ Bind variable names are not case-sensitive.
■ Bind variable names cannot be longer than 30 characters (that is, they must be a
valid Oracle identifier).
Although page item and application item names can be up to 255 characters, if you
intend to use an application item within SQL using bind variable syntax, the item
name must be 30 characters or less.
In this example, the values of the employee_id, first_name, and job_id are
populated by the values of P1_EMP_ID, P1_NAME, and P1_JOB.
Notice the required trailing period. When the page is rendered, Application Express
engine replaces value the substitution string with the value of item F101_X.
See Also:
■ "Substitutions" on page 4-13 for information about defining
static substitution strings as an application attribute
■ "Establishing User Identity Through Authentication" on
page 13-24 for information about authentication
APP_ALIAS
APP_ALIAS is an alphanumeric name for the current application. APP_ALIAS is
different from the APP_ID in that the APP_ID must be unique over all workspaces and
all applications hosted in one database. In contrast, APP_ALIAS must be unique
within a workspace. For example, by using the same APP_ALIAS you can create the
application, ABC, in two different workspaces. You can use APP_ALIAS almost
anywhere APP_ID can be used. For example, f?p syntax can use an APP_ALIAS or an
application ID as demonstrated in this example:
f?p=ABC:1:&APP_SESSION.
This example runs application ABC, page 1 using the current session.
APP_ID
APP_ID identifies the application ID of the currently executing application. Table 3–5
describes the supported syntax for referencing APP_ID.
APP_IMAGES
Use this substitution string to reference uploaded images, JavaScript, and cascading
style sheets that are specific to a given application and are not shared over many
applications. If you upload a file and make it specific to an application, then you must
use this substitution string, or bind variable. Table 3–6 describes the supported syntax
for referencing APP_IMAGES.
APP_PAGE_ID
APP_PAGE_ID is the current application ID. For example, if your application was on
page 3, then the result would be 3. Using this syntax is useful when writing
application components that need to work generically in multiple applications.
Table 3–7 describes the supported syntax for referencing APP_PAGE_ID.
APP_SESSION
APP_SESSION is one of the most commonly used built-in substitution strings. You can
use this substitution string to create hypertext links between application pages that
maintain a session state by passing the session number. Note that you can also use the
substitution string SESSION in place of APP_SESSION. Table 3–8 describes the
supported syntax for referencing APP_SESSION.
■ Using PL/SQL:
htf.anchor('f?p=100:5:'||V('APP_SESSION'),'click me');
APP_UNIQUE_PAGE_ID
APP_UNIQUE_PAGE_ID is an integer generated from an Oracle sequence which is
unique for each page view. This number is used by applications to prevent duplicate
page submissions and can be used for other purposes. For example, to make a unique
URL and avoid browser caching issues, you can embed this number in the request or
debug column in calls to the f procedure. Table 3–9 describes the supported syntax for
referencing APP_UNIQUE_PAGE_ID.
Note the use of the APP_UNIQUE_PAGE_ID in the request column. This makes this
URL unique and may avoid excessive browser caching problems.
APP_USER
APP_USER is the current user running the application. Depending upon your
authentication model, the value of the user is set differently. If the application is
running using database authentication, then the value of the user is the same as the
database pseudo column USER. If the application uses an authentication scheme that
requires the user to authenticate, the value of APP_USER is set by the authentication
scheme, usually to the user name used during authentication. Table 3–10 describes the
supported syntax for referencing APP_USER.
■ Using PL/SQL:
htp.p('Hello you are logged in as'||V('APP_USER'));
■ As a bind variable:
SELECT * FROM some_table WHERE user_id = :APP_USER
AUTHENTICATED_URL_PREFIX
This application-level attribute identifies a valid authenticated prefix (that is, a logged
in URL prefix). You can use a relative path or a full path beginning with http. This
item is useful if your application can be run in both authenticated (logged in) and
public (not logged in) modes. You can use AUTHENTICATED_URL_PREFIX to
construct a link to an authenticated page. This item is most useful when using basic
database authentication because changes to the URL can require authentication.
Table 3–11 describes the supported syntax for referencing AUTHENTICATED_URL_
PREFIX.
BROWSER_LANGUAGE
BROWSER_LANGUAGE refers to the Web browser's current language preference.
Table 3–12 describes the supported syntax for referencing BROWSER_LANGUAGE.
CURRENT_PARENT_TAB_TEXT
CURRENT_PARENT_TAB_TEXT is most useful in page templates, but is only relevant
for applications that use two-level tabs (that is, parent and standard tabs). Use this
string to reference the parent tab label. This substitution string enables you to repeat
the currently selected parent tab within the page template. Table 3–13 describes the
supported syntax for referencing CURRENT_PARENT_TAB_TEXT.
DEBUG
Valid values for the DEBUG flag are Yes or No. Turning debug on shows details about
application processing. If you write your own custom code, you may want to generate
debug information only if the debug mode is set to Yes. Table 3–14 describes the
supported syntax for referencing DEBUG.
HOME_LINK
HOME_LINK is the home page of an application. The Application Express engine will
redirect to this location if no page is given and if no alternative page is dictated by the
authentication scheme's logic. You define the Home Link on the Application Attributes
page.
Table 3–15 describes the supported syntax for referencing HOME_LINK.
LOGIN_URL
Use LOGIN_URL to display a link to a login page for users that are not currently
logged in. Table 3–16 describes the supported syntax for LOGIN_URL.
IMAGE_PREFIX
The value of IMAGE_PREFIX determines the virtual path the Web server uses to point
to the images directory distributed with Oracle Application Express. To reference
uploaded images, use WORKSPACE_IMAGES and APP_IMAGES. Table 3–17 describes
the supported syntax for referencing IMAGE_PREFIX.
You may also use #FLOW_OWNER# to reference this value in SQL queries and PL/SQL
(for example, in a region or a process).
PRINTER_FRIENDLY
The value of PRINTER_FRIENDLY determines if the Application Express engine is
running in print view mode. This setting can be referenced in conditions to eliminate
elements not desired in a printed document from a page. Table 3–18 describes the
supported syntax for referencing PRINTER_FRIENDLY.
LOGOUT_URL
LOGOUT_URL is an application-level attribute used to identify the logout URL. This is a
URL that navigates the user to a logout page or optionally directly logs out a user. To
create a logout navigation bar entry, add a trailing period to &LOGOUT_URL
(&LOGOUT_URL.). If you are coding a page template, use #LOGOUT_URL#. Table 3–19
describes the supported syntax for referencing LOGOUT_URL.
PROXY_SERVER
PROXY_SERVER is an application attribute. The attribute may be used by regions
whose source comes from a URL. The following is the correct syntax for a direct
PL/SQL reference used when you are writing PL/SQL to access remote Web servers
from within the database (for example, when using the utl_http package shipped
with the database).
APEX_APPLICATION.G_PROXY_SERVER
PUBLIC_URL_PREFIX
PUBLIC_URL_PREFIX is an application-level attribute that identifies a URL to toggle
out of a logged in mode to a public view. Table 3–20 describes the supported syntax for
referencing PUBLIC_URL_PREFIX.
REQUEST
Each application button sets the value of REQUEST to the name of the button or to the
request value attribute associated with the button. This enables accept processing to
reference the name of the button when a user clicks it. In the f?p syntax, REQUEST
may be set using the fourth argument.
Scope and Value of REQUEST for Posted Pages When you post a page, you initiate Accept
processing. Accept processing consists of computations, validations, processes, and
branches. The value of REQUEST is available during each phase of the Accept
processing. Once an application branches to a different page then REQUEST is set to
NULL.
The value of REQUEST is the name of the button the user clicks, or the name of the tab
the user selects. For example, suppose you have a button with a name of CHANGE, and
a label Apply Change. When a user clicks the button, the value of REQUEST is
CHANGE.
About the When Button Pressed Attribute Validations, processes, and branches have a
When Button Pressed attribute. This attribute displays as a select list and contains the
names of buttons that exist on the current page. If you make a selection from When
Button Pressed, you associate the button’s REQUEST value with the validation, process,
or branch.
When you use a button to submit a page, the REQUEST value is passed to the page.
The Accept processing logic evaluates each validation, process, and branch that uses a
When Button Pressed attribute to determine whether the component should run (or
fire). When one of these components runs, do not assume that a user actually clicked
the associated button and caused the page to be submitted. Keep in mind, that another
button using the same request value may have submitted the page. Similarly,
JavaScript on the page can also submit the page and pass in a request value.
Using REQUEST for Show Processing You can also use REQUEST for Show processing
when navigating to a page using f?p syntax. For example:
f?p=100:1:&APP_SESSION.:GO
Remember that the fourth argument in the f?p syntax is REQUEST. This example goes
to application 100, page 1 for the current session, and sets the value of REQUEST to GO.
Any process or region can reference the value of REQUEST using Show processing.
The following is a similar example using PL/SQL:
IF V ('REQUEST') = 'GO' THEN
htp.p('hello');
END IF;
Note that htp.p('hello') is a call to a PL/SQL Web Toolkit package to print out
the specified text string.
See Also:
■ Oracle Database Advanced Application Developer's Guide for
information about developing Web applications with PL/SQL
■ Oracle Database PL/SQL Packages and Types Reference for
information about htp packages
SQLERRM
SQLERRM is a template substitution only available in the Applications Region Error
Message. The following describes the correct syntax for a region template substitution
reference:
#SQLERRM#
SYSDATE_YYYYMMDD
SYSDATE_YYYYMMDD represents the current date on the database server, with the
YYYYMMDD format mask applied. You may use this value instead of repeated calls to
the SYSDATE() function. The following list describes the supported syntax for
referencing SYSDATE_YYYYMMDD.
■ Bind variable
:SYSDATE_YYYYMMDD
■ PL/SQL
V('SYSDATE_YYYYMMDD')
■ Direct PL/SQL
APEX_APPLICATION.G_SYSDATE (DATE DATATYPE)
WORKSPACE_IMAGES
Use this substitution string to reference uploaded images, JavaScript, and cascading
style sheets that are shared over many applications within a workspace. Table 3–23
describes the supported syntax for referencing WORKSPACE_IMAGES.
You can customize the appearance of the Application Builder home page using the
navigation bar at the top of the page. Available controls include:
■ Application. Use the Application field to search for an application. Enter a case
insensitive query for the application name or application ID and click Go. To view
all applications, leave the field blank and click Go.
■ Group. Use the Group field to search for an application group. Select an
application group and click Go. See "Creating Applications Groups" on page 6-27.
■ View. Use this control to display information about the applications in your
workspace. Make a selection from the list and click Go. Available options include:
– Icons (the default) displays each application as a large icon identified by the
application name.
– Details displays each application as a line in a report. Each line includes the
application ID, the application name, when the application was last updated,
the page count, and who last updated the application.
– By Group displays applications by application group.
■ Display. Determines how many applications display on the page. To change the
display, make a selection from the list and click Go.
The Application home page navigation bar contains the following controls:
■ Page. Search for a page number or name by entering a case insensitive keyword or
phrase in the Page field and clicking Go. To view all pages in an application, leave
the Page field blank and click Go. You control how many pages display by making
a selection from the Display list.
■ View. By default, each page displays as a large icon. You can change the
appearance of the page by making a selection from the View list and clicking Go.
See "Understanding Page Display Alternatives" on page 4-5.
■ Display. Determines how many pages display. To change the number of pages that
appear, make a selection from the Display list and click Go.
The Create Page button displays to the right of the navigation bar. Click Create Page to
launch a wizard that walks you through creating a page. See "Managing Pages in an
Application" on page 6-9.
Icons mode (the default) displays each page as a large icon identified by the page
name. To view a page, click the icon.
Details mode displays each page as a line in a report. Each line includes the page
number, the page name, when the page was last updated, the page type, who updated
it, any associated group, and lock status. To view a page, click the page name. Use the
Lock icon to prevent conflicts during application development. Click the Run icon to
run the associated page and render viewable HTML.
By Group displays currently defined page groups. You can use page groups to
organize and manage the pages within an application. See "Grouping Pages" on
page 6-15.
By Type separates pages into categories, such as Login, Report, Tabular Form,
Dynamic Form, Chart, and so on. The number of pages within each page category
displays within a parenthesis to the right of the type name. To view a page, click the
page type and then the page.
This bar contains the icons discussed in the sections that follow. Note that the Run
Page icon, Edit Page icon, Developer Comment icon, and Find icon display on
numerous pages in Application Builder, including pages for creating and managing
shared components. See "Working with Shared Components" on page 5-29.
The Run Page icon resembles a small, light green traffic light. Click this icon to render
viewable HTML of the current page. If no page is selected, clicking this icon runs the
first page in the application. When you run a page, the Application Express engine
dynamically renders the page based on data stored in the database. See "Running a
Page or Application" on page 6-14.
Edit Icon
The Edit Page icon resembles a small green piece of paper and pencil. Click this icon to
access the Page Definition of the current page. If no page is selected, clicking this icon
displays the Page Definition of the first page in the application. See "About the Page
Definition" on page 5-1.
The Shared Components icon resembles a small mechanical gear. Click this icon to
view a list of shared components and user interface controls that can display or be
applied on every page within an application. See "Working with Shared Components"
on page 5-29.
The Developer Comment icon is the shape of a green balloon. Click this icon to record
comments about an application, a specific page, or a group of pages. See "Adding
Developer Comments" on page 6-22.
Find Icon
The Find icon resembles a flashlight. Click this icon to search for items, pages, queries,
tables, PL/SQL, images, and cascading style sheets (CSS) within the current
application or the schemas associated with the workspace. See "Using the Find Icon"
on page 7-89.
Tip: You can also access the Edit Definition page by clicking the
application name at the top of the Application home page.
About Navigation Alternatives The Edit Definition page is divided into the following
sections: Name, Availability, Global Notification, Substitutions, Logo, Build Options,
Theme, Template Defaults, and Component Defaults. You can access these sections by
scrolling down the page, or by clicking a navigation button at the top of the page.
When you select a button at the top of the page, the selected section appears and all
other sections are temporarily hidden. To view all sections of the page, click Show All.
Name Use Name to define basic characteristics of your application, including the
application name, an optional alphanumeric alias, and a version number. Table 4–1
describes all Name attributes.
Global Notifications You can use the Global Notifications attribute to communicate
system status to application users. For example, you can use this attribute to notify
users of scheduled downtime, or communicate other messages regarding application
availability. If the page templates used in your application contain the #GLOBAL_
NOTIFICATION# substitution string, the text entered here will display in that string's
place.
Substitutions Use these fields to define static substitution strings for your application.
You can use static substitution string for phrases or labels that occur in many places
within an application. To create a substitution string, enter the string name in the
Substitution String column and the string value in the Substitution Value column.
Defining static substitution strings centrally enables you to change text strings in
multiple places in your application by making a single change to the Substitution
Value defined on this page.
Logo Use Logo attributes to define an application logo. An application logo can be
text-based or image-based. To use this feature, your page template must include the
#LOGO# substitution string.
To define an application logo:
1. For Logo Type, select one of the following:
■ Select Image to use an image for the application logo.
■ Select Text to use text for the application logo.
2. In Logo, enter the following:
■ For an image, enter the complete image name, including the filename
extension. For example:
/i/oracle.gif
Text example:
style="font-family:Arial; color:#000000; font-size:18; white-space:nowrap;
font-weight:bold;"
See Also: "Managing Images" on page 9-13, "Verifying the Prefix for
the Virtual Image Directory" on page 9-14, "Customizing Templates"
on page 10-12, and "Page Templates" on page 10-25
Build Options Displays existing build options. Most applications have a build option
attribute. Build Options have two possible values: INCLUDE and EXCLUDE. If you
specify an attribute to be included, then the Application Express engine considers it at
run time. However, if you specify an attribute to be excluded, then the Application
Express engine treats it as if it did not exist.
Do not specify a build option unless you plan to exclude that object from specific
installations.
Theme Displays the current theme applied to the application. Themes are collections of
templates that can be used to define the layout and style of an entire application. Each
theme provides a complete set of templates that accommodate every user interface
pattern that may be needed in an application.
Template Defaults Lists the default templates for this application. To specify a default
template at the application level, you can either:
■ Select a new theme. See "Switching the Active Theme" on page 10-6.
■ Select a new default page template on the Create/Edit Theme page. See "Changing
the Default Templates in a Theme" on page 10-3.
You can also override this default by making a selection from the Page Template list on
the Page Attributes page.
Table 4–3 describes template defaults for the current application.
Component Defaults Displays the default templates used when running wizards. You
can override these settings on the attributes page for each control or component.
Table 4–4 describes component defaults for the current application.
About Navigation Alternatives The Edit Security Attributes page is divided into the
following sections: Authentication, Authorization, Database Schema, Session State
Protection, and Virtual Private Database. You can access these sections by scrolling
down the page, or by clicking a navigation button at the top of the page.
When you select a button at the top of the page, the selected section appears and all
other sections are temporarily hidden. To view all sections of the page, click Show All.
Database Schema Use Parsing Schema to specify the database scheme for the current
application. Once defined, all SQL and PL/SQL commands issued by the application
will be performed with the rights and privileges of the defined database schema.
Session State Protection Enabling Session State Protection can prevent hackers from
tampering with URLs within your application. URL tampering can adversely affect
program logic, session state contents, and information privacy.
To enable or disable Session State Protection for your application, make a selection
from the Session State Protection list. Setting Session State Protection to Enabled turns
on session state protection controls defined at the page and item level.
To configure Session State Protection, click Manage Session State Protection.
Virtual Private Database (VPD) Use this attribute to enter a PL/SQL block that sets a
Virtual Private Database (VPD) context for the current database session associated
with the current "show page" or "accept page" request. The block you enter here is
executed at a very early point during the page request, immediately after the APP_
USER value is established. The value of APP_USER (using :APP_USER or v('APP_
USER')) may be used within the block. Values of other items in session state may be
referenced as well, but any such items must have been established in session state
before the initiation of the current page request. Consider the following example:
dbms_session.set_context('CTX_USER_QRY','USERPRIV',my_package.my_function(:APP_
USER));
The previous example sets the value of USERPRIV in the context named CTX_USER_
QRY to the value returned by the function my_function in package my_package.
The function is passed the current value of APP_USER as an input argument.
Presumably, the named context would be used in a VPD policy ( created within the
application's parsing schema) to effect the generation of predicates appropriate to the
authenticated user.
Virtual Private Database, also know as Fine-Grained Access Control or FGAC, is an
Oracle database feature that provides an application programming interface (API) that
enables developers to assign security policies to database tables and views. Using
PL/SQL, developers can create security policies with stored procedures and bind the
procedures to a table or view by means of a call to an RDBMS package. Such policies
are based on the content of application data stored within the database, or based on
context variables provided by Oracle database. In this way, VPD permits access
security mechanisms to be removed from applications, and to be situated closer to
particular schemas.
The code entered in this section need not pertain to VPD/FGAC; in fact, it may not be
related to security at all. Any code that needs to be executed at the earliest point in a
page request can be placed here. For example, to set the database session time zone for
every page request:
BEGIN
EXECUTE IMMEDIATE 'alter session set time_zone = ''Australia/Sydney'' ';
END;
Application Date Format Determines the date format to be used in the application.
This date format is used to alter the NLS_DATE_FORMAT database session setting
before showing or submitting any page in the application. This value can be a literal
string containing a valid Oracle date format mask or an item reference using
substitution syntax. If no value is specified, the default date format is derived from the
database session at runtime.
Automatic CSV Encoding Automatic CSV Encoding controls the encoding of all
comma-delimited (CSV) report output in an application. The default value for
Automatic CSV Encoding is No. If Automatic CSV Encoding is set to Yes, CSV report
output is converted to a character set compatible with localized desktop applications.
The character set for the CSV encoding is determined by the Application Language
Derived From setting.
The encoding of pages in Application Builder is determined by the character set of the
database access descriptor (DAD) used to access Oracle Application Express. For
example, if the character set of the database access descriptor is AL32UTF8, all pages
in all applications in the Oracle Application Express user interface are encoded in
UTF-8.
By default, the CSV output from report regions is encoded in the same character set as
the database access descriptor. However, some desktop spreadsheet applications
require that the data is encoded in the client desktop operating system character set. In
the case of multibyte data, the CSV output from report regions will often appear
corrupted when opened by a desktop spreadsheet application. This is because the CSV
■ Create. Links to a wizard for creating a page. See "Creating a Page from the Page
Definition" on page 6-11.
Run Page Icon The Run Page icon resembles a small, light green traffic light. Click this
icon to render the current page into viewable HTML. When you run a page, the
Application Express engine dynamically renders the page based on data stored in the
database. See "Running a Page or Application" on page 6-14.
Shared Components Icon The Shared Components icon resembles a small mechanical
gear. Click this icon to view a list of shared components and user interface controls
that can display or be applied on every page within an application. See "Working with
Shared Components" on page 5-29.
Developer Comment Icon The Developer Comment icon resembles a green balloon. Use
this icon to add comments to an application, a page, or a group of pages. See "Adding
Developer Comments" on page 6-22.
Lock Icon The Lock icon indicates whether a page is available for editing. If a page is
unlocked, the icon appears as an open padlock. If the page is locked, the icon appears
as a locked padlock. Click this icon to change the lock status. See "Locking and
Unlocking a Page" on page 6-19.
Export Page Icon The Export Page icon resembles a downward arrow. Click this icon to
export the current page. See "Exporting a Page in an Application" on page 14-15.
Find Icon The Find icon resembles a flashlight. Click this icon to search for items,
pages, queries, tables, PL/SQL, images, and cascading style sheets (CSS) within the
current application or the schemas associated with the workspace. See "Using the Find
Icon" on page 7-89.
See Also: "Using the Page Finder" on page 7-90 and "Editing a Page
Definition" on page 5-7
About History
The History page displays a history of recent changes to the currently selected page by
developer (or user), application, page number, modification date, component, and
action.
A navigation bar appears directly beneath the breadcrumb trail. Available controls
include:
■ Page. Displays the current page number. To view another page, enter the page
number in the Page field and click Go.
■ View. Controls the current page view. To view alternative reports, make a selection
from the list and click Go. See "Using the View List on the Page Definition" on
page 5-4.
■ Display. Determines how many pages display. To change the number of pages that
appear, make a selection from the Display list and click Go.
■ Previous and Next. These buttons resemble less than (<) and greater than (>)
signs. Click these buttons to move to the previous or next page.
About Export
Use the Export page to export the current page and its referenced components. A
navigation bar appears directly beneath the breadcrumb trail. Available controls
include:
■ Page. Displays the current page number. To view another page, enter the page
number in the Page field and click Go.
■ View. Controls the current page view. To view alternative reports, make a selection
from the list and click Go. See "Using the View List on the Page Definition" on
page 5-4.
See Also: "About the Action Bar" on page 5-3, "How to Move an
Application to Another Development Instance" on page 14-4 and
"Exporting a Page in an Application" on page 14-15
About Groups
The Groups page displays all pages that are part of the same page group as the current
page. Click a page number to edit the page group. Click a page name to view the page
definition.
A navigation bar appears directly beneath the breadcrumb trail. Available controls
include:
■ Page. Displays the current page number. To view another page, enter the page
number in the Page field and click Go.
■ Display. Determines how many pages display. To change the number of pages that
appear, make a selection from the Display list and click Go.
■ View. Controls the current page view. To view alternative reports, make a selection
from the list and click Go. See "Using the View List on the Page Definition" on
page 5-4.
See Also: "About the Action Bar" on page 5-3 and "Grouping Pages"
on page 6-15
About Referenced
The Referenced Components page lists page components and shared components
associated with the current page.
A navigation bar appears directly beneath the breadcrumb trail. Available controls
include:
■ Page. Displays the current page number. To view another page, enter the page
number in the Page field and click Go.
■ View. Controls the current page view. To view alternative reports, make a selection
from the list and click Go. See "Using the View List on the Page Definition" on
page 5-4.
■ Previous and Next. These buttons resemble less than (<) and greater than (>)
signs. Click these buttons to move to the previous or next page.
See Also: "About the Page Definition" on page 5-1, "Editing Page
Attributes" on page 5-23, "Using the Page Finder" on page 7-90
Clicking the Edit All icon displays pages that enable you to edit or delete multiple
controls, components, or application logic simultaneously or view a history of recent
changes.
For example, selecting the Edit All icon under Regions displays a summary report of
all currently defined regions on the current page. You can use this summary view to:
■ Edit the multiple attributes at once by making selections from the available fields
and select lists.
The Create icon resembles a plus (+) sign overlapping a small page. Click the Create
icon to create a control or component.
To reorder page components, click the Reorder icon. When the Reorder page appears
click the up and down arrows and then click Apply Changes.
See Also: "Using the Reorder Regions Icon" on page 9-3, "Using the
Reorder Buttons Icon" on page 7-80, "Using the Edit All Icon to Edit
Multiple Items" on page 6-42, and "Using the Drag and Drop Layout
Page" on page 6-46
page attributes, regions, buttons, items, page rendering computations, and page
processes.
You can quickly navigate to a specific subsection by clicking the icons beneath the
heading. When you select one of these icons, the subsection appears and all other
subsections are temporarily hidden. To restore the view, click Show All. The Show All
icon resembles an inverted triangle.
Topics in this section include:
■ Page
■ Regions
■ Buttons
■ Items
■ Computations
■ Processes
See Also: "About the Page Definition" on page 5-1, "About the Edit
All Icon" on page 5-7 and "About the Copy or Create Icons" on
page 5-8
Page
Page attributes control specific characteristics of a page such as the page name, display
attributes such as the page title and the associated page template, header text, and the
selected authorization scheme to name just a few. You access page attributes from the
Page Definition.
Regions
A region is a area on a page that serves as a container for content. Each page can have
any number of regions. The content of a region is determined by the region source. For
example, a region may contain a report based on a SQL query you define, or it may
contain static HTML.
You control the appearance of a region through a specific region template. You can use
regions to group page controls (such as items or buttons). You can also create simple
regions that do not generate additional HTML, or create elaborate regions that frame
content within HTML tables or images.
See Also:
■ "Understanding Regions" on page 9-2 for information about
creating and editing regions
■ Oracle Database Advanced Application Developer's Guide for
information about developing Web applications with PL/SQL
■ Oracle Database PL/SQL Packages and Types Reference for
information about htp packages
Buttons
As you design your application, you can use buttons to direct users to a specific page
or URL, or to enable users to submit a page. When you submit a page, the Application
Express engine posts or processes information. A button can be implemented as an
HTML button, an image, or by using a template. Buttons can be placed in predefined
region template positions or among items in a form.
Items
Items are HTML form elements such as text fields, select lists, and check boxes with an
associated session state. Item attributes affect the display and behavior of items on a
page. For example, these attributes can impact where a label displays, how large an
item will be, and whether the item will display next to, or below the previous item.
There are two categories of items: page items and application items. Page-level items
are placed on a page and have associated user interface properties, such as Display As,
Label, and Label Template. Application-level items are not associated with a page and
therefore have no user interface properties. An application item can be used as a global
variable.
Computations
Computations are units of logic used to assign session state to items. You can use
computations to assign a value to an identified item when a page is submitted or
displayed.
Application-level computations assign a value to an item each time a page is rendered.
A page-level computation assigns a value to an identified item when a page is
displayed or submitted (rendered and processed).
Processes
Processes are logic controls used to execute data manipulation language (DML) or
PL/SQL. For example, you can use a process to populate session state at the time a
page is rendered, to execute some type of logic (for example, using PL/SQL), or to
make a call to the rendering engine. Typically a process performs an action. A process
may be hand coded PL/SQL, or the invocation of a predefined process.
You can quickly navigate to a specific subsection by clicking the icons beneath the
heading. When you select one of these icons, the subsection appears and all other
subsections are temporarily hidden. To restore the view, click Show All. The Show All
icon resembles an inverted triangle.
Topics in this section include:
■ Computations
■ Validations
■ Processes
■ Branches
See Also: "About the Page Definition" on page 5-1, "About the Edit
All Icon" on page 5-7, and "About the Copy or Create Icons" on
page 5-8
Computations
Computations are units of logic used to assign session state to items and are executed
at the time the page is processed.
Validations
Validations enable you to create logic controls to verify whether user input is valid. For
example, a validation can check whether a value has been entered into a mandatory
field.
Processes
Processes are logic controls used to execute data manipulation language (DML) or
PL/SQL. Processes are executed after the page is submitted.
Branches
Branches enable you to create logic controls that determine how the user navigates
through the application.
You can quickly navigate to a specific subsection by clicking the icons beneath the
heading. When you select one of these icons, the subsection appears and all other
subsections are temporarily hidden. To restore the view, click Show All. The Show All
icon resembles an inverted triangle.
See Also: "About the Page Definition" on page 5-1, "About the Edit
All Icon" on page 5-7, and "About the Copy or Create Icons" on
page 5-8
Tabs
Tabs are an effective way to navigate between pages of an application. Application
Builder includes two types of tabs: standard tabs and parent tabs.
An application having only one level of tabs uses a standard tab set. A standard tab set
is associated with a specific page. You can use standard tabs to link users to other
pages within your application. A parent tab set functions as a container to hold a
group of standard tabs. Parent tabs give users another level of navigation and context
(or sense of place) within the application.
Lists of Values
A list of values (LOV) is a static or dynamic definition used to display a specific type
of page item, such as a radio group, check box, or select list. LOVs can be static (that is,
based on a set of predefined display and return values) or dynamic (based on SQL
queries that select values from tables). Once created, an LOV can then be referenced by
one or more page items.
You define LOVs at the application level by running the LOV Wizard and adding them
to the List of Values repository.
Breadcrumbs
A breadcrumb is a hierarchical list of links that is rendered using a template. For
example, you can display breadcrumbs as a list of links or as a breadcrumb path.
Lists
A list is a collection of links that is rendered using a template. For each list entry, you
specify display text, a target URL, and other attributes that control when and how the
list entry displays. You control the display of the list and the appearance of all list
entries by linking the list to a template.
Theme
A theme is a named collection of templates that defines the application user interface.
Each theme contains templates for every type of application component and page
control, including individual pages, regions, reports, lists, labels, menus, buttons, and
list of values.
Templates
Templates control the look and feel of the pages in your application. As you create
your application, you specify templates for pages, regions, reports, lists, labels, menus,
buttons, and popup lists of values. Groups of templates are organized into named
collections called themes.
Security
You can provide security for your application by specifying an authorization scheme.
Authorization is a broad term for controlling access to resources based on user
privileges.
Navigation Bar
Use a navigation bar to link users to various pages within an application. Typically a
navigation bar is used to enable users to log in, log out, or link to Help text. The
location of a navigation bar depends upon the associated page template. A navigation
bar icon enables you to display a link from an image or text. When you create a
navigation bar icon you can specify an image name, text, display sequence, and target
location (a URL or page).
4. For Item, select the item and computation point at which you would like to
perform the computation:
a. Compute Item - Select the item the computation will update.
b. Sequence - Select the order of evaluation.
c. Computation Point - Select the point at which the computation executes. The
computation point On New Instance executes the computation when a new
session (or instance) is generated.
d. Computation Type - Select the method of computation you want to create.
e. Click Next.
5. In Computation, enter a computation that corresponds to the selected
computation type and click Next.
6. On Condition, you can choose to make the computation conditional. To make a
computation conditional, make a selection from the Condition Type list and enter
text in the expression fields.
7. Click Create.
– Click Next.
– Click Next.
c. SQL Query:
– For Computation Type, select SQL Query and click Next.
– Enter the following computation:
SELECT '('||:P10_AREA_CODE||')'||:P10_PREFIX||'-'||:P10_LINE_NUMBER
FROM DUAL
– Click Next.
d. PLSQL Expression:
– For Computation Type, select PLSQL Expression and click Next.
– Enter the following computation:
'('||:P10_AREA_CODE||')'||:P10_PREFIX||'-'||:P10_LINE_NUMBER
– Click Next.
8. Click Create.
Editing the Computation Point and Source You control when a computation executes under
the Computation Point attributes by specifying a sequence and a computation point.
The computation point On New Instance executes the computation when a new
session (or instance) is generated.
Under Source, enter an expression or query to compute an item's value. In the event a
computation fails, you can optionally define an error message in the Computation
Error Message field.
Understanding Validations
You can define a validation declaratively by selecting a validation method. You enter
the actual validation edit check in the Validation Messages field. Be aware that if a
validation fails, subsequent page processes or computations will not occur. Also
remember that the validation you enter must be consistent with the validation type
you selected. For more information about validation types, see online Help.
Topics in this section include:
■ Creating a Validation
■ Defining How Validation Error Messages Display
■ Processing Validations Conditionally
See Also: "About the When Button Pressed Attribute" on page 3-24
Creating a Validation
To create a validation:
Note: Text entered for validations may not exceed 3,950 characters.
Regular Expression Regular expressions provide a method to describe text patterns. Use a
Regular Expression validation to perform data validation.
For example, you could use the following regular expression validation
to verify that a string of entered data always consists of groups of six
numbers separated by commas and followed by a comma:
^([[:digit:]]{6},)+$
6. For SQL, PL/SQL, and Item String Comparison validations, select the type of
validation you want to create and click Next.
7. Specify the sequence and validation name and click Next.
8. Depending upon the validation method, enter the validation or message text that
displays if the validation fails. Click Next.
9. Define conditions that apply to this validation and click Create.
Tip: If you select Inline with Field or Inline with Field and in
Notification, be aware that the Application Express engine does not
execute computations or processes during the re-rendering of the page
when the validation error messages appear.
See Also: "About the When Button Pressed Attribute" on page 3-24
Changing Processing Points and Source You control when a process executes by
specifying a sequence number and a process point under Process Point. You can
prevent a process from running during subsequent visits to a page by selecting one of
the following options under Run Process:
■ Once for each page visit
Understanding Branches
A branch is an instruction to go to a specific page, procedure, or URL. For example,
you can branch from page 1 to page 2 after page 1 is submitted.
You create a branch by running the Create Page Branch Wizard and specifying Branch
Point and Branch Type. The Branch Type defines the type of branch you are creating.
For more information about Branch Types, see online Help.
Topics in this section include:
■ Defining a Branch Point and Action
■ Branching Conditionally
See Also: "About the When Button Pressed Attribute" on page 3-24
■ On Load: Before Header - Branching occurs before a page is rendered. This option
displays another page instead of the current page or redirects the user to another
URL or procedure.
Depending upon the Branch Type you select, you can specify the following additional
information in the Action attributes:
■ The page number of the page to which you want to branch
■ PL/SQL procedure which ultimately renders a branch target page
■ A URL address
Branching Conditionally
Like other controls, branches can be made conditional. To create a conditional branch,
make a selection from the Condition Type list, and enter text in the expression fields to
implement the condition type you choose.
The Page Attributes page is divided into categories that control specific page
attributes such as the Page Name, Title, HTML Header, HTML Body, Help Text,
Templates, and so on.
3. To edit page attributes you can either:
■ Click the Edit page attributes icon to access the entire Page Attributes page.
This icon resembles a small page with a pencil on top of it.
■ Click a specific link. The specific information appears.
Tip: Clicking the Edit page attributes icon is the only way to view all
page attributes at once.
The Page Attributes page appears. Required values are marked with a red asterisk
(*).
You can access these sections by scrolling down the page, or by clicking a navigation
button at the top of the page. When you select a button at the top of the page, the
selected section appears and all other sections are temporarily hidden. To view all
sections of the page, click Show All.
The topics that follow describe the specific sections of the Page Attributes page.
Name
Use these attributes to define general attributes for the current page such as a page
name, an optional alphanumeric alias, and associated page groups. Table 5–3 describes
these attributes.
Display Attributes
Use these attributes to define general display attributes for the current page such as
the selected page template, standard tab set, title, and cursor focus. Table 5–4 describes
these attributes.
HTML Header
Use HTML Header to replace the #HEAD# substitution string in the page template
header. The values entered here are inserted after the HTML <HEAD> tag. Common
uses of these attributes:
■ Code page-specific inline cascading style classes
■ Add additional style sheets for a specific page
■ Code page-specific JavaScript
■ Code page-specific meta tag page refresh
For Include Standard CSS and JavaScript, select Yes to suppress the inclusion of
cascading style sheet (CSS) and JavaScript files in the HTML Header. Because
suppressing the display of these files breaks typical applications, enabling this
attribute is only recommended for advanced developers.
Security
Use these attributes to specify an authorization scheme and authentication
requirements for the current page. Table 5–6 describes these attributes.
Duplicate Submission
Use the Allow duplicate page submissions list to specify whether users may process a
page multiple times in a row. Set this attribute to No to prevent duplicate page
submissions from being processed multiple times.
Examples of duplicate page submissions include:
■ A user clicks the Submit button multiple times.
■ You create a branch of type Branch to Page, and the user clicks the browser reload
button.
In On duplicate page submissions go to this URL, enter a URL. Use this field if you set
Allow duplicate page submissions to No. If you select No and a user attempts to
submit the same page twice, Oracle Application Express displays an error message
and a link to the URL you specify.]
Cache
Use these attributes to enable caching for the current page. Enabling page caching can
improve application’s performance and works well for static pages. Table 5–7
describes these attributes.
Configuration
Select a build option for this page. You can use build options to enable or disable
functionality. Most application attributes have a build option attribute. Do not specify
a build option for the current page unless you plan to exclude the page in certain
configurations.
Build options have two possible values: INCLUDE and EXCLUDE. If you specify an
attribute as being included, then the Application Express engine considers it part of
the application definition at run time. Conversely, if you specify an attribute as being
excluded, then the Application Express engine treats it as if it did not exist.
On Error Text
Use this attribute to specify the error text that displays in the #NOTIFICATION_
MESSAGE# template substitution string in the event an error occurs on the page.
Help
Use this attribute to enter Help text for the current page.
Help text is displayed using a help system that you must develop. To show the Help
for a specific page, call the APEX_APPLICATION.HELP procedure from a page that
you create for displaying Help text. For example, you could use a navigation bar icon
similar to:
f?p=4000:4600:&APP_SESSION.::&DEBUG::LAST_STEP:&APP_PAGE_ID.
Comments
Use this attribute to record comments about the current page. These comments never
display when the application is running.
When you run an application from within the development environment, the
Developer toolbar appears at the bottom of the page. The Developer toolbar offers a
quick way to edit the current page, create a page, region, or page control, view session
state, or toggle in and out of Debug mode. You can control whether the Developer
toolbar displays by changing the Status attribute on the Edit Definition page.
■ Create links to a wizard for creating a page, region, page control (item, button,
branch, computation, process, or validation), or a shared control (navigation bar
icon, tab, list of values, list, or breadcrumb). See "Building an Application" on
page 6-1.
■ Session links you to session state information for the current page. See "Viewing
Session State" on page 3-5.
■ Activity links you to the Activity reports page. See "Activity Reports" on
page 6-31.
■ Debug toggles the page between Debug and No Debug mode. See "Accessing
Debug Mode" on page 12-2.
■ Show Edit Links toggles between Show Edit Links and Hide Edit Links. Clicking
Show Edit Links displays a small orange icon next to each editable object on the
page. Each icon is orange and contains a triangle with two rules beneath it.
Clicking the link displays another window in which to edit the object.
Application
The following section describes the links under Application.
Definition Links to the Edit Application Definition page. Use this page to edit attributes
that determine the application name, application availability, and static substitution
strings. You can also use this page to define other attributes such as build options or an
application logo and view associated templates and component defaults. See
"Configuring the Application Definition" on page 4-8.
Logic
The following section describes the links under Logic.
Application Items Application-level items do not display, but are used as global
variables to the application. Commonly, you set the value of a page-level item using an
application or page computations. See "Understanding Application-Level Items" on
page 6-51.
Web Service References Web service references in Application Builder are based on the
Simple Object Access Protocol (SOAP). You can create a reference to a Web service and
then incorporate it into an application to process data submitted by a form, or to
render output in the form or report. See "Implementing Web Services" on page 15-16.
Security
The following section describes the links under Security.
Session State Protection Session State Protection is a built-in functionality that prevents
hackers from tampering with the URLs within your application. URL tampering can
adversely affect program logic, session state contents, and information privacy. See
"Understanding Session State Protection" on page 13-14.
Edit Security Attributes Use the Edit Security Attributes page to configure general
security attributes for all pages within an application. See "Configuring Security
Attributes" on page 4-15.
Globalization
The following section describes the links under Globalization.
Translate Application You can develop applications in Oracle Application Express that
can run concurrently in different languages. A single Oracle database and Oracle
Application Express instance can support an application in multiple languages.
Translating an application involves multiple steps. See "About Translating an
Application and Globalization Support" on page 16-1 and "Understanding the
Translation Process" on page 16-5.
Text Messages Text messages are named text strings that can be called from the
PL/SQL code you write. This PL/SQL can be anonymous blocks within page
processes and page regions, or in packages and procedures. See "Translating
Messages" on page 16-11.
Edit Attributes You can develop applications that can run concurrently in different
languages. Click this link to specify globalization options such as the Application
Primary Language and Application Language Derived From attributes. See
"Configuring Globalization Attributes" on page 4-19 and "About Translating an
Application and Globalization Support" on page 16-1.
Navigation
The following section describes the links under Navigation.
Tabs Tabs are an effective way to navigate users between pages in an application. You
can create two types of tabs: standard tabs or parent tabs. A standard tab set is
associated with a specific page and page number. A parent tab set functions as a
container to hold a group of standard tabs. See "Creating Tabs" on page 8-1.
Lists A list is a shared collection of links. You control the appearance of a list through
list templates. Each list element has a display condition that enables you to control
when it displays. See "Creating Lists" on page 8-5.
Trees A tree is an effective way to communicate hierarchical or multiple level data. See
"Creating Trees" on page 8-20.
Navigation Bar Entries Navigation bar entries offer users a simple navigation path for
moving between pages in an application. The location of a navigation bar depends
upon the associated page template. Navigation bar entries can display as a link from
an image or text. A navigation bar entry can be an image, an image with text beneath
it, or text. See "Creating a Navigation Bar Entry" on page 8-23.
User Interface
The following section describes the links under User Interface.
Themes A theme is a named collection of templates that defines the application user
interface. See "Managing Themes" on page 10-1.
Templates Templates control the look and feel of specific constructs within your
application, such as pages, regions, items, and menus. See "Customizing Templates" on
page 10-12.
User Interface Defaults User interface defaults enable you to assign default user interface
properties to a table, column, or view within a specified schema. When you create a
form or report using a wizard, the wizard uses this information to create default
values for region and item properties.
Because user interface defaults are associated with a table, you can use them with
applications created using the form and report wizards. See "Managing User Interface
Defaults" on page 11-1.
Lists of Values A list of values (LOV) is a static or dynamic set of values used to display
a popup list of values, select list, check box, or radio group. See "Creating Lists of
Values" on page 7-81.
Shortcuts Use shortcuts to avoid repetitive coding of HTML or PL/SQL functions. You
can create a shortcut to define a page control such as a button, HTML text, a PL/SQL
procedure, or HTML. Once you define a shortcut, it is stored in a central repository so
you can reference it from various locations within your application. See "Using
Shortcuts" on page 7-86.
Reports
The following section describes the links under Reports.
Report Queries Use the Report Queries link to view a report of stored queries within the
current application. See "About Report Queries" on page 7-39.
Report Layouts Use Report Layouts with a report or shared query to render data in a
printer-friendly format, such as Adobe Portable Document Format (PDF), Microsoft
Word Rich Text Format (RTF), or Microsoft Excel (XLS) format. See "About Report
Layouts" on page 7-42.
Files
The following section describes the links under Files.
Cascading Style Sheets Application Builder includes themes that contain templates that
reference their own cascading style sheets (CSS). Use the Cascading Style Sheets link to
upload cascading style sheets to your workspace. See "Using Custom Cascading Style
Sheets" on page 10-40.
Images Use the Images link to upload images to your workspace. See "Managing
Images" on page 9-13.
Static Files Use the Static Files link to upload static files to your workspace. See
"Managing Static Files" on page 9-16.
PL/SQL logic that you would like to run from different execution points across
multiple pages.
Where:
■ application_id is the application ID or alphanumeric alias
■ page_id is the page number or alphanumeric alias
■ session is the session ID
■ APPLICATION_PROCESS=process_id is the keyword APPLICATION_
PROCESS= followed by either the process ID or an alphanumeric name of an
application-level process having a Process Point of On Demand
When you use this syntax, the Application Express engine recognizes the request and
processes it using the following rules:
■ The page number in the URL can be any page number or alias. A page number or
alias is required in the request only as a syntactic placeholder because no specific
page is accessed for this type of request.
■ The process authorization scheme, the application’s authorization scheme, and the
process conditions are supported.
■ Session state (that is, item names and values) may be set in the URL, but clear
cache options are ignored.
■ Any failures of authentication, authorization, or process conditions do not result in
visible error messages or other indicators of such failures and most often result in
a blank page being displayed.
■ Specifying the process by name locates the first process with the specified
(case-preserved) name.
Instead of writing a process for each page to set the values of TOTAL_CART_ITEMS
and TOTAL_PURCHASE_PRICE, you could write an application process of type On
Load: Before Header to compute these values. Then, the Application Express engine
would execute the process on each page as it renders the application. As a result, each
page, would display the most current values for TOTAL_CART_ITEMS and TOTAL_
PURCHASE_PRICE.
Utilization
Click Utilization to display the Application Process Utilization page. This page
displays application processes used in the current application.
History
Click History to display the Application Process History page. This page displays a
history of recently changed application processes by date.
BEGIN
:LAST_PAGE := nvl(:CURRENT_PAGE,:APP_PAGE_ID);
:CURRENT_PAGE := :APP_PAGE_ID;
RETURN :LAST_PAGE;
END;
specific condition type you select. The computation will execute if the
specified condition is met.
9. For Build Option (optional), select a build option for this component. See "Using
Build Options to Control Configuration" on page 14-29.
10. Click Create.
This section describes how to use Application Builder to build an application and
application components. It includes instructions for creating an application and
adding pages as well as adding components (reports, charts, or forms), page controls
(buttons, items, list of values), and shared components (breadcrumbs, lists, or tabs).
This section contains the following topics:
■ Creating an Application
■ Managing Pages in an Application
■ Adding Application Comments
■ Adding Developer Comments
■ Creating Applications Groups
■ Viewing Application Reports
■ Understanding Page-Level Items
■ Understanding Application-Level Items
Creating an Application
An application is a collection of pages that share a common session state and
authentication. You create an application in Application Builder using a wizard. You
delete an application from the Application home page.
Topics in this section include:
■ About Creating an Application Using a Wizard
■ About the Create Application Wizard
■ About the Create Application from Spreadsheet Wizard
■ About Demonstration Applications
■ Copying an Application
■ Deleting an Application
6. For Tabs, determine whether to include tabs in your application and click Next.
7. For Shared Components, determine whether to import shared components from
another application. Shared components are common elements that can display or
be applied on any page within an application.
To include shared components, select the following:
a. Copy Shared Components from Another Application - Select Yes.
b. Copy from Application - Select the application from which you want to import
shared components.
c. Select Components to Import - Select the components to import.
d. Click Next.
Next, select a default authentication scheme. Authentication is the process of
establishing users' identities before they can access an application. See
"Establishing User Identity Through Authentication" on page 13-24.
8. For Authentication Scheme, select one of the following:
■ Application Express - Uses the user account credentials created and
maintained with the Application Express Service Administration application.
These are the accounts you use to log in to the Application Express
development environment. You can also create accounts in this user account
repository for end users of your applications.
■ No Authentication - Also known as database authentication, this option
enables users to access your application using the account credentials stored in
the modplsql DAD definition. In most cases this results in users not having
to login when accessing your application. This is the quickest way to create a
"public" application.
■ Database Account - Requires users logging into your application to enter a
database schema name (or user name) and a password in order to
authenticate. This account information is managed entirely within the Oracle
database.
9. Next, select the following globalization preferences:
a. Language - Select the primary language for this application.
This attribute identifies the language in which an application is developed.
This language is the base language from which all translations are made.
b. User Language Preference Derived From - Specifies how the engine
determines the application language. The application primary language can be
static (that is, derived from the Web browser language) or determined from a
Copying an Application
To copy an application:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
The Application home page appears.
3. Click Copy this Application on the Tasks list. See "About the Tasks List" on
page 4-5.
4. On Copy Application:
a. Enter a new application ID.
b. Enter a new application name.
c. Specify whether to copy deployment attributes.
d. Click Next.
5. Click Copy Application.
Deleting an Application
You can delete an application from within Application Builder, or while editing
application attributes. If you delete an application you also delete all defined
components (reports, charts, or forms), page controls (buttons, items, list of values),
and shared components (breadcrumbs, lists, and tabs, but not user interface defaults).
Note: You can also use the Create Page Wizard to add a component
(that is, a report, chart, form, wizard, a calendar, or tree) to an existing
page. When prompted, specify an existing page number.
When you run an application, the Developer toolbar appears at the bottom of the
page. The Developer toolbar offers a quick way to edit the current page, create a page,
region, or page control, view session state, or turn edit links on and off. You can
control whether the Developer toolbar displays by changing the Status attribute on the
Edit Definition page.
Copying a Page
You can copy a page from the current application or from another application. During
the copy process, you can also copy shared components or change mappings to shared
components in the target application.
To copy a page:
The Run Page icon resembles a small, light green traffic light and displays in the upper
right corner of many pages within Application Builder. Clicking the Run Page icon
runs the current page.
Grouping Pages
You can make the pages within your application easier to access by organizing them
into page groups. To use page groups, you create a group and then assign pages to the
group.
Page groups do not have any function other than to help developers organize their
application pages.
Topics in this section include:
■ Viewing Page Groups
■ Creating a Page Group
■ Assigning a Page to a Page Group
■ Removing a Page from a Page Group
Accessing the Page Groups Page To access the Page Groups page:
1. On the Workspace home page, click the Application Builder icon.
2. Select the application.
3. On the Tasks List on the right side of the page, click Page Groups.
The Page Groups page appears.
Use the Navigation bar at the top of the page to search for a page group by name
or change the page display. You can change the default display by making a
selection from View list. Available options include:
■ Icons (the default) displays each group as a large icon. To edit a group, click
the appropriate icon.
■ Details displays each group as a line in a report. To edit a group, click the
name.
4. To view the pages associated with a group, click Report Page Groups on the Tasks
list.
5. To edit the group name and description, click the group name.
Viewing Page Groups from the Application Home Page To view page groups from the
Application home page:
1. On the Workspace home page, click the Application Builder icon.
2. On the Application Builder home page, select an application.
3. From the View list, select by Group and click Go.
Any defined groups appear. Pages not associated with a group are filed in the
Unassigned folder.
Viewing Page Groups from the Page Definition To view page groups from the Page
Definition:
1. Navigate to the Page Definition. See "Accessing a Page Definition" on page 5-2.
2. From the View list, select Groups and click Go.
3. Make a selection from the Tasks list on the right side of the page.
Accessing a Page Group Definition When you create page group you specify a name and
description.
To edit the Page Group definition:
1. On the Workspace home page, click the Application Builder icon
2. Select an application.
3. On the Tasks List on the right side of the page, click Page Groups.
Page Groups page appears.
4. Select a page group.
5. On the Page Group page, edit the name or description and click Apply Changes.
6. To move to the next Page Group definition, click the Previous (<) and Next (>)
buttons and repeat the previous step.
The lock icon also appears on the Action Bar on the Page Definition. See "About the
Action Bar" on page 4-6.
Locking a Page
You can lock pages from the Page Locks page, the Pages list, and from a Page
Definition.
Locking a Page from the Page Locks Page To lock a page from the Page Locks Page:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. On the Tasks List on the right side of the page, click Page Locks.
The Page Locks page appears.
4. Select the appropriate pages and click Lock Checked.
5. Enter a comment in the Comment field.
6. Click Lock Page(s).
Locking a Page from the Details View To lock a page from the Details view:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
Locking a Page from the Page Definition To lock a page from the Page Definition:
1. Navigate to the appropriate Page Definition. See "Accessing a Page Definition" on
page 5-2.
2. Click the Lock icon in the Action bar. See "About the Action Bar" on page 4-6.
3. Select the selected page and click Lock Checked.
4. Enter a comment in the Comment field.
5. Click Lock Page(s).
Unlocking Pages
Only the developer who locked a page can unlock it. However, a developer with
administrative privileges can unlock pages locked by other developers.
Unlocking Pages from the Page Locks Page To unlock a page from the Page Locks page:
1. On the Workspace home page, click the Application Builder icon.
2. Select the application.
3. On the Tasks List on the right side of the page, click Page Locks.
The Page Locks page appears.
4. Select the appropriate pages.
5. Click UnLock Checked.
Unlocking Pages from the from the Details View To unlock a page from the Details view:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. From the View list, select Details and click Go.
4. In the Pages list, locate the page you want to unlock and click the Lock icon.
The Edit Lock Comment page appears.
5. Click UnLock.
Unlocking Pages from the Page Definition To unlock pages from the Page Definition:
1. Navigate to the appropriate Page Definition. See "Accessing a Page Definition" on
page 5-2.
2. Click the Lock icon in the upper right corner above Shared Components.
The Page Locks page appears.
3. Select the page you want to unlock and click Unlock Checked.
Deleting a Page
You can delete a page from the Page Definition or while editing page attributes.
Topics in this section include:
■ Deleting a Page from the Page Definition
■ Deleting a Page While Editing Page Attributes
You can use developer comments to communicate application changes, report issues,
or record developer suggestions.
This section contains the following topics:
■ Adding Developer Comments to an Application or Page
■ Viewing and Editing Developer Comments
■ Deleting Developer Comments
■ About the Developer Comments Report
■ Does not apply to a page or group of pages, leave this field blank.
5. In Comment, enter up to 4000 characters of text.
6. Click Create or Create Another.
The View Comments page appears. See "About the Navigation Bar on the View
Comments Page" on page 6-24.
5. To edit a comment, click the Edit icon.
The Edit Comment page appears.
a. In Relevant Page(s), specify the pages to which the comment applies. To enter
a comment that:
– Applies to a specific page, enter the page number.
– Applies to multiple pages, enter a comma-delimited list of pages. For
example:
1, 2, 3
– Does not apply to a page or group of pages, leave this field blank.
b. In Comment, enter up to 4000 characters of text.
6. Click Apply Changes.
– Does not apply to a page or group of pages, leave this field blank.
b. In Comment, enter up to 4000 characters of text.
4. Click Apply Changes.
■ Icons (the default) displays each group as a large icon. To edit a group, click
the appropriate icon.
■ Details displays each group as a line in a report. To edit a group, click the
name.
3. To view the applications associated with a group, you click the group name.
Activity Reports
Activity reports offer details about developer activity within the current application.
Available reports are grouped into the following categories: Page Views, Caching,
Developer Activity, and Sessions.
Tip: You can also access the Activity page by clicking the Activity
link on the Developer toolbar. See "About the Developer Toolbar" on
page 5-28.
3. Select an application.
4. On the Tasks list, click Application Reports.
5. Click Activity.
6. Under Page Views, click By Hour.
You can temporarily hide all other subsections by clicking the Items icon. To restore
the view, click Show All. The Show All icon resembles an inverted triangle.
The following icons display next to the section title:
■ Edit All. The Edit All icon resembles a small grid with a pencil on top of it. Use
this icon to edit all items at once. See "Using the Edit All Icon to Edit Multiple
Items" on page 6-42.
■ Copy. The Copy icon resembles two small overlapping pages. Use this icon to
make a copy of an existing item.
■ Create. The Create icon resembles a plus (+) sign overlapping a small page. Click
this icon to create an item.
Items are organized by region. To edit an item, click the item name.
See Also: "Editing Page Item Attributes" on page 6-42 and "Using
the Reorder Buttons Icon" on page 7-80
You can use the Drag and Drop Layout page to interactively reorder items within a
given region, change select item attributes, create items, or delete existing items. See
"Using the Drag and Drop Layout Page" on page 6-46.
See Also: "Using the Reorder Region Items Icon" on page 6-45
Select List Displays using a list of values. A list of values is required for items displayed as
a select list. Select lists are rendered using the HTML form element <select>.
The values in a select list are determined using a named list of values or a list of
values defined at the item level. You can specify the NULL display value and
NULL return value.
The following example would return employee names (ename) and employee
numbers (empno) from the emp table. Note that column aliases are not required
and are included in this example for clarity.
SELECT ename display_text, empno return_value FROM emp
Oracle Application Express provides additional enhancements to a standard
HTML select list:
■ Select List with Submit - Submits the page when the user changes its
selected value. Upon submit, the REQUEST is set to the name of the item
that represents the select list, allowing you to execute conditional
computations, validations, processes, and branches.
■ Select List with Redirect - Redirects the user back to the same page, setting
ONLY the newly selected value of the select list in session state.
■ Select List Returning URL Redirect - Based on a list of values with URLs
as the return values. Changing the value of the select list causes the
browser to redirect to the corresponding URL.
■ Select List with Branch to Page - Based on a list of values with page
numbers as return values. Changing the selected value in the select list
causes the Application Express engine to branch to the corresponding page.
Note: Long select lists can cause errors. If you have a long select list that
generates an error, try using a Popup List of Values instead.
Shuttle Renders as a multiple select list that includes two boxes containing lists. The left
list displays a source list of values. Users use the shuttle control icons and
buttons to select list items and move them from the left (source) list to the right
(destination) list. Each shuttle has five controls:
■ Move all - Moves all items in the source list to the destination list.
■ Move selected - Moves only selected items (Ctrl + Shift items) to
destination list.
■ Remove selected - Moves only selected items (Ctrl + Shift items) to the
source list.
■ Remove all - Moves all items on destination list back to the source list.
■ Refresh - Resets the source and destination lists.
The right destination list includes the sort controls Move to top, Move up, Move
down, and Move to bottom.
Note: In order to create this item type, you must define a list of values. See
"Creating a Static List of Values" on page 6-41, "Creating Lists of Values" on
page 7-81, and "Working with a Multiple Select List Item" on page 6-50.
See Also: "About the Drag and Drop Icon" on page 6-34
See Also: "Using the Drag and Drop Layout Page" on page 6-46
Where:
– The first keyword may be STATIC or STATIC2.
STATIC results in the values being sorted alphabetically by display value.
STATIC2 results in the values being displayed in the order they are
entered in the list.
– A semicolon separates the display value from the return value in each
entry.
– Return Value is optional. If a Return Value is not included, the
return value is the same as the display value.
5. To learn more, see item Help. To view help for a specific item on a page, click the
item label.
When help is available, the item label changes to red when you pass your cursor
over it and the cursor changes to an arrow and question mark. See "About
Field-Level Help" on page 1-15.
6. Click Apply Changes.
The examples that follow demonstrate syntax for three different static LOVs.
Example 1: Four Values Displayed in Alphabetical Order In this example, the list of values
has four values (Cow, Dog, Cat, and Lion) that display in alphabetical order. The
return value of each entry equals the display value.
STATIC:Cow,Dog,Cat,Lion
Example 2: Ten Values Displayed in the Order Listed In this example, the list of values has
ten values that display in the order listed in the definition. The return value of each
entry equals the display value.
STATIC2:10,15,20,25,50,100,200,500,1000,10000
Example 3: A List of Values with Having Both a Return and Display Value In this example, the
list of values has two values: Yes and No (the display value Yes and its return value Y,
and the display value No and its return value N).
STATIC:Yes;Y,No;N
See Also: "Using the Drag and Drop Layout Page" on page 6-46
See Also: "How Item Attributes Affect Page Layout" on page 9-11
and "Understanding Cross-Site Scripting Protection" on page 13-11
About Navigation Alternatives The Edit Page Item page is divided into the following
sections: Name, Displayed, Label, Element, Source, Default, List of Values, Security,
Conditions, Read Only, Help Text, Configuration, and Comments.
You can access these sections by scrolling down the page, or by clicking a navigation
button at the top of the page. When you select a button at the top of the page, the
selected section appears and all other sections are temporarily hidden. To view all
sections of the page, click Show All.
Clicking the Edit All icon displays a series of pages that enable you to edit multiple
items simultaneously or view a history of recent changes.
Topics in this section include:
■ Page Items
■ Item Help
■ Reassign Region Items
■ Delete Multiple Items
■ History
See Also: "How Item Attributes Affect Page Layout" on page 9-11
Page Items Item attributes control how items display on a page. You can use the Page
Items page to edit the sequence, field label, template, region, and overall position for
all items on a page.
A Navigation bar displays at the top of the page. Use the Page field to navigate to
another page. To limit the display to just items in a specific region, make a selection
from Show Regions list.
The Page Items page displays items in an editable report. Table 6–3 describes each
editable attribute.
Item Help Use the Item Help page to edit item help for all items on a page. You can
avoid repeating the same Help text in multiple locations by subscribing to another
item.
Reassign Region Items Use the Reassign Region Items page to assign items to a new
region.
To Reassign Region Items page:
1. Navigate to the appropriate Page Definition. See "Accessing a Page Definition" on
page 5-2.
2. Under Items, click the Edit All icon.
3. Click Reassign Region Items.
The Reassign Region Items page appears.
Use the Navigation bar at the top of the page to narrow or broaden the display.
Available options include:
■ Page - Select or enter a new number and click Go.
■ Show Regions - Select a region to display and click Go.
4. To reassign an item to another region:
a. Select the items to reassign.
b. From Assign to Region, select a new region.
c. Click Reassign Region Items.
Delete Multiple Items Use the Delete Multiple Items page to delete multiple items at
once.
To delete multiple items:
1. Navigate to the appropriate Page Definition. See "Accessing a Page Definition" on
page 5-2.
2. Under Items, click the Edit All icon.
3. Click Delete Multiple Items.
The Delete Multiple Items page appears.
Use the Navigation bar at the top of the page to narrow or broaden the display.
Available options include:
■ Page - Select or enter a new number and click Go.
■ Show Regions - Select a region to display and click Go.
■ Forward (>) and Next (<) buttons - Display the previous and next page.
4. To reassign an item to another region:
a. Select the items to reassign.
b. From Assign to Region, select a new region.
c. Click Reassign Region Items.
History Use the History page to view a summary of recent edits to page-level items.
Tip: You can also use the Drag and Drop Layout feature to reorder
items. See "Using the Drag and Drop Layout Page" on page 6-46.
Note: To change the region in which an item resides, you must edit
the item attributes. See "Editing Page Item Attributes" on page 6-42.
The Item palette displays on the left side of the page. You add items by clicking an
item type on the palette and dragging it to the correct position in the Layout region.
Note that when you position the cursor over an item type, a tooltip appears.
Use the right side of the page (or Layout region) to position items. To move an item
vertically, click the Add Row button to insert an empty row. Then drag and drop the
item into the empty row.
About List of Values If you create an item that requires a list of values (LOV), the Drag
and Drop Layout Wizard creates a static inline LOV for you. Note you must edit and
fix this LOV once you complete the layout process.
c. Display Type - Select a display type (if applicable). Note that the select list is
restricted to options corresponding to the type of item you are creating. See
"About Item Types" on page 6-35. See "About Item Types" on page 6-35.
4. Click Next.
5. Optionally, edit the each item’s Name and Label.
6. Click Apply Changes.
Note: To change the region in which an item resides, you must edit
the item attributes. See "Editing Page Item Attributes" on page 6-42.
Deleting Items
To delete an item, click it and drag it to the Recycle box at the bottom of the page. If
you delete an existing item, it appears in the Recycle box and can be retrieved until
you click Apply Changes on the next page. Note that if you drop a new item you have
just created in the Recycle box, it instantly disappears and cannot be retrieved.
You can set the value of an item in your application using any of the following
methods:
■ For page-level items, use the Source Attribute to set the item value.
From the Page Definition, select the item name to view the Edit Page Item page.
Scroll down to Source and edit the appropriate fields.
You can also set the value of an item in any region based on PL/SQL or a process
using the following syntax:
BEGIN
:MY_ITEM := 'new value';
END;
■ Pass the value on a URL reference using f?p syntax. For example:
f?p=100:101:10636547268728380919::NO::MY_ITEM:ABC
■ Set the value using a computation. Computations are designed to set item values.
For example:
TO_CHAR(SYSDATE,'Day DD Month, YYYY');
■ Use the PL/SQL API to set an item value within a PL/SQL context. For example:
APEX_UTIL.SET_SESSION_STATE('MY_ITEM',SYSDATE);
Second, you return only those employees within the selected departments as follows:
SELECT ename, job, sal, comm, dname
FROM emp e, dept d
WHERE d.deptno = e.deptno
AND instr(':'||:P1_DEPTNO||':',':'||e.deptno||':') > 0
Next, assume you want to programmatically step through the values selected in the
multiple select item, P1_DEPTNO. To accomplish this, you would convert the
colon-delimited string into a PL/SQL array using the APEX_UTIL.STRING_TO_
TABLE function. The following example demonstrates how to insert the selected
departments into an audit table containing the date of the query.
DECLARE
l_selected APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
--
-- Convert the colon separated string of values into
-- a PL/SQL array
l_selected := APEX_UTIL.STRING_TO_TABLE(:P1_DEPTNO);
--
-- Loop over array to insert department numbers and sysdate
--
FOR i IN 1..l_selected.count
LOOP
INSERT INTO report_audit_table (report_date, selected_department)
VALUES (sysdate, l_selected(i));
END LOOP;
END;
This section describes how to use Application Builder to add pages to an application
and add other components (reports, charts, or forms), page controls (buttons, items,
list of values), and shared components (breadcrumbs, lists, or tabs).
This section contains the following topics:
■ Creating Reports
■ Creating Forms
■ Creating Calendars
■ Creating Charts
■ Creating Buttons
■ Creating Lists of Values
■ Creating Dependent Select Lists
■ Using Shortcuts
■ Using the Find Icon
■ Controlling Access to Applications, Pages, and Page Components
■ Incorporating JavaScript into an Application
■ Optimizing a Page for Printing
■ Creating a Help Page
Creating Reports
In Oracle Application Express, a report is the formatted result of a SQL query. You can
generate reports by selecting and running a built-in query, or by defining a report
region based on a SQL query.
Topics in this section include:
■ Creating a Report Using a Wizard
■ Using Interactive Reports
■ Editing Interactive Reports
■ Editing SQL and Wizard Reports
■ Printing Report Regions
Notice that the interactive report includes a Search Bar, Column Heading Menu links,
and Link Column icons in the first column of each row. For a complete description of
these components, see "Using Interactive Reports" on page 7-4.
In contrast, a classic report does not include any of these customization features. The
following is an example of a classic report built on top of the same data.
Classic reports do not include a Search Bar and the links at the top of each column
only support basic sorting.
A search bar displays at the top of every interactive report and includes the following
features:
■ Search columns icon - Resembles a magnifying glass. Click this icon to narrow
your search to only specific columns. To search all columns, select All Columns.
■ Text area - Enter case insensitive search criteria (wild card characters are implied)
and then click Go.
■ Rows - Selects the number of rows to display per page.
■ Go button - Executes a search.
■ Actions menu - Displays the Actions menu. See "About the Actions Menu" on
page 7-6.
Searching Specific Columns Clicking the Search columns icon (resembles a magnifying
glass) displays a listing of all columns in the current report.
To use the Search columns icon:
1. Click the Search columns icon and select a column.
The column name displays to the right of the Search columns icon.
2. Enter keywords in the Text area and click Go.
Notice the filter Person Role contains 'manager' has been added to the
Report Settings area above the report.
3. To disable the filter, select the Enable/Disable Filter check box.
4. To delete the filter, click the Remove Filter icon.
To learn more about customizing this interactive report attribute, see "Understanding
Link Columns" on page 7-22 and "Creating a Column Link in an Interactive Report" on
page 7-23.
■ Chart displays the report data as a chart. See "Creating a Chart" on page 7-13.
■ Flashback performs a flashback query enabling users to view the data as it existed
at a previous point in time. See "Executing a Flashback Query" on page 7-13.
■ Save Report saves the current customized report settings so they can be used in
the future. See "Saving a Report" on page 7-14.
■ Reset enables users to reset the report back to the default report settings. See
"Resetting a Report" on page 7-14.
■ Help provides detailed descriptions of how to use the interactive report
components to customize your reports.
■ Download enables users to download a report. Available download formats
depend upon your installation and report definition. See "Downloading a Report"
on page 7-14.
2. Select the columns you wish to move. Click the arrows in the center of region to
move a column from the Display in Report box to the Do Not Display in Report
box. To select multiple columns at once, press and hold the CTRL key.
3. To change the order of the columns, click the Top, Up, Down, and Bottom arrows
on the right.
4. Click Apply.
A revised report appears.
Adding a Filter
You can create a filter to focus a report by selecting Filter on the Actions menu. This
option enables you to add or modify the WHERE clause in the query.
To add a filter:
1. Click the Actions menu and select Filter.
In the previous example, the filter will display all people who have the Person
Role of Lead.
3. Click Apply.
Notice the filter Person Role contains 'Lead' has been added to the Report
Settings area above the report.
4. To revise the filter:
a. Click the filter name (in this example, Person Role contains 'Lead').
b. Edit your selections and click Apply.
5. To disable the filter, select the Enable/Disable Filter check box.
6. To delete the filter, click Remove Filter.
2. Select a column, the sort direction (Ascending or Descending), and Null Sorting
behavior (Default, Nulls Always Last, or Nulls Always First).
3. Click Apply.
Adding Highlighting
You can customize the display to highlight specific rows in a report by selecting
Highlight on the Actions menu.
To create highlighting:
1. Click the Actions menu and select Highlight.
Notice a new filter appears in the Report Settings area above the report.
4. To revise the filter:
a. Click the filter name (in this example, Project Lead).
b. Edit your selections and click Apply.
5. To disable the filter, select the Enable/Disable Filter check box.
Computing Columns
You can add computations to columns by selecting Compute from the Actions menu.
To create a computation:
1. Click the Actions menu and select Compute.
The Compute region appears.
Aggregating a Column
You can define a mathematical computation against a column (or aggregate) by
selecting Aggregate from the Actions menu. Aggregates are displayed after each
control break and at the end of the report within the column in which they are defined.
To aggregate columns:
1. Click the Actions menu and select Aggregate.
The Aggregate region appears.
In this example, the aggregate shows the sum of all amounts in the Order Total
column.
6. To remove the aggregate:
a. Select Aggregate from the Actions menu.
The Aggregate region appears.
Creating a Chart
To create a chart, select Chart on the Actions menu. You can create one chart for each
interactive report. Once defined, you can switch between the chart and report views
using links on the Search bar.
To create a chart:
1. Click the Actions menu and select Chart.
The Chart region appears.
Saving a Report
You can save a customized report by selecting Save Report from the Actions menu.
You can choose to save a Named Report or Default Report Settings.
Saving Default Report Settings Default report settings determine the way a report initially
displays to end users. End users can then modify any of the settings.
To save default report settings:
1. Click the Actions menu and select Save Report.
2. From Save, select As Default Report Settings.
3. Click Apply.
Resetting a Report
You can reset a report back to the default settings by selecting Reset from the Actions
menu. Resetting a report removes any customizations you have made.
To reset a report:
1. Click the Actions menu and select Reset.
2. Click Apply.
Downloading a Report
You can download an interactive report back by selecting Download from the Actions
menu. Available download formats depend upon your installation and report
definition but may include comma-delimited file (CSV) format, Microsoft Excel (XLS)
format, Adobe Portable Document Format (PDF), and Microsoft Word Rich Text
Format (RTF).
To download a report:
About Navigation Alternatives The Report Attribute page is divided into these sections:
Column Attributes, Groups, Default Report, Pagination, Sorting, Search Bar,
Download, Link Column, Advanced, and Description.
You can access these sections by scrolling down the page, or by clicking a navigation
button at the top of the page.
When you select a button at the top of the page, the selected section appears and all
other sections are temporarily hidden. To view all sections of the page, click Show All.
Use the Column Attributes section to control report column appearance and
functionality.
Heading displays the heading text to be included in the report. Type indicates the
type of query column. The Link column indicates if a link column is currently
defined.
Table 7–1 describes common report column edits.
Table 7–1 (Cont.) Common Report Column Edits for Interactive Reports
Description Developer Action
Change column group assignment. If Column Groups are defined, individual columns can
be assigned under Column Group.
Change column heading text. Under Heading, enter different heading text.
Change how columns display. Select an option from Display Text As.
You can further refine the attributes of a specific column on the Column Attributes
page.
5. To access the Column Attributes page, click the Edit icon next to the appropriate
column Alias.
You can control whether users can sort, filter, control breaks, aggregate, and create
computations or chart, by selecting the appropriate check boxes under Allow
Users To.
6. Under Column Definition, Allow Users To, select the appropriate check boxes.
To learn more about a specific attribute, click the item label.
1. Navigate to the Interactive Report Attributes page. See "Accessing the Interactive
Report Attributes Page" on page 7-15.
The Interactive Report Attributes page appears.
2. Scroll down to Pagination.
You use the Pagination attributes to select a pagination style, determine where
pagination occurs, specify the maximum number of rows to query, and messages
to display when more than the maximum number of rows are returned or if no
rows are returned. Table 7–2 describes the available Pagination attributes.
To add a download link to a report you must enable the CSV output option.
Tip: The Download option will not display in the Actions menu if no
file formats are selected.
5. In the CSV Separator, define the column separator. If no value is entered, a comma
or semicolon is used depending on your current NLS settings.
6. In the CSV Enclosed By, enter delimiter character. This character is used to
delineate the starting and ending boundary of a data value. Default delimiter is
double quotation marks (" ").
7. In Filename, enter a name for the downloaded document. Do not specify a file
extension, the extension is added automatically. If you leave this blank, the region
name is used as the file name.
2. Access the Column Attributes page by clicking the Edit icon next to the
appropriate column.
The Column Attributes page appears.
3. Scroll down to List of Values.
4. From Column Filter List of Values, specify how to create a list of values as a filter
on the report column list. Available options include:
■ None - Disable filter on list of values.
■ Default Based on Column Type - STRING and NUMBER columns derive list of
values from distinct column values. DATE columns derive list of values from
predefined date ranges.
■ Use Defined List of Values - Derive list of values from defined list of values
SQL Query.
■ List of values definition - If you select Use Defined List of Values, enter a
SQL query that selects the distinct column values. Entering a SQL query can
improve performance in some reports. This list of values will be displayed
when a user clicks on a column header.
5. Click Apply Changes.
The previous example is equivalent to the end user creating a filter on the target page:
ENAME = KING. Note that when an operator is not provided, EQ is used because it is
the default.
f?p=...:IRGT_SAL:3000
The previous example is equivalent to the end user creating a filter on the target page:
SAL > 3000.
■ Sorting attributes enable you to define images and image attributes for images
that display in report headings to sort values. See "Enabling Column Sorting
in a Classic Report" on page 7-33.
■ Messages contain attributes that enable you to define messages that display if
no data is found or more data is found than can be displayed.
■ Report Export attributes enable you to add download link to a report or
export a report as either an XML file or CSV file. See "Adding a Download
Link to a Classic Report" on page 7-33 and "Exporting a Classic Report as an
XML File or a CSV File" on page 7-34.
■ Break Formatting attributes enable you to control if a specific column repeats
and how column breaks appear when printed. See "Controlling Column
Breaks in a Classic Report" on page 7-37.
5. To learn more about a specific attribute, click the item label.
When Help is available, the item label changes to red when you pass your cursor
over it and the cursor changes to an arrow and question mark. See "About
Field-Level Help" on page 1-15.
6. Click Apply Changes.
About Navigation Alternatives The Report Attribute page is divided into these sections:
Column Attributes, Layout and Pagination, Sorting, Messages, Report Export, Break
Formatting, and External Processing.
You can access these sections by scrolling down the page, or by clicking a navigation
button at the top of the page.
When you select a button at the top of the page, the selected section appears and all
other sections are temporarily hidden. To view all sections of the page, click Show All.
Use the Column Attributes section to control report column appearance and
functionality.
Heading Type identifies how the heading is generated for the report. The Link
column indicates if a column link is currently defined. The Edit column indicates
whether a column is currently updatable.
Table 7–4 describes common report column edits.
You can further refine the attributes of a specific column on the Column Attributes
page.
5. To access the Column Attributes page, click the Edit icon next to the appropriate
column Alias.
Accessing and Understanding Layout and Pagination Attributes To access the Layout and
Pagination section of the Report Attributes page:
1. Create a report. See "Creating a Report Using a Wizard" on page 7-2.
2. Navigate to the appropriate Page Definition. See "Accessing a Page Definition" on
page 5-2.
3. Under Regions, click the appropriate Report attributes link.
The Report Attributes page appears.
4. Scroll down to Layout and Pagination.
You use the Layout and Pagination attributes to select a pagination style,
determine where pagination occurs, and specify the number of rows that display
on each page. Table 7–5 describes the most commonly used Layout and Pagination
attributes.
To learn more about a specific attribute, click the item label. When Help is
available, the item label changes to red when you pass your cursor over it and the
cursor changes to an arrow and question mark. See "About Field-Level Help" on
page 1-15.
Including Pagination After the Rows in a Classic Report To include pagination after the rows
in a report:
1. Create a report. See "Creating a Report Using a Wizard" on page 7-2.
Next, select the appropriate Layout and Pagination attributes.
2. Navigate to the Report Attributes page:
a. Navigate to the Page Definition. See "Accessing a Page Definition" on page 5-2.
b. Under Regions, click the appropriate Report attributes link.
The Report Attributes page appears.
3. Under Layout and Pagination, select the following:
a. Report Template - Select a report template (optional).
b. Pagination Scheme - Select a pagination scheme.
c. Display Position - Select a display position.
d. Number of Rows - Specify how many rows display on each page.
e. Click Apply Changes.
4. Edit the report template:
a. Navigate to the Page Definition. See "Accessing a Page Definition" on page 5-2.
b. Under Templates, select the report template name.
c. Include the #PAGINATION# substitution string in the After Rows attribute.
d. Click Apply Changes.
5. Run the page.
Including Pagination Before the Rows in a Classic Report To include pagination before the
rows in a report:
1. Create a report. See "Creating a Report Using a Wizard" on page 7-2.
Next, select the appropriate Layout and Pagination attributes.
2. Navigate to the Report Attributes page:
a. Navigate to the Page Definition. See "Accessing a Page Definition" on page 5-2.
b. Under Regions, click the appropriate Report attributes link.
The Report Attributes page appears.
3. Under Layout and Pagination:
a. Report Template - Select a report template (optional).
b. Pagination Scheme - Select a pagination scheme.
c. Display Position - Select a position that contains the word top.
d. Number of Rows - Specify how many rows display on each page.
e. Click Apply Changes.
4. Edit the report template.
a. Navigate to the Page Definition. See "Accessing a Page Definition" on page 5-2.
b. Under Templates, select the report template name.
c. Include the #TOP_PAGINATION# substitution string in the Before Rows
attribute.
d. Click Apply Changes.
5. Run the page.
Tip: Note that column sorting must be enabled if you want columns
with null values to display at the top or end of the report. To learn
more about the Sort Nulls attribute, see "Accessing and
Understanding Layout and Pagination Attributes" on page 7-30.
Otherwise, Default and Default Type appear. Use Default and Default Type to
establish a relationship between two master records in a master detail form, or
to set the default values for new rows.
i. Reference Table Owner - Identify the owner of the referenced table. Use this
attribute to build User Interface Defaults for reports.
j. Reference Table Name - Identify the table or view that contains the current
report column.
k. Reference Column Name - Identify the column name that this report column
references.
5. Click Apply Changes.
only supports PDF and XML. If you choose to use other third-party rendering engines,
other output formats can also be configured.
By taking advantage of region report printing, your application users can view and
print reports that have a predefined orientation, page size, column headings, and page
header and footer. Interactive reports also have the ability to export to PDF, RTF,
Microsoft Excel and Comma Separated Values (CSV). Note that for interactive reports,
it is not possible to define a custom report layout.
Topics in this section include:
■ About Printing Reports to PDF
■ About Report Printing Configuration Options
■ About Classic Report Printing Methods
■ About Report Queries
■ About Report Layouts
■ Configuring Classic Report Region Print Attributes
■ Configuring Interactive Report Region Print Attributes
branch, or other navigational component that enables you to use URLs as targets.
Selecting that item then initiates the printing process.
Topics in this section include:
■ Creating a Report Query
■ Editing Report Queries
■ Copying Report Queries
Creating a Report Query Note that the availability of the report query options depends
on how your service administrator configures report printing for your instance. All
options described in these steps may not be available to you.
To reference applications and page items in the SQL statement, reference them as
bind variables. Click Set Bind Variables to be able to enter in values for each bind
variable and test the query to ensure the expected output is returned.
6. For Download Definition, specify the following:
a. Data Source for Report Layout - Use this option to download a report
definition export file. Select XML Data or XML Schema and then click
Download.
XML Schema creates XSD file (that is, a XML schema definition of your XML
structure.)
b. Add Query - Click this button to add another query to the report query.
Adding another query enables the production of complex reports with more
than one output component (for example, a chart and a report based on two
different queries).
c. Create Report Query - Click this button to exit the wizard early. The Report
Layout Source will default to use the generic report layout.
d. Click Next.
7. For Upload Report Layout, specify the following:
a. Report Layout Source - Specify how the report layout is derived. If you choose
the report based file layout then the layout name and report layout file must
be provided.
b. Layout Name - Enter a layout name (optional). The default is the report query
name.
c. Report Layout File - Click Browse and select a Rich Text Format (RTF).
d. Click Next.
8. For Confirm:
a. Query Name - Identifies the query.
b. Report Layout - Identifies the report layout you selected.
c. Output Format - Identifies the format for this report query.
d. Derive from Item - Identifies the item to hold the format information.
e. URL - To integrate this report with your application, use the displayed URL as
the target for a button, list item, link, or other navigational component. End
users can click a button, for example, to start the printing process.
f. Test Report - Click this to preview your report. If you have chosen to use a
generic report layout then the Test Report will not produce an output.
g. Click Finish.
The Report Query is created and saved to Shared Components.
change the default display by making a selection from View list. Available options
include:
■ Icons (the default) displays each query as a large icon. To edit a query, click
the appropriate icon.
■ Details displays each query as a line in a report. To edit a query, click the
name.
4. Select the appropriate report query. On the Edit Report Query page, edit the
information.
5. Click Apply Changes.
About Report Layout Options You can create a report layout based on one of these
options:
■ Generic Columns - A generic report layout works with most query result sets.
With this layout, the number of columns is automatically adjusted when
generating the printable document.
Editing Report Layouts You can edit a generic column report layout directly in
Application Express. However, to edit a named column report layout, you must
download the current file, edit it, and then upload it again.
To edit a report layout:
1. Navigate to the Shared Components page. See "Accessing the Shared Components
Page" on page 5-29.
2. Under Reports, click Report Layouts.
3. On the Report Layouts page, select the layout you want to edit.
4. For generic column layouts, edit the layout directly on the Edit Report Layout
page and then click Apply Changes.
5. For named column layouts, click Download and save the file to your computer.
Edit the file and then upload the updated version as a new report layout.
Copying Report Layouts You can copy a report layout to edit and save.
To copy a report layout:
1. Navigate to the Shared Components page. See "Accessing the Shared Components
Page" on page 5-29.
2. Under Reports, click Report Layouts.
3. On the Report Layouts page, click Copy.
4. On the Copy Report Layout page, select the layout you want to copy, enter a name
for the copy, and click Copy.
The copy appears in the layout list.
Creating Forms
You can include a variety of different types of forms in your applications. You can
include forms that enable users to update just a single row in a table or multiple rows
at once. Application Builder includes a number of wizards you can use to create forms
automatically, or you can create forms manually.
Topics in this section include:
■ Creating a Form Using a Wizard
■ Creating a Tabular Form
6. Follow the on-screen instructions. To learn more about a specific field, click the
item label.
When Help is available, the item label changes to red when you pass your cursor
over it and the cursor changes to an arrow and question mark. See "About
Field-Level Help" on page 1-15.
■ Existing trigger - Select this option if a trigger is defined for the table. You can
also select this option if you plan on specifying the primary key column source
later after completing the form.
■ Custom PL/SQL function - Select this option if you want to provide a PL/SQL
function to generate returning key value.
■ Existing sequence - Select this option if you want to pick the sequence from a
list of sequences available in the selected schema.
11. On Updatable Columns, select which columns should be updatable and click
Next.
12. On Page and Region Attributes:
14. On Button Labels, enter the display text to appear for each button and click Next.
15. On Branching, specify the pages to branch to after the user clicks the Submit and
Cancel buttons and click Next.
16. Click Finish.
6. On Master Table:
a. Select the table or view owner.
b. Select a table or view name.
The columns in that object appear under Available Columns.
c. Select the columns to display in the form and then click the arrow keys to
move them to Displayed Columns.
d. Click Next.
7. On Detail Table:
a. Specify whether to show only related tables by selecting Yes or No.
b. Select the table or view owner.
c. Select a table or view name.
The columns in that object appear under Available Columns.
d. Select the columns to display in the form and then click the arrow keys to
move them to Displayed Columns.
e. Click Next.
8. On Primary Key:
a. Primary Key(s) of Master Table - Select the primary key (or keys) of the master
table. You can select maximum of two primary keys for master table.
b. Primary Key(s) of Detail Table - Select the primary key (or keys) of the detail
table. You can select maximum of two primary keys for detail table.
c. Click Next.
9. On Master Detail Link, define the relationship between the master and detail
tables and click Next.
10. On Primary Key Source, select the primary key column for the master table and
click Next. Then select the primary key column for the detail table and click Next.
Options include:
■ Existing trigger - Select this option if a trigger is defined to populate the
primary key, or if the user will be expected to enter the primary key value
manually. Detail tables do not support user entered primary key values.
■ Custom PL/SQL function - Select this option if you want to provide a PL/SQL
function to populate the primary key.
■ Existing sequence - Select this option if an existing sequence will be used to
generate the primary key.
11. On Master Options, specify whether to include master row navigation and click
Next.
If you include master row navigation, define navigation order columns. If a
navigation order column is not defined, the master update form navigates by the
primary key column.
12. On Layout, specify how to build the master detail and click Next. Options include:
■ Edit detail as tabular form on same page creates a two page master detail.
Edit detail on separate page creates a three page master detail.
■ Edit detail on separate page creates a three page master detail.
13. On Page Attributes, review and edit the master page and detail page information
and then click Next.
14. On Tab, specify whether to include a tab set and click Next.
Processing a Form
Once you create a form, the next step is to process the data a user types by inserting
into or updating the underlying database tables or views. There are three ways to
process a form:
■ Creating an Automatic Row (DML) Processing Process
■ Creating a Process that Contains One or More Insert Statements
■ Using a PL/SQL API to Process Form Values
To process the updating of a row, you create another conditional process of type
PL/SQL. For example:
BEGIN
UPDATE T
SET first_name = :P1_FIRST_NAME,
last_name = :P1_LAST_NAME
WHERE ID = :P1_ID;
END;
To process the deletion of a row, you create a conditional process that executes when
the user clicks the Delete button. For example:
BEGIN
DELETE FROM T
WHERE ID = :P1_ID;
END;
Populating Forms
Oracle Application Express populates a form either on load or when the Application
Express engine renders the page. You can populate a form in the following ways:
■ Create a process and define the type as Automated Row Fetch.
■ Populate the form manually by referencing a hidden session state item.
To create an Automated Row Fetch process:
1. Navigate to the appropriate Page Definition. See "Accessing a Page Definition" on
page 5-2.
2. Under Processes, click Create.
3. Select the process type Data Manipulation.
4. Select the process category Automatic Row Fetch.
5. Specify the following process attributes:
a. In the Name field, enter a name to identify the process.
b. In the Sequence field, specify a sequence number.
c. From the Point list, select the appropriate processing point.
d. From the Type list, select Automated Row Fetch.
6. Follow the on-screen instructions.
You can also populate a form manually by referencing a hidden session state item. For
example, the following code in an Oracle Application Express process of type PL/SQL
would set the values of ename and sal. The example also demonstrates how to
manually populate a form by referencing a hidden session state item named P2_ID.
FOR C1 in (SELECT ename, sal
FROM emp WHERE ID=:P2_ID)
LOOP
:P2_ENAME := C1.ename;
:P2_SAL := C1.sal;
END LOOP;
In this example:
■ C1 is an implicit cursor.
■ The value of P2_ID has been set.
■ The process point for this process would be set to execute (or fire) on or before
Onload - Before Regions.
Creating a Validation
To create a validation:
1. Navigate to the appropriate Page Definition. See "Accessing a Page Definition" on
page 5-2.
2. Under Validations, click the Create icon.
3. When the Create Validations Wizard appears, follow the on-screen instructions.
Validation Types are divided into two categories:
■ Item. These validations start with the term Item and provide common checks
you may want to perform on the item with which the validation is associated.
■ Code. These validations require that you provide either a piece of PL/SQL
code or SQL query that defines the validation logic. Use this type of validation
to perform custom validations that require verifying values of more than one
item or accessing additional database tables.
4. Follow the on-screen instructions.
To create a hard error that stops processes, including any remaining validations, you
must display the error on an error page.
Creating Calendars
Application Builder includes a built-in wizard for generating a calendar with monthly,
weekly, and daily views. Once you specify the table on which the calendar is based,
you can create drill-down links to information stored in specific columns. Note that
Oracle Application Express supports the creation of only one calendar per page.
Topics in this section include:
■ About Creating Calendars
■ Creating a New Calendar
■ Editing a Calendar Title
■ Editing Calendar Attributes
■ Converting an Easy Calendar to a SQL Calendar
■ Upgrading a Calendar Created in a Previous Releases
See Also: "About the Calendar Attributes Page" on page 7-57 and
"About Field-Level Help" on page 1-15
About Navigation Alternatives The Calendar Attribute page is divided into sections.
You can access these sections by scrolling down the page, or by clicking a navigation
button at the top of the page. When you select a button at the top of the page, the
selected section appears and all other sections are temporarily hidden. To view all
sections of the page, click Show All.
Calendar Display Use Calendar Display to specify a calendar template, date columns,
and general calendar formatting.
Calendar Template determines what template is used when the Application Express
engine renders a calendar. Date Column defines the column from the table or query
containing the dates to be placed on the calendar. Date Item defines the item which
holds the date on which the calendar is based. Calendar Type Column specifies the
item which holds the calendar type. Display Type defines the display type. Options
Display Attributes Use Display Attributes to define the dates that are included in the
calendar.
Begin at Start of Interval determines when the calendar should start. Selecting this
option creates a calendar that spans an entire interval (such as a month). For example:
■ If Begin at Start of Interval is selected, the date is June 15th, and the display is
monthly, the resulting calendar spans from June 1st to June 30th.
■ If Begin at Start of Interval is not selected, the date is June 15th, and the display is
monthly, the resulting calendar spans from June 15th to June 30th.
The next two attributes define which items hold the calendar start date and end date.
You can use these attributes to create calendars that span multiple months at a time.
Note that the format of the date of either item must be YYYYMMDD:
■ Item Containing Start Date points to an item that holds the start date of the
calendar.
■ Item Containing End Date points to an item that holds the end date of the
calendar.
Start of Week for Monthly Calendar determines the day on which the calendar starts
for the monthly view.
Start Day for Weekly Calendar determines the day on which the calendar starts for
the weekly view.
End Day for Weekly Calendar determines the day on which the calendar ends for the
weekly view.
Time Format determines if the time displays in a 12-hour or 24-hour format.
Start Time and End Time determine the start and end times to display in the weekly
and daily calendar views.
Column Link Use Column link to create a link on the column in the calendar.
Day Link Use Day link to create a link on a day in the calendar. This attribute creates a
link on an actual number (or day) on the calendar.
To create a day link to another page:
1. Navigate to the appropriate Calendar Attributes page.
2. Scroll down to Day Link.
3. From Target is a, select Page in this Application.
4. In Page, specify the target page number.
To reset the pagination for this page, select reset pagination for this page.
5. In Request, specify the request to be used.
6. In Clear Cache, specify the pages (that is, the page numbers) on which to clear
cache. Specify multiple pages by listing the page numbers in a comma-delimited
list.
You can set session state (that is, give a listed item a value) using the next two
attributes: Set these items and With these values.
7. To set session state:
a. Set these items - Enter a comma-delimited list of item names for which you
would like to set session state.
b. With these values - Enter a comma-delimited list of values for the items
specified in the previous step.
You can specify static values or substitution syntax (for example, &APP_ITEM_
NAME.). Note that item values passed to f?p= in the URL cannot contain a
colon (:). Additionally, item values cannot contain commas unless you enclose
the entire value in backslashes (for example, \1234,56\).
8. Click Apply Changes.
To create a day link to a URL:
1. Navigate to the appropriate Calendar Attributes page.
2. Scroll down to Day Link.
3. From Target is a, select URL.
4. In URL, enter the appropriate address.
5. Click Apply Changes.
Creating Charts
Application Builder includes built-in wizards for generating HTML, Scalable Vector
Graphics (SVG), and Flash charts. Oracle Application Express supports only those
three types of graphical charts.
Topics in this section include:
■ About Supported Chart Types
■ About Creating SQL Queries for Charts
■ Creating an HTML Chart
■ Creating a SVG Chart
■ Creating a Flash Chart
■ Editing Chart Attributes
■ Enabling Asynchronous Updates
■ Displaying SVG Charts in Other Languages
■ Most Web browsers that support SVG charts require that users download an SVG
plug-in.
The Adobe SVG plug-in can handle data encoded in UTF-8, UTF-16, ISO-8859-1, and
US-ASCII. Encoding of an SVG chart is determined by the database access descriptor
(DAD) database character set. If the DAD character set is not UTF8, AL32UTF8,
AL16UTF16, WE8ISO8859P1, or US7ASCII, SVG charts may not render properly in the
Adobe SVG plug-in.
Where:
■ link is a URL.
■ label is the text that displays in the bar.
■ value is the numeric column that defines the bar size.
For example:
SELECT null, last_name, salary
FROM employees
WHERE DEPARTMENT_ID = :P101_DEPARTMENT_ID
Note: Do not change the type of an existing chart. Instead, delete the
existing chart and then re-create it.
Where:
■ value is the starting point on the dial.
■ maximum_value is the possible highest point on the dial.
■ low_value and high_value are the historical low and high values.
For example:
SELECT dbms_random.value(500, 1200), 1300, dbms_random.value(100, 200)
FROM DUAL
– Entering a SQL query in the field provided. See "About Creating SQL
Queries for Charts" on page 7-62.
– Clicking the Build Query button. When the Build Chart Query Wizard
appears, follow the on-screen instructions.
b. Specify relevant chart attributes. To learn more, click the item label.
c. Click Next.
9. Click Finish.
See Also: "About SVG Plug-in Support" on page 7-61 and "About
Migrating SVG Charts to Flash" on page 7-73
To learn more, click the item label. When Help is available, the item label
changes to red when you pass your cursor over it and the cursor changes to an
arrow and question mark. See "About Field-Level Help" on page 1-15.
b. Click Next.
7. For Source:
a. Specify a query by either:
– Entering a SQL query in the field provided. See "About Creating SQL
Queries for Charts" on page 7-62.
– Clicking the Build Query button. When the Build Chart Query Wizard
appears, follow the on-screen instructions.
b. Specify relevant chart attributes. To learn more, click the item label.
8. Click Create Region.
b. Specify the remaining attributes. To learn more, click the item label.
c. Click Next.
10. Click Finish.
Table 7–8 describes all supported CSS classes. Note that certain classes only apply to
specific chart types.
b. Specify that the CSS should be used exclusively. In Custom CSS, Inline enter
the following:
/**/
b. In Custom CSS, Inline, enter the custom CSS styles you want to override.
Tip: Note that in order to view Flash charts, you must install Flash
Player 8 or later. Flash charts used in interactive reports require Flash
Player 9 or later.
See Also: "About Flash Charts" on page 7-61 and "About Migrating
SVG Charts to Flash" on page 7-73
– Sequence
– Column
To learn more, click the item label. When Help is available, the item label
changes to red when you pass your cursor over it and the cursor changes to an
arrow and question mark. See "About Field-Level Help" on page 1-15.
b. Click Next.
6. On Chart Preview, configure the chart attributes. Click Update to refresh the
preview image.
7. Click Next.
8. For Source:
a. Specify a query by either:
– Entering a SQL query in the field provided. See "About Creating SQL
Queries for Charts" on page 7-62.
– Clicking the Build Query button. When the Build Chart Query Wizard
appears, follow the on-screen instructions.
b. Specify relevant chart attributes. To learn more, click the item label.
9. Click Create Region.
About SVG Chart Migration Restrictions Note that SVG charts are migrated with the
following restrictions:
■ Only number formats defined in axis format strings will be migrated. Date and
time formats will be ignored.
■ Number format elements containing the following will be migrated:
0,9,D,G,, (comma),. (period),$,C,L,FM
■ The label for each series in the Flash chart will be derived from each series' column
alias. This differs from SVG charts, where the label for each series was derived
from the Series Name attribute.
■ Flash Dial charts display actual values instead of percentages.
■ In SVG charts, only the labels for the first series are used for the x-axis. In Flash
charts, this has been enhanced so that all data appears, even if the data's label does
not occur in the first series.
Migrating all SVG Charts in a Application to Flash To migrate all SVG Charts to Flash charts:
1. Navigate to the Workspace home page.
2. Click the Application Builder icon.
3. Select an application.
The Application home page appears.
4. On the Tasks list, click Application Reports.
5. Click Page Components.
Tip: Removing the chart title of an SVG chart (that is, the Chart Title
attribute) may negatively impact the location and display of the chart
legend.
Note that when you select to use custom XML, regions with attributes that no
longer apply are hidden. To display these regions again, select No for Use Custom
XML.
4. Edit the XML.
5. Click Apply Changes.
Tip: For more information on supported XML format for charts, see
the Online XML Reference at:
http://www.anychart.com
4. In Custom CSS, Inline, edit the text and tspan classes to reflect the correct
language. The following example demonstrates how to change a chart to Korean:
text{font-family:Batang;fill:#000000;}
tspan{font-family:Batang;fill:#000000;}
Creating Buttons
As you design your application, you can use buttons to direct users to a specific page
or URL, or to post or process information (for example, by creating Create, Cancel,
Next, Previous, or Delete buttons).
Buttons can perform two different types of actions. A button can submit a page and
then redirect to a URL. Alternately, a button can branch to a URL without submitting
the page, such as for a Cancel button.
Topics in this section include:
■ About the Buttons Section of the Page Definition
■ Creating a Button Using a Wizard
■ Creating Multiple Buttons
■ Editing Buttons
■ Understanding the Relationship Between Button Names and REQUEST
■ About Branching with Buttons
■ Displaying Buttons Conditionally
You can temporarily hide all other subsections by clicking the Buttons icon. To restore
the view, click Show All. The Show All icon resembles an inverted triangle.
The following icons display next to the section title:
■ Edit All. The Edit All icon resembles a small grid with a pencil on top of it. Use
this icon to edit all buttons at once.
■ Copy. The Copy icon resembles two small overlapping pages. Use this icon to
make a copy of an existing button.
■ Create. The Create icon resembles a plus (+) sign overlapping a small page. Click
this icon to create a new button.
Buttons are organized by region. To edit a button, click the button name.
f. Click Next.
8. Follow the on-screen instructions. To learn more about a specific field, click the
item label.
When Help is available, the item label changes to red when you pass your cursor
over it and the cursor changes to an arrow and question mark. See "About
Field-Level Help" on page 1-15.
8. To quickly populate the remaining fields, make a selection from the Quick Button
list on the right side of the page.
9. Click Create Buttons.
Editing Buttons
When you want to edit a button, you start from the Buttons section on the Page
Definition. You can edit the attributes of a button, edit multiple buttons at once, or
change a button position within a region.
Topics in this section include:
Clicking the Edit all icon displays the Buttons page, which contains a table listing the
buttons in the region. Use this icon to edit multiple buttons at once.
From the Buttons page, you can delete multiple buttons or view a history of recent
changes.
To edit multiple buttons:
1. Navigate to the appropriate Page Definition. See "Accessing a Page Definition" on
page 5-2.
2. Under Buttons, click the Edit All icon.
The Buttons page appears.
3. Edit the attributes on the Buttons page, or click the Edit icon to edit the attributes
for a single button.
4. Click Apply Changes.
History Use the History page to view a summary of recent edits to buttons.
Note: To change the region where a button resides, you must edit the
button attributes. See "Editing Button Attributes" on page 7-79.
execute when the user clicks a button. And you can use a more complex condition as
demonstrated in the following examples:
If :REQUEST in ('EDIT','DELETE') then ...
If :REQUEST != 'DELETE' then ...
These examples assume the existence of buttons named EDIT and DELETE. You can
also use this syntax in PL/SQL Expression conditions. Be aware, however, that the
button name capitalization (case) is preserved. In other words, if you name a button
LOGIN, then a request looking for the name Login will fail. For example:
<input type="BUTTON" value="Finish" onClick="javascript:doSubmit('Finish');">
Note that in this example Finish is the name of the REQUEST and this example is
case-sensitive.
■ All LOV definitions are stored in one location, making them easy to locate and
update.
Topics in this section include:
■ Creating a Named LOV at the Application Level
■ About Static LOVs
■ Editing an Existing LOV
■ Referencing Session State Within an LOV
■ Referencing a Null Value in an Item Based on an LOV
■ Accessing LOV Reports
Use the Navigation bar at the top of the page to search for a LOV by name or change
the page display. For example, you can change the default display by making a
selection from View list. Available options include:
■ Icons (the default) displays each LOV as a large icon. To edit an LOV, click the
appropriate icon.
■ Details displays each LOV as a line in a report. To edit an LOV, click the name.
You can access these sections by scrolling down the page, or by clicking a navigation
button at the top of the page. When you select a button at the top of the page, the
selected section appears and all other sections are temporarily hidden. To view all
sections of the page, click Show All.
'%'||'null%'
Search
Click Search to display the Search Dynamic Lists of Values page. Use this page to
search the queries that make up dynamic LOVs. Enter a query in the Query Contains
field and click Go.
Subscription
Click Subscription to display the List of Values Subscription page. This page displays
all subscribed LOVs in your application.
Utilization
Click Utilization to display the List of Values Utilization page. This page displays
LOVs used in the current application. To edit an LOV, click the LOV name.
History
Click History to display the List of Values History page. This page displays a history
of recently changed LOVs by date.
The second LOV selects the county name and county ID based on the state selected in
the first LOV:
SELECT county_name d, county_id v
FROM counties
WHERE state_id = :P1_STATE_ID
Using Shortcuts
By using shortcuts you can avoid repetitive coding of HTML or PL/SQL functions.
You can use a shortcut to define a page control such as a button, HTML text, a PL/SQL
procedure, or HTML. Once defined, you can invoke a shortcut using specific syntax
unique to the location in which the shortcut is used. Shortcuts can be referenced many
times, thus reducing code redundancy.
This section contains the following topics:
■ About Shortcut Types
■ Defining Shortcuts
■ Editing Existing Shortcuts
■ Accessing Shortcut Reports
Message
Use this type of shortcut to reference a translatable message at run time. Note that
since this shortcut does not have a shortcut body, the name of the shortcut must match
the corresponding message name. At run time, the name of the shortcut expands to the
text of the translatable message for the current language.
Defining Shortcuts
Before you can incorporate a shortcut in your application, you must define it and add
it to the Shortcuts repository. You reference shortcuts using the following syntax:
"MY_SHORTCUT"
Note that the shortcut name must be capitalized and enclosed in quotation marks.
To define a shortcut:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. When Application Builder appears, click Shared Components.
4. Under User Interface, select Shortcuts.
5. Click Create.
6. Select one of the following creation methods:
■ From Scratch
■ As a Copy of an Existing Shortcut
7. Follow the on-screen instructions.
New shortcuts are added to the Shortcut repository and are available for use within
the following locations:
■ The Region Source attribute of regions defined as HTML Text (with shortcuts). See
"Understanding Regions" on page 9-2.
■ Region Header and Footer Text attribute. See "Specifying a Region Header and
Footer" on page 9-5.
■ Item Label attributes and Default Value attribute. See "Items" on page 5-10.
■ Region Templates attributes. See "Customizing Templates" on page 10-12.
■ Details displays each shortcut as a line in a report. To edit a shortcut, click the
name.
Note: The Subscription and History tabs only appear after you create
a shortcut.
Subscribed Shortcuts
Click Subscription to display the Subscribed Shortcuts page. This page displays all
subscribed shortcuts in your application.
Shortcut History
Click History to display the Shortcut History page. This page displays a history of
recently changed shortcuts by date.
A search bar displays at the top of the page and contains the following controls:
■ Search. Search for an item name. Enter case insensitive keywords in the Search
field and click Go. To view all items, leave the Search field blank and click Go.
■ Page. Search for pages that contain items. Enter a page number in the Page
field or select a page number from the list and click Go. To view all pages
containing items, leave the Page field blank and click Go.
■ Display. Determine how many rows display in the resulting report. To change
the number of rows that display, make a selection from the Display list and
click Go.
A Item Finder report appears, displaying the item name, label, item type, and
associated page number.
2. To restrict the report to display just items on a specific page, click the appropriate
page number in the far right column.
Note the page number you select appears in the Page field at the top of the page.
To expand the view to all pages, delete the page number in the Page field and click
Go.
3. To edit a specific item, navigate to the appropriate item. See "Understanding
Page-Level Items" on page 6-32 and "Using the Edit All Icon to Edit Multiple
Items" on page 6-42.
■ Display. Determine how many rows display in the resulting report. To change
the number of rows that display, make a selection from the Display list and
click Go.
The Page Finder report appears, displaying the page number, page name, page
alias, title, tab set, and counts of the number of items and regions on the page.
See Also: "About the Page Definition" on page 5-1 and "Editing a
Page Definition" on page 5-7
See Also: "About the Page Definition" on page 5-1 and "Editing a
Page Definition" on page 5-7
This report displays the column names, data type, length, precision, and scale and
the SQL necessary to re-create the table appears at the bottom of the page.
A search bar displays at the top of the page and contains the following controls:
■ Search. Search for image names. Enter case insensitive keywords in the Search
field and click Go. To view all, leave the Search field blank and click Go.
■ Icon Size. Select the size of icon you want to search for and click Go.
■ Display. Determine how many rows display in the resulting report. To change
the number of rows that display, make a selection from the Display list and
click Go.
■ Columns. Select the number of columns to view per row and click Go.
3. From Show, select the type of images to view. Options include:
■ Standard Images
■ Workspace Images
■ Application Images
A search bar displays at the top of the page and contains the following controls:
■ Search. Enter case insensitive keywords in the Search field and click Go. To
view all, leave the Search field blank and click Go.
■ Category. Select a CSS category and click Go. Available options include:
– Absolute Sizes
– Anchor Tags
– Relative Sizes
■ Display. Determine how many rows display in the resulting report. To change
the number of rows that display, make a selection from the Display list and
click Go.
See Also: "About Cascading Style Sheets" on page 10-13 and "Using
Custom Cascading Style Sheets" on page 10-40
Note that the user interface of your page is dependent upon the theme you
selected for your application. See "Managing Themes" on page 10-1.
Next, add users to the Access Control List.
1. Select the user to be removed by selecting the check box to the left of the user
name.
2. Click Delete.
// Then add the following to the "Form Element Attributes" Attribute of the
item:
onchange="displayValue('P1_FIRST_NAME');"
See Also: "Text with JavaScript Escaped Single Quotes" on page 7-86
for information about referencing a shortcut inside of a JavaScript
literal string
For example, adding the following would test a function accessible from anywhere on
the current page.
<script type="text/javascript">
function test(){
window.alert('This is a test.');
}
</script>
if (confDel== true)
doSubmit('Delete');
}
</script>
This example creates a function to confirm a delete action and then calls that function
from a button. Note that the function optionally submits the page and sets the value of
the internal variable :REQUEST to Delete, thus performing the deletion using a
process that conditionally executes based on the value of the request.
Note that when you create the button, you would need to select Action Redirect to
URL without submitting page. Then, you would specify a URL target such as the
following:
confirmDelete('Would you like to perform this delete action?');
Accessing the Bulk Edit Item Help Report To view the Bulk Edit Item Help report:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. On the Tasks list, click Application Reports.
4. Click Page Components.
5. Under Items, click Item Help Text.
A report displays at the bottom of the page.
6. In Bulk Item Help Report, you can:
■ Update existing Help topics. Edit the Help text that appears and click Apply
Changes.
■ Link to the Page Definition containing the item by clicking the page number.
■ Link to the Page Item by clicking the item name.
Seeding Item Help Topics If your application does not yet contain item Help, you can
perform a mass update of default Help text.
To seed item Help topics:
1. Access the Bulk Edit Item Help report as described in the previous topic.
2. Click Seed Item Help Text.
3. In Default Help Text, enter the default text to appear in all Help topics.
4. Click Apply Changes.
Searching for Existing Item Help Topics You can search for existing Help text, or for an
item label.
To search for existing item Help topic:
1. In Help Contains, enter keywords.
2. Click Go.
When you build an application, you can include different types of navigation controls,
such as navigation bar entries, tabs, breadcrumbs, lists, and trees. This section
describes how to implement navigation in your application.
Navigation controls are shared components, so you create the specific type of
navigation control at the application level on the Shared Components page. After that,
you can add them to any page within your application.
This section contains the following topics:
■ Creating Tabs
■ Creating Lists
■ Creating Breadcrumbs
■ Creating Trees
■ Creating a Navigation Bar Entry
■ Controlling Navigation Using Branches
Creating Tabs
Tabs are an effective way to navigate users between pages of an application. You can
create a tabbed application look by using parent tabs, standard tabs, and lists.
Application Builder includes two different types of tabs:
■ Standard tabs
An application having only one level of tabs uses a standard tab set. A standard
tab set is associated with a specific page and page number. You can use standard
tabs to link users to a specific page.
■ Parent tabs
A parent tab set functions as a container to hold a group of standard tabs. Parent
tabs give users another level of navigation and a context (or sense of place) within
the application. You can use parent tabs to link users to a specific URL associated
with a specific page.
Topics in this section include:
■ About Template Support
■ About the Tabs Section of the Page Definition
Note: When running the Create Application Wizard, you have the
option of creating an application with tabs. The following
procedures assume you have created an application that does not
have any tabs.
See Also:
■ "Template Defaults" on page 4-14 for information about setting
a default page template at the application level
■ "Page Templates" on page 10-25
You can temporarily hide all other Shared Components subsections by clicking the
Tabs icon under the Shared Components title. To restore the view, click Show All. The
Show All icon resembles an inverted triangle.
The following icons appear in the Tabs section:
■ Edit All. The Edit All icon resembles a small grid with a pencil on top of it. Use
this icon to edit all tabs at once.
■ Create. The Create icon resembles a plus (+) sign overlapping a small page. Click
this icon to create a new tab.
■ Reorder. The Reorder icon resembles light green down and up arrows. Click this
icon to edit the label and location of tabs.
To edit a tab, click the tab name.
See Also: "About the Tabs Page" on page 8-3 and "Using the
Reorder Tabs Icon" on page 8-3
4. To change the order in which tabs display, click the up and down arrows in the far
right column.
5. Click Apply Changes.
Editing Tabs
You can edit multiple tabs simultaneously. Also, for standard tabs, you can update tab
properties, such as their labels and order sequence, by using the Standard Tab Tasks
list.
associate pages with a tab set, create a new standard tab, or create a new standard tab
set.
To access the Standard Tab Task list:
1. Navigate to the Tabs page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. Click Shared Components.
d. Under Navigation, click Tabs.
2. Make a selection from the Standard Tab Task list:
■ Rename Standard Tab Set
■ Resequence Display Order
■ Associate Page(s) with Selected Standard Tab
■ Create New Standard Tab
■ Create New Standard Tab Set
Creating Lists
A list is a shared collection of links. You add a list to a page by creating a region and
specifying the region type as List. You control the appearance of a list through list
templates.
Each list element has a display condition, which enables you to control when it
displays. You can define a list element to be either current or non-current for a specific
page. You further specify what current looks like using template attributes.
■ Editing a List
■ Editing Multiple List Entries Simultaneously
■ Accessing List Reports
b. Under Shared Components, click the Create icon in the Lists section.
2. In the Create/Edit Wizard:
a. Name - Enter a name for the list.
b. List Template - Select a list template.
c. Build Option - If applicable, select a build option for this component. Build
options are predefined settings that determine whether components within an
application are enabled.
3. Click Create.
Copying Lists
To copy a list:
1. Access the Copy List Wizard:
To access the wizard from the Shared Components page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. On the Application Builder home page, click Shared Components.
d. Under Navigation, click Lists.
e. Click Copy.
To access the wizard from a Page Definition:
a. Navigate to the appropriate Page Definition. See "Accessing a Page Definition"
on page 5-2.
b. Under Shared Components, click the Copy icon in the Lists section.
The Copy icon appears only if a list exists for this page.
2. In the Copy Wizard, select the location of the list to copy and click Next.
3. If you selected List in another application, select the application and click Next.
4. For Identify List, enter a name for the new list and click Copy.
For the list to appear on a page, you must add it to the page.
Adding Entries or Sublists from Scratch To add an entry or sublist from scratch:
e. List Entry Label - Enter the label text for this link.
5. Specify a target location.
If the target location is a URL, specify the following:
– Target is a - Select URL.
– URL Target - Enter a URL. For example:
http://www.yahoo.com
– Set these items - Enter a comma-delimited list of item names for which
you would like to set session state.
– With these values - Enter a comma-delimited list of values for the items
specified in the previous step.
You can specify static values or substitution syntax (for example, &APP_
ITEM_NAME.). Note that item values passed to f?p= in the URL cannot
contain a colon. Additionally, item values cannot contain commas unless
you enclose the entire value in backslashes (for example, \1234,56\).
6. Under Current List Entry:
a. List Entry Current for Pages Type - Specify when this list entry should be
current based on the page type.
List items can be current or non-current. Current list items use the current
template; non-current list items use the non-current list item template. The
actual condition and templates are defined in subsequent attributes.
b. List Entry Current for Condition - Based on the selection above, define a
condition to evaluate. When this condition is true, then the list item becomes
current.
7. To make the list entry conditional, specify the appropriate information under
Conditions.
8. Under Authorization, you can specify an authorization scheme.
This authorization scheme must evaluate to TRUE in order for this component to
be rendered or otherwise processed.
9. Under Configuration, you can select a build option for this component.
Build options are predefined settings that determine whether components within
an application are enabled.
10. Under Click Counting, you can specify if you want the list entries to be included
in the click count.
If this is a link to an external page, such as www.google.com, you can count clicks.
For more information, see "COUNT_CLICK Procedure" in Oracle Application
Express API Reference.
11. To specify additional attributes, use the User Defined Attributes section. For
example, the following adds a tabindex and accesskey.
tabindex="15" accesskey="D"
12. When you are finished defining list attributes, click Create or Create and Create
Another.
e. On the Lists page, click the name of the list whose entries you want to copy.
The List Entries page appears.
2. To copy a single list entry that appears in the current list:
a. Click the Copy icon in the in the row you want to copy. The Copy icon appears
under the Copy column in the list.
All the attributes of the selected list entry, such as image and parent, will be
copied to the new entry.
b. For Copy List Entry, enter the appropriate information and click Copy List
Entry.
3. To copy list entries from one list to another:
a. Click Copy List Entries from one List to Another under the Tasks list on the
right side of the page.
b. For Identify Copy Target, select the target list where you want to add the
entries and click Next.
c. For Confirm List Entry Copy, click the Report of New Combined List to
review the composite list.
d. Click Copy List Entries.
this attribute only applies to regions that are displayed in a Page Template
Body position.
5. For Source, select the list you want to add.
6. Click Create List Region.
Repeat these procedures for each page where you would like to add a list.
Editing a List
Once you create a list, you can edit it on the Lists page.
To edit a list:
1. Navigate to the Lists page.
From the Page Definition:
a. Navigate to the Workspace home page.
b. Click the Application Builder icon.
c. Select an application.
d. Select a page.
e. Under Shared Components, click Edit All.
From the Shared Components page:
a. Navigate to the Workspace home page.
b. Click the Application Builder icon.
c. Select an application.
d. On the Application home page, click Shared Components.
e. Under Navigation, click Lists.
2. On the Lists page, you can change the appearance of the page by making a
selection from the View list:
■ Icons (the default) displays each list as a large icon. To edit a list, click the
appropriate icon.
■ Details displays each list as a line in a report. To edit a list, click the list name.
3. Select a list.
The List Entries page appears.
4. Select the appropriate list name.
The Create/Edit List Entry page that appears is divided into sections. You can
access these sections by scrolling down the page, or by clicking a navigation
button at the top of the page. When you select a button at the top of the page, the
selected section appears and all other sections are temporarily hidden. To view all
sections of the page, click Show All.
5. Edit the appropriate attributes.
6. To learn more about a specific item on a page, click the item label.
When Help is available, the item label changes to red when you pass your cursor
over it and the cursor changes to an arrow and question mark. See "About
Field-Level Help" on page 1-15.
Note: The List Utilization, Unused Lists, and History buttons only
appear after you create a list.
Utilization
Click List Utilization on the Lists page to access the Lists Utilization report. This
report displays all lists included in the current application. From the report:
■ To edit list entries, select the list name.
■ To view the pages on which the list appears, click the number in the Pages column.
■ To view the template used with the list, click List Template Utilization. Then click
the name to view or edit the list template.
Unused
Click Unused on the Lists page to identify lists that are not used in the current
application.
History
Click History on the Lists page to view changes to list definitions and list entries by
developer and date.
Creating Breadcrumbs
Breadcrumbs provide users with hierarchical navigation. A breadcrumb is a
hierarchical list of links that display using templates. You can display a breadcrumb as
a list of links or as a breadcrumb path.
About Breadcrumbs
A breadcrumb trail indicates where the user is within the application from a
hierarchical perspective. In addition, users can click a specific breadcrumb link to
instantly view the page. You use breadcrumbs as a second level of navigation at the
top of each page, complementing other user interface elements such as tabs and lists.
Creating Breadcrumbs from the Shared Components Page To create breadcrumbs from the
Shared Components page:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. On the Application Builder home page, click Shared Components.
4. Under Navigation, click Breadcrumbs.
The Breadcrumbs page appears.
5. Click Create.
6. Enter a name and click Create.
Adding a Breadcrumb Region A region is an area on a page that serves as a container for
content. Once you create a breadcrumb and a breadcrumb template, the next step is to
create a region. Once you create a region, you can add a breadcrumb to a page.
About Creating Dynamic Breadcrumbs To give users more exact context, you can include
session state in breadcrumbs, making your breadcrumbs dynamic. For example,
suppose a page in your application displays a list of orders for a particular company
and you want to include the following breadcrumb:
Home > Orders > Orders for ACME Inc
In this example, ACME Inc not only indicates the page a user is on but also the
navigation path. The Application Express engine stores the value of ACME Inc. in
session state.
To create this type of dynamic menu, you must include a reference to a session state
item in the breadcrumb's short name or long name. For example:
&COMPANY_NAME.
Editing Breadcrumbs
Once you create a breadcrumb, you can edit it on the Breadcrumbs page.
To edit a breadcrumb:
1. Navigate to the Workspace home page.
2. Click the Application Builder icon.
3. Select an application.
4. On the Application Builder home page, click Shared Components.
5. Under Navigation, select Breadcrumbs.
The Breadcrumbs page appears.
You can change the appearance of the page by making a selection from the View
list and clicking Go:
Tip: To learn more about a specific item on a page, click the item
label. When Help is available, the item label changes to red when you
pass your cursor over it and the cursor changes to an arrow and
question mark. See "About Field-Level Help" on page 1-15.
9. (Optional) In the Breadcrumb Entry list on the right side of the page, you can
select the Synchronize Breadcrumb With Page Name and Title option.
Selecting this option makes changing the name of a page and breadcrumb a
one-step process. The information you provide for breadcrumb names is used to
update the referenced page name and title.
10. Click Apply Changes.
Note: The Utilization and History buttons only appear after you
create a breadcrumb.
Creating Trees
You can use a tree in your application to effectively communicate hierarchical or
multiple level data.
Topics in this section include:
■ How To Create a Tree
■ Editing a Tree
■ Accessing Tree Reports
13. Identify an optional where and order by clause to add to your query.
14. Specify the display text for the Go button.
15. Identify the page you want to branch to when the user clicks a button.
Editing a Tree
Once you create a tree, you can edit it on the Trees page.
To edit a tree:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. On the Application home page, click Shared Components.
4. Under Navigation, select Trees.
The Trees page appears.
5. You can change the appearance of the page by making a selection from the View
list:
■ Icons (the default) displays each tree as a large icon.
■ Details displays each tree as a line in a report.
6. Select a tree.
The Edit Tree page appears.
7. Edit the appropriate attributes.
8. To learn more about a specific item on a page, click the item label.
When Help is available, the item label changes to red when you pass your cursor
over it and the cursor changes to an arrow and question mark. See "About
Field-Level Help" on page 1-15.
9. Click Apply Changes.
Note: The Utilization and History buttons only appear after you
have created a tree.
Tree Utilization
Click Utilization on the Trees page to access the Tree Utilization report. This report
displays all trees included in the current application. To edit a tree, select the tree
name.
Tree History
Click History on the Trees page to view changes to trees by developer and date.
Navigation bars are different from other shared components in that you do not need to
reference them on a page-by-page basis. If your page template includes the
#NAVIGATION_BAR# substitution string, the Application Express engine
automatically includes any defined navigation bars when it renders the page.
Tip: To review the existing entries, click the Existing Navigation Bar
Entries link at the bottom of the page.
b. Alt Tag Text - Enter ALT text for navigation icons that are images. If you do
not specify an image name, then this text displays.
c. Icon Image Name - Enter an image name. For naming conventions, click the
item label (Icon Image Name). This opens item-level help with a list of
supported prefixes and examples of image names.
d. Image Height - Define the height of the image in pixels.
e. Width - Define the width of the image in pixels.
f. Text - For text-only entries, enter the entry text. For images, you can also enter
additional text to display with the image. This attribute can be translated.
g. Click Next.
5. For Target, specify the target location.
a. If the target location is a URL, specify the following:
– Target is a - Select URL.
– URL Target - Enter a URL. For example:
http://www.yahoo.com
Tip: In order for a navigation bar to appear, your page template must
include the #NAVIGATION_BAR# substitution string. See"Supported
Page Template Substitution Strings" on page 10-25.
page, the selected section appears and all other sections are temporarily hidden. To
view all sections of the page, click Show All.
6. Edit the appropriate attributes.
7. To learn more about a specific item on a page, click the item label.
When Help is available, the item label changes to red when you pass your cursor
over it and the cursor changes to an arrow and question mark. See "About
Field-Level Help" on page 1-15.
8. Click Apply Changes.
To change the order of the navigation bar entries using the Reorder Tabs icon:
1. Navigate to the appropriate Page Definition. See "Accessing a Page Definition" on
page 5-2.
2. Under Navigation Bar, click the Reorder Navigation Bar Entries icon.
The Reorder Navigation Bar Entries page appears.
3. To change the order in which the entries display on this page, click the up and
down arrows in the far right column or edit the numbers.
4. Click Apply Changes.
Note: The Subscription and History buttons only appear after you
create a navigation bar.
See Also: "About the When Button Pressed Attribute" on page 3-24
URLs less susceptible to tampering and by exposing fewer item names, values, and
indications of program logic.
Note that when you select save state before branching, the redirected URL no longer
include clear cache or item name and item values. You can still view this information,
by running your application in Debug mode. See "Accessing Debug Mode" on
page 12-2.
This section describes different ways you can customize your application’s page layout
by customizing regions, editing item attributes, and incorporating images.
This section contains the following topics:
■ Understanding Page Layout in Oracle Application Express
■ Displaying Components on Every Page of an Application
■ Understanding Regions
■ Creating a Multiple Column Layout
■ How Item Attributes Affect Page Layout
■ Incorporating Content from Other Web Sites
■ Managing Images
■ Managing Static Files
■ Rendering HTML Using Custom PL/SQL
See Also: "Adding Navigation" on page 8-1 and "Using the Drag
and Drop Layout Page" on page 6-46
relative to the main content or the body. A region can also define absolute positions for
buttons.
Understanding Regions
A region is a area on a page that serves as a container for content. Each page can have
any number of regions. You control the appearance of a region through a specific
region template. The region template controls the look of the region, the size,
determines whether there will be a border or a background color, and what type of
fonts display. A region template also determines the standard placement for any
buttons placed in region positions.
You can use regions to group page controls (such as items or buttons). You can create
simple regions that do not generate additional HTML, or create elaborate regions that
frame content within HTML tables or images.
Regions display in sequence within HTML table columns. You can also explicitly place
regions in positions defined in the page template. You can also choose to display
regions conditionally.
Topics in this section include:
■ About the Regions Section of the Page Definition
■ Using the Reorder Regions Icon
■ Creating a Region
■ About Region Types
■ Editing Region Attributes
■ Copying a Region
You can temporarily hide other subsections by clicking the Regions icon. To restore the
view, click Show All. The Show All icon resembles an inverted triangle.
The following icons display adjacent to the section title:
■ Edit All. The Edit All icon resembles a small grid with a pencil on top of it. Use
this icon to edit all regions at once.
■ Copy. The Copy icon resembles two small overlapping pages. Use this icon to
make a copy of an existing region.
■ Create. The Create icon resembles a plus (+) sign overlapping a small page. Click
this icon to create a region.
Regions are organized by position (or Display Point). The links available for a given
region depend upon the type of region.
See Also: "Editing Region Attributes" on page 9-4 and "Using the
Reorder Regions Icon" on page 9-3
5. To change the order in which regions display, click the up and down arrows in the
far right column.
6. Click Apply Changes.
See Also: "How Region Attributes Affect Page Layout" on page 9-4,
"Controlling Region Positioning" on page 9-5, "Using the Reorder
Regions Icon" on page 9-3, and "Specifying a Region Header and
Footer" on page 9-5
About Navigation Alternatives The Region Definition page is divided into the following
sections: Identification, User Interface, Source, Conditions, Cache, Header and Footer,
Authorization, Customization, Configuration, and Comments.
You can access these sections by scrolling down the page, or by clicking a navigation
button at the top of the page. When you select a button at the top of the page, the
selected section appears and all other sections are temporarily hidden. To view all
sections of the page, click Show All.
Controlling Region Positioning When you create a region, you must specify its position
(or Display Point) on the page. You can choose either a default position (such as Page
Template Body) or a user-defined position in the template (such as Page Template
Region Position 1.)
In addition to Display Point, you can specify the column in which the region will be
placed. When you place regions in multiple columns, Oracle Application Express
automatically renders the necessary HTML to produce a multiple column layout.
■ #TIMING# shows the elapsed time in seconds used when rendering a region. You
can use this substitution string for debugging purposes.
■ #ROWS_FETCHED# shows the number of rows fetched by the Oracle Application
Express reporting engine (the page size). You can use these substitution strings to
display customized messages to the user. For example:
Fetched #ROWS_FETCHED# rows in #TIMING# seconds.
■ #TOTAL_ROWS# displays the total number of rows that satisfy a SQL query used
for a report.
■ #FIRST_ROW_FETCHED# and #LAST_ROW_FETCHED# display the range of rows
displayed. For example:
Row(s) #FIRST_ROW_FETCHED# through #LAST_ROW_FETCHED# of #ROWS_FETCHED#
displayed
When you enable region caching, the Application Express engine renders a region
from a cached (or stored) respository instead of rendering it dynamically. Keep in
mind that the actual session identifiers are not cached. Instead, the Application
Express engine caches a &SESSION. substitution string and the current session
rendering the cached region is substituted on display. For example, if a region contains
a link and the link includes a session, the exact session is not cached to ensure that the
links works for all sessions.
The Application Express engine only renders a region from cache if it meets the
defined condition. Additionally, regions can be cached specific to a user or cached
independent of a user.
Creating a Region
You create regions by running the Create Region Wizard.
To create a region:
See Also:
■ Oracle Database Advanced Application Developer's Guide for
information about developing Web applications with PL/SQL
■ Oracle Database PL/SQL Packages and Types Reference for
information about htp packages
Copying a Region
You can quickly copy a region by clicking the Copy icon on the Page Definition. The
Copy icon resembles two small overlapping pages.
When you copy a region, you also have the option to copy the button and items within
the region.
Note: You cannot copy a Tree region since this type of region
encompasses more than one region.
To copy a region:
1. Navigate to the Page Definition. See "Accessing a Page Definition" on page 5-2.
2. Under Regions, click the Copy icon.
The Copy Region Wizard appears.
3. For Region to Copy, select the region you want to copy.
4. For To Page:
a. To Page - Select the page to which you want to copy the region.
b. Copy Region Items - Select Yes or No to determine whether to copy items
within this region.
You can create a multiple column page by defining a page template that contains a
multiple column table. You then explicitly place regions within specific table cells.
The following example demonstrates how to create a two-column page and specify a
region position using the #REGION_POSITION_XX# substitution string in each
column. You would enter the code in the Body section of the page-level template.
<body #ONLOAD#>
#FORM_OPEN#
<table style="width:100%">
<tr>
<td style="width:50%;padding:5px;">#REGION_POSITION_01#</td>
<td style="width:50%; border-left:2px #bbbbbb dashed; padding:5px;">#REGION_
POSITION_02#</td>
</tr>
<br />
#BOX_BODY#
#FORM_CLOSE#
</body>
Once you create this page-level template, the newly defined positions would be
available as Display Point options when you run the Create Region Wizard.
You could then create an item called STOCK_SYMBOL and base your region on a
stock price entered by the user. For example:
http://quote.yahoo.com/q?d=b&s=&STOCK_SYMBOL.
Sometimes (as is the case with the previous example) the HTML returned to the region
is more than is needed. To restrict the HTML displayed, you can use the following
region attributes:
■ URL (discard until but not including this text)
■ URL (discard after and including this text)
Note that the previous example may require that you set the Proxy Server application
attribute. If you do not set the Proxy Server application attribute, you get an error
message. Oracle Application Express uses the Oracle utl_http.request_pieces
function to obtain the HTML generated from the given URL. See "Configuring the
Application Definition" on page 4-8.
Managing Images
You can reference images within your application by uploading them to the Images
Repository. When you upload an image, you can specify whether it is available to all
applications or a specific application.
Topics in this section include:
■ Uploading Images
■ Referencing Images
■ Editing Image Attributes
■ Deleting an Image
Tip: You can use the Images Finder to identify images available to
the current application. See "Using the Images Finder" on page 7-94.
Uploading Images
You upload images to your workspace using the Image Repository.
To upload images to your workspace:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. Click Shared Components.
The Shared Components page appears.
4. Under Files, select Images.
The Images page appears.
5. To upload an image, click Create.
6. On the Create Image page, specify the following:
Referencing Images
You can reference images in your application by referencing the substitution string
#IMAGE_PREFIX# or including a fully qualified URL to the image.
Topics in this section include:
■ Verifying the Prefix for the Virtual Image Directory
■ Referencing an Image Using #IMAGE_PREFIX#
■ Referencing Images Using a Fully Qualified URL
When you first create an application, you must verify this prefix on the Edit Definition
page.
To verify the Image Prefix for an application:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. On the Application home page, click Shared Components.
4. Under Application, select Definition.
5. When the Edit Application Definition page appears, locate the Image Prefix field.
By default, this attribute is defined as /i/. Contact your administrator for
information about the name of this virtual directory for your installation.
Deleting an Image
To delete an image:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. Click Shared Components.
The Shared Components page appears.
4. Under Files, select Images.
The Images page appears.
5. Use the following to filter the view:
a. Image - Enter text to search for an image name or notes describing the image.
Select whether to search for All Images, Workspace Images, or Application
Images.
b. View - Select one of the following:
– Icons (the default) displays each image as a large icon.
– Details displays each image as a line in a report.
c. Click Go.
6. Select an image.
7. Click Delete.
See Also:
■ Oracle Database Advanced Application Developer's Guide for
information about developing Web applications with PL/SQL
■ Oracle Database PL/SQL Packages and Types Reference for
information about htp packages
To give you more control over HTML dynamically generated within a region, you can
use PL/SQL. For example, to print the current date, you could create a region with the
following source:
htp.p(TO_CHAR(SYSDATE,'Day Month DD, YYYY'));
This section describes different ways you can alter your application’s user interface
and page layout through themes and templates.
This section contains the following topics:
■ Managing Themes
■ Customizing Templates
■ Using Custom Cascading Style Sheets
See Also: "Adding Navigation" on page 8-1 and "Using the Drag
and Drop Layout Page" on page 6-46
Managing Themes
Themes are collections of templates that can be used to define the layout and style of
an entire application. The idea behind a theme is to provide a complete set of
templates that accommodate every UI pattern that may be needed in an application.
Templates are organized first by type (breadcrumb, button, calendar, label, list, page,
popup list of values, region, and report) and then by template classes, identifying the
purpose of the each template within that type. Each template type provides a group of
standard classes and eight custom classes. These classifications enable Oracle
Application Express to map templates among themes, making it easy to quickly
change the entire look and feel of an application.
Oracle Application Express ships with an extensive theme repository. You can add
themes to the theme repository as follows:
■ Workspace administrators can create Workspace themes. Workspace themes are
available to all developers within the workspace. See "Managing Workspace
Themes" on page 10-7.
■ Instance administrators can create public themes. Public themes are added using
the Application Express Administration Services. Once added, these themes are
available to all workspaces and developers. See "Managing Themes for an Oracle
Application Express Instance" in Oracle Application Express Administration Guide.
Topics in this section include:
■ Accessing the Themes Page
■ Changing the Default Templates in a Theme
■ Creating a Theme
■ Editing a Theme
Table 10–2 describes the default templates available under the section Regions
Defaults.
Creating a Theme
You can create a theme from scratch or select an existing theme from the repository.
To create a theme:
1. Navigate to the Themes page:
a. On the Workspace home page, click Application Builder.
b. Select an application.
c. Click Shared Components.
d. Under User Interface, select Themes.
2. Click Create.
3. Select a creation method:
■ From the Repository
■ From Scratch
■ From Export
Editing a Theme
You can create a theme from scratch or select an existing theme from the repository.
To create a theme:
1. Navigate to the Themes page:
a. On the Workspace home page, click Application Builder.
b. Select an application.
c. Click Shared Components.
d. Under User Interface, select Themes.
2. On the Tasks list, click Edit Theme.
The Create/Edit Theme page appears.
3. To learn more about a specific field, click the field label.
When Help is available, the item label changes to red when you pass your cursor
over it and the cursor changes to an arrow and question mark. See "About
Field-Level Help" on page 1-15.
4. Make the appropriate edits and click Apply Changes.
Note: You can only switch to a theme if that theme exists. For
example, before you can switch to a theme available in the repository,
you must first create it. See "Creating a Theme" on page 10-4.
Copying a Theme
Each theme is identified by a numeric identification number (ID). When you copy a
theme, you specify a theme ID. Copying a theme is useful when experimenting with
editing a theme or to export a theme with a different ID.
To copy a theme:
1. Navigate to the Themes page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. Click Shared Components.
d. Under User Interface, select Themes.
2. On the Tasks list, click Copy Theme.
3. On Copy Theme:
Deleting a Theme
You can only delete inactive themes. When you delete a theme, Application Builder
only removes inactive templates.
To delete a theme:
1. Navigate to the Themes page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. Click Shared Components.
d. Under User Interface, select Themes.
2. On the Tasks list, click Delete Theme.
3. From Remove Theme, select the theme you want to delete and click Next.
4. Click Delete Theme.
4. For Application Theme to Copy, select the desired theme and click Next.
5. for Identify Name, enter a theme number, name, and optional description and
then click Next.
6. Click Create Workspace Theme.
3. Import the exported file into the target Oracle Application Express instance. See
"Importing Export Files" on page 14-21.
4. Install the exported file from the Export Repository. See "Installing Export Files" on
page 14-25.
2. Click Reports.
3. On the Theme Reports page:
a. From Report, select Application Templates.
b. From Theme, select a theme.
c. Click Go.
A list of templates appears with the template type, template name, the associated
theme, and template class.
4. To edit a template, select the template name.
Customizing Templates
The Application Express engine creates the user interface of an application based on a
named collection of templates called a theme. Templates control the look and feel of
the components in your application. If you need to create a custom template, it is
generally easier to start with an existing template and then modify it. Once you have
created one or more default templates, you can modify those templates to fit your
specific needs.
Topics in this section include:
■ About Cascading Style Sheets
■ Selecting a Default Page Template
■ Creating a New Template
■ Viewing Template Reports
■ Managing Templates
■ Breadcrumb Templates
■ Button Templates
■ Calendar Templates
■ Label Templates
■ List Templates
■ Page Templates
■ Popup LOV Templates
■ Region Templates
■ Report Templates
See Also: "Using the CSS Finder" on page 7-95 and "Using Custom
Cascading Style Sheets" on page 10-40
Tip: Make sure you associate your template with the correct theme.
■ Since - Restrict the report to a specific time frame. Select the amount of time to
include in your report.
■ Subscribed - Specify whether to view All Templates, Subscribed Templates, or
Not Subscribed Templates.
3. To view template reports, click the following buttons:
■ Utilization displays template utilization in the current application for all
template types (page, report, region, label and list).
■ Subscription displays subscribed templates in your application.
■ History details recent changes to templates by developers and the last update
date.
Managing Templates
You can view all available templates on the Templates page. Alternatively, you can
access a template associated with a specific page on the Page Definition.
Topics in this section include:
■ Viewing Templates on the Templates Page
■ Viewing Templates Associated with a Specific Page
■ Replacing Templates
■ Replacing All Templates within an Application
■ Viewing Region Position Utilization by Page Template
■ Unsubscribing to Templates
■ Publishing Templates
Replacing Templates
You can update the template associated with a component using the Replace
Templates Wizard.
To replace the template associated with a component:
Unsubscribing to Templates
A subscribed template is a template that has its definition maintained in another
template, the referenced template. If your application utilizes subscribed templates,
you can unsubscribe to templates on the Unsubscribe Templates page.
To unsubscribe to templates:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. Click Shared Components.
4. Under User Interface, select Templates.
The Templates page appears.
5. From the Task list, select Unsubscribe Templates.
The Unsubscribe Templates page appears.
6. To unsubscribe to a specific template type within the current theme, select the
template type and click Unsubscribe.
Publishing Templates
Use the Publish Templates page to view templates that are subscribed to by other
templates in your workspace.
To publish master template content to subscribing templates:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. Click Shared Components.
4. Under User Interface, select Templates.
The Templates page appears.
5. Click the Publish tab.
The Published Templates page appears.
6. Select those you want to publish and click Publish Checked.
Breadcrumb Templates
A breadcrumb template controls the display of breadcrumb entries. You select a
breadcrumb template when you create a region.
See Also:
■ Online help for information about using specific sections of the
Edit Breadcrumb Template page
■ "Creating Breadcrumbs" on page 8-13
Name Name identifies the name of the template. Use the Translatable check box to
indicate that the template contains text strings that require translation. Theme
indicates the theme to which the template is a member.
Template Class identifies a specific use for the template. When you switch to a theme,
all templates in one theme are mapped to corresponding templates in another theme.
Application Builder accomplishes this template mapping through the assignment of a
template class.
Maximum Levels Specifies the number of levels that appear when displaying
breadcrumbs in a breadcrumb style.
Link Attributes Use Breadcrumb Link Attributes to specify hypertext link attributes for
a breadcrumb entry.
Substitution Strings Lists substitution string usage for this template. Substitution strings
are used within subtemplates to reference component values.
Button Templates
Button templates enable application developers to customize the look and feel of a
button. To build a button, you can use multiple images or HTML tags. Using button
templates is optional.
Name Template Name identifies the name of the template. Use the Translatable check
box to indicate if the template contains text strings that require translation. Theme
indicates the theme to which the template is a member.
Template Class identifies a specific use for the template. When you switch to a theme,
all templates in one theme are mapped to corresponding templates in another theme.
Application Builder accomplishes this template mapping through the assignment of a
template class.
Definition Use Template to define the button template that displays. You have the
option of including standard application substitutions. For example, &ITEM_NAME.
values can be substituted at rendering time. Button templates support the following
substitution strings:
■ #LABEL# is replaced with a button label.
■ #LINK# is replaced with a URL. The URL then calls a #doSubmit# or a redirect
JavaScript that submits the page (that is, setting the request value), or simply
redirects it to the supplied URL.
Substitution Strings Lists substitution string usage for this template. Substitution strings
are used within subtemplates to reference component values.
Calendar Templates
Calendar templates control the appearance and placement of a calendar. Calendar
templates frequently use HTML tables to arrange dates. You place calendar attributes
using substitution strings such as #DD# and #MONTH#. A list of supported substitution
strings appears on the right side of the Edit Calendar Template page. Note that
template substitution strings must be in uppercase letters and begin and end with a
number sign (#).
Calendar Definition
Name Name identifies the name of the template. Theme indicates the theme to which
the template is a member.
Template Class identifies a specific use for the template. When you switch to a theme,
all templates in one theme are mapped to corresponding templates in another theme.
Application Builder accomplishes this template mapping through the assignment of a
template class.
Label Templates
Label templates are designed to centrally manage HTML markup of page item labels.
Each item can have an optional label. You can control how these labels display using
label templates. For example, you could create a label template called Required Field
that references an image (such as an asterisk) to indicate to the user that the field is
required.
Label templates enable you to define a before-and-after text string that gets prepended
and appended to the item.
Name Template Name identifies the name of the template. Use the Translatable check
box to indicate that the template contains text strings that require translation. Theme
indicates the theme to which the template is a member.
Template Class identifies a specific use for the template. When you switch to a theme,
all templates in one theme are mapped to corresponding templates in another theme.
Application Builder accomplishes this template mapping through the assignment of a
template class.
Definition In Before Label, enter HTML to display before the item label. Before Label
supports the substitution strings #CURRENT_FORM_ELEMENT#; #CURRENT_FORM_
ID#, and #CURRENT_ITEM_NAME#. For example:
<label for="#CURRENT_ITEM_NAME#">
<a href="javascript:popupFieldHelp('#CURRENT_ITEM_ID#',
'&APP_SESSION.','&CLOSE.')" >
In After Label, enter HTML to display after the item label. Since the label will
automatically display before the HTML in this region, any open HTML tags in the
Before Label region should be closed here. For example:
</a></label>
Error Display In On Error Before Label, enter HTML to precede the item label when an
application displays an inline validation error message for the item. For example:
<font class="fieldtitleleft">#ERROR_MESSAGE#
In On Error After Label, enter HTML to be appended to the item label when an
application displays an inline validation error message for the item. This attribute
supports the substitution strings #CURRENT_FORM_ELEMENT#, #CURRENT_FORM_
ID#, and #CURRENT_ITEM_NAME#. The following example would append a space
and a closing bracket to the displayed item label with the error.
]</font>
Substitution Strings Lists substitution string usage for this template. Substitution strings
are used within subtemplates to reference component values.
List Templates
A list is a shared collection of links. You control the appearance of a list through list
templates. Using template attributes, you can also define a list element to be either
current or non current for a specific page.
See Also:
■ Online Help for information about using specific sections of the
Edit List Template page
■ "Creating Lists" on page 8-5
Name Name identifies the name of the template. Use the Translatable check box to
indicate that the template contains text strings that require translation. Theme
indicates the theme to which the template is a member.
Template Class identifies a specific use for the template. When you switch to a new
theme, all templates in one theme are mapped to corresponding templates in another
theme. Application Builder accomplishes this template mapping through the
assignment of a template class.
Before List Entry Enter HTML that displays before any list elements. You can use this
attribute to open an HTML table or HTML table row.
Before Sub List Entry Enter HTML that displays before any sublist elements.
Sub List Entry Defines current and noncurrent list templates. Supported substitution
strings include #LINK#, #TEXT#, #IMAGE_PREFIX#, #IMAGE#, #IMAGE_ATTR#, and
#A01# to #A10#.
■ Sub List Template Current. Enter HTML or text to be substituted for the selected
(or current) list template.
■ Sub List Template Current with Sub List Items. Enter HTML or text to be
substituted for the selected (or current) list template when an item has sublist
items. If not specified, the current list item template will be used.
■ Sub List Template Noncurrent. Enter HTML or text to be substituted for the
unselected (or noncurrent) list template.
■ Sub List Template Noncurrent with Sub List Items. Enter HTML or text to be
substituted for the unselected (or noncurrent) list template used when an item has
sublist items. If not specified, the current list item template will be used.
■ Between Sub List Items. Enter HTML that displays between list elements. This
attribute will be ignored if no HTML is specified.
After Sub List Entry Enter HTML that displays after displaying sublist elements.
After List Entry Enter HTML that displays after displaying all list elements. You can use
this attribute to close an HTML table opened in the Before List Elements attribute.
Substitution Strings Lists substitution string usage for this template. Substitution strings
are used within subtemplates to reference component values.
Page Templates
Page templates define the appearance of a page. Each template consists of a header
template, a body template, a footer template, and a number of subtemplates. If you do
not specify a page template as a page-level attribute, then the Application Express
engine uses the default page template defined on the Create/Edit Theme page.
Page templates combine static HTML with substitution strings that are replaced at run
time. You use substitution strings to indicate the existence and placement of a
component within a page template. You can further specify how a component should
display using subtemplates.
Name Name identifies the name of the template. Theme indicates the theme to which
the template is a member.
Template Class identifies a specific use for the template. When you switch to a new
theme, all templates in one theme are mapped to corresponding templates in another
theme. Application Builder accomplishes this template mapping through the
assignment of a template class. Use the Translatable check box to indicate that the
template contains text strings that require translation.
Definition Each template consists of a header, a body, a footer, and subtemplates. Use
substitution strings to include dynamic content. All template substitution strings must
be in uppercase letters and begin and end with a number sign (#). See item Help for
information about supported substitution strings.
Header is the first section of the page template. Enter HTML that defines the <Head>
section of the HTML document. Regions that display or processes and computations
that execute AFTER HEADER will display or execute immediately after this section in
the template that is rendered. For example:
<html>
<head>
<title>#TITLE#</title>
#HEAD#
</head>
Body is the second section in the page template and is rendered after the header
section but before the footer section. Enter HTML that defines the <Body> section of
the HTML document. At a minimum, you must include the #BOX_BODY# substitution
string. It is recommended that you also include the #FORM_OPEN# and #FORM_
CLOSE# substitution strings. For example:
<body #ONLOAD#>
#FORM_OPEN#
#BOX_BODY#
#FORM_CLOSE#
</body>
Footer is the third section in the page template that displays after the body.
Display Points Breadcrumb Display Point applies to generated components that use
breadcrumbs. It defines where the breadcrumbs are placed on the page. Sidebar
Display Point applies to generated components that use Sidebars. It defines where
sidebars are placed on the page.
■ Navigation Bar Entry. Enter HTML or text to be substituted into the navigation
bar #BAR_BODY# substitution string for each navigation bar entry. Use the
following substitution strings to create the navigation bar entry subtemplate.
Use the following substitution strings to compose the navigation bar entry
subtemplate:
– #LINK# - entry link
– #TEXT# - entry sub text
– #IMAGE# - entry image
Note that the HTML image ALT, HEIGHT, and WIDTH arguments will be
included with the HTML IMG tag when supplied with the navigation bar
entry.
– #EDIT# - Inline edit link editing capability
– #WIDTH# - Image width
– #HEIGHT# - Image height
– #COLSPAN# - HTML COLSPAN value
Standard Tab Attributes You must populate this attribute if your application includes
standard tabs. Standard tabs can be placed in the header, body, or footer sections of the
page template using the #TAB_CELLS# substitution string. The page template
Header/Body/Footer defines the HTML table and rows. This subtemplate defines
how these tabs display by defining the specific cell. Available attributes include:
■ Current Tab. Enter HTML or text to be substituted for the currently selected
standard tab. Whether a tab is current is determined by standard tab attributes.
For example:
<td>#TAB_LABEL#</td>
■ Non Current Standard Tab. Enter HTML or text that will be substituted for the
unselected standard tabs. Use the #TAB_TEXT# substitution string to position a
tab's label and link within the template. For example:
<td><a href="#TAB_LINK#">#TAB_LABEL#</a></td>
Parent Tab Attributes You must populate this attribute if your application includes two
levels of tabs. Enter HTML or text that will be substituted for the selected parent tabs.
Parent tabs can be placed in the header, body, or footer section of the page template
using the #PARENT_TAB_CELLS# substitution string. Parent tabs only display with
standard tabs. Available attributes include:
■ Current Parent Tab. Enter HTML or text that will be substituted for the selected
parent tabs. Whether a tab is current is determined by the page that displays and
the standard tab set that the page uses. Use the #TAB_TEXT# substitution string to
position a tab's label and link within the template. For example:
<td><a href="#TAB_LINK#">#TAB_LABEL#</a></td>
■ Non Current Parent Tab. Enter HTML or text that will be substituted for the
unselected parent tabs. Use the #TAB_TEXT# substitution string to position a tab's
label and link within the template. For example:
<td><a href="#TAB_LINK#">#TAB_LABEL#</a></td>
Image Based Tab Attributes Use this subtemplate for tabs that are entirely based on
images. Available attributes include:
■ Current Image Tab. Enter HTML to be used to indicate that an image-based tab is
currently selected. Include the #TAB_TEXT# substitution string to show the
displayed name of the tab.
■ Non Current Image Tab. Enter the HTML to be used to indicate that an image tab
is not currently selected. Include the #TAB_TEXT# substitution string to show the
displayed name of the tab.
Multi Column Region Table Attribute If the Application Express engine displays regions in
multiple columns in the same region position, then Oracle Application Express will
render an HTML table. This attribute enables you to control the attributes of the
<table> tag.
Error Page Template Control Use this attribute only when a page template will be
designated as an error template. Use the #MESSAGE# substitution string to place the
error message and the #BACK_LINK# substitution string to display a link back to the
previous page. A template can be designated as an error template by editing the
application attributes. For example:
#MESSAGE#
<br>
<a href="#BACK_LINK#">back</a>
Substitution Strings Lists substitution string usage for this template. Substitution strings
are used within subtemplates to reference component values.
Application Theme indicates the theme to which the template is a member. Template
Class identifies a specific use for the template. When you switch to a new theme, all
templates in one theme are mapped to corresponding templates in another theme.
Application Builder accomplishes this template mapping through the assignment of a
template class. Use the Translatable check box to indicate that the template contains
text strings that require translation.
Icon Use Popup Icon to specify an icon to display to the right of a form field for items
of type POPUP. By default, the Application Express engine uses a list.gif image.
Use Popup Icon Attr to define image attributes, such as height and width, for the
Popup Icon.
Search Field Use these attributes to specify how a Search field displays. Table 10–5
describes available Search Field attributes.
Buttons Use these attributes to define the button name and attributes for the Find,
Close, Next, and Previous buttons.
Window Popup lists of values are executed using JavaScript. Use these attribute to
control the values of scrollbars=, resizable=, width=, and height=. For
information about default values, see item Help.
Result Set Use these attributes to define text or HTML to display before and after a
result set.
Page Attributes Use these attributes to define popup pages. For more information, see
item Help.
Region Templates
Region templates control the appearance and placement of region attributes. Region
templates frequently use HTML tables to arrange content.
Region templates apply style elements to regions. Region templates display
substitution strings. The only required substitution string, #BODY#, identifies where
the source of the region should be placed. All other substitution strings are optional.
You can use these substitution strings to indicate the existence and placement of a
page control, such as a button, within the region.
Name Name identifies the name of the template. Theme indicates the theme to which
the template is a member.
Template Class identifies a specific use for the template. When you switch to a new
theme, all templates in one theme are mapped to corresponding templates in another
theme. Application Builder accomplishes this template mapping through the
assignment of a template class. Use the Translatable check box to indicate that the
template contains text strings that require translation.
Definition Region templates provide the appearance for a portion of a page called a
region. Use substitution strings to indicate the existence and placement of a
component within the region. #BODY# is the only required substitution string. It
identifies where the source of the region should be placed. All other substitution
strings are optional. The following are valid substitution strings:
■ #TITLE#
■ #EXPAND#
■ #CHANGE#
■ #BODY#
■ #FORM_OPEN#
■ #FORM_CLOSE#
When you create a button in a region position, the positions you define will appear in
a select list. Use the following substitution strings to define positions for the placement
of buttons in a region:
■ #EDIT#
■ #CLOSE#
■ #CREATE#
■ #EXPAND#
■ #HELP#
■ #DELETE#
■ #COPY#
■ #NEXT#
■ #PREVIOUS#
Form Table Attributes Page items display within regions. Items are rendered as HTML
form elements in an HTML table. With this template property, you can define
attributes that will be placed in the <table> tag. For example:
class="instructiontext"
Substitution Strings Lists substitution string usage for this template. Substitution strings
are used within subtemplates to reference component values.
Report Templates
Report column templates provide you with control over the results of a row from a
SQL query. This type of template defines a cell, not an entire row.
Each report template identifies column names using the syntax #1#, #2#, #3#, and
so on. You can also name columns using column name substitution syntax such as
#ENAME# or #EMPNO#. You can reference any item from your application within your
template. For example, to reference an item called ABC. in your template, you could
include the exact substitution string &ABC.. The actual value of ABC. would be
provided by an end user editing an item in your application named ABC.
This example assumes your page template includes a CSS containing the class
tabledata. This example also demonstrates the use the substitution strings #ALIGN#
and #COLUMN_VALUE#. If you actually ran this report, these substitution strings
would be replaced with values generated by the results of a SQL query.
If your query uses an expression in the select list, it is a good idea to create an alias for
the columns to avoid run time errors. For example, suppose your query was as
follows:
SELECT ename, (sal + comm) * 12 FROM emp
Named Column Templates Named column templates allow for more flexibility in report
design. However, because they reference columns by name, they can only be used by
reports that are based on those columns. For example:
<tr><td>#ENAME#</td><td>#SAL#</td></tr>
Although named column templates offer flexibility, you may need to create a new
template for each query. You can also include a position notation. The following
example demonstrates how to use following HTML and substitution strings:
<tr><td>#ENAME#</td><td>#SAL#</td></tr>
<tr><td>#1#</td><td>#2#</td></tr>
Report Template Template Name identifies the name of the template. Template Type
indicates the type of template. Named Column templates reference column names in
the template. Generic Column Templates reference the #COLUMN_VALUE# substitution
string in the template.
Theme indicates the theme to which the template is a member. Template Class
identifies a specific use for the template. When you switch to a new theme, all
templates in one theme are mapped to corresponding templates in another theme.
Application Builder accomplishes this template mapping through the assignment of a
template class. Use the Translatable check box to indicate the template contains text
strings that require translation.
Before Rows In Before Rows, enter HTML that displays once at the beginning of a
report template. Opening an HTML table is a common use of this attribute as shown in
the following example:
<table>
You can identify column headers using the syntax #1#, #2#, #3#. For example:
<th>#1#</th><th>#2#</th><th>#3#</th>
You can include pagination above a report by including the substitution string #TOP_
PAGINATION#. This substitution string generates HTML that starts with an opening
<tr> tag and ends with a closing </tr> tag. For example, to include an open table tag
and the #TOP_PAGINATION# substitution string, you would enter the following:
<table>#TOP_PAGINATION#
You can also include the substitution string #CSV_LINK# to include support for
exporting your report to comma-separated value (CSV) format, a format compatible
with most spreadsheet programs.
Column Headings Use Column Heading Template to add color to each column header
cell. Note that the text of this attribute must indicate where the cell heading text will be
colorized. For example:
<th #ALIGNMENT#>#COLUMN_HEADER#</th>
If you do use this attribute, Application Express engine applies the default column
heading template.
Before Each Row In Before Each Row, enter text to display before all columns in the
report. Use this attribute to open a new HTML row. Before Each Row supports the
following substitution strings:
■ #ROWNUM#
Use this substitution string to specify the current row.
■ #COLCOUNT#
Use this substitution string to specify the number of columns.
■ #HIGHLIGHT_ROW#
Use this substitution string to specify the number of highlighted rows.
Column Templates Column templates define the look of each column. You can define up
to four column templates; each can be conditional. For example, you can have different
background colors for even and odd rows, or highlight rows that meet a PL/SQL
defined condition.
In each Column Template, you define the look of each column. Column Templates
support the substitution strings described in Table 10–6.
If you actually ran this report, these substitution strings would be replaced with values
generated by the results of a SQL query.
By creating conditions, you can create a report that displays columns differently
depending on whether the specified condition is met. To specify a column template be
used conditionally, select a condition type from the Column Template Condition list.
Valid values include:
■ Use Based on PL/SQL Expression. Conditionally formats columns based on data
in that row.
■ Use for Even Numbered Rows. Conditionally formats even numbered rows.
■ Use for Odd Numbered Rows. Conditionally formats odd numbered rows.
If you select Use Based on PL/SQL Expression, the next step is to enter a PL/SQL
expression in the Column Template Expression field. For example, the following
expression displays a value in bold if the value is greater than 2000:
#SAL# > 2000
Note that you could also use the substitution string #ROWNUM#. For example:
#ROWNUM# > 2000
After Each Row In After Each Row, enter HTML that displays after all columns in the
report display. This attribute is often used to close an HTML table row. For example:
</tr>
After Rows Use After Rows to specify text that should display after the last row. A
common use of this attribute is to close the HTML table tag. For example:
</table>
Row Highlighting Use Background color for checked row to control the background
color of a report row when the row selector is checked. Use Background color for
current row to control the background color of a report row when the user moves the
mouse over the row.
Previous Page Template Enter HTML to modify how the Previous Page portion
of the pagination subtemplate appears. For example:
<a href="#LINK#">previous</a>
Next Set Template Enter HTML to modify how the Next Set portion of the
pagination subtemplate appears. For example:
<a href="#LINK#">next set</a>
Previous Set Template Enter HTML to modify how the Previous Set portion of
the pagination subtemplate appears. For example:
<a href="#LINK#">previous set</a>
Name Template Name identifies the name of the template. Template Type indicates
the type of template. Named Column templates reference column names in the
template. Generic Column Templates reference the #COLUMN_VALUE# substitution
string in the template.
Theme indicates the theme to which the template is a member. Use the Translatable
check box to indicate the template contains text strings that require translation.
Template Class identifies a specific use for the template. When you switch to a new
theme, all templates in one theme are mapped to corresponding templates in another
theme. Application Builder accomplishes this template mapping through the
assignment of a template class.
Row Templates Row templates define the look of each column. You can define up to
four row templates, each of which can be conditional.
In each Row Template, you define the look of each row. Row Templates support the
substitution strings described in Table 10–8.
By creating conditions, you can create a report that displays rows differently
depending on whether the specified condition is met. To specify a row template be
used conditionally, select a condition type from the Column Template Condition list.
Valid values include:
■ Use Based on PL/SQL Expression. Conditionally formats columns based on data
in that row.
■ Use for Even Numbered Rows. Conditionally formats even numbered rows.
■ Use for Odd Numbered Rows. Conditionally formats odd numbered rows.
If you select Use Based on PL/SQL Expression, the next step is to enter a PL/SQL
expression in the Column Template Expression field. For example, the following
expression displays a value in bold if the value is greater than 2000:
#SAL# > 2000
Note that you could also use the substitution string #ROWNUM#. For example:
#ROWNUM# > 2000
Column Headings Use this template to add color to each column header cell. The text of
this attribute must include help to indicate where the cell heading text should be
colorized. If you do not enter a Column Heading Template, then a default column
header template is applied. If you do not want any column headings, then enter OMIT.
For example:
<th #ALIGNMENT#>#COLUMN_HEADER#</th>
Before first and after last row text In Before Rows, enter HTML that displays once at the
beginning of a report template. Opening an HTML table is a common use of this
attribute, as shown in the following example:
<table>
You can identify column headers using the syntax #1#, #2#, #3#. For example:
<th>#1#</th><th>#2#</th><th>#3#</th>
You can include pagination above a report by including the substitution string #TOP_
PAGINATION#. This substitution string generates HTML that starts with an opening
<tr> tag and ends with a closing </tr> tag. For example, to include an open table tag
and #TOP_PAGINATION# substitution string, you would enter the following:
<table>#TOP_PAGINATION#
You can also include the substitution string #CSV_LINK# to include support for
exporting your report to CSV format, a format compatible with most spreadsheet
programs.
Use After Rows to specify text that should display after the last row. A common use of
this attribute is to close the HTML table tag. For example:
</table>
Pagination The Pagination section contains attributes for editing the Pagination
Template, Next Page Template, Previous Page Template, Next Set Template, and
Previous Template. Pagination Subtemplates support the substitution strings
#PAGINATION_NEXT#, #PAGINATION_NEXT_SET#, #PAGINATION_PREVIOUS# and
#PAGINATION_PREVIOUS_SET#. Table 10–9 describes these templates.
Previous Page Template Enter HTML to modify how the Previous Page portion
of the pagination subtemplate appears. For example:
<a href="#LINK#">previous</a>
Next Set Template Enter HTML to modify how the Next Set portion of the
pagination subtemplate appears. For example:
<a href="#LINK#">next set</a>
See Also:
■ Online Help for information about using specific sections of the
Edit Report Template page
■ "Understanding Regions" on page 9-2
User interface defaults enable you to assign default user interface properties to a table,
column, or view within a specified schema. When you create a form or report using a
wizard, the wizard uses this information to create default values for region and item
properties. Utilizing user interface defaults can save valuable development time and
has the added benefit of providing consistency across multiple pages in an application.
Because user interface defaults are associated with a table, you can use them with
applications created using the form and report wizards.
This section contains the following topics:
■ Viewing Tables or Views Utilizing User Interface Defaults
■ Editing Column Attributes
■ Comparing User Interface Defaults Across Applications
■ About Exporting and Importing User Interface Defaults
Tip: You can also access the User Interface Defaults page by clicking
User Interface Defaults on the Tasks list on either the Application
Builder home or Applications home pages. See "About the
Application Builder Home Page" on page 4-2 and "About the
Application Home Page" on page 4-4.
Label Default
This attribute is used in report and forms. Use Label to specify default label text for
items in a form and the heading for columns in reports.
Report Defaults
Available attributes include:
■ Display - Indicates if the column displays in a report. The default is Yes.
■ Display Sequence - Specifies the display sequence of items in a report. The default
value is based on the column ID, which is based on the order of the columns in the
table.
■ Display As - Specifies how the column should be displayed in a report.
■ Mask - Indicates if a mask should be applied against the data. This attribute is not
applicable for character- based items.
■ Alignment - Specifies report alignment (left, center, or right). If the column is a
number, the default is Right. Otherwise, the default is Left.
■ Searchable - Indicates whether the column should be searchable in reports. If the
column is VARCHAR2 or CHAR, the default is Yes. If not, the default is No.
■ Group By - Indicates whether the column should be used for Group By and then
the sequence of the grouping. The default is Yes.
■ Aggregate By - Indicates whether the column should be used for aggregation in
reports and charts.
Form Defaults
Available attributes include:
■ Display - Indicates if the column displays in a form. The default is Yes.
■ Display Sequence - Specifies the sequence of items in a form. The default is based
on the column ID, which is based on the order of the columns in the table.
■ Display As - Indicates how items in a form display. The default selection is Text
Field.
■ Mask - Indicates if a mask should be applied against the data in a form. Not used
for character-based items.
■ Default Value - Specifies the default value associated with this column.
■ Width - Specifies the display width.
■ maxWidth - Specifies the maximum string length a user is allowed to enter in this
item.
■ Height - Specifies the display height of an item.
■ Required - Used to generate a validation in which the resulting item must not be
null. If resulting item is not null, select Yes.
■ Help Text - Becomes Item help. By default, this text is pulled from the column hint
(if applicable).
Use the List of Values Type list to specify if the selected column will include a static or
dynamic list of values. Once you select the type, you are prompted to enter either
display value and return value pairs, or a list of values query.
b. Column - Select a column in which to search for form, reports, and tabular
forms.
7. Optionally, make sections from the following lists and click Go.
■ Display - Select an attribute category.
■ Application - Select an application.
A report appears containing the following sections:
■ Form Pages Referencing the Selected Column
■ Report Regions Referencing the Selected Column
■ Tabular Form Regions Referencing the Selected Column
See Also:
■ "About Bind Variable Syntax" on page 3-14
■ "Understanding Substitution Strings" on page 3-15
Debug Mode displays time codes that correspond to specific Application Express
engine actions. This can be useful to determine when the engine is setting session
state. The Debug view also shows additional details about item names and
computation and processing points. To exit Debug mode, click No Debug on the
Developer Toolbar.
You can also use f?p syntax to run an application in Debug mode. Simply call the
page and set the Debug argument to YES. For example:
f?p=100:1:&APP_SESSION.::YES
The input and output files are the only required arguments.
5. To view online Help, invoke TKPROF without arguments.
Viewing Reports
When isolating an issue within a page, it is important to clearly understand the
functions it is performing. To accomplish this goal, Application Builder includes a
number of page and application reports.
See Also: "Using the View List on the Page Definition" on page 5-4
■ Page Components reports offer detailed information on controls and logic that
execute when the page is rendered (for example, branches, buttons,
computations, items, and regions).
■ Activity Reports offer details about developer activity within the current
application. Available reports include Changes by Developer, Changes by
Developer by Day, Chart of Changes by Developer, Page Performance, and
Recent Changes.
■ Cross Application Reports offer information that apply to multiple
applications. Available reports include Application Attributes, Application
Comments, Build Options, Build Status and Application Status, Page
Component Counts, Security Profiles, Authentication Schemes, and Template
Defaults by Application.
This section describes how to implement security best practices for Oracle Application
Express. Administrators are primarily responsible for ensuring the security of the
Oracle Application Express installation, while developers are responsible for building
secure applications.
This section contains the following topics:
■ Understanding Administrator Security Best Practices
■ Understanding Developer Security Best Practices
■ Securing File Uploads
■ Establishing User Identity Through Authentication
■ Providing Security Through Authorization
gateway provides the equivalent core features of Oracle HTTP Server and mod_
plsql. Because the HTTP Listener runs in the same database where Oracle
Application Express is installed, it is not possible to separate the HTTP listener from
the database. For this reason, it is not recommended to use the embedded PL/SQL
gateway for applications that run on the Internet. Additionally, the embedded PL/SQL
gateway does not provide the same flexibility of configuration and detailed logging as
Oracle HTTP Server with mod_plsql.
About Configuring Oracle HTTP Server with mod_plsql for Oracle Application Express
Oracle HTTP Server uses the mod_plsql plug-in to communicate with the Oracle
Application Express engine within the Oracle database. mod_plsql functions act as a
communication broker between the Web server and the Oracle Application Express
engine in the Oracle database.
Each mod_plsql request is associated with a set of configuration values used to
access the database called a Database Access Descriptor (DAD). mod_plsql provides
a DAD parameter called PlsqlRequestValidationFunction which enables you
to allow or disallow further processing of a requested procedure. You can utilize this
parameter to implement tighter security for your PL/SQL application by blocking
package and procedure calls which should not be allowed to run from the DAD.
Oracle recommends a DAD configuration for Oracle Application Express which
utilizes the PlsqlRequestValidationFunction directive with a value of wwv_
flow_epg_include_modules.authorize.
The purpose of the PlsqlRequestValidationFunction parameter is to control
which procedures can be invoked through mod_plsql. By default, the only
procedures permitted are the public entry points of Oracle Application Express. This
can be extended using the validation functions shipped with Oracle Application
Express. To learn more, see "Restricting Access to Oracle Application Express" in
Oracle Application Express Administration Guide.
the HTTPS protocol for the Report Server in the internal administration Environment
Settings.
END;
/
This will restrict new or updated passwords to those that have not been used for
the account for the previous 365 days. Recording of previously used passwords
(actually, hashed representations of passwords) begins upon installation of Oracle
Application Express 3.2.
4. To disable this feature, run the block above, providing 0 for the parameter value.
For example:
BEGIN
APEX_INSTANCE_ADMIN.SET_PARAMETER('PASSWORD_HISTORY_DAYS',0);
COMMIT;
END;
/
-- Before checking the privilege, make sure that the ACL is valid
-- (for example, does not contain stale references to dropped users).
-- If it does, the following exception will be raised:
--
-- ORA-44416: Invalid ACL: Unresolved principal 'APEX_030200'
-- ORA-06512: at "XDB.DBMS_XDBZ", line ...
--
SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
FROM XDB.XDB$ACL A, PATH_VIEW P
WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
EQUALS_PATH(P.RES, ACL_PATH) = 1;
DBMS_XDBZ.ValidateACL(ACL_ID);
IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_030200',
'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
'APEX_030200', TRUE, 'connect');
END IF;
EXCEPTION
-- When no ACL has been assigned to '*'.
WHEN NO_DATA_FOUND THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
'ACL that lets power users to connect to everywhere',
'APEX_030200', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;
-- Before checking the privilege, make sure that the ACL is valid
-- (for example, does not contain stale references to dropped users).
-- If it does, the following exception will be raised:
--
-- ORA-44416: Invalid ACL: Unresolved principal 'APEX_030200'
-- ORA-06512: at "XDB.DBMS_XDBZ", line ...
--
DBMS_XDBZ.ValidateACL(ACL_ID);
IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_030200',
'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
'APEX_030200', TRUE, 'connect');
END IF;
EXCEPTION
-- When no ACL has been assigned to 'localhost'.
WHEN NO_DATA_FOUND THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml',
-- If just some users referenced in the ACL are invalid, remove just those
-- users in the ACL. Otherwise, drop the ACL completely.
SELECT COUNT(PRINCIPAL) INTO CNT FROM XDS_ACE
WHERE ACLID = ACL_ID AND
EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);
ELSE
DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID;
END IF;
END;
/
COMMIT;
Once the ACL has been fixed, you must run the first script in this section to apply the
ACL to the APEX_030200 user. See "Granting Connect Privileges to a Host" on
page 13-5.
To enable the indexing of online Help in Oracle Application Express, the permission to
use an Oracle Text URL datastore must be granted to the APEX_030200 database user.
This is accomplished by assigning this specific privilege to a datbase role and then
granting this role to the APEX_030200 database user.
To determine if the ability to use an Oracle Text URL datastore is already granted to a
database role:
1. Start SQL*Plus and connect to the database where Oracle Application Express is
installed as SYS specifying the SYSDBA role. For example:
■ On Windows:
SYSTEM_DRIVE:\ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
This returns either NULL or the database role which is granted the ability to use an
Oracle Text URL datastore.
3. If no value is returned by step 2, then create a new database role as shown in the
following example:
CREATE ROLE APEX_URL_DATASTORE_ROLE;
4. Grant this role to the database user APEX_030200 with the following statement:
GRANT APEX_URL_DATASTORE_ROLE to APEX_030200;
If step 2 returned a value, use this database role name instead of the example
APEX_URL_DATASTORE_ROLE.
5. Lastly, if step 2 did not return a value, then use the Oracle Text API to grant
permission to the newly created database role with the following statement:
EXEC ctxsys.ctx_adm.set_parameter('file_access_role', 'APEX_URL_DATASTORE_
ROLE');
About Safe Item Display Types When session state is referenced in this way, the value
emitted to the page will not have special characters (<, >, &, ") escaped if the
referenced item is one of the following safe item display types:
■ Display as Text (does not save state)
■ Display as Text (escape special characters, does not save state)
■ Display as Text (based on LOV, does not save state)
■ Display as Text (based on PL/SQL, does not save state)
■ Text Field (Disabled, does not save state)
■ Stop and Start HTML Table (Displays label only)
If the referenced item has a display type other than one of the above types, the value
emitted to the page will have special characters escaped. Although application-level
items are also considered to have a safe display type, they do not actually have display
properties like form items do.
About the Rules Used to Determine Whether to Escape Values The Application Express
engine uses predefined smart escaping rules to determine if and when to escape
values fetched from session state.
The reason for these rules is that items that use the display types listed previously are
often for text containing HTML that is intended to be emitted to the browser without
being filtered (that is, escaped). The only way this can be made safe is by the
enforcement of the rule that these types of items are always escaped on input to the
application. For example, if a user passes some text into a safe item using an Oracle
Application Express f?p URL syntax, the Application Express engine escapes special
characters when saving the value into session state. This has two intended results:
1. If the value contained no special characters, the value passed in is saved into
session state exactly as it was provided.
2. If the value contained special characters, those characters are escaped when the
value is saved into session state.
In either situation, the item can now safely be referenced using an &ITEM. notation in
any HTML region or other static area mentioned previously.
Using Safe Item Types to Hold and Emit HTML Markup You can use the safe item types listed
previously to hold and emit HTML markup to the browser. For example, suppose you
have a requirement to render some text in bold face by referencing a safe page item
named P1_XXX (using &P1_XXX.) The item P1_XXX is presumed to contain the
following HTML:
<b>ABABABAB</b>
You can achieve this by using application controls (computations, processes, item
source expressions, item default values, and so on) to store values into these safe
items. When values are introduced in this way, you ensure the safety of the content.
When you use these methods, the Application Express engine does not escape any
special characters when saving the values into session state.
Finally, the safety of safe items is ensured by a rule that prevents those items from
being posted on a page and submitted to the Application Express engine as part of a
page submission.
If the value of the item fetched from session state could contain unintended tags or
scripts, you might want to use the following in the region:
htp.p(htf.escape_sc(v(‘SOME_ITEM’)));
However, if you are confident that the fetched value is safe for rendering, you do not
need to escape the value. As a developer, you need to determine when it is appropriate
to not escape output.
As a best practice, follow this rule:
■ Never emit an item fetched from session state without escaping it unless the item
is one of the safe types described in "About Safe Item Display Types" on
page 13-11.
The reason for this is that as a developer, there is no way you can prevent a hacker
from posting a malicious value into a non-safe item. Even if your application does not
present these items visibly to ordinary users, be aware that a hacker can mount a XSS
attack using your application if you do not follow this rule.
Enabling Session State Protection from Edit Security Attributes To enable Session State
Protection from the Edit Security Attributes page:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. Click the Shared Components icon.
4. Under Security, click Edit Security Attributes.
5. Scroll down to Session State Protection and select Enabled from the Session State
Protection list.
6. To configure session Session State Protection, click Manage Session State
Protection.
The Session State Projection page appears.
7. Navigate to the Edit Security Attributes page to set page and item security
attributes.
About the Expire Bookmarks Button Enabling Session State Protection affects whether
bookmarked links to the current application will work. Consider the following rules:
1. Bookmarked links created after Session State Protection is enabled will work if the
bookmarked link contains a checksum.
2. Bookmarked links created before Session State Protection is enabled will not work
if the bookmarked link contains a checksum.
3. Bookmarks that do not contain checksums or contain unnecessary checksums will
not be affected by Session State Protection.
During page rendering, the Application Express engine uses a hidden application
attribute (a checksum salt) during computation and to verify checksums included in
f?p URLs. When you enable Session State Protection, the Application Express engine
includes checksums. You can reset the checksum salt attribute by clicking Expire
Bookmarks on the Edit Security Attributes page. Note that if you click Expire
Bookmarks, bookmarked URLs used to access your application that contain
previously generated checksums will fail.
Enabling Session State Protection from Session State Protection To enable Session State
Protection:
1. Navigate to the Shared Components page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. Click Shared Components.
d. Under Security, select Session State Protection.
The Session State Protection page appears. Note the current Session State
Protection status (Enabled or Disabled) displays at the top of the page.
2. Click the Set Protection button.
The Session State Protection wizard appears.
3. Under Select Action, select Enable and click Next.
Next, determine whether to set security attributes for pages and items.
4. Select Enable and click Next.
5. Click Enable Session State Protection.
Tip: To disable Session State Protection, perform the same steps, but
select Disable instead of Enable. Disabling Session State Protection
will not change existing security attribute settings, but those attributes
will be ignored at run time.
■ Use a wizard and select a value for specific attribute categories. Those selections
will then be applied to all pages and items within the application.
■ Configure values for individual pages, items, or application items.
Topics in this section include:
■ Reviewing Existing Session State Protection Settings
■ Configuring Session State Protection Using a Wizard
■ Configuring Session State Protection for Pages
■ Configuring Session State Protection for Items
■ Configuring Session State Protection for Application Items
Tip: Before you can configure security attributes, you must first
enable Session State Protection. See "Enabling Session State
Protection" on page 13-14.
Reviewing Existing Session State Protection Settings You can review a summary of Session
State Protection settings for pages, items, and application items on the first page of the
Session State Protection wizard.
To view summaries of existing Session State Protection settings:
1. Navigate to the Session State Protection page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. Click Shared Components.
d. Under Security, select Session State Protection.
The Session State Protection page appears.
2. Click Set Protection.
3. Expand the following reports at the bottom of the page:
■ Page Level Session State Protection Summary
■ Page Item Session State Protection Summary
■ Application Item Session State Protection
Configuring Session State Protection Using a Wizard When you configure Session State
Protection using a wizard, you set a value for specific attribute categories. Those
selections are then applied to all pages and items within the application.
To configure Session State Protection using a wizard:
1. Navigate to the Session State Protection page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. Click Shared Components.
d. Under Security, select Session State Protection.
The Session State Protection page appears.
2. Click Set Protection.
Configuring Session State Protection for Pages To configure Session State Protection for
Pages:
1. Navigate to the Session State Protection page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. Click Shared Components.
d. Under Security, select Session State Protection.
The Session State Protection page appears.
2. Click the Page icon.
3. To filter the view, use the Page, Display, and Page Access Protection lists at the top
of the page.
4. Select a page number.
The Set Page and Item Protection page appears. The following information
displays at the top of the page:
■ Application ID and name
■ Session State Protection status (Enabled or Disabled)
■ Page Number
■ Page name
5. For Page Access Protection, select one of the following:
■ Unrestricted - The page may be requested using a URL with or without
session state arguments (Request, Clear Cache, Name/Values).
■ Arguments Must Have Checksum - If Request, Clear Cache, or Name/Value
arguments appear in the URL, a checksum must also be provided. The
checksum type must be compatible with the most stringent Session State
Protection attribute of all the items passed as arguments.
■ No Arguments Allowed - A URL may be used to request the page but no
Request, Clear Cache, or Name/Value arguments are allowed.
■ No URL Access - The page may not be accessed using a URL; however, the
page may be the target of a Branch to Page branch type, which does not do a
URL redirect.
6. For Item Types, select Data Entry Items or Display-only Items.
Data Entry items are items that can be altered using forms and include hidden
items. Display-Only items are rendered only and are not submitted with the form.
7. If you select Data Entry Items, select a session state protection level for each item:
■ Unrestricted - The item's session state may be set by passing the item
name/value in a URL or in a form. No checksum is required in the URL.
■ Checksum Required: Application Level - The item's session state may be set
by passing the item name/value in a URL if a checksum specific to the schema
is provided. A user-level checksum or a session-level checksum will also
suffice (see next bullets). Use this option when you want to allow the item to
be set only by URLs having checksums that were generated by any user
running the same application in the current workspace but in a different
session.
■ Checksum Required: User Level - The item's session state may be set by
passing the item name/value in a URL if a checksum specific to the
workspace, application, and user is provided. A session-level checksum will
also suffice (see next bullet). Use this option when you want to allow the item
to be set only by URLs having checksums that were generated by the same
named user, running the same application in the current workspace but in a
different session.
■ Checksum Required: Session Level - The item's session state may be set by
passing the item name/value in a URL if a checksum specific to the current
session is provided. Use this option when you want to allow this item to be set
only by URLs having checksums that were generated in the current session.
8. If you select Display-only Item, select a session state protection level for each
item:
■ Unrestricted - The item may be set by passing the item name/value in a URL
or in a form. No checksum is required in the URL.
■ Restricted: May not be set from browser - The item may not be altered using
the URL or POSTDATA. Use this when you want to restrict the way that the
item value can be set to internal processes, computations, and so on. This
attribute is always observed, even if Session State Protection is disabled. This
attribute may be used with any of these Display As types:
– Display as Text (escape special characters, does not save state)
– Display as Text (does not save state)
– Display as Text (based on LOV, does not save state)
– Display as Text (based on PLSQL, does not save state)
– Text Field (Disabled, does not save state)
– Stop and Start HTML Table (Displays label only)
■ Checksum Required: Application Level - The item's session state may be set
by passing the item name/value in a URL if a checksum specific to the schema
is provided. A user-level checksum or a session-level checksum will also
suffice (see next bullets). Use this option when you want to allow the item to
be set only by URLs having checksums that were generated by any user
running the same application in the current workspace but in a different
session.
■ Checksum Required: User Level - The item's session state may be set by
passing the item name/value in a URL if a checksum specific to the
Configuring Session State Protection for Items To configure Session State Protection for
items:
1. Navigate to the Session State Protection page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. Click Shared Components.
d. Under Security, select Session State Protection.
The Session State Protection page appears.
2. Click the Item icon.
3. To filter the view, select from the Page, Display, and Item Session State Protection
lists at the top of the page and click Go.
4. Select a page number.
The Edit Session State Protection for Page and Items page appears. The following
information displays at the top of the page:
■ Application ID and name
■ Session State Protection status (Enabled or Disabled)
■ page Number
■ Page name
5. For Page Access Protection, select a session state protection level for each item:
■ Unrestricted - The page may be requested using a URL with or without
session state arguments (Request, Clear Cache, Name/Values).
■ Arguments Must Have Checksum - If Request, Clear Cache, or Name/Value
arguments appear in the URL, a checksum must also be provided. The
checksum type must be compatible with the most stringent Session State
Protection attribute of all the items passed as arguments.
■ No Arguments Allowed - A URL may be used to request the page but no
Request, Clear Cache, or Name/Value arguments are allowed.
■ No URL Access - The page may not be accessed using a URL, however the
page may be the target of a Branch to Page branch type, which does not do a
URL redirect.
6. For Item Types, select Data Entry Items or Display-only Items.
Data Entry items are items that can be altered using forms and include hidden
items. Display-Only items are rendered only and are not submitted with the form.
7. If you select Data Entry Items, select a session state protection level for each item:
■ Unrestricted - The item's session state may be set by passing the item
name/value in a URL or in a form. No checksum is required in the URL.
■ Checksum Required: Application Level - The item's session state may be set
by passing the item name/value in a URL if a checksum specific to the schema
is provided. A user-level checksum or a session-level checksum will also
suffice (see next bullets). Use this option when you want to allow the item to
be set only by URLs having checksums that were generated by any user
running the same application in the current workspace but in a different
session.
■ Checksum Required: User Level - The item's session state may be set by
passing the item name/value in a URL if a checksum specific to the
workspace, application, and user is provided. A session-level checksum will
also suffice (see next bullet). Use this option when you want to allow the item
to be set only by URLs having checksums that were generated by the same
named user, running the same application in the current workspace but in a
different session.
■ Checksum Required: Session Level - The item's session state may be set by
passing the item name/value in a URL if a checksum specific to the current
session is provided. Use this option when you want to allow this item to be set
only by URLs having checksums that were generated in the current session.
8. If you select Display-only Item, select a session state protection level for each
item:
■ Unrestricted - The item may be set by passing the item name/value in a URL
or in a form. No checksum is required in the URL.
■ Restricted: May not be set from browser - The item may not be altered using
the URL or POSTDATA. Use this when you want to restrict the way that the
item value can be set to internal processes, computations, and so on. This
attribute is always observed, even if Session State Protection is disabled. This
attribute may be used with any of these Display As types:
– Display as Text (escape special characters, does not save state)
– Display as Text (does not save state)
– Display as Text (based on LOV, does not save state)
– Display as Text (based on PLSQL, does not save state)
– Text Field (Disabled, does not save state)
– Stop and Start HTML Table (Displays label only)
■ Checksum Required: Application Level - The item's session state may be set
by passing the item name/value in a URL if a checksum specific to the schema
is provided. A user-level checksum or a session-level checksum will also
suffice (see next bullets). Use this option when you want to allow the item to
be set only by URLs having checksums that were generated by any user
running the same application in the current workspace but in a different
session.
■ Checksum Required: User Level - The item's session state may be set by
passing the item name/value in a URL if a checksum specific to the
workspace, application, and user is provided. A session-level checksum will
also suffice (see next bullet). Use this option when you want to allow the item
to be set only by URLs having checksums that were generated by the same
named user, running the same application in the current workspace but in a
different session.
■ Checksum Required: Session Level - The item's session state may be set by
passing the item name/value in a URL if a checksum specific to the current
session is provided. Use this option when you want to allow this item to be set
only by URLs having checksums that were generated in the current session.
9. Click Apply Changes.
Configuring Session State Protection for Application Items To configure Session State
Protection for application items:
1. Navigate to the Session State Protection page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. Click Shared Components.
d. Under Security, select Session State Protection.
The Session State Protection page appears.
2. Click the Application Item icon.
3. Select an application item.
4. Under Security, select one of the following from the Session State Protection list:
■ Unrestricted - The item's session state may be set by passing the item
name/value in a URL or in a form. No checksum is required in the URL.
■ Restricted - May not be set from browser - The item may not be altered using
the URL or POSTDATA. Use this option when you want to restrict the way
that the item value can be set to internal processes, computations, and so on.
This attribute is only applicable only to items that cannot be used as data entry
items and is always observed even if Session State Protection is disabled. This
attribute may be used for application items or for page items with any of these
Display As types:
– Display as Text (escape special characters, does not save state)
– Display as Text (does not save state)
– Display as Text (based on LOV, does not save state)
– Display as Text (based on PLSQL, does not save state)
– Text Field (Disabled, does not save state)
– Stop and Start HTML Table (Displays label only)
■ Checksum Required: Application Level - The item's session state may be set
by passing the item name/value in a URL if a checksum specific to the schema
is provided. A user-level checksum or a session-level checksum will also
suffice (see next bullets). Use this option when you want to allow the item to
be set only by URLs having checksums that were generated by any user
running the same application in the current workspace but in a different
session.
■ Checksum Required: User Level - The item's session state may be set by
passing the item name/value in a URL if a checksum specific to the
workspace, application, and user is provided. A session-level checksum will
also suffice (see next bullet). Use this option when you want to allow the item
to be set only by URLs having checksums that were generated by the same
named user, running the same application in the current workspace but in a
different session.
■ Checksum Required: Session Level - The item's session state may be set by
passing the item name/value in a URL if a checksum specific to the current
session is provided. Use this option when you want to allow this item to be set
only by URLs having checksums that were generated in the current session.
5. Click Apply Changes.
Either of these methods results in the uploaded files being stored in schema tables and
not the public table.
You can use APP_USER to perform your own security checks and conditional
processing. For example, suppose you created the following table:
CREATE TABLE my_security_table (
user_id VARCHAR2(30),
privilege VARCHAR2(30));
Once created, you could populate this table with user privilege information and then
use it to control the display of pages, tabs, navigation bars, buttons, regions, or any
other control or component.
determines whether the Application Express engine processes the page normally
or displays a failure page. See "Creating an Authorization Scheme" on page 13-34.
Database Account Credentials is a good choice if having one database account for each
named user of your application is feasible and account maintenance using database
tools meets your needs
Setting Up Oracle Application Server Single Sign-On To set up Oracle Application Server
Single Sign-On:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. On the Application home page, click Shared Components.
The Shared Components page appears.
4. Under Security, select Authentication Schemes.
5. On the Authentication Schemes page, click Create.
6. Select Based on a pre-configured scheme from the gallery.
7. From Gallery, select one of the following:
■ Oracle Application Server Single Sign-On (Application Express engine as
Partner App) delegates authentication to the Oracle AS Single Sign-On (SSO)
Server. To use this authentication scheme, your site must have been registered
as a partner application with the SSO server.
■ Oracle Application Server Single Sign-On (My application as Partner App)
delegates authentication to the SSO server. Requires that you register an
application with SSO as a partner application.
8. Enter a name and click Create Scheme.
the original link. Deep linking is supported for applications that use authentication
schemes.
to the appropriate attributes page and select an authorization scheme from the
Authorization Scheme list.
Keep in mind, if you specify that an authorization scheme should be evaluated once
for each session and the authorization scheme passes, the underlying code, test, or
query will not be executed again for the duration of the application session. If your
authorization scheme consists of a test whose results might change if evaluated at
different times during the session, then you should specify that the evaluation point be
once for each page view.
Subscription
Use the Authorization Scheme Subscription report to view details about authorization
schemes subscription.
Utilization
Use the Authorization Scheme Utilization report to view details about authorization
schemes utilization.
To view additional reports indicating which pages having authorization schemes and
which do not, select one of the following from the Tasks list:
■ Report Pages With Authorization Schemes
■ Report Pages Without Authorization Schemes
This section describes how to package an application built within Application Builder.
This section contains the following topics:
■ About the Oracle Application Express Application Development Life Cycle
■ Understanding the Packaging Process
■ How to Move an Application to Another Development Instance
■ How to Create a Packaged Application
■ Exporting an Application and Related Files
■ Importing Export Files
■ Installing Export Files
■ About Publishing the Application URL
■ Using Build Options to Control Configuration
2. Requirements Definition
3. Design
4. Development
5. Integration and Testing
6. Installation and Acceptance
7. Maintenance
This methodology is referred to as a waterfall because the output from one stage is the
input for the next stage. One of the primary problems with this approach is that it is
assumed that all requirements can be established in advance. Unfortunately,
requirements often change and evolve during the development process.
The Oracle Application Express development environment enables developers to take
a more iterative approach to development. Unlike many other development
environments, creating prototypes is easy. With Oracle Application Express,
developers can:
■ Use built-in wizards to quickly design an application user interface
■ Make protoypes available to users and gather feedback
■ Implement changes in real time, creating new prototypes instantly
Other methodologies that work well with Oracle Application Express include:
■ Spiral - This approach is actually a series of short waterfall cycles. Each waterfall
cycle yields new requirements and enables the development team to create a
robust series of prototypes.
■ Rapid application development (RAD) life cycle - This approach has a heavy
emphasis on creating a prototype that closely resembles the final product. The
prototype is an essential part of the requirements phase. One disadvantage of this
model is that the emphasis on creating the prototype can cause scope creep;
developers can lose sight of their initial goals in the attempt to create the perfect
application.
Edit Definition page), or use a built-in substitution string (such as APP_ID and APP_
ALIAS). Using a substitution string is the better approach because it enables you to
change the application ID without affecting any application functionality.
Tip: You can also move the application definition and all supporting
objects manually. See "Exporting an Application and Related Files" on
page 14-12.
If the target schema is different from the schema used in the development
environment, you need to migrate the database objects referenced by the application.
In many cases, this process can be as simple as using Oracle database export and
import utilities to copy the application schema from the development environment to
target instance. The following are two common scenarios where this approach does not
work:
■ When the object development schema refers to tablespaces to which the target
instance schema does not have access
■ When the development instance schema has sample data that you do not want to
migrate to the target instance schema
If a database administrator or an Oracle Application Express administrator is the
person responsible for exporting Oracle Application Express applications, be sure to
clearly communicate if he or she:
■ Should include all data when exporting your application
■ Should not include data from specific tables you identify
After users import and install the application definition, a wizard guides them
through a few simple configuration steps. Then, the wizard asks whether to install the
supporting application objects. Users have the option of installing the supporting
application objects then or doing it later.
From a developer’s perspective, this feature has a number of advantages:
■ Ensures that the supporting objects are created in the correct order.
■ Provides users with an automated process for deploying an application quickly
using very few steps.
■ Gives users the option to install supporting application objects when they import
and install the application definition or at a later time. See "Installing Supporting
Objects" on page 14-9.
■ Enables users and developers with a convenient method for removing the
application definition, supporting files, and all database objects. See "Deinstalling
Supporting Objects" on page 14-11.
■ Enables users and developers with an easy way to upgrade a previously released
packaged application. See "Upgrading a Packaged Application" on page 14-10.
Plus, you can also take advantage of the Deinstall and Install features to quickly edit
the underlying database objects that support an application. For example, you can
deinstall and remove all database objects, edit the underlying database object creation
scripts, and reinstall to create the redefined application objects.
Installation Use the links under Installation to define the following types of
information:
■ Prerequisites. Defines built-in checks required before installing the application,
including required free disk space, required system privileges, and schema object
restrictions.
■ Application substitution strings. Lists static substitution strings defined for the
application. You can define static substitution strings for phrases or labels that
occur in many places within an application. See "Substitutions" on page 4-13.
When packaging an application, you can include prompts for substitution strings
which users can specify when they install the packaged application.
■ Build Options. Lists build options defined for this application. You can use build
options to conditionally display specific functionality within an application. See
"Using Build Options to Control Configuration" on page 14-29 and "Exporting
Build Options or Build Option Status" on page 14-30.
When packaging an application, you can include prompts for specific build
options which display when the application is installed.
■ Pre-installation Validations. Lists validations defined for the packaged
application. Similar to normal page validations, these validations prevent a user
from installing database objects if the user-defined conditions are not satisfied. To
create a new validation, click Create and follow the on-screen instructions.
■ Installation Scripts. Enables a you to define multiple installation scripts that
install supporting objects for the application. To create a new script, click Create
and follow the on-screen instructions. To edit an existing script, click the Edit icon.
Message Use the links under Message to define message to display when the user
installs or deinstalls the application. Supported HTML tags include <b>, <i>, <u>,
<p>, <br>, <hr>, <ul>, <ol>, <li>, and <pre>. Available message types include:
■ Welcome
■ License
■ Application Substitutions
■ Build Options
■ Validations
■ Confirmation
■ Post Installation
■ Upgrade
■ Deinstallation
Note that when these messages display, only a limited set of HTML tags are
recognized in order to prevent a cross site-scripting (XSS) attack. See "Understanding
Cross-Site Scripting Protection" on page 13-11.
Upgrade Click Upgrade scripts to define scripts to upgrade database objects, images,
and seed data when upgrading an existing application. See "Upgrading a Packaged
Application" on page 14-10.
Deinstallation Click Deinstallation script to define a script to drop database objects and
static files created by the installation scripts. To edit an existing script, click the Edit
icon.
Adding Installation Scripts for an Image, Cascading Style Sheet, or Static File
You can create installation scripts for images, cascading style sheets, and static files
you have previously uploaded for your application or workspace on the Installation
Scripts page. Oracle Application Express uses the name of the file you select as the
name for each new script. It also adds corresponding API calls to the end of the
deinstallation script (or creates one if one does not already exist), which removes the
selected files when the application’s supporting objects are deinstalled.
To create installation scripts for an image, cascading style sheet, or static file:
1. Navigate to the Supporting Objects page:
a. On the Workspace home page, click the Application Builder icon.
b. Select the application.
The Application home page appears.
c. Click Supporting Objects.
The Supporting Objects page appears.
2. Under Installation, click Installation scripts.
The Installation Scripts page appears.
3. Click Create.
4. At the bottom of the page, click Create Script to Install Files.
A list of available cascading style sheets, images, and static files appears.
5. Select the files to include with your packaged application and click Create Script.
Use the Detect Existing Supporting Objects section to determine if the appropriate
objects are installed or need to be upgraded.
6. In Query to Detect Existing Supporting Objects, enter a query in the field provided
that returns at least one row if the supporting objects exist.
This query determines whether the user who installs the packaged application is
prompted to run the installation scripts or the upgrade scripts.
7. Follow the on-screen instructions.
Exporting an Application
When you export an application, Oracle Application Express generates a text file
containing PL/SQL API calls.
To export an application:
1. Navigate to the Export page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. On the Application home page, click Export/Import.
d. On the Export/Import page, click Export and then click Next.
2. From Application, select the application to be exported.
3. From File Format, select how rows in the export file will be formatted:
■ Choose UNIX to have the resulting file contain rows delimited by line feeds.
■ Choose DOS to have the resulting file contain rows delimited by carriage
returns and line feeds.
4. From Owner Override, optionally select another owner. By default, the application
is owned by the owner identified in the application attribute owner.
5. From Build Status Override, select one of the following:
■ Run Application Only - Developers can only run an application
■ Run and Build Application - Developers can both run and edit an application
Selecting Run Application Only is an effective way to protect an application from
modifications from other developers.
Tip: If you select Run Application Only, you cannot set the
argument p_trace to Yes. See "Using Build Options to Control
Configuration" on page 14-29. Also, the only way to change this
setting after you import the application, is to log in to Oracle
Application Express Administration Services. See "Changing
Application Build Status Set During Deployment" in Oracle Application
Express Administration Guide.
See Also: "Enabling SQL Tracing and Using TKPROF" on page 12-2
■ Choose UNIX to have the resulting file contain rows delimited by line feeds.
■ Choose DOS to have the resulting file contain rows delimited by carriage
returns and line feeds.
5. Use the As of field to export a page as it was previously defined. Specify the
number of minutes in the field provided.
This utility uses the DBMS_FLASHBACK package. Because the timestamp to System
Change Number (SCN) mapping is refreshed approximately every five minutes,
you may have to wait that amount of time to locate the version for which you are
looking. The time undo information is retained and influenced by the startup
parameter UNDO_RETENTION (the default is three hours). However, this only
influences the size of the undo tablespace. While two databases may have the
same UNDO_RETENTION parameter, you are able to go back further in time on a
database with fewer transactions because it is not filling the undo tablespace,
forcing older data to be archived.
6. Click Export Page.
Exporting Images
Use the Export Images utility to export uploaded images. When you export images
using this utility, the images are converted to a text document. Note that you can use
this utility to export only uploaded images.
To export upload images:
Exporting Themes
Use the Export Theme utility to export themes from one Oracle Application Express
development instance to a file.
– Choose UNIX to have the resulting file contain rows delimited by line
feeds.
– Choose DOS to have the resulting file contain rows delimited by carriage
returns and line feeds.
c. Click Export User Interface Defaults.
Exporting User Interface Defaults from the User Interface Defaults Page
To export User Interface Defaults from the User Interface Defaults page:
1. On the Workspace home page, click the Application Builder icon.
2. Select an application.
3. On the Application Builder home page, click Shared Components.
4. Under User Interface, select User Interface Defaults.
The User Interface Defaults page appears.
5. From the Tasks list, click Export.
6. On the Export User Interface Defaults page, select the following:
a. Schema - Select the schema that owns the table associated with the User
Interface Defaults.
b. File Format - Select how rows in the export file will be formatted:
– Choose UNIX to have the resulting file contain rows delimited by line
feeds.
– Choose DOS to have the resulting file contain rows delimited by carriage
returns and line feeds.
c. Click Export User Interface Defaults.
Where Images, CSS, and Script Files Are Stored When Using Oracle HTTP Server
In an Oracle HTTP Server or Oracle Application Server configuration, images are
stored on the file system in the location referenced by the alias /i/. To locate the
images directory on the file system, review the following files and search for the text
alias /i/:
■ Oracle9i HTTP Server Release 2—see the httpd.conf file.
■ Oracle HTTP Server distributed with Oracle Database 11g—see the dads.conf
file.
■ Oracle Application Server 10g—see the marvel.conf file.
Specific examples for locating the text alias /i/ can be found in Oracle Application
Express Installation Guide
Where Images, CSS, and Script Files Are Stored When Using the Embedded
PL/SQL Gateway
When running Oracle Application Express with the embedded PL/SQL gateway,
images are stored directly in the database within the Oracle XML DB repository. You
can access images by using the WebDAV feature of Oracle XML DB or by using FTP. To
learn more, see "Using Protocols to Access the Repository" in Oracle XML DB
Developer's Guide.
Tip: If you select Run Application Only, the only way to change this
setting after you import the application is to log in to Oracle
Application Express Administration Services. See "Changing
Application Build Status Set During Deployment" in Oracle Application
Express Administration Guide.
See Also: "Using Custom Cascading Style Sheets" on page 10-40 and
"Exporting Cascading Style Sheets" on page 14-16
Importing Images
After you import an application into the target Oracle Application Express instance,
you must import all related files.
To import an Image Export file:
1. Navigate to the Import page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. On the Application home page, click Export/Import.
d. On the Export/Import page, click Import and click Next.
2. On Import Definition, select the following:
a. Import file - Click Browse and navigate to the file.
b. File Type - Select Image Export.
c. File Character Set - Verify that File Character Set is correct.
d. Click Next.
Once you import a file, you have the option to install it.
3. To install an imported file, click Next.
4. Click Install Image.
Importing Themes
After you import an application into the target Oracle Application Express instance,
you must import all related files.
To import a Theme Export file:
1. Navigate to the Import page:
a. On the Workspace home page, click the Application Builder icon.
b. Select an application.
c. On the Application home page, click Export/Import.
d. On the Export/Import page, click Import and click Next.
2. On Import Definition, select the following:
a. Import file - Click Browse and navigate to the file.
b. File Type - Select Theme Export.
c. File Character Set - Verify that File Character Set is correct.
d. Click Next.
Once you import a file, you have the option to install it.
3. To install an imported file, click Next.
4. Click Install Theme.
Tip: You can also access the Export Repository by clicking Export
Repository on the Tasks list on either the Application home or
Application Builder home pages.
Tip: If you select Run Application Only, the only way to change this
setting after you import the application is to log in to Oracle
Application Express Administration Services. See "Changing
Application Build Status Set During Deployment" Oracle Application
Express Administration Guide.
The Run icon gets its value from the Home link attribute on the Edit Security
Attributes page. This link is only referenced by this icon and by applications that do
not use the Oracle Application Express Login API. Consider the following example:
http://apex.somewhere.com/pls/apex/f?p=11563:1:3397731373043366363
Where:
■ apex.somewhere.com is the URL of the server.
■ pls is the indicator to use the mod_plsql cartridge.
■ apex is the database access descriptor (DAD) name. The DAD describes how
Oracle HTTP Server connects to the database server so that it can fulfill an HTTP
request. The default value is apex.
■ f?p= is a prefix used by Oracle Application Express.
■ 11563 is the application being called.
■ 1 is the page within the application to be displayed.
■ 3397731373043366363 is the session number.
To run this example application, you would use the URL:
http://apex.somewhere.com/pls/apex/f?p=11563:1
See Also: "Accessing the Edit Security Attributes Page" on page 4-15
feature by changing the status of the build option to INCLUDE and then exporting the
Build Option Status.
Once you apply the Build Options Status to the production instance, the new feature
appears.
Note: The Utilization tab only appears on the Build Options page
after you create a build option.
About APEX_DML_LOCK_WAIT_TIME
You can set the value of an application substitution string, an application item, or a
page item to APEX_DML_LOCK_WAIT_TIME to control the DML operation. The
following values are supported:
■ If null (the default), results in the same behavior as previous versions of Oracle
Application Express, that is, wait indefinitely.
■ If 0, fail immediately if the row is locked by another database session.
■ If > 0 and the row is locked, wait for the specified number of seconds.
When set in an application, the value for APEX_DML_LOCK_WAIT_TIME applies to all
UPDATE and DELETE DML operations using Automatic DML in the entire application.
To control a specific Automatic DML process, update the value of APEX_DML_LOCK_
WAIT_TIME before the Automatic DML process and reset it after the Automatic DML
process. Note that this does not affect updates and deletes using tabular forms.
About FSP_DML_LOCK_ROW
You can also set the value of an application substitution string, an application item, or
a page item to FSP_DML_LOCK_ROW to control the DML operation. The following
values are supported:
■ If the value is set to FALSE, then no SELECT FOR UPDATE will be issued.
■ If the value is anything other than FALSE, the default behavior of SELECT FOR
UPDATE is performed when issuing an UPDATE or DELETE DML operation using
Automatic DML.
2. Select the object type Database Links at the top of the page.
See Also: Oracle Database PL/SQL Packages and Types Reference for
more information about the UTL_SMTP package and "APEX_
MAIL" in Oracle Application Express API Reference
Using Collections
Collections enable you to temporarily capture one or more nonscalar values. You can
use collections to store rows and columns currently in session state so they can be
accessed, manipulated, or processed during a user's specific session. You can think of a
collection as a bucket in which you temporarily store and name rows of information.
The following are examples of when you might use collections:
■ When you are creating a data-entry wizard in which multiple rows of information
first need to be collected within a logical transaction. You can use collections to
temporarily store the contents of the multiple rows of information, before
performing the final step in the wizard when both the physical and logical
transactions are completed.
■ When your application includes an update page on which a user updates multiple
detail rows on one page. The user can make many updates, apply these updates to
a collection and then call a final process to apply the changes to the database.
■ When you are building a wizard where you are collecting an arbitrary number of
attributes. At the end of the wizard, the user then performs a task that takes the
information temporarily stored in the collection and applies it to the database.
Topics in this section include:
■ About the APEX_COLLECTION API
■ Creating a Collection
■ Truncating a Collection
■ Accessing a Collection
■ Deleting a Collection
■ Adding Members to a Collection
■ Updating Collection Members
Creating a Collection
Every collection contains a named list of data elements (or members) which can have
up to 50 character attributes (VARCHAR2(4000)), and one large character attribute
(CLOB). You use the following methods to create a collection:
■ CREATE_COLLECTION
■ CREATE_OR_TRUNCATE_COLLECTION
■ CREATE_COLLECTION_FROM_QUERY
■ CREATE_COLLECTION_FROM_QUERY_B
The CREATE_COLLECTION method raises an exception if the named collection exists,
for example:
APEX_COLLECTION.CREATE_COLLECTION(
p_collection_name => collection name );
Truncating a Collection
If you truncate a collection, you remove all members from the specified collection, but
the named collection remains in place, for example:
APEX_COLLECTION.TRUNCATE_COLLECTION(
p_collection_name => collection name );
Accessing a Collection
You can access the members of a collection by querying the database view APEX_
COLLECTIONS. The APEX_COLLECTIONS view has the following definition:
COLLECTION_NAME NOT NULL VARCHAR2(255)
SEQ_ID NOT NULL NUMBER
C001 VARCHAR2(4000)
C002 VARCHAR2(4000)
C003 VARCHAR2(4000)
C004 VARCHAR2(4000)
C005 VARCHAR2(4000)
...
C050 VARCHAR2(4000)
CLOB001 CLOB
MD5_ORIGINAL VARCHAR2(4000)
Use the APEX_COLLECTIONS view in an application just as you would use any other
table or view in an application, for example:
SELECT c001, c002, c003
FROM APEX_collections
WHERE collection_name = 'FIREARMS'
Deleting a Collection
If you delete a collection, you delete the collection and all of its members, for example:
APEX_COLLECTION.DELETE_COLLECTION (
p_collection_name => collection name );
Be aware that if you do not delete a collection, it will eventually be deleted when the
session is purged. For example:
You can also add new members (or an array of members) to a collection using the
ADD_MEMBERS method, for example:
APEX_COLLECTION.ADD_MEMBERS(
p_collection_name => collection name,
p_c001 => member attribute array 1,
p_c002 => member attribute array 2,
p_c003 => member attribute array 3,
p_c004 => member attribute array 4,
p_c005 => member attribute array 5,
p_c006 => member attribute array 6,
p_c007 => member attribute array 7,
...
p_c050 => member attribute array 50);
p_generate_md5 => 'YES' or 'NO');
This method raises an error if the specified collection does not exist with the specified
name of the current user and in the same session. Also any attribute exceeding 4,000
characters will be truncated to 4,000 characters. The number of members added is
based on the number of elements in the first array.
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE(
p_collection_name => collection_name,
p_seq => member sequence number,
p_clob_number => CLOB member attribute number,
p_clob_value => CLOB member attribute value );
Note that this procedure leaves a gap in the sequence IDs in the specified collection. In
addition, calling this procedure causes an error if the named collection does not exist.
You can also delete all members from a collection by when an attribute matches a
specific value, for example:
APEX_COLLECTION.DELETE_MEMBERS(
p_collection_name => collection name,
p_attr_number => number of attribute used to match for the specified
attribute value for deletion,
p_attr_value => attribute value of the member attribute used to
match for deletion);
Note that the DELETE_MEMBERS procedure also leaves a gap in the sequence IDs in
the specified collection. This procedure causes an error if:
■ The named collection does not exist.
■ The specified attribute number is outside the range of 1 to 50, or not valid.
If the supplied attribute value is null, then all members of the named collection will be
deleted where the attribute (specified by p_attr_number) is null.
Once this flag has been reset, you can determine if a collection has changed by calling
COLLECTION_HAS_CHANGED, for example:
l_changed := APEX_COLLECTION.COLLECTION_HAS_CHANGED(
p_collection_name => collection_name);
When you add a new member to a collection, an MD5 message digest is computed
against all 50 attributes and the CLOB attribute if the p_generated_md5 parameter is
set to YES. You can access this value from the MD5_ORIGINAL column of the view
APEX_COLLECTION. You can access the MD5 message digest for the current value of a
specified collection member by using the function GET_MEMBER_MD5. For example:
APEX_COLLECTION.GET_MEMBER_MD5 (
p_collection_name => collection name,
p_seq => member sequence number );
RETURN VARCHAR2;
Merging Collections
You can merge members of a collection with values passed in a set of arrays. By using
the p_init_query argument, you can create a collection from the supplied query.
Note that if the collection exists, the following occurs:
■ Rows in the collection not in the arrays will be deleted.
■ Rows in the collection and in the arrays will be updated.
■ Rows in the array and not in the collection will be inserted.
Any attribute value exceeding 4,000 characters will be truncated to 4,000 characters.
Table 15–1 describes the available arguments you can use when merging collections.
Managing Collections
You can use the following utilities to manage collections.
Topics in this section include:
■ Obtaining a Member Count
■ Resequencing a Collection
■ Verifying Whether a Collection Exists
Resequencing a Collection
Use RESEQUENCE_COLLECTION to resequence a collection to remove any gaps in
sequence IDs while maintaining the same element order, for example:
APEX_COLLECTION.RESEQUENCE_COLLECTION (
p_collection_name => collection name )
Note that while using either of these methods an application error displays:
■ If the named collection does not exist for the current user in the current session
■ If the member specified by the p_seq sequence ID does not exist
However, an application error will not be returned if the specified member has the
highest or lowest sequence ID in the collection (depending on if you are calling MOVE_
MEMBER_UP or MOVE_MEMBER_DOWN).
You can also use the sixth f?p syntax argument to clear session state, for example:
f?p=App:Page:Session::NO:collection name
To conserve space in the activity log, only the first log entry of each unique session will
contain the IP address and Web browser user agent.
The following example demonstrates how to create a report that displays the total
number of page views and the average page view time in the past 24 hours for
application 9529, and grouped by userid:
SELECT COUNT(*), AVG(elap), userid
FROM APEX_ACTIVITY_LOG
WHERE time_stamp > (SYSDATE-1)
AND flow_id = 9529
GROUP BY userid
You can view all jobs submitted to the APEX_PLSQL_JOB package using the APEX_
PLSQL_JOBS view. The following is the description of APEX_PLSQL_JOBS view:
SQL> DESCRIBE APEX_PLSQL_JOBS
Name Null? Type
--------------------------------- -------- ----------------------------
ID NUMBER
JOB NUMBER
FLOW_ID NUMBER
OWNER VARCHAR2(30)
ENDUSER VARCHAR2(30)
CREATED DATE
MODIFIED DATE
STATUS VARCHAR2(100)
SYSTEM_STATUS VARCHAR2(4000)
SYSTEM_MODIFIED DATE
SECURITY_GROUP_ID NUMBER
■ APP_JOB is referenced as a bind variable inside the VALUES clause of the INSERT,
and specified as the P_JOB parameter value in the call to UPDATE_JOB_STATUS.
■ APP_JOB represents the job number which will be assigned to this process as it is
submitted to APEX_PLSQL_JOB. By specifying this reserved item inside your
process code, it will be replaced for you at execution time with the actual job
number.
■ Note that this example calls to UPDATE_JOB_STATUS every ten records, INSIDE
the block of code. Normally, Oracle transaction rules dictate updates made inside
code blocks will not be seen until the entire transaction is committed. The APEX_
PLSQL_JOB.UPDATE_JOB_STATUS procedure, however, has been implemented
in such a way that the update will happen regardless of whether the job succeeds
or fails. This last point is important for two reasons:
1. Even if your status shows "100 rows inserted," it does not mean the entire
operation was successful. If an error occurred at the time the block of code
tried to commit, the user_status column of APEX_PLSQL_JOBS would not
be affected because status updates are committed separately.
2. Updates are performed autonomously. You can view the job status before the
job has completed. This gives you the ability to display status text about
ongoing operations in the background as they are happening.
Note: The SOAP 1.1 specification is a W3C note. (The W3C XML
Protocol Working Group has been formed to create a standard that
will supersede SOAP.)
For information about Simple Object Access Protocol (SOAP) 1.1 see:
http://www.w3.org/TR/SOAP/
1. Navigate to the Web Service References page. See "Accessing the Web Service
References Page" on page 15-17.
2. Click Create.
3. When prompted to search a UDDI registry to find a WSDL, click Yes.
4. For UDDI Location you can either:
■ Enter a URL endpoint to a UDDI registry.
■ Click the List icon and select a UDDI registry.
5. For Search, specify the following:
a. Search Type - Specify whether to search for a business name or a service name.
You cannot search for both.
b. Name - Enter the business name or service name to search for. Use the percent
(%) symbol as a wildcard character.
c. Optionally indicate if the search should be case-sensitive or an exact match.
d. Click Search.
e. When the search results appear, make a selection and click Next.
A summary page appears describing the selected Web service.
6. Review your selection and click Next to continue.
The URL to the WSDL document displays in the WSDL Location field.
7. Click Finish.
The Web service reference is added to the Web Service References Repository.
2. After the Web service reference has been added, select Create Form and Report on
Web Service.
3. For Choose Service and Operation:
a. Web Service Reference - Select the Web service reference.
b. Operation - Select the method to be executed.
4. For Page and Region Attributes, review the displayed attributes. If the page you
specify does not exist, the wizard creates the page for you.
5. For Input Items:
a. Identify which items to add to the form. To include an item, select Yes in the
Create column. Otherwise, select No.
b. If necessary, edit the item label.
6. If applicable, specify the Item Names and Item Labels for basic authentication.
Note that this step only appears if basic authentication was specified for this Web
service reference when it was created.
7. For Window Service Results:
a. Temporary Result Set Name - Enter a name for the collection that stores the
Web service result.
b. Result Tree to Report On - Select the portion of the resulting XML document
that contains the information you want to include in the report.
8. For Result Parameters to Display, select the parameters to be included in the
report.
9. Click Finish.
6. If applicable, specify the Item Names and Item Labels for basic authentication.
Note that this step only appears if basic authentication was specified for this Web
service reference when it was created.
7. Follow the on-screen instructions.
8. Click Finish.
1. Create the Web service reference. See "Creating a Web Service Reference Based on
a WSDL" on page 15-18.
2. Create a new page. See "Managing Pages in an Application" on page 6-9.
In the Create Page Wizard:
a. Select Form.
b. Select Form on Web Service.
3. For Web Service Reference and Operation, select the Web service reference and
operation (that is, the method to be executed).
4. For Identify Page and Region Attributes, review the page and region attributes. If
the page you specify does not exist, the wizard creates the page for you.
5. For Items for Input Parameters:
a. Identify which items need to be added. To include an item, select Yes in the
Create column. Otherwise, select No.
b. If applicable, specify the Item Names and Item Labels for basic authentication.
Note that this step only appears if basic authentication was specified for this
Web service reference when it was created.
6. For Items for Output Parameters:
a. Identify which items need to be added. To include an item, select Yes in the
Create column. Otherwise, select No.
b. If necessary, edit the item label.
7. Click Finish.
8. Define the process. You can store the results in a collection or in items on the page
by selecting options under Web Service Output Parameters.
a. To store the results in a collection:
– For Store Result in, select Collection.
– Enter a name for the collection in the value field.
b. To store the results in items on the page:
– For Store Result in, select Items.
– Enter the appropriate items value in the fields provided.
9. Click Create Process.
Note: The History button only appears on the Web Service Reference
page after you have created a Web service reference.
If you have an item of type File Browse, whose source is Database Column that
contains at least one colon (for example, RESUME:), you will see a link below the
Source BLOB Download Format Mask. This popup assists in entering all the
parameters necessary for the BLOB format.
At a minimum, you must specify the database BLOB column with at least one trailing
colon (for example, RESUME:). This preserves compatibility with Oracle Application
Express release 3.0.1.
If you manually create a form, you can still take advantage of this feature. You simply
use the format described within an item of type File (File Browse) on a page with a
DML Process of type DML_PROCESS_ROW. This process will determine the table name
and primary key columns.
The DOWNLOAD format is more complex however then other format masks in that
you are required to specify at least three parameters, for example:
DOWNLOAD:EMP:RESUME:EMPNO
The parameters of the DOWNLOAD format are described in the following table:
If you have a report column with a format mask that begins with DOWNLOAD:, you will
see a link below the format 'BLOB Download Format Mask'. This popup assists in
entering all the parameters necessary for the DOWNLOAD format.
type, the report will always attempt to display the BLOB. If the BLOB cannot be
rendered, a broken image will be displayed.
The parameters of the IMAGE format mask are described in the following table:
If you have a report column with a format mask that begins with 'IMAGE:', you will
see a link below the format 'BLOB Download Format Mask'. This popup assists in
entering all the parameters necessary for the IMAGE format.
■ Message. Use this shortcut to reference a translatable message at run time. Note
that the name of the shortcut must match the corresponding message name. At
run time, the name of the shortcut expands to the text of the translatable message
for the current language.
■ Message with JavaScript Escaped Single Quotes. Use this shortcut to reference a
shortcut inside of a JavaScript literal string and reference a translatable message at
run time. This shortcut defines a text string. When the shortcut is referenced, it
escapes the single quotation marks required for JavaScript.
About Messages
If your application includes PL/SQL regions or PL/SQL processes, you may must
translate any generated HTML or text. You may also need to translate messages used
in reports if your application uses a language that is not one of the ten languages into
which Oracle Application Express is translated.
■ Step 4: Upload and Apply a Translated XLIFF Document and Publish the
Application
■ Manually Editing a Translation
Exporting Translatable Text for an Entire Application To export translatable text for an entire
application:
1. Seed the translatable text. See "Seeding Translatable Text" on page 16-7.
Exporting Translatable Text for a Specific Page To export translatable text for a specific
page:
1. Seed the translatable text as described in "Seeding Translatable Text" on page 16-7.
2. Under Export XLIFF for specific Page:
a. From Application, select the appropriate primary and target application ID
map.
b. Specify whether to include XLIFF target elements.
c. Under Export, specify what translation text is included in your XLIFF file.
d. Click Export XLIFF for Page.
3. Follow the on-screen instructions.
About Including XLIFF Target Elements When Oracle Application Express generates an
XLIFF document, each document contains multiple translation units. Each translation
unit consists of a source element and a target element. The XLIFF document can be
generated with both the source and target elements for each translation unit. You have
the option of generating a file containing only source elements. The updated
translations will be applied from the target elements of the translation units.
About Export Use the options under Export to specify what translation text is included
in your XLIFF file. Select All translatable elements to include all translation text for an
application. In contrast, select Only those elements requiring translation to include
only new elements that have not yet been translated. Only those elements requiring
translation produces an XLIFF file containing new or modified translation units. Also,
if translation units were intentionally not previously translated (that is, the source of
the translation element equals the target of the translation element), those translation
units will also be included in the file
See Also: For more information about the XLIFF, or to view the
XLIFF specification, see:
http://www.xliff.org
Step 4: Upload and Apply a Translated XLIFF Document and Publish the Application
After your XLIFF document has been translated, the next step is to upload and then
apply it.
Topics in this section include:
■ Uploading a Translated XLIFF Document
■ Applying an Uploaded XLIFF Document and Publishing an Application
■ Deleting an Uploaded XLIFF Document
Translating Messages
You may need to translate messages if your application:
■ Includes PL/SQL regions or PL/SQL processes or calls PL/SQL package,
procedures, or function. If it does, you may need to translate the generated HTML.
■ Uses a language that is not one of the ten languages into which Oracle Application
Express is translated. If it does, you may need to translate messages used in
reports.
Topics in this section include:
■ Translating Messages Used in PL/SQL Procedures
■ Translating Messages Used Internally by Oracle Application Express
4. Click Create.
Syntax
APEX_LANG.MESSAGE (
p_name IN VARCHAR2 DEFAULT NULL,
p0 IN VARCHAR2 DEFAULT NULL,
p1 IN VARCHAR2 DEFAULT NULL,
p2 IN VARCHAR2 DEFAULT NULL,
...
p9 IN VARCHAR2 DEFAULT NULL,
p_lang IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
Parameters
Table 16–2 describes the parameters available in the APEX_LANG.MESSAGE API.
Example
The following example assumes you have defined a message called GREETING_MSG in
your application in English as Good morning%0 and in German as Guten Tag%1.
The following example demonstrates how you could invoke this message from
PL/SQL:
BEGIN
--
-- Print the greeting
--
APEX_LANG.MESSAGE('GREETING_MSG', V('APP_USER'));
END;
How the p_lang attribute is defined depends on how the Application Express engine
derives the Application Primary Language. For example, if you are running the
application in German and the previous call is made to the APEX_LANG.MESSAGE API,
the Application Express engine first looks for a message called GREETING_MSG with a
LANG_CODE of de. If it does not find anything, then it will revert to the Application
Primary Language attribute. If it still does not find anything, the Application Express
engine looks for a message by this name with a language code of en-us.
APEX_LANG.LANG API
Syntax
APEX_LANG.LANG (
p_primary_text_string IN VARCHAR2 DEFAULT NULL,
p0 IN VARCHAR2 DEFAULT NULL,
p1 IN VARCHAR2 DEFAULT NULL,
p2 IN VARCHAR2 DEFAULT NULL,
...
p9 IN VARCHAR2 DEFAULT NULL,
p_primary_language IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
Parameters
Table 16–5 describes the parameters available in the APEX_LANG.LANG API.
Example
Suppose you have a table that defines all primary colors. You could define a dynamic
message for each color and then apply the LANG function to the defined values in a
query. For example:
SELECT APEX_LANG.LANG(color)
FROM my_colors
If you were running the application in German, RED was a value for the color column
in the my_colors table, and you defined the German word for red, the previous
example would return ROT.
A condition is a small unit of logic that helps you control the display of regions, items,
buttons, and tabs as well execute processes, computations and validations. When you
apply a condition to a control or component, the condition is evaluated. Whether a
condition passes or fails determines whether a control or component displays, or page
processing executes.
You can specify conditions by selecting a condition type when you create the control
(region, button, or item) or component (tab, list, or navigation bar), or by making a
selection under the Condition attribute.
This example references item P101_DEPTNO as a bind variable. You can use bind
variables a within an application processes and SQL query regions to reference
item session state. If one or more employees are in the department identified by
the value of P101_DEPTNO then the condition evaluates as true.
See Also: "About Bind Variable Syntax" on page 3-14 for information about bind
variables
Never This condition type is hard wired to always fail. It is useful in temporarily
preventing controls or components (such as regions, buttons, or items) from
being rendered on a page, or to prevent processes, computations and validations
from running.
NOT Exists (SQL query returns no rows) This condition is expressed as a SQL query. If the query does not return any
rows, it evaluates as true.
PLSQL Expression A PL/SQL expression is any expression in valid PL/SQL syntax that evaluates
to true or false. For example:
nvl(:MY_FLOW_ITEM,'NO') = 'YES'
See Also: "Understanding URL Syntax" on page 3-6, "REQUEST" on page 3-23,
and "Understanding the Relationship Between Button Names and REQUEST" on
page 7-80
Request is contained within Expression 1 REQUEST is an internal application attribute that tracks of how a page is
submitted. By default, when a page is submitted, the value of REQUEST is set
according to the event that caused the page to be submitted. For example, the
event could be when a user clicks a button or selects a tab. Depending upon the
event, you can perform different operations by referencing the value of the
REQUEST application attribute.
Use this condition to specify a list of allowed requests (such as SAVE or
UPDATE) in Expression 1. The condition evaluates to true if the value of
REQUEST is contained in the list.
See Also: "REQUEST" on page 3-23, and "Understanding the Relationship
Between Button Names and REQUEST" on page 7-80
Request is not contained within This condition is the opposite of Request is contained within
Expression 1 Expression 1. Evaluates to true if the value of the REQUEST is not contained
within Expression 1.
See Also: "REQUEST" on page 3-23, and "Understanding the Relationship
Between Button Names and REQUEST" on page 7-80
SQL Expression SQL Expressions are evaluated as a WHERE clause in a SQL statement. For
example suppose your expression is :MY_ITEM = 'ABC'.
The Application Express engine processes the following:
select 1 from dual where :MY_ITEM = 'ABC'
This condition evaluates to true if a row is returned.
SQL Reports (OK to show the back Use this condition for reports having pagination. It automatically determines
button) when it is appropriate to include a button that pages back in the result set.
SQL Reports (OK to show the forward Use this condition for reports having pagination. It automatically determines
button) when it is appropriate to include a button that pages forward in the result set.
Text in Expression 1 != Expression 2 Use this expression to compare two expressions containing strings. Either
(includes &ITEM substitutions) expression may contain references to session state using &MY_ITEM syntax.
See Also: "Understanding Substitution Strings" on page 3-15 for information
about &MY_ITEM syntax
This section describes public synonyms that exist and for which the execute privilege
is granted to PUBLIC for the packages, procedures, functions, tables, and views owned
by the Oracle Application Express product schema, (for example, APEX_030200).
This section contains the following topics:
■ Packages
■ Procedures
■ Functions
■ Tables
■ Views
Packages
Public synonyms exist and execute privilege is granted to PUBLIC for the following
packages owned by the Oracle Application Express product schema, (for example,
APEX_030200):
HTMLDB_CUSTOM_AUTH
HTMLDB_ITEM
HTMLDB_LANG
HTMLDB_UTIL
WWV_FLOW
WWV_FLOW_API
WWV_FLOW_AUDIT
WWV_FLOW_CSS_API
WWV_FLOW_COLLECTION
WWV_FLOW_CUSTOM_AUTH
WWV_FLOW_CUSTOM_AUTH_LDAP
WWV_FLOW_CUSTOM_AUTH_SSO
WWV_FLOW_CUSTOM_AUTH_STD
WWV_FLOW_CUSTOMIZE
WWV_FLOW_EPG_INCLUDE_MODULES
WWV_FLOW_FILE_MGR
WWV_FLOW_FND_USER_API
WWV_FLOW_GLOBAL
WWV_FLOW_HELP
WWV_FLOW_HINT
WWV_FLOW_HTML_API
WWV_FLOW_ID
WWV_FLOW_IMAGE_API
WWV_FLOW_ITEM
WWV_FLOW_ITEM_HELP
WWV_FLOW_LANG
WWV_FLOW_LDAP
WWV_FLOW_LOOKUP_TABLES
WWV_FLOW_MAIL
WWV_FLOW_PLSQL_JOB
WWV_FLOW_PREFERENCES
WWV_FLOW_RANDOM
WWV_FLOW_RENDER_SHORTCUT
WWV_FLOW_REWRITE_QUERY
WWV_FLOW_USER_API
WWV_FLOW_UTILITIES
WWV_FLOW_SVG
WWV_FLOW_WEB_SERVICES
WWV_MIG_ACC_LOAD
WWV_RENDER_CALENDAR2
WWV_RENDER_CHART2
WWV_SPELING
Execute privilege is granted to PUBLIC for the following packages owned by the
Oracle Application Express product schema, (for example, APEX_030200):
APEX_SITE_ADMIN_PRIVS
HTMLDB_SITE_ADMIN_PRIVS
WWV_CALCULATOR
WWV_FLOW_FLASH_CHART
WWV_FLOW_GENERATE_DDL
WWV_FLOW_IMAGE_GENERATOR
WWV_FLOW_TREE_GLOBAL_VARS
Procedures
Public synonyms exist and execute privilege is granted to PUBLIC for the following
procedures owned by the Oracle Application Express product schema, (for example,
APEX_030200):
APEX
APEX_ADMIN
DEVELOPMENT_SERVICE_HOME
DEVELOPMENT_SERVICE_HOME_LOGIN
DEVELOPMENT_SERVICE_SIGNUP
F
HTMLDB
HTMLDB_ADMIN
HTMLDB_LOGIN
P
WWV_FLOW_INIT_HTP_BUFFER
Z
Functions
Public synonyms exist and execute privilege is granted to PUBLIC for the following
functions owned by the Oracle Application Express product schema, (for example,
APEX_030200):
NV
V
WWV_FLOW_HOT_HTTP_LINKS
Execute privilege is granted to PUBLIC for the following function owned by the Oracle
Application Express product schema, (for example, APEX_030200):
WWV_POPUP_FILTER
Tables
Public synonyms exist and select privilege is granted to PUBLIC for the following
tables owned by the Oracle Application Express product schema, (for example, APEX_
030200):
WWV_FLOW_DUAL100
WWV_FLOW_TEMP_TABLE
WWV_FLOW_LOV_TEMP
Views
Public synonyms exist and select privilege is granted to PUBLIC for the following
views owned by the Oracle Application Express product schema, (for example, APEX_
030200):
APEX_APPLICATIONS
APEX_APPLICATION_ALL_AUTH
APEX_APPLICATION_AUTH
APEX_APPLICATION_AUTHORIZATION
APEX_APPLICATION_BC_ENTRIES
APEX_APPLICATION_BREADCRUMBS
APEX_APPLICATION_BUILD_OPTIONS
APEX_APPLICATION_COMPUTATIONS
APEX_APPLICATION_FLASH_CHARTS
APEX_APPLICATION_FLASH_SERIES
APEX_APPLICATION_ITEMS
APEX_APPLICATION_LISTS
APEX_APPLICATION_LIST_ENTRIES
APEX_APPLICATION_LOVS
APEX_APPLICATION_LOV_ENTRIES
APEX_APPLICATION_NAV_BAR
APEX_APPLICATION_PAGES
APEX_APPLICATION_PAGE_BRANCHES
APEX_APPLICATION_PAGE_BUTTONS
APEX_APPLICATION_PAGE_COMP
APEX_APPLICATION_PAGE_DB_ITEMS
APEX_APPLICATION_PAGE_ITEMS
APEX_APPLICATION_PAGE_MAP
APEX_APPLICATION_PAGE_PROC
APEX_APPLICATION_PAGE_REGIONS
APEX_APPLICATION_PAGE_RPT_COLS
APEX_APPLICATION_PAGE_VAL
APEX_APPLICATION_PARENT_TABS
APEX_APPLICATION_PROCESSES
APEX_APPLICATION_SHORTCUTS
APEX_APPLICATION_SUPP_OBJECTS
APEX_APPLICATION_SUPP_OBJ_BOPT
APEX_APPLICATION_SUPP_OBJ_CHCK
APEX_APPLICATION_SUPP_OBJ_SCR
APEX_APPLICATION_TABS
APEX_APPLICATION_TEMPLATES
APEX_APPLICATION_TEMP_BC
APEX_APPLICATION_TEMP_BUTTON
APEX_APPLICATION_TEMP_CALENDAR
APEX_APPLICATION_TEMP_LABEL
APEX_APPLICATION_TEMP_LIST
APEX_APPLICATION_TEMP_PAGE
APEX_APPLICATION_TEMP_POPUPLOV
APEX_APPLICATION_TEMP_REGION
APEX_APPLICATION_TEMP_REPORT
APEX_APPLICATION_THEMES
APEX_APPLICATION_TRANSLATIONS
APEX_APPLICATION_TREES
APEX_APPLICATION_WEB_SERVICES
APEX_DICTIONARY
APEX_WORKSPACES
APEX_WORKSPACE_ACTIVITY_LOG
APEX_WORKSPACE_APEX_USERS
APEX_WORKSPACE_CLICKS
APEX_WORKSPACE_DEVELOPERS
APEX_WORKSPACE_FILES
APEX_WORKSPACE_LOG_SUMMARY
APEX_WORKSPACE_LOG_SUMMARY_USR
APEX_WORKSPACE_SCHEMAS
APEX_WORKSPACE_SESSIONS
APEX_WORKSPACE_SQL_SCRIPTS
WWV_FLOW_CLICKTHRU_LOG
WWV_FLOW_COLLECTIONS
WWV_FLOW_FILES
WWV_FLOW_GROUP_USERS
WWV_FLOW_HOURS_12
WWV_FLOW_HOURS_24
WWV_FLOW_LISTS_OF_VALUES$_V
WWV_FLOW_LIST_OF_VALUES_DATA_V
WWV_FLOW_MINUTES
WWV_FLOW_MINUTES_5
WWV_FLOW_MONTHS_MON
WWV_FLOW_MONTHS_MONTH
WWV_FLOW_PLSQL_JOBS
WWV_FLOW_USERS
WWV_FLOW_USER_ACTIVITY_LOG
WWV_FLOW_USER_MAIL_LOG
WWV_FLOW_USER_MAIL_QUEUE
WWV_FLOW_YEARS
A MOVE_MEMBER_DOWN, 15-11
RESEQUENCE_COLLECTION, 15-11
Accept Page, 3-2
RESET_COLLECTION_CHANGED, 15-9
access control
SORT_MEMBERS, 15-11
authorization schemes, 7-100
TRUNCATE_COLLECTION, 15-6
access control list
UPDATE_MEMBER, 15-8
about, 7-96
UPDATE_MEMBER_ATTRIBUTE, 15-8
adding users, 7-99
APEX_LANG
creating, 7-97
LANG, 16-26
removing users, 7-99
MESSAGE API, 16-12
selecting an application mode, 7-98
APEX_PLSQL_JOB, 15-13
selecting user privileges, 7-99
APIs
Action Bar, 4-6
APEX_COLLECTION, 15-5
about, 5-3
APEX_LANG, 16-12, 16-26
Comment icon, 5-3
APEX_PLSQL_JOB, 15-13
Export Page icon, 5-3
application
Find icon, 5-3
adding a page, 6-9
Lock icon, 5-3
adding content from Web sites, 9-12
Run Page icon, 5-3
assigning to groups, 6-28
Shared Components icon, 5-3
based on queries, 6-3
activity log, 15-12
based on spreadsheet data, 6-6
activity reports
controlling navigation using branches, 8-27
creating custom reports, 15-12
copying, 4-5, 6-8
Administration list, 1-12
creating, 6-1
About Application Express, 1-12
creating groups, 6-28
Change Password, 1-12
creating on tables, 6-3
Manage Application Express Users, 1-12
debugging, 12-1
Manage Services, 1-12
defining primary language, 16-4
Monitor Activity, 1-12
deleting, 4-3, 4-5, 6-8
APEX_ACTIVITY_LOG view, 15-12
demonstration, 6-7
APEX_COLLECTION, 15-5
demonstrations, 2-1
ADD_MEMBER, 15-7
deploying, 14-2, 14-4, 14-12
COLLECTION_EXISTS, 15-11
exporting, 14-4, 14-12
COLLECTION_MEMBER_COUNT, 15-11
grouping, 6-27
CREATE_COLLECTION, 15-5
hiding features, 14-30
CREATE_COLLECTION_FROM_QUERY, 15-5
importing export file, 14-21
CREATE_COLLECTION_FROM_QUERY_
importing from SQL*Plus, 14-28
B, 15-6
language preference, 16-2
CREATE_OR_TRUNCATE_COLLECTION, 15-5,
performance tuning, 12-1
15-12
removing from groups, 6-29
DELETE_ALL_COLLECTIONS, 15-7
resource use, 12-3
DELETE_ALL_COLLECTIONS_SESSION, 15-7
running, 6-14
DELETE_COLLECTION, 15-7
sending email from, 15-3
DELETE_MEMBER, 15-9
switching active theme, 10-6
DELETE_MEMBERS, 15-9
translatable components, 16-2
GET_MEMBER_MD5, 15-10
translating, 16-1
Index-1
translating components, 16-2 adding a page, 6-10
translating multibye languages, 16-5 copying a page, 6-13
translation rendering, 16-2 Export/Install icon, 4-4
Application Alias attribute, 4-9 Run Application icon, 4-4
application attributes running demonstration applications, 2-3
Application Alias, 4-9 Shared Components icon, 4-4
Application Groups, 4-11 Application home Task list
Application Template Defaults, 4-14 Application Reports, 4-5
Availability, 4-11 Copy this Application, 4-5
Build Options, 4-14 Delete this Application, 4-5
Build Status, 4-12 Manage Export Repository, 4-5
Component Defaults, 4-15 Page Groups, 4-5
Debugging, 4-11 Page Locks, 4-5
Default Page Template, 4-14 User Interface Defaults, 4-5
editing, 4-8 application item
Error Page Template, 4-14 about, 6-33, 6-51
Exact Substitutions, 4-11 creating, 6-52
exporting, 14-14 editing attributes, 6-52
Global Notifications, 4-12 history, 6-52
Image Prefix, 4-10 Application Items, 5-30
Logging, 4-10 Application Items page, 6-52
Logo, 4-13 application language
Media Type, 4-10 determining, 4-19
Message for unavailable application, 4-12 Application Language Derived From attribute, 4-20,
Name attribute, 4-9 16-4
Parsing Schema, 4-11 application layout
Print Mode Page Template, 4-14 LOV driving another LOV, 7-85
Proxy Server, 4-10 multiple columns, 9-10
restrict access, 4-12 print preview mode, 7-103
Status, 4-12 shortcuts, 7-86
Substitutions, 4-13 application logic
Theme, 4-14 editing all, 5-7
Version, 4-10 application models, 6-5
Virtual Private Database, 4-18 leveraging, 6-5
Application Builder Application Primary Language attribute, 4-20, 16-4
accessing, 4-1 application processes
home page, 4-2 Application Process page, 5-36
Page Definition, 3-1 creating, 5-36
Application Builder home page, 4-1, 4-2 example, 5-35
Application Builder home Task list History report, 5-37
Application Builder Defaults, 4-3 On Demand, 5-34
application computations reports, 5-37
about, 5-37 understanding, 5-34
Application Computations page, 5-39 Utilization report, 5-37
creating, 5-38 application reports
executing On New Instance, 5-38 activity, 6-31
history report, 5-39 cross application, 6-32
Application Date Format attribute, 4-20 page components, 6-31
application definition shared components, 6-30
editing, 4-8 viewing, 6-29, 12-3
Application Express Administration Services, 1-7 architecture, 1-5
application groups authentication, 3-4, 13-24
assigning pages, 6-28 Authentication Schemes Repository, 13-32
creating, 6-28 creating a scheme from scratch, 13-30
editing group definition, 6-28 creating an authentication scheme, 13-26
removing, 6-29 preconfigured authentication schemes, 13-26
removing pages, 6-29 security attributes, 4-16
viewing, 6-27 viewing current scheme, 13-32
Application Groups attribute, 4-11 Authentication Scheme attribute, 4-17
Application home page, 4-4 authentication schemes
Index-2
Application Express Account credentials, 13-27 breadcrumbs, 5-13
cookie user accounts, 13-27 about, 8-14
Database Access Descriptor (DAD) adding entries, 8-16
credentials, 13-29 adding to a page, 8-17
Database Account credentials, 13-27 creating, 8-13, 8-14
LDAP credentials, 13-28 creating dynamic, 8-18
Open Door credentials, 13-26 editing, 8-18
Single Sign-on, 13-29 navigations, 10-18
authorization, 3-4 reparenting entries, 8-19
Authorization attributes, 4-17 reports, History, 8-20
authorization scheme reports, Utilization, 8-20
of an application, 4-17 shared components, 5-13
specifying, 4-17 build option status
authorization schemes, 13-33 exporting, 14-30
attaching to application, 13-35 build options, 14-29
attaching to component, 13-36 changing status, 14-30
attaching to control, 13-36 creating, 14-29
attaching to page, 13-35 excluding, 14-30
creating, 13-34 exporting, 14-30
for controlling access, 7-100 including, 14-30
Automatic CSV Encoding attribute, 4-20 reports, 14-31
view options, 14-30
Build Options attribute, 4-14
B
Build Status attribute, 4-12
background PL/SQL, 15-13 built-in substitution strings, 3-15
APEX_PLSQL_JOB, 15-13 Bulk Edit Item Help report, 7-105
using a process, 15-15 button
bind variables about, 5-10, 7-76
syntax, 3-14 branching, 7-81
using in PL/SQL procedures, 3-14 creating, 7-76, 7-77
using in regions, 3-14 creating multiple at once, 7-78
BLOBs delete multiple, 7-79
APEX_UTIL.GET_BLOB_FILE_SRC, 15-30 displaying conditionally, 7-81
download support, 15-27 editing, 7-78
populating, 15-27 editing attributes, 7-79
support in forms, 15-26 editing multiple, 7-79
support in Reports, 15-28 names, 7-80
branch template, 10-20
about, 5-22 using Reorder Buttons icon, 7-80
creating, 8-27 button template
When Button Pressed attribute, 3-24 Comments, 10-21
branching Definition, 10-21
action, 5-22 Name, 10-20
branch point, 5-22 Subscription, 10-21
Branch Point list, 5-22 Substitution Strings, 10-21
making conditional, 5-23
on load, before header, 5-23
on submit, after processing, 5-22
C
on submit, before computation, 5-22 caching
on submit, before processing, 5-22 regions, 9-6
on submit, before validation, 5-22 calendar
using buttons, 7-81 adding to a page, 7-56
breadcrumb template, 10-18 adding to new page, 7-56
Comments, 10-20 converting Easy to SQL, 7-60
Definition, 10-19 creating, 7-55
Name, 10-19 creating a column link, 7-58
Subscription, 10-19 creating a day link, 7-59
Substitution Strings, 10-20 defining calendar interval, 7-58
Template Attributes, 10-20 defining display attributes, 7-58
Template Type, 10-19 Easy Calendar, 7-55
Index-3
editing attributes, 7-57 creating updateable columns, 7-35
editing title, 7-56 defining a column as a list of values, 7-36
formatting, 7-57 exporting, 7-34
SQL Calendar, 7-55 classic report regions
supported substitution strings, 7-55 configuring print attributes, 7-44
types, 7-55 printing methods, 7-39
upgrading, 7-60 classic reports
calendar attributes changing, 7-26
accessing, 7-57 changing alignment, 7-26
Calendar Display, 7-57 changing column attributes, 7-26
Column Link, 7-58 changing column text, 7-26
Day Link, 7-59 changing pagination, 7-30
Display Attributes, 7-58 creating a sum, 7-26
calendar template, 10-21 hiding columns, 7-26
Comments, 10-21 sorting columns, 7-26
Daily Calendar, 10-22 Collection Showcase, 2-2, 6-8
Monthly Calendar, 10-22 collections, 15-4
Name, 10-21 accessing, 15-6
Template Subscription, 10-21 adding members, 15-7
Weekly Calendar, 10-22 APEX_COLLECTION API, 15-5
cascading style sheets clearing session state, 15-12
about, 10-13 creating, 15-5
exporting, 14-16 deleting, 15-7
importing, 14-23 deleting members, 15-9
referencing for SVG charts, 7-70 determining status, 15-9
referencing in page template, 10-41 managing, 15-10
referencing inline (SVG charts), 7-71 merging, 15-10
searching for, 7-95 naming, 15-5
uploading, 10-40 truncating, 15-6
using custom, 10-40 updating members, 15-8
viewing, 7-95 column definition
charts editing, 11-3
about Flash, 7-61 columns templates
about SVG, 7-61 using JavaScript, 10-40
about wizards, 7-62 Comments attribute, 5-28
altering display, 7-74 Component Defaults, 4-15
asynchronous updates, 7-75 Breadcrumb, 4-15
candlestick syntax, 7-63 Breadcrumb Region, 4-15
creating, 7-61 Button, 4-15
dial chart syntax, 7-62 Calendar, 4-15
displaying in other languages, 7-75 Chart Region, 4-15
editing attributes, 7-74 Form Region, 4-15
Flash, 7-71 Label, 4-15
HTML chart, 7-63 List, 4-15
migrating all SVG charts to Flash, 7-73 List Region, 4-15
migrating SVG to Flash, 7-73 Region, 4-15
monitoring information, 7-75 Report, 4-15
multiple series syntax, 7-63 Report Region, 4-15
providing a SQL query, 7-62 Tabular Form Region, 4-15
range syntax, 7-63 Wizard Region, 4-15
scatter syntax, 7-63 components
SQL query syntax, 7-62 about translating, 16-2
supported types, 7-61 controlling access to, 3-4
SVG chart, 7-65 displaying on all pages, 9-2
types, 7-62 displaying on every page, 9-1
check box, 6-36 translating messages, 16-11, 16-13
classic report condition types
adding download link, 7-33 common, 3-3
controlling column breaks, 7-37 conditional
controlling column display, 7-37 processing, 3-2
Index-4
rendering, 3-2 deep linking, 13-31
conditions Default Page Template attribute, 4-14
displaying regions, 9-5 deleting export files, 14-27
list of, A-1 demonstration application
using, 3-2 about Collection Showcase, 2-2, 6-8
using with buttons, 7-81 about Sample Application, 2-2, 2-3, 6-8
configuration editing, 2-8, 2-9
controlling, 14-29 installing, 2-1
controls modifying, 2-8, 2-9
controlling access to, 3-4 running from Application home page, 2-3
Copy icon, 5-8 running from Demonstration Applications
Create Application Wizard, 6-1 page, 2-3
Create Branch Wizard, 8-27 viewing, 2-1
Create Breadcrumb Wizard, 8-15 Demonstration Applications page, 2-2, 6-8
Create Button Wizard, 7-77 editing an application, 2-9
Create icon, 5-8 running an application, 2-3
Create Navigation Bar Entry Wizard, 8-24 deployment, 14-4
Create Page Computation Wizard, 5-14, 15-24 creating supporting objects, 14-6
Create Page Process Wizard, 5-20 exporting a page, 14-15
Create Page Wizard exporting application definition, 14-12
about, 6-10 exporting cascading style sheets, 14-16
Create Region Wizard, 7-56, 8-17, 9-8 exporting images, 14-16
Create Validations Wizard, 5-17, 7-54 exporting scripts, 14-18
cross site-scripting exporting static files, 14-17
about, 13-11 exporting themes, 14-18
dynamic output, 13-12 exporting user interface defaults, 14-19
form items, 13-13 importing application from SQL*Plus, 14-28
HTML region, 13-11 importing export files, 14-21
report regions, 13-13 importing files, 14-21
static display areas, 13-11 installing application export, 14-26
CSS, 10-41 installing files, 14-27
CSS classes managing database objects, 14-4
SVG charts, 7-68 of an application, 14-2
CSS Finder, 7-89, 7-95 options, 14-3
CSS Repository, 10-41 packaging an application, 14-2
publishing the URL, 14-28
Developer Comment icon, 4-7, 5-3
D
developer comments
database link, 15-2 about, 6-22
Database Object Dependencies adding to a page, 6-23
Next button, 5-5 adding to an application, 6-23
Page field, 5-5 deleting, 6-24
Previous button, 5-5 editing, 6-23
View list, 5-5 viewing, 6-23
database objects viewing reports, 6-25
viewing, 2-10 Developer Comments report
database schema accessing, 6-25
of an application, 4-18 deleting a comments, 6-26
specifying, 4-18 deleting multiple comments, 6-26
Database Schema attributes, 4-18 downloading, 6-27
date picker, 6-36 editing comments, 6-26
DBMS_APPLICATION_INFO, 12-3 developer preferences
Debug Mode, 12-2 configuring, 4-3
debugging, 12-1 Developer toolbar
debug mode, 12-2 about, 2-8
isolating a problem, 12-4 Activity, 2-9, 5-29
SQL queries, 12-4 creating a page, 6-13
SQL tracing, 12-2 Session, 3-5
viewing reports, 12-3 using, 5-28
Debugging attribute, 4-11 development life cycle, 14-1
Index-5
dial chart images, 14-16
syntax, 7-62 managing database objects, 14-4
Display list page, 14-15
configuring defaults, 4-3 related files, 14-12
DML script files, 14-18
about locking, 15-1 shared components
APEX_DML_LOCK_WAIT_TIME, 15-1 export
controlling DML operation, 15-1 page components, 14-14
FSP_DML_LOCK_ROW, 15-2 static files, 14-17
Drag and Drop Layout text for translations, 16-6
about, 6-47 themes, 14-18
accessing, 6-47 translation options, 16-8
creating new items, 6-47 user interface defaults, 14-19
deleting items, 6-49 Export icon, 5-3
editing items, 6-48 Export Repository, 14-26, 14-27
dynamic translation, 16-25 accessing, 14-26
exported application
E importing, 14-21
Export/Install icon, 4-4
Edit Definition page
Virtual Private Database, 4-18
Edit Globalization Attributes F
Application Date Format, 4-20 f?p syntax, 3-7
Application Language Derived From, 4-20 facilitating bookmarking, 3-9
Application Primary Language, 4-20 file upload table
Automatic CSV Encoding, 4-20 security risks, 13-24
Edit Globalization Attributes page, 4-19 files
Edit Page icon, 4-7 deleting uploaded files, 9-17
Edit Security Attributes, 4-15 downloading uploaded files, 9-17
Authentication, 4-16 editing uploaded files, 9-16
Authorization, 4-17 managing, 9-16
Database Schema, 4-18 uploading, 9-16
Session State Protection, 4-18 Find icon, 4-8, 5-3, 7-89
email Flash chart
configuring environment settings, 15-3 adding to existing page, 7-71
email log, 15-3 adding to new page, 7-72
email queue, 15-3 candlestick syntax, 7-63
managing, 15-3 multiple series syntax, 7-63
problems sending, 13-5 range syntax, 7-63
sending from an application, 15-3 scatter syntax, 7-63
embedded PL/SQL gateway, 1-5 using custom XML, 7-74
location of images, CSS, and script files, 14-21 footer
security practices, 13-1 substitution strings, 9-5
engine Form Auto Complete, 5-26
Application Express, 1-6 form wizard
environment Form and Report on Web Service, 7-48
configuring, 1-7 Form on a Procedure, 7-47
environment settings Form on a SQL Query, 7-47
configuring email, 15-3 Form on a Table with Report, 7-47
Error Page Template attribute, 4-14 Form on Table or View, 7-47
Exact Substitutions attribute, 4-11 Form on Web Service, 7-47
Export Master Detail Form, 7-47
Page field, 5-6 Summary Page, 7-47
View list, 5-6 Tabular Form, 7-47
export forms
a page, 5-6 Automatic Row Processing (DML) process, 7-51
an application, 14-12 creating, 7-46
application attributes, 14-14 creating a master detail, 7-49
build option status, 14-14 creating a tabular form, 7-48
CSS, 14-16 creating manually, 7-51
Index-6
creating using a wizard, 7-47 I
page types, 7-47
populating, 7-53 Image Finder, 7-89
understanding processing, 7-51 Image Prefix
validating input, 7-54 about, 9-14
full development environment, 1-6 Image Prefix attribute, 4-10
functions Image Repository, 9-13
searching for, 7-93 images
exporting, 14-16
importing, 14-24
G managing, 9-13
Global Notifications attribute, 4-12 referencing, 9-14
globalization searching for, 7-94
attributes, 16-4 uploading, 9-13
determining application language, 4-19 viewing available, 7-94
format masks, 16-5 Images Finder, 7-94
understanding, 16-1 importing
graphics application, 14-21
managing, 9-13 application using SQL*Plus, 14-28
referencing, 9-14 cascading style sheets, 14-23
uploading, 9-13 export files, 14-21
Groups images, 14-24
Display, 5-6 page, 14-21
Page field, 5-6 static files, 14-23
View list, 5-6 themes, 14-24
groups User Interface Defaults, 14-25
of applications, 6-27 installing
of pages, 6-15 application files, 14-26
GUI demonstration applications, 2-1
about, 1-1 export files, 14-27
installing application export, 14-26
installing export files, 14-27
H Interactive report regions
Help configuring print attributes, 7-46
creating, 7-104 Interactive reports
creating navigation bar entry, 7-106 creating a column link, 7-23
editing, 6-44, 7-105 interactive reports
online Help system, 1-14 About Actions menu, 7-6
page Help, 1-14 about Link Column icons, 7-5
searching, 1-14 about link columns, 7-22
using, 1-14 about the Search bar, 7-4
help adding a filter, 7-7
problems, 13-5 adding computations, 7-11
Help text adding download option, 7-20
defining for item, 7-105 adding highlighting, 7-9
defining for page, 7-105 advanced attributes, 7-25
editing items, 7-105 aggregating a column, 7-12
History Attributes page, 7-15
Display, 5-6 changing pagination, 7-18
Next button, 5-6 column attributes, 7-17
Page field, 5-6 creating a chart, 7-13
Previous button, 5-6 creating a control break, 7-9
View list, 5-6 creating groups, 7-18
Home Link attribute, 4-16 defining a column as a list of values, 7-24
HTML downloading, 7-14
generated using custom PL/SQL, 9-18 editing as a developer, 7-15
not handled by Application Express, 9-18 executing a Flashbarck query, 7-13
HTML chart exporting, 7-20
adding to existing page, 7-63 linking to, 7-26
adding to new page, 7-64 managing column sorting, 7-19
resetting, 7-14
Index-7
saving, 7-14 in row templates, 10-40
saving a named report, 7-14 including in HTML Header attribute, 7-101
selecting columns and sort order, 7-8 including in .js file, 7-102
selecting columns to displays, 7-7 including in page template, 7-102
using, 7-4 incorporating, 7-100
item libraries, 10-26
about, 5-10 on load events, 5-26
about Application Items page, 6-52 page specific, 5-25
conditional, 6-50 referencing items, 7-101
multiple select list item, 6-50 setting focus on item, 5-25
naming conventions, 6-35 JavaScript Finder, 7-89
read-only, 6-50
referencing item values, 6-49
L
referencing using JavaScript, 7-101
referencing values, 6-49 label template
searching for, 7-89 Comments, 10-23
using format masks when translating, 16-5 Definition, 10-22
using Reorder Items icon, 6-34 editing, 10-22
item attributes Error Display, 10-23
affecting layout, 9-11 Name, 10-22
Begin On New Field, 9-11 Subscription, 10-22
Begin On New Line, 9-11 Substitution Strings, 10-23
ColSpan, 9-11 language
Columns, 9-12 defining for application, 16-4
Condition Type and Expressions, 9-12 multibyte, 16-5
Horizontal/Vertical Alignment, 9-12 preference, 16-2
HTML Table Cell Attributes, 9-12 layout
Label, 9-12 altering using item attributes, 9-11
Post Element Texts, 9-12 controlling, 10-1
Pre Element Texts, 9-12 Link Column
Read Only Condition Type, 9-12 about, 7-22
Region, 9-11 excluding, 7-23
RowSpan, 9-11 linking a single row view, 7-22
Sequence, 9-11 linking to a page, 7-22
Template, 9-12 linking to URL, 7-23
Item Finder, 7-89 linking
item Help deep, about, 13-31
editing, 7-105 list
item type adding list entries, 8-7
Check box, 6-36 adding sublists, 8-7
Date Picker, 6-36 adding to a page, 8-11
Display Only, 6-36 changing parents of list entries, 8-10
File Browse, 6-36 creating, 8-6
Hidden, 6-36 creating hierarchical, 10-23
Hidden and Protected, 6-36 editing, 8-12
List Manager, 6-36 editing multiple, 8-13
Multiple Select, 6-36 example, 8-5
Password, 6-37 Lists page, 8-12
Popup List of Values, 6-37 removing parents of orphaned entries, 8-10
Radio, 6-38 reports, 8-13
Select list, 6-38 list of values, 5-13
Shuttle, 6-38 bulk edit of static LOVs, 7-84
Stop and Start Table, 6-39 creating, 7-81
Text, 6-39 creating at application-level, 7-82
Text Area, 6-39 creating dependent LOVs, 7-85
editing, 7-83
List of Values History report, 7-85
J List of Values page, 7-82
JavaScript, 10-26 List of Values Subscription report, 7-85
calling from button, 7-102 List of Values Utilization report, 7-85
Index-8
named, 7-82 alternatives, 1-13
referencing null values in items, 7-84 branch, 8-27
referencing session state, 7-84 breadcrumb, 8-13
reports, 7-85 breadcrumbs, 1-13
Search Dynamic Lists of Values report, 7-85 drop down menus, 1-13
shared, 7-82 icons, 1-13
static, 7-83 list, 8-5
translating, 16-25 parent tabs, 8-1
List of Values page, 7-82 standard tabs, 8-1
list reports tab, 8-1
History, 8-13 trees, 8-20
Unused Lists, 8-13 navigation bar, 8-23
Utilization, 8-13 Reorder Navigation Bar Entries Icon, 8-26
list template navigation bar entry, 8-23
After List Entry, 10-24 about, 8-23
After Sub List Entry, 10-24 creating, 8-24
Before List Entry, 10-24 editing, 8-25
Before Sub List Entry, 10-24 editing multiple, 8-26
Comments, 10-25 reports, 8-26
editing, 10-23 navigation bar entry history, 8-27
Name, 10-23 navigation bar entry reports
Sub List Entry, 10-24 history, 8-27
Subscription, 10-24 subscription, 8-27
Substitution Strings, 10-25, 10-30 navigation bar entry subscription, 8-27
Template Definition, 10-24 New Component Wizard, 6-13, 7-97
lists, 5-13
Lists page, 8-12
O
Lists Wizard, 8-6
Lock icon, 5-3 online Help
locks enabling indexing in Oracle database 11gR2, 13-8
determining lock status, 6-19 field level, 1-14
for pages, 6-19 online Help system, 1-14
Logging attribute, 4-10 page Help, 1-14
logging in to problems, 13-5
Oracle Application Express, 1-8 searching, 1-14
logging out, 1-12 Oracle Application Express
login credentials, 1-9 about, 1-1
login page, 1-6 architecture, 1-5
building, 13-31 browser requirements, 1-7
understanding login credentials, 1-9 configuring your environment, 1-7
Login URL attribute, 4-17 list of features, 1-1
Logo attribute, 4-13 logging in, 1-6
logging in to as a developer, 1-8
user roles, 1-6
M Oracle Application Express administrator, 1-6
master detail form Oracle Application Express Engine, 1-6
creating, 7-49 Oracle Application Server Single Sign-On, 13-30
Media Type attribute, 4-10 preconfigured authentication schemes
Message for unavailable application, 4-12 Oracle Application Server Single
messages Sign-On, 13-30
translating, 16-11 Oracle BI Publisher
translating internal, 16-13 integrating with, 13-2
messages in PL/SQL procedures, 16-11 Oracle HTTP Server
translating, 16-11 about security, 13-2
messages in reports, 16-13 location of images, CSS, and script files, 14-20
translating, 16-13 Oracle XML DB HTTP server
verifying HTTP server port, 1-10
N
navigation
Index-9
P security, 5-26
Standard Tab Set, 5-25
packaged application
Title, 5-25
about, 14-5
page components
about Supporting Objects page, 14-6
controlling access, 7-100
adding access control list, 14-8
editing all, 5-7
adding CSS installation script, 14-8
page computation
adding image installation script, 14-8
computation point, 5-15
adding static file installation script, 14-8
creating, 5-14
build options, 14-7
defining computation point, 5-16
creating supporting objects, 14-6
defining computation source, 5-16
defining an upgrade script, 14-10
editing attributes, 5-16
deinstallation scripts, 14-8
making a computation conditional, 5-17
deinstalling, 14-11
syntax, 5-15
deleting installation options, 14-9
page controls
deleting messages, 14-9
editing all, 5-7
deleting supporting object scripts, 14-9
Page Definition
how to create, 14-5
about, 3-1
installation scripts, 14-7
Action Bar, 5-3
installing supporting objects, 14-9
alternate views, 5-4
messages, 14-7
Copy button, 5-2
prerequisites, 14-7
Copy icon, 5-8
substitutions strings, 14-7
Create button, 5-3
testing installation scripts, 14-9
Create icon, 5-8
upgrade scripts, 14-8
creating a page, 6-11
upgrading a packaged application, 14-10
creating new controls and components, 5-8
validations, 14-7
Delete button, 5-2
viewing an install summary, 14-11
editing, 5-7
packages
editing all, 5-7
searching for, 7-93
export, 5-6
page
Next button, 5-2
creating, 6-10
Page field, 5-2
creating from Application Home, 6-10
Page Processing, 5-11
creating from Page Definition, 6-11
Page Rendering, 5-9
managing, 6-9
Previous button, 5-2
page attributes, 5-9
reordering components, 5-8
about, 5-23
View list, 5-2, 5-4
accessing, 5-23
viewing, 5-1
Authentication, 5-26
Page Events
Authorization Scheme, 5-26
Next button, 5-5
Cache, 5-27
Page field, 5-5
Cache by User, 5-27
Previous button, 5-5
Cache Page, 5-27
Show All, 5-5
Cache Page Condition, 5-27
Show Used, 5-5
Cache Timeout, 5-27
View list, 5-5
Comments, 5-28
Page Finder, 7-89, 7-90
Configuration, 5-27
page groups
Cursor Focus, 5-25
assigning pages, 6-17
display attributes, 5-24
creating, 6-17
Duplicate Submission, 5-27
editing group definition, 6-17
Expression 1, 5-27
managing, 4-5
Footer, 5-25
Pages by Page Group report, 6-18
Groups, 5-24
reassigning pages, 6-17
Header Text, 5-25
removing, 6-18
Help, 5-28
removing pages, 6-18
HTML Body Attributes, 5-26
viewing, 5-6, 6-16
HTML Header, 5-25
page help
Name, 5-24
creating, 7-104
On Error Text, 5-28
page item
Page Alias, 5-24
about, 6-33
Page Template, 5-25
Index-10
creating, 6-32, 6-34 Name, 10-27
creating from Page Definition, 6-35 Parent Tab Attributes, 10-29
deleting multiple, 6-45 specifying defaults, 10-13
Drag and Drop Layout page, 6-46 Standard Tab Attributes, 10-29
editing attributes, 6-42 Subscription, 10-27
editing display on a page, 6-43 substitution strings, 10-25
editing Help, 6-44 Subtemplate, 10-28
editing multiple, 6-42 page template substitution strings, 10-25
naming conventions, 6-35 #APP_VERSION#, 10-25
reassigning to a region, 6-45 #BOX_BODY#, 10-25
static list of values, 6-41 #CUSTOMIZE#, 10-25
types, 6-35 #FORM_CLOSE#, 10-26
using Drag and drop icon, 6-34 #FORM_OPEN#, 10-26
using Reorder Region Items icon, 6-45 #GLOBAL_NOTIFICATION#, 10-26
page items #HEAD#, 10-26
about, 6-33 #LOGO#, 10-26
page layout #NAVIGATION_BAR#, 10-26
about, 9-1 #NOTIFICATION_MESSAGE#, 10-26
page locks #ONLOAD#, 10-26
managing, 4-5 #PARENT_TAB_CELLS#, 10-26
page number, 5-7 #REGION_POSITION_NN#, 10-27
page processes #SUCCESS_MESSAGE#, 10-27
changing processing points, 5-21 #TAB_CELLS#, 10-27
changing source, 5-21 #TITLE#, 10-27
creating, 5-10, 5-20 page view
editing attributes, 5-21 Referenced Components, 5-6
making conditional, 5-22 page views
When Button Pressed attribute, 3-24 accessing alternate views, 5-4
Page Processing Database Object Dependencies, 5-5
about, 5-11 Groups, 5-6
Branches, 5-12 History, 5-5
Computations, 5-11 Page Events, 5-5
Processes, 5-12 page zero, 9-1, 9-2
Validations, 5-11 page-level item
page processing, 3-2 History, 6-45
understanding, 3-2 page-level template, 10-13
Page Rendering pages
about, 5-9 about, 3-1
Buttons, 5-10, 7-76 about page zero, 9-2
Computations, 5-10 adding, 6-9
Items, 5-10, 6-33 assigning to groups, 6-17
Page, 5-9 caching, 5-27
Processes calling from a button, 3-9
about, 5-10 calling with an alias, 3-9
Regions, 5-9, 9-3 controlling access to, 7-100
Tabs, 8-2 copying, 6-13
page rendering, 3-2 creating from Application home, 6-10
understanding, 3-2 creating from Developer toolbar, 6-13
page reports creating groups, 6-17
viewing, 12-3 deleting, 6-21
page template determining lock status, 6-19
Body, 10-28 duplicate submission, 5-27
Definition, 10-27 enabling user customization, 9-6
Display Points, 10-28 exporting, 14-15
editing, 10-25 grouping, 6-15
Error Page Template Control, 10-30 linking with f?p syntax, 3-7
Footer, 10-28 locking, 6-19
Header, 10-27 optimizing for printing, 7-103
Image Based Tab Attributes, 10-29 preventing conflicts, 6-19
Multi Column Region Table Attribute, 10-30 reassigning to groups, 6-17
Index-11
removing from groups, 6-18 process
resource use, 12-3 Cache Management, 5-20
running, 6-14 Data Manipulation, 5-20
searching for, 7-90 Form Pagination, 5-20
specifying page template, 10-13 implementing background PL/SQL, 15-15
types, 6-12 On Demand, 5-20
unlocking, 6-19, 6-20 PL/SQL, 5-20
pagination Report Pagination, 5-20
classic reports, 7-30 Web Services, 5-20
interactive reports, 7-18 programming techniques
reports, 10-34, 10-38 collections, 15-4
Pagination Subtemplate database links, 15-2
Next Page Template, 10-39 implementing Web services, 15-16
Next Set Template, 10-39 running background PL/SQL, 15-13
Pagination Template, 10-39 proxy server
Previous Page Template, 10-39 defining, 15-18
Previous Set Template, 10-40 Proxy Server attribute, 4-10
parent tabs Public User attribute, 4-17
creating, 8-1 pull-down menu, 1-13
Parsing Schema attribute, 4-11
password
Q
changing, 1-11
resetting, 1-11 query
password complexity, 13-3 searching for, 7-91
passwords Query Finder, 7-89, 7-91
best practices, 13-9
identifying risks, 13-10 R
patch
creating, 14-14 radio group, 6-38
PDF printing Referenced Components
problems, 13-5 Next button, 5-7
performance tuning, 12-1 Page field, 5-7
PL/SQL Previous button, 5-7
running in background, 15-13 View list, 5-7
PL/SQL code region
searching for, 7-93 about, 5-9, 9-3
PL/SQL Finder, 7-89 about types, 9-8
Popup List of Values, 6-37 based on a URL, 9-12
Popup LOV template controlling positioning, 9-5
Application, 10-30 copying, 9-9
Buttons, 10-31 creating, 9-7
editing, 10-30 customizing, 9-2
Icon, 10-30 displaying conditionally, 9-5
Page Attributes, 10-31 editing attributes, 9-4
Pagination, 10-31 enabling customization, 9-6
Result Set, 10-31 specifying header and footer, 9-5
Search Field, 10-31 using Reorder Regions icon, 9-3
Subscription, 10-30 region attributes
Window, 10-31 Cache, 9-6
preconfigured authentication schemes, 13-26 Column, 9-5
Oracle Application Server Single Sign-On, 13-30 Condition Type, 9-5
primary navigation, 1-13 Customization, 9-5
Print Mode Page Template attribute, 4-14 Display Point, 9-5
Printer Friendly mode, 2-8 Expression, 9-5
Printer Friendly template, 7-103 Region Footer, 9-5
printing Region Header, 9-5
reports, 7-37 Region HTML table cell attributes, 9-5
Procedure Finder, 7-93 Sequence, 9-5
procedures Static ID, 9-7
searching for, 7-93 Template, 9-5
Index-12
region template report region
Comments, 10-32 printing, 7-37
Definition, 10-32 report regions
editing, 10-31 about configuration options, 7-38
Form Table Attributes, 10-32 printing to PDF, 7-38
Name, 10-31 report templates, 10-33
Subscription, 10-32 editing, 10-33
Substitution Strings, 10-33 generic column templates, 10-33
region type named column templates, 10-34
Calendar, 9-8, 9-9 using JavaScript, 10-40
Chart, 9-8 reports, 10-14
form, 9-8 about, 7-1
Help Text, 9-9 about an application, 6-29
HTML, 9-8 Application Builder, 6-29
List, 9-8 Bulk Edit Item Help, 7-105
PL/SQL Dynamic Content, 9-8 class references, 10-11
Report, 9-8 comparing user interface defaults, 11-5
Tree, 9-9 creating a column link, 7-34
URL, 9-9 creating with a wizard, 7-2
Reorder icon, 5-8 CSV export, 10-35
report column templates exporting to CSV format, 10-34, 10-38
colorizing cell headings, 10-35 including pagination above, 10-34, 10-38
omitting headings, 10-35 printing, 7-37
report column templates (generic) sorting columns, 7-33
After Rows, 10-36 SQL, 7-2
Before Each Row, 10-35, 10-36 supported substitution strings, 10-11
Before Rows, 10-34 template subscription, 10-14
Column Headings, 10-35 template utilization, 10-14
Column Templates, 10-35 templates in a theme, 10-9
displaying HTML after all columns, 10-36 theme file references, 10-10
displaying HTML after last row, 10-36 theme template counts, 10-10
Next Page Template, 10-37 themes, 10-9
Next Set Template, 10-37 Wizard Report, 7-2
Pagination Subtemplate, 10-36, 10-37 REQUEST
Previous Page Template, 10-37 button names, 7-80
Previous Set Template, 10-37 referencing value of, 3-23
Report Template, 10-34 substitution string, 3-23
Row Highlighting, 10-36 resource use
Template Subscription, 10-34 monitoring, 12-3
report column templates (named) restrict access
Before Rows attribute, 10-38 of application, 4-12
colorizing column header cell, 10-38 Run Application icon, 4-4
Column Headings, 10-38 Run Page icon, 4-7, 5-3
Pagination Subtemplate, 10-39 runtime environment, 1-6
Report Template Identification, 10-37
Row Templates, 10-38
S
Subscription, 10-37
report layouts Sample Application, 2-2, 6-8
about, 7-42 about, 2-3
copying, 7-44 script files
creating, 7-43 exporting, 14-18
editing, 7-44 SDLC, 14-1
options, 7-42 rapid application development, 14-2
report printing Spiral, 14-2
problems, 13-5 waterfall, 14-1
report queries secondary navigation, 1-13
about, 7-39 secure sockets layer
copying, 7-42 best practices, 13-2
creating, 7-40 security
editing, 7-41 attributes, 4-15
Index-13
for pages, 5-26 viewing existing settings, 13-16
security attributes viewing summaries, 13-16
authentication, 4-16 Session State Protection attribute, 4-18
Authentication Scheme, 4-17 session state values
Authorization Scheme, 4-17 managing, 3-11
Database Schema, 4-18 session timeout
Home Link, 4-16 understanding, 13-4
Login URL, 4-17 shared components
Public User, 4-17 about, 5-12, 5-30
Session State Protection, 4-18 accessing, 5-29
security best practices accessing reports, 5-34
administrator tasks, 13-1 backing up, 14-14
at risk passwords, 13-10 Breadcrumbs, 5-13
cross site-scripting protection, 13-11 creating, 5-29
embedded PL/SQL gateway, 13-1 exporting, 5-33, 14-14
enabling indexing of online Help, 13-8 icon, 4-4
enabling network services, 13-5 list of values, 5-13
items of type password, 13-9 Lists, 5-13
Oracle BI Publisher, 13-2 Lists of Values, 5-13
Oracle HTTP Server, 13-2 Navigation Bar, 5-14
password complexity, 13-3 Security, 5-14
runtime environment, 13-4 Shared Components page, 5-29
secure sockets layer, 13-2 Tabs, 5-13
session state, 13-13 Templates, 5-13
session timeout, 13-4 Theme, 5-13
zero as session ID, 13-10 Shared Components icon, 4-7, 5-3
security risks Shared Components page
file upload table, 13-24 Application Computations, 5-30
seeding, 16-6 Application Items, 5-30
select lists, 6-38 Application Processes, 5-30, 5-34
creating dependent list of values, 7-85 Authentication Schemes, 5-31
session Authorization Schemes, 5-31
ID, 3-5 Breadcrumbs, 5-32
session ID Build Options, 5-31
facilitating bookmarking, 3-9 Cascading Style Sheets, 5-33
session state Comments, 5-30
clearing, 3-12 Definition, 5-30
clearing application cache, 3-13 Edit Attributes, 5-31
clearing cache by item, 3-12 Edit Security Attributes, 5-31
clearing cache by page, 3-12 Images, 5-33
clearing cache for current user session, 3-14 Lists, 5-32
clearing cache for two pages, 3-12 Lists of Values, 5-32
enabling projection, 4-18 Navigation Bar Entries, 5-32
management, 3-4 Report Layouts, 5-32
passing item value, 3-13 Report Queries, 5-32
protection, 13-14 Session State Protection, 5-31
referencing, 3-11 Shortcuts, 5-32
security best practices, 13-13 Static Files, 5-33
setting, 3-11 Tabs, 5-31
viewing, 3-5 Templates, 5-32
session state protection Test Messages, 5-31
configuring all attributes, 13-16 Themes, 5-32
configuring security attributes, 13-15 Translate Application, 5-31
disabling, 13-14 Trees, 5-32
enabling, 13-14 User Interface Defaults, 5-32
enabling from Edit Security Attributes, 13-14 Web Service References, 5-30
enabling from Session State Protection, 13-15 Shortcut page, 7-87
enabling using a wizard, 13-15 shortcuts, 7-86
reports, 13-16 defining, 7-87
understanding, 13-14 editing attributes, 7-88
Index-14
HTML Text, 7-86 PRINTER_FRIENDLY, 3-22
HTML Text with Escaped Special PROXY SERVER, 3-23
Characters, 7-86 PUBLIC_URL_PREFIX, 3-23
Image, 7-86 report of supported, 10-11
Message, 7-86 REQUEST, 3-23
Message with JavaScript Escaped Special SQLERRM, 3-25
Quotes, 7-86 static, 4-13
PL/SQL Function Body, 7-86 supported in region footer, 9-5
reports, 7-88 SYSDATE_YYYYMMDD, 3-25
Shortcut History, 7-89 understanding, 3-15
Shortcut page, 7-87 usage within templates, 3-15
Subscribed Shortcuts, 7-89 using, 3-15
supporting translatable messages, 16-2 WORKSPACE_IMAGES, 3-25
Text with JavaScript Escaped Single Quotes, 7-86 supporting objects
types, 7-86 creating, 14-6
Show Page, 3-2 deinstalling, 14-11
shuttle multiple select list, 6-38 SVG chart
SOAP, 15-16 about types, 7-67
SQL report, 7-2 adding to existing page, 7-65
SQL tracing adding to new page, 7-66
enabling, 12-2 CSS classes, 7-68
standard tabs migrating all to Flash, 7-73
creating, 8-1 migrating to Flash, 7-73
Static File Repository, 9-16 migration restrictions, 7-73
static files referencing CSS styles inline, 7-71
deleting, 9-17 referencing custom CSS, 7-70
downloading, 9-17 SVG plug-in, 7-61
editing, 9-16
exporting, 14-17
T
importing, 14-23
importing into another instance, 14-17 tab
managing, 9-16 adding, 8-1
uploading, 9-16 creating, 8-3
static substitution string, 4-13 editing, 8-4
Status attribute, 4-12 editing multiple, 8-4
style sheet, 10-13 managing, 8-3
substitution strings Reorder Tabs icon, 8-3
#COLCOUNT#, 10-35 reports, 8-5
#CSV_LINK#, 10-35, 10-39 template support, 8-2
#GLOBAL_NOTIFICATION#, 4-12 tab reports
#HIGHLIGHT_ROW#, 10-35 History, 8-5
#IMAGE_PREFIX#, 9-14 Utilization, 8-5
#ROWNUM#, 10-35 Table Finder, 7-89, 7-92
about built-in, 3-15 tables
APP_ALIAS, 3-16 exporting user interface defaults, 11-6
APP_ID, 3-17 forcing close of HTML table, 6-39
APP_IMAGES, 3-17 searching for, 7-92
APP_PAGE_ID, 3-18 tabs
APP_SESSION, 3-18 about, 8-2
APP_UNIQUE_PAGE_ID, 3-18 Tabs page, 8-3
APP_USER, 3-19 tabular form
Application Express SCHEMA OWNER, 3-22 creating, 7-48
AUTHENTICATED_URL_PREFIX, 3-20 Template Defaults, 4-14
BROWSER_LANGUAGE, 3-20 template edit history, 10-14
calendar, 7-55 templates
CURRENT_PARENT_TAB_TEXT, 3-20 application defaults, 4-14
DEBUG, 3-20 breadcrumbs, 10-18
IMAGE_PREFIX, 3-22 button, 10-20
in page templates, 10-25 calendar, 10-21
LOGOUT_URL, 3-22 changing defaults, 10-3
Index-15
columns, 10-35, 10-40 dynamic translations, 16-3
creating, 10-14 editing manually, 16-10
customizing, 10-12 export options, 16-8
labels, 10-22 exporting text, 16-6
lists, 10-23 globalization support, 16-1
managing, 10-15 language identification, 16-2
page, 10-25 mapping primary application ID, 16-6
popup LOV, 10-30 mapping target application ID, 16-6
publishing, 10-18 messages, 16-2, 16-3
regions, 10-31 region titles, 16-3
replacing, 10-16 rules, 16-2
replacing all, 10-17 seeding, 16-6
reports, 10-33 shortcuts, 16-2
selecting for a page, 10-13 steps, 16-5
selecting theme default, 10-13 templates, 16-3
supported substitution strings, 10-11 translatable components, 16-2
unsubscribing to, 10-18 translation file, 16-7
viewing for specific page, 10-16 understanding, 16-5
viewing on Templates page, 10-15 understanding application rendering, 16-2
viewing region position utilization, 10-17 XLIFF, 16-7
viewing reports, 10-14 XLIFF Target Elements, 16-8
wizard defaults, 4-15 translation file, 16-7
text, 6-39 uploading and publishing, 16-9
text area, 6-39 tree
text strings creating, 8-20
translating, 16-11, 16-13 editing, 8-22
theme reports, 8-22
Themes page, 10-5 Trees page, 8-22
Theme attribute, 4-14 tree reports
theme reports History, 8-22
class references, 10-11 Utilization, 8-22
files references, 10-10 Trees page, 8-22
supported substitution strings, 10-11
template counts, 10-10
U
templates in a theme, 10-9
themes UDDI registry, 15-18
changing identification number (ID), 10-9 URL
copying, 10-6 publishing, 14-28
creating, 10-4 SSL-enabled, 9-13
default templates, 10-3 syntax, 3-6
deleting, 10-7 url
editing, 10-5 zero as session ID, 3-9
exporting, 10-8, 14-18 user identity
exporting with different ID, 10-9 establishing, 13-24
importing, 10-8, 14-24 verifying, 3-4
managing, 10-1 user interface
reports, 10-9 about, 1-1
selecting page-level template, 10-13 controlling, 10-1
switching, 10-6 navigation options, 1-13
Themes page, 10-2 User Interface Defaults
Themes page, 10-5 importing, 14-25
accessing from Page Definition, 10-2 user interface defaults, 6-5
accessing from Shared Components, 10-2 column definition, 11-3
toolbar, 5-28 comparing, 11-5
translatable messages exporting, 14-19
defining, 16-11 leveraging, 6-5
translation, 16-1 reports, 11-4
applications, 16-1 user roles
dynamic, 16-25 developer, 1-6
dynamic text strings, 16-2
Index-16
V workspace themes
adding, 10-7
validations
deleting, 10-8
about, 5-17
exporting, 10-8
defining error messages, 5-19
managing, 10-7
making conditional, 5-19
modifying, 10-8
When Button Pressed attribute, 3-24
WSDL document, 15-17
Version attribute, 4-10
View list
configuring defaults, 4-3 X
Virtual Private Database attribute, 4-18 XLIFF, 16-7
applying, 16-9
W deleting an uploaded document, 16-10
Target Elements, 16-8
Web service process
uploading, 16-9
editing a process, 15-26
uploading and publishing, 16-9
mapping input parameters to static values, 15-26
Web service reference, 15-17
creating, 15-18
creating forms, 15-23
creating forms and reports, 15-21
creating manually, 15-19, 15-21
invoking as a process, 15-24
searching UDDI registry, 15-18
specifying WSDL, 15-19
viewing a history, 15-26
Web Service Reference Page, 15-17
Web services, 15-16
problems, 13-5
specifying proxy server address, 15-18
SSL enabled, 15-18
utilizing, 15-17
Web Services References page, 15-17
Wizard Report, 7-2
wizards
Create Page, 6-10
creating a branch, 8-27
creating a breadcrumb, 8-15
creating a button, 7-77
creating a calendar, 7-55
creating a chart, 7-61
creating a list, 8-6
creating a LOV, 7-82
creating a new component, 6-13, 7-97
creating a page computation, 5-14, 15-24
creating a page process, 5-20
creating a region, 9-7
creating an application, 6-1, 6-2
creating navigation bar entry, 8-24
creating reports, 7-2
creating validations, 5-17, 7-54
workspace
logging in, 1-9
logging out, 1-12
requesting, 1-9
Workspace administrator, 1-6
Workspace home page
about, 1-12
Links list, 1-13
Migrations, 1-13
Workspace Schemas list, 1-13
Index-17
Index-18