6.9 Managing Application Attributes

Application attributes (also known as the Application Definition) control the behavior of an entire application and are divided into the categories: Definition, Security, Globalization, and User Interface.

Once you create an application, you can review and update all application attributes on the Edit Application Definition page.

See Also:

"How to Create a Custom Packaged Application" for information on using the Supporting Objects utility to create a packaged application

6.9.1 Editing Application Attributes

Use the Edit Application Definition page to change general application attributes such as the application name, version number, and control various properties and behaviors (such as logging, debugging, feedback, compatibility mode, application availability, error handling, and substitution strings).

6.9.1.1 Accessing the Edit Application Definition Page

To access the Edit Application Definition page:

  1. On the Workspace home page, click the App Builder icon.
  2. Select an application.
    The Application home page appears.
  3. From Application home page, you can access the Edit Application Definition page by clicking the Edit Application Properties button or Shared Components.
    • From Edit Application Properties:
      1. Click the Edit Application Properties button to the right of the application name.

      2. Click the Definition tab.

    • From Shared Components:
      1. Click Shared Components.

      2. Under Application Logic, click Application Definition Attributes.

    The Edit Application Definition page appears.

  4. Edit the appropriate attributes.
  5. Click Apply Changes to save your changes.

6.9.1.2 Edit Application Definition Page

The Edit Application Definition page is divided into the following regions.

Note:

Required values are marked with a red asterisk (*).

6.9.1.2.1 Name

Use Name attributes to define basic characteristics of your application, including the application name, an optional alphanumeric alias, and a version number.

Table 6-4 Application Definition, Name

Attribute Description To Learn More

Name

A short descriptive name for the application to distinguish it from other applications in your development environment.

n/a

Application Alias

Assigns an alternate alphanumeric application identifier. You can use this identifier for the application ID.

For example, suppose you create an alias of myapp for application 105. Using f?p syntax, you could call application 105 as either:

  • f?p=105:1

  • f?p=myapp:1

See "About Using f?p Syntax to Link Pages"

Version

Enter the application's version number. The value enter displays on the page. You can also automatically tie the version to the date of last modification using the following format masks:

  • YYYY.MM.DD

  • MM.DD.YYYY

  • DD.MM.YYYY

If your application version uses YYYY.MM.DD, then App Builder replaces this format mask with the date of last modification of any application attribute.

n/a

Application Group

Displays the application group currently associated with this application. To select another application group, make a selection from the list. To remove an application from an existing group, select Unassigned.

See "Managing Application Groups"

6.9.1.2.2 Properties

Use Properties attributes to configure logging, debug behavior, feedback, compatibility, email from address, and the application proxy server.

Table 6-5 Application Definition, Properties

Attribute Description To Learn More

Logging

Determines whether user activity is recorded in the Oracle Application Express activity log. Select Yes to log every page view and enable an administrator to monitor user activity for each application.

Disabling logging may be advisable for high volume applications.

This attribute can only be modified if the Application Activity Logging attribute in Oracle Application Express Administration Services is set to Use Application Setting.

See "Enabling Application Activity" in Logging in Oracle Application Express Administration Guide.

Debugging

Controls debug mode for the current application. Available options include:

  • Yes - Enables the application to run in a debug mode from a browser at runtime.

  • No - Disables the application from enabling in debug from a browser.

Running an application in debug mode is useful when an application is under development. For production applications, Oracle recommends disabling debugging and thus preventing users from viewing application logic.

Debug can be enabled programmatically regardless of this debug setting. If the application is run from the Application Express development environment, debugging can always be enabled.

n/a

Allow Feedback

Enables support for end user feedback for this application. Select Yes or No.

If you select Yes and enable this option, you must create a feedback page and navigation bar icon to call that page. If you later disable feedback, the navigation bar icon is hidden. This enables you to turn on feedback for testing and turn it off for production.

See "Managing Feedback"

Compatibility Mode

Controls the compatibility mode of the Application Express runtime engine. Certain runtime behaviors are changed from release to release. Use this attribute to obtain specific application behavior. To realize new behavior in an application, set the compatibility mode of the application to the current version.

n/a

Application Email from Address

Determines the email address to use as the from address in the application.

Enter a valid email address to use as the from address when sending email from an email download or subscription. The value can be a literal string containing a valid email or a static substitution reference defined in the application using substitution syntax APP_EMAIL. Examples:

john.doe@abc.com
&MY_APP_EMAIL_FROM.

Oracle does not recommend using an item substitution at the application or page-level since it only works in email download, but not for subscriptions.

Tip: You can also specify the Email from Address by editing interactive report attributes. See "About Emailing from an Interactive Report."

n/a

Proxy Server

Specify a proxy server.

For example, App Builder may require a proxy server when using a region source type of URL. The URL region source embeds the results of the URL (that is, the page returned by navigating to the URL) as the region source. If you use a firewall and the target of a URL is outside the firewall relative to App Builder, you may need to specify a proxy server.

You can reference values entered into this field from PL/SQL using the PL/SQL package variable APEX_APPLICATION.G_PROXY_SERVER.

For example:

www-proxy.company.com

n/a

6.9.1.2.3 Application Icon

In Icon File Name, enter the file name of an image which displays as the Application Icon in App Builder. The image should be 64 x 64 pixels, must be uploaded as Application Image within Shared Components, and must be present at the 'root' level (that is, not within a folder).

6.9.1.2.4 Availability

Use Availability attributes to manage your application by defining an application status and build status. For example, if you select the status Restricted Access, you can specify which users have access and can run the application.

Table 6-6 Application Definition, Availability

Attribute Description To Learn More

Status

Specifies whether the application is available or unavailable for use. Options include:

  • Available - Application is available with no restrictions.

  • Available with Developer Toolbar - Application is available for use. For developers, the Developer Toolbar displays on each page. Requires the developer to be logged in to App Builder in the same browser session.

  • Available to Developers Only - Application is available to users having developer privileges.

  • Restricted Access - Application is available to developers named in the Restrict to comma separated user list.

  • Unavailable - Application cannot be run or edited. The message in Message for unavailable application displays when users attempt to access the application.

  • Unavailable (Status Shown with PL/SQL) - Application cannot be run or edited.

  • Unavailable (Redirect to URL) - Application cannot be run. The user is linked to the URL entered in Message for unavailable application.

Build Status

Identifies the build status of the current application. Options include:

  • Run and Build Application - Developers and users can both run and develop the application.

  • Run Application Only - Users can only run the application. This option is intended for applications in a production instance.

See "Changing Application Build Status Set During Deployment" in Oracle Application Express Administration Guide

Message for unavailable application

Use this attribute with Status. If you set Status to Unavailable, Unavailable (Status Shown with PL/SQL), or Unavailable (Redirect to URL) , the text you enter in this attribute displays. If you set Status to Available, the text you enter in this attribute does not display.

n/a

Restrict to comma separated user list (status must equal Restricted Access)

Use this attribute with the Status Restricted Access. If you set Status to Restricted Access, only the users listed in this attribute can run the application.

To use this attribute:

  1. From the Status list, select a restricted status.

  2. Enter a comma-delimited list of users who can run the application in the field provided.

  3. Click Apply Changes.

n/a

6.9.1.2.5 Error Handling

Use the Error Handling attributes described to control or modify how an application logs errors.

Tip:

Error handling functions specified here are overridden by similar page-level attributes.

Table 6-7 Application Definition, Error Handling

Attribute Description To Learn More

Default Error Display Location

Identifies where the validation error messages display for basic validations performed by Application Express or by plug-ins. Validation error messages can display in a notification area (defined as part of the page template), or within the field label. Options include:

  • Inline with Field and in Notification - Error messages display in a notification area defined as part of the page template.

  • Inline with Field - Error messages display within the field label.

  • Inline in Notification - Displays in the #NOTIFICATION_MESSAGE# template substitution string when an error occurs on the page.

n/a

Error Handling Function

Enter the name of a PL/SQL error function to be called to modify the existing error message and display a more user-friendly message or log the error if one occurs. This function can reference a package function or standalone function in the database. For example:

log_apex_error

When referencing a database PL/SQL package or standalone function, use the #OWNER# substitution string to reference the parsing schema of the current application. For example:

#OWNER#.log_apex_error

You must implement error handling functions using the syntax described in the apex_error package.

function <name of function> (
    p_error in apex_error.t_error )
    return apex_error.t_error_result

Note: Error handling specified at the page-level overwrites any error handling function specified here.

See apex_error in Oracle Application Express API Reference

6.9.1.2.6 Global Notification

Use the Global Notification attribute to communicate system status to application users. If the page templates used in your application contain the #GLOBAL_NOTIFICATION# substitution string, the text entered here displays in that string's place. For example, you can use this attribute to notify users of scheduled downtime, or communicate other messages regarding application availability.

To create a global notification:

  1. Include the #GLOBAL_NOTIFICATION# substitution string in your page template.

  2. Navigate to the Edit Application Definition page and enter a message in the Global Notification attribute.

  3. Click Apply Changes.

6.9.1.2.7 Substitutions

Use Substitutions 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.

6.9.1.2.8 Build Options

The Build Options displays existing build options in the current application. 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 includes and enables it at runtime. However, if you specify an attribute to be excluded, then the Application Express engine disables it and excludes it at runtime.

Do not specify a build option unless you plan to exclude that object from specific installations.

6.9.2 Configuring Security Attributes

Configure security for all pages in an application on the Edit Security Attributes page. The security attributes are divided into the categories: Authentication, Authorization, Session Management, Session State Protection, Browser Security, and Database Session.

6.9.2.1 Accessing the Edit Security Attributes Page

To access the Edit Security Attributes page:

  1. On the Workspace home page, click the App Builder icon.
  2. Select an application.
    The Application home page appears.
  3. From the Application home page, you can access the Edit Security Attributes page in two ways:
    • From Shared Components:
      1. Click Shared Components.

      2. Under Security, click Security Attributes.

    • From Edit Application Properties:
      1. Click the Edit Application Properties button to the right of the application name.

      2. Click the Security tab.

    The Edit Security Attributes page appears.

  4. Edit the appropriate attributes.
  5. Click Apply Changes to save your changes.

6.9.2.2 Security Attributes Page

Use the Edit Security Attributes page to set application-wide security settings. Edit application components directly to manage more granular settings. The Edit Security Attributes page is divided into the following sections:

Note:

Required values are marked with a red asterisk (*).

6.9.2.2.1 Authentication

Authentication is the process of establishing users' identities before they can access an application. Although you can define multiple authentication schemes for your application, only one scheme can be current at a time.

Table 6-8 Authentication Attributes

Attribute Descriptions To Learn More

Public User

Identifies the Oracle schema  (or user) used to connect to the database through the Database Access Descriptor (DAD). Once a user has been identified, the Application Express engine keeps track of each user by setting the value of the built-in substitution string APP_USER.

When APP_USER equals this value, the Application Express engine considers the current session to be a "public user" sessionsession. The Application Express engine supports the following built-in display conditions:

  • USER_IS_PUBLIC_USER

  • USER_IS_NOT_PUBLIC_USER

If the current application user (APP_USER) equals the value of this attribute, then the user is logged on as a public user. Some applications have public (not logged in) and private (logged in) modes. By determining if the user is the public user, you can conditionally display or hide information.

For example, you can show a login button if the user is the public user and a logout link if the user is not a public user. Reference this value using APEX_APPLICATION.G_PUBLIC_USER.

See "HOME_LINK" and "Understanding Conditional Rendering and Processing"

Authentication Scheme

identifies the current authentication method used by this application. The purpose of authentication is to determine the application users identity.To create an authentication scheme, click Define Authentication Schemes.

See "How Authentication Works" and "Creating an Authentication Scheme"

6.9.2.2.2 Authorization

Application authorization schemes control access to all pages within an application. Unauthorized access to the application, regardless of which page is requested, causes an error page to display.

Table 6-9 Authorization Attributes

Attribute Descriptions

Authorization Scheme

Specify an authorization scheme for your application. Application authorization schemes are defined for an application for the purpose of controlling access. Setting a required authorization scheme here at the application level will require all pages of the application to pass the defined authorization check.

Define Authorization Schemes

Click the Define Authorization Schemesbutton to create an authorization scheme.

Run on Public Pages

Controls whether the application-level authorization scheme is checked on public pages (that is, pages that do not require authorization). Options include:

  • Yes - If you select Yes and the page is public, the application authorization is checked.

  • No - If you select No and the page is public, the application authorization is ignored.

Note: This attribute is ignored if you select Must Not Be Public User as Authorization Scheme.

6.9.2.2.3 Session Management

Use Session Management attributes to reduce exposure by application to abandoned computers with an open web browser.

Table 6-10 Session Management

Attribute Descriptions

Rejoin Sessions

Use this attribute to control if Application Express should support application URLs that do not contain session IDs. When Rejoin Sessions is enabled, Application Express attempts to use the session cookie to join an existing session, when a URL does not contain a session ID.

A more restrictive instance-level setting overrides this page-level value.

Note: Enabling rejoin sessions exposes your application to possible security breaches, as it can enable attackers to take over existing end user sessions. See "About Rejoin Sessions."

Rejoin Sessions options include:

  • Application Default - The application-level setting applies.

  • Disabled - If the URL does not contain a session ID Application Express creates a new session.

  • Enabled for Public Sessions - If the URL goes to a public page and does not contain a session ID, Application Express attempts to utilize the existing session cookie established for that application. Application Express only joins using the cookie when the session is not yet authenticated.

  • Enabled for All Sessions - If the URL does not contain a session ID, Application Express attempts to utilize the existing session cookie established for that application, providing the following conditions are met:

    Session State Protection is enabled for the application and the URL includes a valid checksum. For public bookmarks, the most restrictive item level protection must be either Unrestricted or Checksum Required - Application Level.

    OR, the URL does not contain payload (a request parameter, clear cache or data value pairs).

    This option requires you set Embed In Frames to Allow from same origin or Deny. This is not tied to a condition about the URL payload, but also applies to session state protected URLs.

Deep Linking

Enable or prevents deep linking to an application. Options include:

  • Enabled - The URL to a specific page ultimately redirects there, possibly after the user has logged in.

  • Disabled - If the URL does not contain a valid session ID, Application Express starts a new session and redirects to the application's home page.

For example, browsers often save the URLs of opened tabs and try to restore the sessions after a restart, causing a deep link. This behavior may be undesirable (for example if a URL points to a page in the middle of a multi-step wizard). By selecting Disable, Application Express starts a new session and redirects to the application's home page.

Maximum Session Length in Seconds

Defines how long (in seconds) sessions can exist and be used by this application.

  • Enter a positive integer to control how long a session can exist.

  • Enter 0 to have sessions exist indefinitely.

  • Leave the value empty in order to use the session duration defined at the workspace-level or the instance level.

Session Timeout URL

Enter an optional URL to redirect to when the maximum session lifetime has been exceeded. The target page in this URL, if implemented in Application Express, should be a public page.

A common use for this page would be to inform the user of the session expiration and to present a login link or other options. If you do not enter a URL, users will see the message "Your session has timed out" and a link to the application home page. If you enter #LOGOUT_URL#, Application Express will execute a logout, just like when the user clicked on the application's logout link.

Only three substitution items are supported:

  • &APP_SESSION.

  • &SESSION.

  • &APP_ID.

Because of the particular purpose of this URL. it is not necessary to include either &APP_SESSION. or &SESSION. in the link.

Maximum Session Idle Time in Seconds

The Session Idle Time is the time between the last page request and the next page request. Options include:

  • Enter a positive integer to control the idle time for sessions used by this application.

  • Leave the value empty in order to use the idle time defined at the workspace level or the instance level.

Session Idle Timeout URL

Enter an optional URL to be redirected to when the maximum session idle time has been exceeded. The target page in this URL, if implemented in Application Express, should be a public page. A common use for this page would be to inform the user of the session expiration and to present a login link or other options. If you do not enter a URL, users will see the message "Your session has timed out" and a link to the application home page. If you enter #LOGOUT_URL#, Application Express will execute a logout, just like when the user clicked on the application's logout link..

Only three substitution items are supported in this URL:

  • &APP_SESSION.

  • &SESSION.

  • &APP_ID.

Because of the particular purpose of this URL, it is not necessary to include either &APP_SESSION. or &SESSION. in the link.

6.9.2.2.4 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. This table describes the attributes available under Session State Protection.

Table 6-11 Session State Protection

Attribute Descriptions

Session State Protection

Make a selection from the Session State Protection list, to enable or disable Session State Protection for your application. Selecting Enabled turns on session state protection controls defined at the page and item-level. To learn more, see field-level Help.

Allows URLS Created After

Lists the date and time after which bookmarked links are usable to access pages in this application if the bookmarked link contains a checksum and Session State Protection is enabled for the application.

Bookmarks created before this date and time are not usable to access this application if the bookmarked link contains a checksum and Session State Protection is enabled for the application. Bookmarks that do not contain checksums or bookmarks that contain checksums that are unnecessary are not affected by this attribute. Their usability is determined using other criteria. A hidden application attribute (a checksum salt) is used during the computation and later verification of checksums included in f?p= URLs generated during page rendering. Checksums are included when Session State Protection is enabled for the application. You can reset this checksum salt attribute at any time by clicking the Expire Bookmarks button.

Bookmark Hash Function

Used to create checksums for application-level and user-level checksums in bookmarkable URLs.

Expire Bookmarks

Click Expire Bookmarks to reset this hidden application attribute (a checksum salt) salt attribute at any time. Clicking this button causes any bookmarked URLs that contain previously generated checksums to fail when they are subsequently used to access the application.

Tip: You can also click Expire Bookmarks to change the Bookmark Hash Function to switch to a different algorithm for computing checksums.

Manage Session State Protection

Click Manage Session State Protection to configure Session State Protection.

6.9.2.2.5 Browser Security

This table describes the attributes available under Browser Security.

Table 6-12 Browser Security

Attribute Descriptions

Cache

Use Cache to enable or disable browser caching of application page contents. If enabled, the browser saves the contents of pages for this application in its cache, both in memory and on disk. Typically when caching is enabled and the browser back button is clicked, the page is loaded from the cache instead of from the server. If disabled, the browser is instructed not to save application page contents and requests the latest page content from the server whenever the URL changes.

To avoid the possibility of saving sensitive data, Oracle recommends that this attribute be disabled. Otherwise, it is possible to go back in the browser history after a logout and see cached content from a previous session. Disabling the browser cache also prevents issues with pages that use partial page refreshes, such as is the case with interactive reports.

If this attribute is set to Disabled, Application Express sends the HTTP header cache-control: no-store which instructs the browser to not cache the page contents on disk or in memory. Note that this feature requires modern browsers that support the HTTP header response variable cache-control.

Embed in Frames

Controls if a browser may display your application's pages within a frame. Available options include:

  • Deny - The page cannot be displayed in a frame, regardless of the site attempting to do so.

  • Allow from same origin - The page can only be displayed in a frame on the same origin as the page itself.

  • Allow - The page can be displayed in any frame.

Displaying pages within frames can be misused with "clickjacking" attacks. In a “clickjacking” attack, the attacker uses multiple layers to trick a user into clicking a button or link on another page when they were intending to click the top level page. Thus, the attacker is hijacking clicks (or keystrokes) meant for their page and routing them to another page.

To learn more, see field-level Help.

HTML Escaping Mode

Defines how Oracle Application Express escapes special characters. Options include:

  • Basic: Escape &, ", < and >

  • Extended: Escape &, ", <, >, ', / and non-ASCII characters if the database character set is not AL32UTF8

HTTP Response Headers

Enter additional application specific HTTP headers that Oracle Application Express should send on each response and that it does not support in another way (for example, X-Frame-Options using the Embed in Frames attribute).

Example:

X-XSS-Protection: 1; mode=block

X-Content-Type-Options: nosniff

Tip:

Both Cache and Embed in Frames require modern browsers that support the HTTP header response variable X-Frame-Options.

6.9.2.2.6 Database Session

This table describes the attributes available under Database Session.

Table 6-13 Database Session

Attribute Descriptions

Parsing Schema

Specifies the schema that all SQL and PL/SQL in the application will be parsed as. You may use #OWNER# to reference this value in SQL queries and PL/SQL (for example, in a region or a process).

Initialization PL/SQL Code

Use this attribute to enter a PL/SQL block that sets a context for the 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. To view examples, see field-level Help.

Cleanup PL/SQL Code

Use this attribute to enter a PL/SQL block that runs at the end of page processing. It can be used to free or clean up resources that were used, like VPD contexts or database links. To view examples, see field-level Help.

Runtime API Usage

Control how this application can access Oracle Application Express APIs that modify applications and workspace data, while it is running. Options include:

  • Modify This Application: The application can modify itself.

  • Modify Other Applications: The application can change other applications in the workspace.

  • Modify Workspace Repository: The application can change workspace users and groups.

6.9.3 Configuring Globalization Attributes

Edit attributes on the Edit Globalization Attributes to configure application globalization options. In App Builder you can develop applications that can run concurrently in different languages.

A single application can be translated to support different languages. Use the attributes on the Edit Globalization Attributes page to specify globalization options such as the primary application language and defaults for date format, time format, timestamp format, time zone format, and CSV encoding.

6.9.3.1 Accessing the Globalization Attributes Page

To access the Edit Globalization Attributes page:

  1. On the Workspace home page, click the App Builder icon.
  2. Select an application.

    The Application home page appears.

  3. Click Shared Components.

    The Shared Components page appears.

  4. Under Globalization, click Globalization Attributes.

    The Edit Globalization Attributes page appears.

  5. Edit the appropriate attributes and click Apply Changes.

Tip:

You can also access to the Edit Globalization Attributes page by navigating to the Edit Application Definition and then clicking the Globalization tab. See "Accessing the Edit Application Definition Page."

6.9.3.2 Edit Globalization Attributes Page

The following sections describe the attributes available on the Edit Globalization Attributes page.

Note:

Required values are marked with a red asterisk (*).

6.9.3.2.1 Application Primary Language

Identifies the language in which an application is developed. This language is the base language from which all translations are made. For example, suppose application 100 was authored in English, translated into French, and published as application 101. English would be the Application Primary Language.

All modifications to the application should be made to the primary language specified here.

6.9.3.2.2 Application Language Derived From

Specifies how Application Express derives the translated application language. The application primary language can be static, derived from the Web browser language, or determined from a user preference or item.

To learn more about the available options, see Field-level Help.

6.9.3.2.3 Document Direction

Sets the document direction. Options include:

  • Left-To-Right

  • Right-To-Left

6.9.3.2.4 Application Date Format

Determines the date format to be used in the application.

Use this date format 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. Consider the following examples:

Month DD, YYYY
&MY_DATE_FORMAT.

6.9.3.2.5 Application Date Time Format

Specify the date time format to be used in the application.

This date time format can be referenced in an application using the substitution reference&APP_DATE_TIME_FORMAT., or in PL/SQL using the function v('APP_DATE_TIME_FORMAT'). This attribute does not alter any NLS settings. This value can be a literal string containing a valid Oracle date format mask or an item reference using substitution syntax. If this attribute value is not specified, then a reference to APP_DATE_TIME_FORMAT returns the NLS database session date format and the NLS time format. Consider the following examples:

Month DD, RRRR HH24:MI
&MY_DATE_TIME_FORMAT.

6.9.3.2.6 Application Timestamp Format

Determines the timestamp format to be used in the application. Select a timestamp format from the list of values.

Use this timestamp format to alter the NLS_TIMESTAMP_FORMAT database session setting before showing or submitting any page in the application. This value can be a literal string containing a valid Oracle timestamp format mask or an item reference using substitution syntax. If no value is specified, the default timestamp format is derived from the database session at runtime. Consider the following examples:

DD-MON-RR HH.MI.SSXFF AM
&MY_TIMESTAMP_FORMAT.

6.9.3.2.7 Application Timestamp Time Zone Format

Determines the timestamp with time zone format to be used in the application.

Use this date format to alter the NLS_TIMESTAMP_TZ_FORMAT database session setting before showing or submitting any page in the application. This value can be a literal string containing a valid Oracle timestamp with time zone format mask or an item reference using substitution syntax. If no value is specified, the default timestamp with time zone format is derived from the database session at runtime. Consider the following examples:

DD-MON-RR HH.MI.SSXFF AM TZR
&MY_TIMESTAMP_TZ_FORMAT.

6.9.3.2.8 Character Value Comparison

Determines the collating sequence for character value comparison in various SQL operations and clauses, for example, ORDER BY, LIKE, MIN/MAX.

Use this value to alter NLS_SORT database session parameter for the execution of SQL queries in classic report and interactive report regions. If no value is specified, the default value is derived from the database session at runtime. Consider the following examples:

BINARY
GERMAN
CANADIAN_M

6.9.3.2.9 Character Value Comparison Behavior

Determines the collation behavior of SQL operations, for example, LIKE, MIN/MAX.

This value is used to alter NLS_COMP database session parameter for the execution of SQL queries in classic report, interactive report, and List view regions, as well as in plug-in API. Options include:

  • Database session NLS setting (default) - The NLS_COMP value is derived from the database session at runtime.

  • Binary - Comparisons in WHERE clauses and other SQL operations are binary.

  • Linguistic - Comparisons in WHERE clauses and other SQL operations use the linguistic sort specified in the Character Value Comparison attribute (NLS_SORT).

6.9.3.2.10 Automatic Time Zone

Controls the setting of the database session time zone. When set to Yes, the client time zone is derived from the client's web browser and set for the duration of the Application Express session.

Subsequent page views have the database session time zone set properly per page view. Once set, this setting can be overridden using APEX_UTIL.SET_SESSION_TIME_ZONE, or reset using APEX_UTIL.RESET_SESSION_TIME_ZONE.

6.9.3.2.11 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 Yes. When 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 App 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 often appears corrupted when opened by a desktop spreadsheet application. This is because the CSV output from report regions is encoded differently than what is required by the desktop application. Enabling Automatic CSV Encoding resolves this issue.

For example, if the user's language preference for an application is de, the CSV data is encoded in Western European Windows 1252, regardless of the Database Access Descriptor character set setting. If the user's language preference is zh-cn, the CSV data is encoded in Chinese GBK.

6.9.4 Managing the Application User Interface

Edit attributes on the User Interface page to determines the default characteristics of the application and optimizes the display for the target environment (such as Desktop or Mobile). You can customize the user interface by editing general attributes on the User Interface page and specific attributes on the User Interface Details page.

6.9.4.1 Accessing User Interface Attributes

To access user interface attributes:

  1. On the Workspace home page, click the App Builder icon.
  2. Select an application.

    The Application home page appears.

  3. From the Application home page, you can access the User Interfaces page in two ways:
    • From Shared Components:
      1. Click Shared Components.

      2. Under User Interface, click User Interface Attributes.

    • From Edit Application Properties:
      1. Click the Edit Application Properties button to the right of the application name.

      2. Click the User Interface tab.

    The User Interfaces page appears.

  4. To edit attributes for a specific user interface, select a previously defined user interface in User Interfaces region.

    The User Interfaces page appears. Defined User Interfaces display in the User Interfaces region at the top of the page.

  5. Edit the appropriate attributes.
  6. Click Apply Changes to save your changes.

6.9.4.2 User Interface Page

The User Interface page is divided into the following sections:

Tip:

To learn more about the attributes on this page, see field-level Help.

6.9.4.2.1 User Interfaces

Displays user interfaces defined for the current application. To edit an existing user interface, click the user interface name. The User Interface Details page appears.

For applications with only a Mobile User Interface, developers can add the Desktop User Interface. To add a new Desktop User Interface, click Add New User Interface and edit the attributes.

6.9.4.2.2 General Properties

Use General Properties to define basic characteristics of the application user interface.

Table 6-14 User Interface, General Properties

Attribute Description

Static File Prefix

Determines the virtual path the Web server uses to point to the static files when using the #APP_IMAGES# substitution string.

Do not specify anything to reference files which are stored with your application definition in the database.

For performance reasons you can also store your application files on your Web Server. Use any valid URL to reference them.

Examples:

  • /myFiles/

  • http://contentDeliveryNetwork.com/myFiles/

Image Prefix

Determines the virtual path the web server uses to point to the images directory distributed with App Builder. During installation, the virtual path is configured as /i/. If you are unsure, contact your administrator.

When embedding an image in static text (for example, in page or region headers or footers), you can reference an image using the substitution string #IMAGE_PREFIX#. For example, to reference the image go.gif, you would use the following syntax:

<img src="#IMAGE_PREFIX#go.gif">

Note: If the entered image prefix is equal to the instance image prefix, then the application-level attribute will always be null. This easily facilities the movement of an application across different instances that may have different image prefixes.

See Also: "IMAGE_PREFIX"

Media Type

Enter the Internet media type. An Internet media type is two-part identifier for file formats on the internet. A Media Type is composed of at least two parts: a type, a subtype, and one or more optional parameters. This Media Type is used in the Content-Type HTTP header when rendering the page.

The page-level Media Type overrides the application-level Media Type. The default value for this attribute is NULL. If both the page-level and application-level values for Media Type are NULL, the Media Type text/html is used.

6.9.4.2.3 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.

Table 6-15 User Interface, Logo

Attribute Description

Logo Type

For Logo Type, select an image type:

  • Select Image to use an image for the application logo.

  • Select Text to use text for the application logo.

Logo

For Logo Type, select an image type:
  • For an image, enter the complete image name, including the filename extension, for example:

    /i/oracle.gif

  • For text, enter the full text string, for example:

    Sample Application

Note that to use this feature, your page template must include the #LOGO# substitution string.

Logo Attributes

In Logo Attributes, enter the attributes for the logo.

Image example:

width="100" height="20" alt="Company Logo"

Text example:

style="font-family:Arial; color:#000000; font-size:18; white-space:nowrap; font-weight:bold;"

Note that to use this feature, your page template must include the #LOGO# substitution string.

6.9.4.2.4 Favicon

Enter Favicon HTML code in this attribute to create a favicon (or shortcut icon). To use this feature, your page template must include the #FAVICONS# substitution string. Example:

<link rel="shortcut icon" href="/i51/favicon.ico">
<link rel="icon" sizes="16x16" href="/i51/favicon-16x16.png">
<link rel="icon" sizes="32x32" href="/i51/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/i51/favicon-180x180.png">

6.9.4.2.5 User Interface Detection

Enter CSS file URLs for stylesheets that should be loaded when Application Express displays the available user interfaces, when automatic detection fails. Each URL has to be written into a new line. If you provide a minified version of your file you can use the substitution string #MIN# to include .min , or #MIN_DIRECTORY# to include minified/ in your file URL for a regular page view and an empty string if the page is viewed in debug mode. You also have access to the substitution string #APP_VERSION# if you want to include the application's version in the file URL.

To view examples, see field-level Help.

6.9.4.3 Defining an Application Logo

To define an application logo:

  1. Access the User Interface page.
  2. Specify the logo attributes.
    • If the logo is an image:

      1. Logo Type - Select Image.

      2. Logo - Enter the complete image name, including the file name extension (for example, /i/oracle.gif) or a fully qualified URL if you a referencing the image.

      3. Logo Attributes - Enter the appropriate attributes for the logo or make a selection from the list.

    • If the logo is text:

      1. Logo Type - Select Text.

      2. Logo - Enter the full text string, for example:

        Sample Application

      3. Logo Attributes - Enter the appropriate attributes for the logo or make a selection from the list.

  3. Click Apply Changes.

Tip:

You can also reference an image uploaded to the static file repository using a substitution string. See "Referencing Static Application Files" and "About Referencing Static Workspace Files."

6.9.4.4 Adding Desktop UI to a Mobile UI Only Application

For applications with only a Mobile User Interface, developers can add the Desktop User Interface to facilitate the migration from the desupported Mobile User Interface to the Desktop User Interface and the Universal Theme.

Note:

Oracle recommends rebuilding the Mobile UI pages using the Desktop UI and then once functionally complete, removing the pages associated with the Mobile UI and deleting the Mobile UI from the application. To learn more about migrating existing applications to the Universal Theme, go to the Universal Theme application at https://apex.oracle.com/ut.

To add a new user interface:

  1. On the Workspace home page, click the App Builder icon.
  2. Select an application.

    The Application home page appears.

  3. From the Application home page, you can access the User Interfaces page in two ways:
    • From Shared Components:
      1. Click Shared Components.

      2. Under User Interface, click User Interface Attributes.

    • From Edit Application Properties:
      1. Click the Edit Application Properties button to the right of the application name.

      2. Click the User Interface tab.

    The User Interfaces page appears.

  4. In the User Interfaces region, click Add New User Interface.
  5. On User Interface:
    1. Type - Select a user interface type (for example, Mobile). If no types display, then all available user interfaces are associated with the current application.
    2. Review the remaining attributes.

      To learn more about an attribute, see field-level Help.

    3. Click Next.
  6. On Create Theme:
    1. Theme Type - Select a theme type. Standard themes are supplied with Application Express. Custom themes are additional themes available for use.
    2. Theme - Select a theme (for example, Mobile (Theme 51).
    3. Click Next.
  7. Confirm your selections and click Create.

The user interface is added to the User Interface page. You can edit the user interface by editing User Interface Details.

6.9.4.5 Editing User Interface Details

Use User Interface Details to define the specific settings for a selected user interface type. For example, you can select the application home and login page, configure the Navigation Menu and Navigation Bar as well as configure attributes for JavaScript, Cascading Style Sheet, and Concatenated Files.

To edit user interface details:

  1. On the Workspace home page, click the App Builder icon.
  2. Select an application.
    The Application home page appears.
  3. From the Application home page, you can access the User Interfaces page in two ways:
    • From Shared Components:
      1. Click Shared Components.

      2. Under User Interface, click User Interface Attributes.

    • From Edit Application Properties:
      1. Click the Edit Application Properties button to the right of the application name.

      2. Click the User Interface tab.

    The User Interfaces page appears. Defined User Interfaces display in the User Interfaces region at the top of the page.

  4. To edit attributes for a specific user interface, click the Edit icon adjacent to the User Interface.
    The User Interface Details page appears.
  5. Edit the appropriate attributes. To learn more about an attribute, see field-level Help.
  6. Click Apply Changes to save your changes.

6.9.4.6 User Interface Details Page

Use User Interface Details to define the specific settings for the selected user interface type.

The User Interface Details page is divided into the following sections:

6.9.4.6.1 Identification

Table 6-16 User Interface Details, Identification

Attribute Description

User Interface Type

Displays the selected interface type. A Desktop user interface is used for applications primarily designed for desktop use. A Mobile user interface is used for applications primarily designed for use on smartphones and tablets.

Display Name

Specify a display name for the user interface. The display names is shown in wizards, such as the Create Theme Wizard.

Sequence

Specify the display sequence for the user interface.

6.9.4.6.2 Attributes

Table 6-17 User Interface Details, Attributes

Attribute Description To Learn More

Auto Detect

Select whether the user interface should be automatically detected. If auto-detection is enabled, the user will be redirected to the corresponding login page or home page.

n/a

Default

Select whether the user interface is the default interface for the application.

n/a

Enable End Users to choose Theme Style

If set to Yes, end users can choose a Theme Style for their sessions within a customization dialog. Only Theme Styles marked as Public are eligible for selection.

See "Enabling Users to Select a Theme Style"

Add "Built with APEX" to Footer

If set to Yes, Oracle Application Express will add the text "Built with ♥ using Oracle APEX" to the footer of every page.

n/a

Home URL

Specify the home page of the application for the current user interface.

n/a

Login URL

Specify the login page of the application for the current user interface.

n/a

Theme

Shows the theme currently associated with the user interface.

See "Switching Themes"

Theme Style

Select a theme style. This option only displays for newer themes that support theme styles.

See "Using Theme Styles and Theme Roller"

Global Page

If defined, displays the global page for the application.

See "Creating a Global Page to Display Components on Every Page"

6.9.4.6.3 Navigation Menu

Applications using newer themes, such as Universal Theme - 42, provide navigation with navigation menus.

Table 6-18 User Interface Details, Navigation Menu

Attribute Description

Display Navigation

Select Yes or No.

Navigation Menu List

Select the list utilized for the navigation menu for the application.

Position

Select the position where you would like your navigation menu to be placed on this application. 

  • Side  renders the navigation menu list template in the #SIDE_GLOBAL_NAVIGATION_LIST# position on your page template. 

  • Top  renders the navigation menu list template in the #TOP_GLOBAL_NAVIGATION_LIST# position on your page template. 

For example, if you choose Side, your navigation could be rendered as a tree on the left side of your pages; and choosing Top can render your navigation as a menu bar in the header of your pages.

List Template

Select the List Template used to render the navigation menu for this application.

Template Options

Set Template Options for the List Template used for the navigation menu list for the application.

6.9.4.6.4 Navigation Bar

Applications using newer themes, such as Universal Theme - 42, include navigation bar lists. Navigation Bar settings enable you to select list and list templates. Selecting classic implementation uses tabs instead of a list. Navigation Bar attributes only display with newer themes.

Table 6-19 User Interface Details, Navigation Bar

Attribute Description

Inplementation

Select how to you wish to implement the navigation bar in this application.

  • Classic renders the navigation bar as a classic navigation bar in the #NAVIGATION_BAR# position on your page template. 

  • List renders the navigation bar as a list, using the selected list and list template in the #NAVIGATION_BAR# position on your page template.

Navigation Bar List

Select the list utilized for the navigation bar on this application.

List Template

Select the List Template used to render the navigation menu for this application.

Template Options

Set Template Options for the List Template used for the navigation menu list for the application.

6.9.4.6.5 JavaScript

Use these attributes to control or modify how an application handles JavaScript.

Table 6-20 User Interface Details, JavaScript

Attribute Description

Content Delivery Network

Specify the Content Delivery Network (CDN) that Application Express will try to use to load the libraries jQuery and jQuery Mobile. If Application Express cannot load these libraries from the CDN, they will be loaded from your web server instead.

Using a CDN can reduce the loading time of your application if the user has already visited other web sites which also use the same CDN to load the same libraries.

File URLs

Enter JavaScript file URLs for code to be loaded on every page. Each URL has to be written into a new line. If you provide a minified version of your file, you can use the substitution string #MIN# to include .min or #MIN_DIRECTORY# to include minified/ in your file URL for a regular page view and an empty string if the page is viewed in debug mode.

JavaScript file URLs you enter here replaces the #APPLICATION_JAVASCRIPT# substitution string in the page template.

Note: You do not need to include opening or closing script tags. Just write the URL.

Examples:

  • Standard file reference:

    /myjs/main.js
    
  • Standard file reference which loads the minified file main.min.js for regular page views and main.js in Debug mode:

    /myjs/main#MIN#.js
    
  • Conditional file for Internet Explorer

    [if IE]/myjs/ie.js
    

Include Deprecated or Desupported Javascript Functions

Specifies if deprecated or desupported JavaScript functions are included on every page in the application. The functions deprecated or desupported are listed in the Release Notes for every release. If you are confident your application does not contain any references to those deprecated or desupported functions, set this to No to reduce the overall size of the JavaScript files loaded.

See Also: "Legacy JavaScript APIs" in Oracle Application Express API Reference

Include jQuery Migrate

Specifies if the jQuery Migrate plug-in should be included on every page in the application.

The plug-in restores deprecated features and behaviors of jQuery so that old JavaScript code and jQuery plug-ins will still run properly with the jQuery version loaded by Application Express.

If you are confident your application and any used jQuery plug-in does not contain any references to deprecated jQuery features, set this to No to reduce the overall size of the JavaScript files loaded.

6.9.4.6.6 Cascading Style Sheets

In File URLs, enter Cascading Style Sheet file URLs to be loaded on every page. Each URL has to be written into a new line. If you provide a minified version of your file you can use the substitution string #MIN# to include .min or #MIN_DIRECTORY# to include minified/ in your file URL for a regular page view and an empty string if the page is viewed in debug mode. You also have access to the substitution string #APP_VERSION# if you want to include the application's version in the file URL.

File URLs you enter here will replace the #APPLICATION_CSS# substitution string in the page template.

For examples, see field-level Help.

6.9.4.6.7 Concatenated Files

Using a concatenated file can increase the performance of loading your page because instead of issuing multiple HTTP requests for each single file, the browser only loads one file. This approach gives you the option to use smaller, more modular files during development and to use a single concatenated file when running the application outside of the Application Express development environment.

To create a concatenated file, click Concatenated File and follow the on-screen instructions. To learn more and view examples, see field-level Help.