+ All Categories
Home > Documents > Apex Release Notes

Apex Release Notes

Date post: 14-Apr-2018
Category:
Upload: inder-dasila
View: 223 times
Download: 0 times
Share this document with a friend

of 24

Transcript
  • 7/30/2019 Apex Release Notes

    1/24

    1

    Oracle Application Express

    Release Notes

    Release 4.1

    E21672-06

    April 2012

    These Release Notes contain important information not included in the OracleApplication Express documentation. For the most current information, refer toupdates of this document, which are located at the following Web site:

    http://www.oracle.com/technetwork/indexes/documentation/index.html

    For a complete description of each new 4.1 feature, please see "Whats New" in theOracle Application Express Application Builder User's Guide.

    This document contains these topics:

    Checking for the Most Current Release

    Configuration Requirements

    New Features

    Changed Behavior

    Functionality No Longer Supported

    Open Bugs and Known Issues

    Documentation Accessibility

    Checking for the Most Current ReleaseOracle Application Express is released more frequently than the Oracle Database. Toview information about or download a more current release, refer to:

    http://www.oracle.com/technetwork/developer-tools/apex/overview/index.h

    tml

    Configuration RequirementsThe value of the character set portion of PlsqlNLSLanguage in the configuration of the

    mod_plsql Database Access Descriptor (DAD) must be set to AL32UTF8, regardlessof the underlying database character set.

    The Database Access Descriptor now contains a parameter forPlsqlRequestValidationFunction. The purpose of this parameter is to limit thenumber of procedures which can be invoked throughmod_plsql. By default, the onlyprocedures permitted are the public entry points of Oracle Application Express. Thiscan be extended using the validation functions shipped with Oracle ApplicationExpress. To learn more, see "Restricting Access to Oracle Application Express byDatabase Access Descriptor (DAD)" in Oracle Application Express Administration Guide.

  • 7/30/2019 Apex Release Notes

    2/24

    2

    Enabling the PlsqlRequestValidationFunction for a Database AccessDescriptor may cause existing applications which relied upon publicly executableprocedures to fail. You may choose to either omit thePlsqlRequestValidationFunction from the Database Access Descriptordefinition, or follow the recommended approach of extending the supplied validationfunction.

    New FeaturesThis section describes new features of Oracle Application Express that are notdocumented elsewhere.

    This section contains the following topics:

    New Checkbox Plug-in Attribute Type

    New Region SQL Statement Column Plug-in Attribute Type

    Allow Instance Admin Database Users to View all Rows in the APEX Views

    Go to Error Link in a Validation Error Message

    Addition of Theme 24

    New Checkbox Plug-in Attribute Type

    The new Checkbox attribute type displays a checkbox for each value defined in theList of Values. It is similar to the Selectlist attribute, but it allows multiple values. Byallowing multiple values, the total number of custom attributes can be reduced inorder to keep them below the 15 attribute limit.

    If a plug-in has many Yes/No type attributes, like Show Toolbar, Show Zoom Panel,Enable Drag and Drop, and so on, the developer can use the new Checkbox type tocombine them all in to one attribute rather than having to define a custom plug-inattribute for each option.

    For example, to implement this new attribute, the developer could define a List ofValues containing an entry called SHOW_ZOOM_PANEL, and in the plug-in code hecould use the following:

    if instr(':'||p_item.attribute_01||':', ':SHOW_ZOOM_PANEL:') > 0 then

    To check if a checkbox has been checked, it's the same code that is used for any of ourmulti select item types (Shuttle, ...).

    New Region SQL Statement Column Plug-in Attribute Type

    With the new Region SQL Statement Column custom plug-in attribute (only availablefor region type plug-ins), plug-in developers can create more flexible region typeplug-ins which are based on an SQL statement (plug-in configuration has checked

    Region Source is SQL Statement in Standard Attributes). This new custom plug-inattribute type will show the column names of the SQL statement specified in theregion source.

    An example is a region type plug-in which displays a chart. To populate the chart adeveloper has to specify an SQL statement in the region source. In 4.0 the plug-indeveloper would have to exactly specify how many columns the SQL statement has tohave and which column position is mapped to which feature. For example an SQLstatement format could look like:

  • 7/30/2019 Apex Release Notes

    3/24

    3

    select label,value,[link],[color],[tooltip]

    from table

    As you can see in the above example, only label and value are required. All the

    other columns are optional. When using this chart type plug-in, you first have to knowthe format of the SQL statement and you have to write odd SQL statements if, forexample, you want to have a statement where only the label, value and tooltip isset. Such a statement would look like:

    select label,value,null as link,null as color,tooltip

    from mytable

    The above SQL looks odd and gets more complicated if the SQL statement provideseven more options.

    In 4.1, the SQL statement specified in the region source is greatly simplified and theplug-in developer can now make implementation of the plug-in much moredeclarative for the average developer who is using the plug-in. The plug-in developerwould define five new custom plug-in attributes of type Region SQL StatementColumn. These would, for example, be called Label Column, Value Column, LinkColumn, Color Column and Tooltip Column. Only Label Column and Value Columnare required.

    If a developer is using the chart plug-in, in 4.1 the developer can now just enter thefollowing into the Region Source:

    select *from my_table

    orselect dname,

    sum(sal) as total_sal,'Total Employees: '||count(employee_id) as total_employees

    from my_table

    The developer is then prompted to actually map the different columns of the SQLstatement to the Label Column, Value Column, Link Column, Color Column andTooltip Column custom attributes of the plug-in. In our example, the developer wouldenter dname for the Label Column, total_sal for Value Column and total_employees for Tooltip Column. This is much more declarative, because the developerdoesn't have to know how the SQL statement is formatted. This also makes it a loteasier if columns are optional.

    Allow Instance Admin Database Users to View all Rows in the APEX Views

    If a database user has been granted the APEX_ADMINISTRATOR_ROLE database role,they are now able to see the metadata of all rows in the APEX views, not just those forits associated workspace.

    All views prefixed with APEX_ are impacted by this feature. For example, if a usercreates a report on view APEX_APPLICATIONS and that database user is assigned the

  • 7/30/2019 Apex Release Notes

    4/24

    4

    APEX_ADMINISTRATOR_ROLE role, that user is able to see all the records in additionto those associated with their workspace.

    Go to Error Link in a Validation Error Message

    If you define an associated item, Application Express will render a Go to Error link inthe Notification display location next to the corresponding error message. When this

    link is clicked or activated the user's focus is set to the associated item. The Go to Errortext can be changed in your applications by defining an application system messagecalled APEX.GO_TO_ERROR with the text of your choice. Additionally, if you don'twant to have the Go to Error link at all, you can disable this functionality by setting thetext of that system message to just a single space ' '.

    Addition of Theme 24

    This release includes a new theme, Theme 24. Theme 24 incorporates HTML5 andCSS3 features and is based on the colors used in Oracle Public Cloud.

    Changed BehaviorThis section describes changed behavior in Oracle Application Express release 4.1.

    This section contains the following topics:

    Hosted Online Help

    Before Header Processes and Browser Security HTTP Headers

    Instance Session Timeout Settings Now Control Applications

    Updated JavaScript Libraries

    Updated FCKeditor

    Change in Column Requirements for Rows Inserted into Tabular Forms

    Button Template Substitution Value Changed for #BUTTON_ID#

    Default Value for Cascading List of Values

    Updated AnyChart Flash Charts

    Automatic Row Processing (DML) Forms that Reference a Non-existent Column

    Application Attributes to Control Browser Security Updated Color Picker

    Dynamic Action Set Value with Multiple Affected Elements

    List of Values Only Supports Two Column SQL Statements

    Enabling Network Services in Oracle Database 11g

    Changes in Page and Region Caching

    Tip: This section is current as of the writing of this document. Toview the most current listing of changed behavior, go to the KnownIssues page available off the Downloads page. See:

    http://www.oracle.com/technetwork/developer-tools/apex/do

    wnloads/index.html

  • 7/30/2019 Apex Release Notes

    5/24

    5

    Columns Used in Automatic Row Processing (DML) Processes

    Item Finder CSS Tab Availability

    Hosted Online Help

    Prior to release 4.1, the Application Express online help system was included with thethe Application Express distribution. In this release, the online help is the Oracle

    Application Express Documentation Library hosted on Oracles Technology Network.

    To access the online help with this release and with previous releases, you click theHelp link in the upper right corner of most Oracle Application Express pages. See"Accessing Help and the Documentation Library" in the Oracle Application Express

    Application Builder User's Guide.

    Some benefits of the hosted online help include:

    Our documentation team now has greater flexibility in updating, correcting andenhancing documentation and online help, providing the most current and usefulcontent.

    The hosted online help provides more powerful search capability.

    By not including the help system with the Application Express distribution, theoverall distribution size of Application Express 4.1 has been dramatically reducedas well as the size of the content loaded into the XDB repository, if you are usingembedded PL/SQL gateway.

    This removes the complexity associated with indexing the online help files,especially if your instance is accessed over SSL or the database is behind a firewallthat cannot get to the Web server.

    For customers that cannot get to the Internet, the entire documentation library can bedownloaded and staged locally. The URL for the Help link can be adjusted fromwithin Application Express to go directly to the locally staged documentation. See"Configuring Online Help" in the Oracle Application Express Administration Guide.

    Local search capability is available for downloaded documentation. See "Downloadingthe Online Documentation Library" in the Oracle Application Express Application BuilderUser's Guide.

    Before Header Processes and Browser Security HTTP Headers

    Applications in Compatibility Mode of 4.1 write a MIME type and browser securityrelated HTTP header variables and then execute an application's Before Headerprocess, before closing the HTTP header. See "SET_COMPATIBILITY_MODEProcedure" in the Oracle Application Express API Reference.

    If a Before Header process sets a different MIME type, you should alter the process tofirst execute the following to clear the output buffer:

    sys.htp.init;

    Note that this also removes all of the Application Express engine's HTTP headervariables for browser security.

    If a Before Header process directly writes HTML page content, it should call thefollowing before emitting HTML page content:

    sys.owa_util.http_header_close;

  • 7/30/2019 Apex Release Notes

    6/24

    6

    For applications that run in Compatibility Mode 4.0, Application Express does notautomatically write the security HTTP header variables so as to not interfere withBefore Header processes. Therefore, the application and page settings in the "BrowserSecurity" region ("Cache" and "Embed in Frames") are ignored in such applications.

    To reduce upgrade issues, migrated applications or applications which were exportedwith an older version of Application Express have set Compatibility Mode to 4.0. Newapplications are in mode 4.1. From a security perspective, it is recommended to modify

    any affected Before Header processes and set the application attribute CompatibilityMode to 4.1. The following query may help to find processes that should be examined:

    select *from ( select application_id,

    page_id,process_point,process_name,process_source

    from apex_application_page_procunion allselect application_id,

    to_number(null),process_point,

    process_name,process

    from apex_application_processes)

    where process_point = 'BEFORE_HEADER'and ( instr(upper(process_source), 'OWA_UTIL') > 0

    or instr(upper(process_source), 'WPG_DOCLOAD') > 0or instr(upper(process_source), 'HTP.P') > 0)

    order by application_id, page_id;

    Instance Session Timeout Settings Now Control Applications

    Prior to release 4.1, Session Timeout settings at the instance level were only used forthe Oracle Application Express development applications such as Application Builderand SQL Workshop. In this release, the values at the instance level apply to OracleApplication Express applications if the application-level setting is empty. Note thatthis change could impact the idle time of a session. If the application-level setting isempty, the instance level setting is used. The default value at the instance level is onehour.

    Updated JavaScript Libraries

    The JavaScript libraries for jQuery and jQueryUI used by Application Express havebeen updated as follows:

    jQuery has been updated from version 1.4.2 to version 1.6.2

    jQueryUI has been updated from version 1.8 to version 1.8.14

    See jQuery and jQueryUI release notes for bug fixes and enhancement at:

    http://docs.jquery.com/Downloading_jQuery#Current_Release

    http://jqueryui.com/docs/Changelog

    There are a couple of situations, relating to this upgrade, that you should consider.

  • 7/30/2019 Apex Release Notes

    7/24

    7

    The first situation to consider is if you have used jQuery in your own JavaScript codein applications, then you may be impacted by changed behavior caused by theupdated jQuery version. The most significant impact you may experience fromupdating your jQuery version is due to the use of the jQuery attr method. Thismethod returns slightly different values in some circumstances. Please review the

    jQuery change log for further details of this and other changes.

    If you are concerned this may impact your applications, there are 2 possible options:

    1. Fallback to the previous version of jQuery for your code. You can easily includejQuery 1.4.2 by adding the following to your Page Template > Header, within the tags, importantly ensuring this is done directly after the#HEAD# substitution string and before you include any of your libraries:

    ...#HEAD#...

    We will still include jQuery 1.6.2 as part of the #HEAD# substitution, but including1.4.2 afterwards means that the variables $ and jQuery will now point to jQuery

    version 1.4.2, which you can continue to use in your applications. Note that jQuery1.4.2 is still included in our distribution, so you don't need to add this to your webserver.

    2. Review and retest your jQuery code to see if you are impacted by the changes.This is more work initially, but has the advantage that you only need to load oneversion of the jQuery library into your application and secondly, you can also

    benefit from the enhancements of the most recent version. As the most significantof jQuery changes in behavior focus around the attr method, we suggest thatyou search the files containing your JavaScript code and also in Application Searchin the Application Builder, for the following text:

    .attr

    The second point to consider as part of this upgrade, relates to jQuery UI and if youhave included components of jQuery UI that are not included by default byApplication Express. We don't include all the components of jQuery UI by default toreduce page size and processing, only the components used by Application Express

    base functionality. All of these default components are now using jQuery UI 1.8.14,whereas any components you may have previously included may be referencing anolder version. This means there may be compatibility issues between the versions of

    jQuery UI components you have included and the updated jQuery and jQuery UIversions we include by default.

    Again, if you are concerned this may impact your applications, there are 2 possibleoptions:

    1. Fallback to the previous versions of jQuery and jQuery UI in your code. You can

    include jQuery 1.4.2 and jQuery UI 1.8 by adding the following to your PageTemplate > Header, within the tags, importantly ensuring thisis done straight after the #HEAD# substitution string and before you include anyof your libraries:

    ...#HEAD#

  • 7/30/2019 Apex Release Notes

    8/24

    8

    ...

    We still include jQuery 1.6.2 and jQuery UI 1.8.14 as part of the #HEAD#substitution, we're just including the older versions for compatibility with yourother jQuery UI components you may reference. Note that jQuery 1.4.2 and jQuery

    UI 1.8 are still included in our distribution, so you don't need to add this to yourweb server.

    2. Review your jQuery UI code, update any jQuery UI components to referenceversion 1.8.14 and retest. This is more work initially, but has the advantage thatyou only need to load one version of the jQuery library and one version of the

    jQuery UI library into your application and secondly, you benefit from theenhancements of the most recent versions. We suggest you search the filescontaining your JavaScript code and also in Application Search in the ApplicationBuilder, for the following text:

    libraries/jquery-ui/

    Updated FCKeditorThe FCKeditor used by Application Express has been updated to FCKeditor version3.6.1. This version allows Application Express to support more languages, addresssome performance issues, resolves several 4.0 bugs, and is 508 compliant.

    Change in Column Requirements for Rows Inserted into Tabular Forms

    For 4.0, new rows entered into a tabular form required all columns that are part of theprimary key to be NULL on submit. Many database models use composite primarykeys with one or more primary key columns that are a foreign key column at the sametime. When adding new rows into those types of tables, the foreign key must have avalue, which violates the primary key must be NULL rule.

    For 4.1, a master-detail form can be created on tables where the primary key of thedetail table contains a column that is also part of a foreign key. This requires that thedeveloper chooses to use the ROWID pseudo-column for Automatic Row Processing(DML) operations.

    Button Template Substitution Value Changed for #BUTTON_ID#

    Prior to 4.1, the value substituted for the #BUTTON_ID# substitution string in a buttontemplate, for region buttons, was the internal numeric ID of the button. Item buttonsfailed to substitute this value at all. In this release, the value substituted will be one ofthe following:

    1. If the template is used by an item button, the item name is used (for example 'P1_

    GO').

    2. If the template is used by a region button and a 'Static ID' is defined for the button,this is used (for example 'my_custom_id').

    3. If the template is used by a region button and no 'Static ID' is defined, an ID in theformat 'B||[Internal Button ID] will be used (for example 'B123456789101112').

    The change in behavior that could be of potential significance in your applications is#3 above. This was changed to be a valid HTML 4.01 identifier (beginning with a

  • 7/30/2019 Apex Release Notes

    9/24

    9

    letter) and to be consistent with how other component IDs are handled in ApplicationExpress. Therefore, if you used a button template, that used an ID value substituted by#BUTTON_ID#, and importantly you hard-coded that ID from other places in yourcode, for example in custom JavaScript to attach behavior to the button, then thischange in behavior will cause that code to no longer work.

    To help you identify region buttons that use a template containing the #BUTTON_ID#substitution string, you can run the following query in your workspace:

    select aapb.application_id,aapb.page_id,aapb.button_name,aapb.label,aapb.button_id,aapb.button_template,aatb.template

    from apex_application_page_buttons aapb,apex_application_temp_button aatb

    where aapb.button_template_id = aatb.button_template_idand aapb.application_id = 123 -- Change to Application ID, or omit

    predicate for all applications in your workspaceand aapb.button_template is not null

    and aapb.button_position = 'Region Position'and upper(aatb.template) like '%#BUTTON_ID#%'

    This will not detect where you may have referenced the ID in other code, such asJavaScript code. It just identifies the buttons that could be problematic. So you canthen review the pages returned by this query to isolate any pages that might haveissues.

    The easiest way to fix the issue is to use the 'Button ID' value returned from the queryas the 'Static ID' for the button. This means the button would be rendered with thesame ID as prior to release 4.1 and any dependent code would still work.

    Default Value for Cascading List of Values

    For Application Express 4.1, the default value for a cascading list of values isre-evaluated if the cascading list of values is updated. In Application Express 4.0 thedefault value remained the same if the cascading list of values was updated.

    Updated AnyChart Flash Charts

    The AnyChart Flash charts used by Application Express have been updated to thelatest version 5.1.3.

    See AnyChart website for bug fixes and enhancements at:

    http://anychart.com/products/anychart/history/

    Automatic Row Processing (DML) Forms that Reference a Non-existentColumn

    If you have an Automatic Row Processing (DML) form page that references a tablecolumn that does not exist, with Application Express 4.1 you will get an internalapplication error. Prior to 4.1 you would not get an error. For example, in 4.1, if youhave an Automatic Row Processing (DML) form page, as the result of running a form

  • 7/30/2019 Apex Release Notes

    10/24

    10

    or form and report on table wizard, and you have an item that references a columnthat does not exist in the table, you will get an internal application error.

    If you desire the behavior as it was in Application Express 4.0 or earlier releases, setthe compatibility mode of the application to '4.0'. See "SET_COMPATIBILITY_MODE Procedure" in the Oracle Application Express API Reference.

    To identify possible items that might be affected by this new behavior, run the

    Application Express Advisor. To filter only the Oracle Application Express Advisorresults that identify this specific issue, check only the box next to "Fetch, DML, MR*Processes are Valid" under the Error section. To filter only the Oracle ApplicationExpress Advisor results that identify this specific issue, check only the box next to"Fetch, DML, MR* Processes are Valid" Under the Error section."

    See "Running Advisor on an Entire Application" in the Oracle Application ExpressApplication Builder User's Guide.

    Application Attributes to Control Browser Security

    In Application Express 4.1, there are two new application attributes to control BrowserSecurity: Cache and Embed in Frames. Enabling the cache allows the browser tosave the contents of your application's pages in its cache, both in memory and on disk.The Embed in Frames attribute controls if the browser is allowed to display yourapplication's pages within a frame. Applications running in compatibility mode '4.0'function as if the Cache is enabled and as ifEmbed in Frames is set to allowed.Applications running in compatibility mode '4.1' will respect the specific BrowserSecurity attributes.

    See "SET_COMPATIBILITY_MODE Procedure" in the Oracle Application Express APIReference.

    Updated Color Picker

    APEX 4.1 contains an updated color picker. If you have any applications with items oftype Color Picker, the function will automatically use the new color picker. The

    numbers in the following text correspond to the numbers in the color picker screenshot below. To set a color, you drag the middle section (1) to focus on the color familyyou want (red, violet, blue, green, yellow, orange) and then use the large square on theleft (2) to select the exact shade. The selected shade will display on the right (3), just tothe left of the old color (4). Alternatively, you can set the RGB values manually just

    below the new and old color displays or you can enter the hex value just below theRGB settings (5). When you have the exact color you want, you click the round icon atthe bottom right (6) to bring the selected color back to the main display. Please notethat this will affect applications that you have created which use color picker items soyou will need to train your users on how to use the new color picker.

  • 7/30/2019 Apex Release Notes

    11/24

    11

    Dynamic Action Set Value with Multiple Affected Elements

    In dynamic actions, prior to Application Express 4.1, it was possible to use the SetValue action to set multiple Affected Elements, but only to the same value, notdifferent values. In Application Express 4.1, we introduced the following newcapabilities to set multiple values from dynamic actions:

    Action 'Set Value' > Set Type 'SQL Statement' - You can now define a SQL Query to

    return between 1 and 100 columns, which is used to set the 'Affected Elements' inthe order defined (1st column is used to set 1st affected element, and so on).Previously, this only supported querying for 1 column, but could be used to setmultiple affected elements to that same 1 column value.

    Action 'Execute PL/SQL Code' - A new 'Page Items to Return' attribute that setsany page item values on the page to their updated values in session state.

    With the introduction of some built-in options to retrieve multiple values, ApplicationExpress no longer supports the ability to retrieve 1 value that could then be used to setmultiple page items. This was done for simplicity and usability. If you had defined a'Set Value' dynamic action that set multiple Affected Elements to the same value, hereis how you can fix this, according to the 'Set Value' dynamic action's 'Set Type':

    Static Assignment - Define additional 'Actions' for each Affected Element, settingthem all to the same value.

    JavaScript Expression - Define additional 'Actions' for each Affected Element,setting them all to the same value.

    SQL Statement - Alter your SQL Statement such that it selects the same columnvalue, with different column aliases for each Affected Element.

    PL/SQL Expression - Consider changing this over to use the 'Execute PL/SQLCode' action type, in conjunction with the 'Page Items to Return' attribute. The'PL/SQL Code' would need to ensure the page item's value is updated in sessionstate, such that 'Page Items to Return' returned the updated value.

    PL/SQL Function Body - Consider changing this over to use the 'Execute PL/SQL

    Code' action type, in conjunction with the 'Page Items to Return' attribute. The'PL/SQL Code' would need to ensure the page item's value is updated in sessionstate, such that 'Page Items to Return' returned the updated value.

    List of Values Only Supports Two Column SQL Statements

    Since the last few releases of Application Express, the Builder requires the SQLstatement of a List of Values to contain two columns when a page item is created ormodified.

    In Application Express 4.1, the rendering engine has been modified to perform thesame check during runtime. If a List of Values is detected that contains only onecolumn, the error messages "Wrong number of columns selected in the LOV SQLquery for P1_DNAME. See examples for valid statements." is displayed.

    To fix this error, edit the SQL statement of the List of Values. Duplicate the column andgive the first column the alias name display_value and the new second columnreturn_value.

    For example:

    SQL statement before editing:

    select dname from dept

  • 7/30/2019 Apex Release Notes

    12/24

    12

    SQL statement after editing:

    select dname as display_value, dname as return_value from dept

    Enabling Network Services in Oracle Database 11g

    By default, the ability to interact with network services is disabled in Oracle Database11g. Therefore, if you are running Oracle Application Express with Oracle Database11g, you need to use the new DBMS_NETWORK_ACL_ADMIN package to grant connectprivileges to any host for the APEX_040100 database user. Failing to grant theseprivileges results in issues with:

    Sending outbound mail in Oracle Application Express.

    Users can call methods from the APEX_MAIL package, but issues arise whensending outbound email.

    Using Web services in Oracle Application Express.

    PDF/report printing.

    Topics in this section include: Granting Connect Privileges to a Host

    Granting Connect Privileges to a Local Host

    Troubleshooting an Invalid ACL Error

    Granting Connect Privileges to a Host

    The following example demonstrates how to grant connect privileges to any host forthe APEX_040100 database user.

    DECLAREACL_PATH VARCHAR2(4000);

    BEGIN-- Look for the ACL currently assigned to '*' and give APEX_040100-- the "connect" privilege if APEX_040100 does not have the privilege yet.

    SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLSWHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

    IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040100','connect') IS NULL THENDBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,'APEX_040100', TRUE, 'connect');

    END IF;EXCEPTION-- When no ACL has been assigned to '*'.WHEN NO_DATA_FOUND THEN

    Tip: To run the examples described in this section, the compatibleinitialization parameter of the database must be set to at least11.1.0.0.0. By default an 11g database will already have the parameterset properly, but a database upgraded to 11g from a prior version maynot. See "Creating and Configuring an Oracle Database" in OracleDatabase Administrator's Guide for information about changingdatabase initialization parameters.

  • 7/30/2019 Apex Release Notes

    13/24

    13

    DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml','ACL that lets power users to connect to everywhere','APEX_040100', TRUE, 'connect');

    DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');END;/COMMIT;

    Granting Connect Privileges to a Local HostThe following example is a less privileged demonstration of how to access resourceson a local host. This example could possibly enable email and PDF printing if thoseservers were also on the local host.

    DECLAREACL_PATH VARCHAR2(4000);

    BEGIN-- Look for the ACL currently assigned to 'localhost' and give APEX_040100-- the "connect" privilege if APEX_040100 does not have the privilege yet.SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLSWHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

    IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040100',

    'connect') IS NULL THENDBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,'APEX_040100', TRUE, 'connect');

    END IF;EXCEPTION-- When no ACL has been assigned to 'localhost'.WHEN NO_DATA_FOUND THENDBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml','ACL that lets users to connect to localhost','APEX_040100', TRUE, 'connect');

    DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost');END;/COMMIT;

    Troubleshooting an Invalid ACL Error

    If you receive an ORA-44416: Invalid ACL error after running the previous script,use the following query to identify the invalid ACL:

    REM Show the dangling references to dropped users in the ACL that is assignedREM to '*'.

    SELECT ACL, PRINCIPALFROM DBA_NETWORK_ACLS NACL, XDS_ACE ACEWHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL AND

    NACL.ACLID = ACE.ACLID AND

    NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

    Next, run the following code to fix the ACL:

    DECLAREACL_ID RAW(16);CNT NUMBER;

    BEGIN-- Look for the object ID of the ACL currently assigned to '*'SELECT ACLID INTO ACL_ID FROM DBA_NETWORK_ACLS

  • 7/30/2019 Apex Release Notes

    14/24

    14

    WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

    -- 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_ACEWHERE ACLID = ACL_ID AND

    EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

    IF (CNT > 0) THEN

    FOR R IN (SELECT PRINCIPAL FROM XDS_ACEWHERE ACLID = ACL_ID AND

    NOT EXISTS (SELECT NULL FROM ALL_USERSWHERE USERNAME = PRINCIPAL)) LOOP

    UPDATE XDB.XDB$ACLSET OBJECT_VALUE =

    DELETEXML(OBJECT_VALUE,'/ACL/ACE[PRINCIPAL="'||R.PRINCIPAL||'"]')

    WHERE OBJECT_ID = ACL_ID;END LOOP;

    ELSE

    DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID;END IF;

    END;/

    REM commit the changes.

    COMMIT;

    Once the ACL has been fixed, you need to run the first script in this section to applythe ACL to the APEX_040100 user. See "Granting Connect Privileges to a Host" onpage -12.

    Changes in Page and Region Caching

    Because of bug 13722696, this release includes the following changed behavior forpage and region caching:

    1. If a cached region or a cached page contains protected page items of the followingtypes, it will never be cached independent of the specified cache settings:

    Hidden where Value Protected is set to Yes.

    Display Only where Save Session State is set to Yes.

    Text Field where Disabled is set to Yes and Save Session State is set to Yes.

    Page Items where the read only condition evaluates to true.

    2. If the URL which is used to render a page contains application or page itemswhich are set in session state (for example,f?p=631:7:609442841545301::::P7_CUSTOMER_ID:7 ) then the existingregions or page caches will not be used and no new caches are stored independentof the specified cache settings.

    3. If the application is running in debug mode, caches are now used. Previously,Debug mode always disabled caching.

  • 7/30/2019 Apex Release Notes

    15/24

    15

    Columns Used in Automatic Row Processing (DML) Processes

    Because of bug 12990445, the following changes have been implemented forAutomatic Row Processing (DML) process types. The code which performs theINSERT has been changed to determine if the columns should be included in theINSERT statement. Note that these are the same checks which occur before anUPDATE. These new checks include:

    Is the source type a DB Column? Does the specified Build Option have a status of Include or is it not specified at all?

    Is the page item contained in the POST request? For example, if the page item isconditional it will not be contained in the POST request if the condition evaluatesto FALSE during page rendering.

    Is the page item not of type Display Only where Save State is set to No?

    The above new behavior is used for all new applications which are created in OracleApplication Express release 4.1.1.

    For existing applications where the compatibility mode is set to 4.0, the old behavior ofincluding all page items will still be used to prevent breaking existing applications.

    To change an old application to use compatibility mode 4.1, run the followingstatement in SQL Workshop, SQL Commands:

    beginapex_util.set_compatibility_mode(, '4.1);commit;end;

    To learn more, see "SET_COMPATIBILITY_MODE Procedure" in the Oracle ApplicationExpress API Reference.

    Item Finder CSS Tab Availability

    The CSS tab of the Item Finder is no longer available.

    Functionality No Longer SupportedThe following are not supported in Oracle Application Express, release 4.1.

    This section contains the following topics:

    No Support for Save State before Branch

    No Support for Running in an EBCDIC Character Set

    Text Areas No Longer Support Spell Checks

    Format Masks Not Supported by Date Picker

    No Support for Save State before Branch

    The option "Save State before Branch" is no longer available for new and existingbranches. Only if the option was previously checked will it still be available forcompatibility reasons and will work as before.

  • 7/30/2019 Apex Release Notes

    16/24

    16

    No Support for Running in an EBCDIC Character Set

    Oracle Application Express does not support an EBCDIC character set. The value ofthe character set in the configuration of themod_plsql Database Access Descriptor(DAD) must be set to AL32UTF8, regardless of the underlying database character set.

    Text Areas No Longer Support Spell Checks

    Text Area item types have been migrated to a simple text area. This functionality hasbeen replaced by Web browser spell checking support, which supports morelanguages.

    Format Masks Not Supported by Date Picker

    Oracle Application Express includes a new jQuery based Date Picker. This new datepicker does not support the format masks described in Table 1, " Unsupported DatePicker Formats".

    See Also: "Configuration Requirements" on page 1

    Table 1 Unsupported Date Picker Formats

    Format Description

    CC Century

    BCC Century BC prefixed with

    SYYY Year with BC prefixed

    IYYYY ISO year

    YEAR Year spelled out

    SYEAR Years spelled out with BC prefixed

    BC BC/AD indicator

    Q Quarter

    RM Roman month

    WW Week of year 1-52

    W Week of month 1-5

    IW ISO standard week of year

    DDTH Ordinal day

    DDSPTH Spelled out Ordinal

    J Julian Day

    TH Ordinal format

    TZD Abbreviated time zone name

    TZH Time zone Hour displacement

    TZM Time zone Minute displacement

    TZR Time Zone Region

    http://-/?-http://-/?-http://-/?-http://-/?-
  • 7/30/2019 Apex Release Notes

    17/24

    17

    Open Bugs and Known IssuesThis section describes bugs and known issues for Oracle Application Express.

    This section contains the following topics:

    Problems with SVG Charts

    Problems with Queries Containing a Bind Variable and a String with Two Dashes

    Importing Spreadsheet Data Containing Quotation Marks

    Runtime Errors in an Application Imported from a Previous Release

    DBA Authentication Restriction

    Exporter Tool Support for Microsoft Access

    Problem with Brazil Map

    Issues Displaying Data Point in AnyChart5

    Themes Not Supporting Custom Calendars

    Interactive Report Region Hangs When Session Expires

    Some Dynamic Action When Condition Types Not Applicable for Certain Events Issues With Deleting Dynamic Actions Having a Region Defined

    JavaScript Function Not Working When Setting Multiple Values of a MultiselectList

    Upgrade Error with Websheet Objects

    Accessibility Issues

    Problems with SVG Charts

    If you experience problems with an SVG chart, try upgrading the chart to a Flashchart.

    To upgrade an SVG chart to Flash:

    1. Navigate to the appropriate Page Definition.

    2. Under Regions, click the region name. The region name displays to the left of SVGChart.

    3. On the Region Definition, click Upgrade SVG Chart to Flash Chart on the Taskslist.

    4. Click Upgrade.

    Tip: This section is current as of the writing of this document. Toview the most current listing of known issues, go to the Known Issuespage available off the Downloads page. See:

    http://www.oracle.com/technetwork/developer-tools/apex/do

    wnloads/index.html

    See Also: "Creating Charts" in Oracle Application Express ApplicationBuilder User's Guide

  • 7/30/2019 Apex Release Notes

    18/24

    18

    Problems with Queries Containing a Bind Variable and a String with TwoDashes

    Creating a report region based on a query that contains a string with two dashes mayhinder the Application Express Engines ability to handle item bind variablereferences. Consider the following example:

    SELECT ename, job, sal, comm, deptno

    FROM empWHERE instr ('-'||'-dash-'||'-','uu') = 0AND deptno = :P18_XAND 1 = 1

    Workaround:

    You can correct this behavior by changing the bind variable format. For example, tocorrect this issue in the previous example you would change :P18_X to v('P18_X').

    Importing Spreadsheet Data Containing Quotation Marks

    If you import spreadsheet data by copying and pasting and a column value contains adouble quotation mark, the data will not import correctly (for example, 54" PlasmaFlat Screen). To avoid this problem, you have two options:

    Option 1:

    a. Save the data in a delimited format (such as comma-delimited (.csv) ortab-delimited).

    b. Use Import Text Data wizard to upload and import the saved file.

    Option 2:

    a. Replace the quotation mark with two double quotation marks as shown in thefollowing example:

    54"" Plasma Flat Screen

    b. Use the Import Spreadsheet Data wizard to import the file.

    Runtime Errors in an Application Imported from a Previous Release

    If you export an application from an earlier Oracle Application Express release andthen import and install it using the installation pages in Application Builder, in raresituations you may encounter runtime errors after the application installs.

    These errors often manifest themselves as PL/SQL parser or execution errorspertaining to blocks of PL/SQL code embedded within application components. Theinstallation process sometimes splits strings greater than 200 characters into multiplelines. For example, lines may split between PL/SQL keywords, or at other places thatcause parsing errors.

    Workaround:

    If you encounter these types of errors and suspect the installation process has splitlarge strings:

    1. Isolate the failing component containing the suspect PL/SQL within theapplication by editing the failing page in Application Builder.

    2. Locate the blocks of code that appear to split incorrectly.

  • 7/30/2019 Apex Release Notes

    19/24

    19

    3. Attempt to split the blocks of code in more appropriate places, or insert whitespace with the lines until no runtime errors are observed.

    4. Export the application, import the export file, and then reinstall it.

    5. Retain the new export file as a permanent backup copy.

    DBA Authentication Restriction

    The following restriction applies to features in Oracle Application Express that requireDBA authentication (for example, the Session report on the Database Monitor page).The DBA account used for authentication must not require double-quoting. In otherwords, it cannot be lower or mixed case.

    Exporter Tool Support for Microsoft Access

    When migrating a Microsoft Access application to an Oracle Application Expressapplication, you export your Microsoft Access metadata using the Exporter tool. Notethat Exporter Tool for Microsoft Access supports Microsoft Access 97, Microsoft Access2000, Microsoft Access 2002, Microsoft Access 2003, and Microsoft Access 2007.

    Problem with Brazil Map

    There are problems creating a map of Brazil because the region Distrito Federal is notindependent of the surrounding state Goias. As a result, any associated data is notdisplaying correctly on the map.

    This issue is tracked with Oracle bug 9725582.

    Issues Displaying Data Point in AnyChart5

    To display all data points associated with an AnyChart 5 chart, generated in OracleApplication Express release 4.0 or higher, each data point must have a unique label.AnyChart 5 does not support the display of data points with duplicate labels, and the

    occurrence of duplicate labels will result in missing data points on your chart. Ensurethat the chart series query returns a result set with a unique label for each data point to

    be displayed on your chart

    Themes Not Supporting Custom Calendars

    The following themes do not support custom calendars:

    Theme 8

    Theme 10

    Theme 13

    Theme 14

    Theme 15

    Theme 16

    Theme 18

    Theme 19

    Theme 20

  • 7/30/2019 Apex Release Notes

    20/24

    20

    Theme 24

    Interactive Report Region Hangs When Session Expires

    If a session expires after the point when a page containing in interactive report regionhas been displayed and the user tries to interact with the interactive report, the reporthangs and does nothing.

    This issue is tracked with Oracle bug 9690335.

    Some Dynamic Action When Condition Types Not Applicable for Certain

    Events

    When defining a dynamic action in When attributes, there is an Event select listcontaining all the possible events that can trigger the dynamic action. Also in theWhen attributes is a Condition select list which enables you to define a condition thatcontrols when the dynamic action runs. For the following event types only a conditiontype of JavaScript Expression works: Before Page Submit, Page Load, PageUnload, and Resize (which hides the Selection Type fields. The other condition types(equal to, is null, and so on) are for events where the Selection Type is defined.

    This issue is tracked with Oracle bug 9733317.

    Issues With Deleting Dynamic Actions Having a Region Defined

    If you delete a region which is assigned as the affected element to a dynamic action,you are prompted to delete the dynamic action. If that dynamic action also has otheractions which are not related to this region, the whole dynamic action is still deleted,rather than just the specific action that references the region.

    Workaround:

    To avoid the deletion of the entire dynamic action, prior to deleting the region, deletethe referencing action from the dynamic action. As a result, the region delete will not

    pick up that dynamic action as a candidate to delete and the dynamic action will notbe deleted.

    This issue is tracked with Oracle bug 9615853.

    JavaScript Function Not Working When Setting Multiple Values of aMultiselect List

    The JavaScript function $s enables you to set the value or values of both native andplug-in item types in Oracle Application Express. This function does not work forsetting more than one value of a multiselect list. A multiselect list is a select list withAllow Multiple Selection set to Yes. Setting single values will work.

    This issue is tracked with Oracle bug 9616570.

    Upgrade Error with Websheet Objects

    If you see errors prefixed with "Warning: Websheet schema" in the upgrade log, theyare specific to a user's Websheet schema. Those schemas may have invalid Websheetobjects that caused the Websheet object upgrade to fail. This should not impact theoverall upgrade of Oracle Application Express.

  • 7/30/2019 Apex Release Notes

    21/24

    21

    Accessibility Issues

    This section describes accessibility bugs and known issues for Oracle ApplicationExpress.

    1. Affecting the Application Express Development Environment:

    Sub-menu drill down icons in the top level navigation menu are not keyboardaccessible in IE. This issue is tracked with Oracle bug 12678997.

    Workaround:

    Tab to and activate the top level menu item, then on the subsequent loadedpage, navigate to the specific sub-component or use one of the othersupported browsers (Firefox, Chrome or Safari).

    The 'Tree View' used on the 'Page Definition' page is not usable with thekeyboard. This issue is tracked with Oracle bug 9773584.

    Workaround:

    This page has an alternative view available called 'Component View', whichshould be used if using keyboard only. 'Component View' can be enabled byeither tabbing to the 'Switch to Component View' button at the top of this page

    and pressing 'ENTER' or by using the Application Express developmentenvironment with screen reader mode enabled.

    The Code Editor used in a few places hijacks the TAB key in Chrome andSafari. This means that in these browsers a keyboard-only user cannot tabaway from the editor. This issue is tracked with Oracle bug 11883419.

    Workaround:

    Use one of our other supported browsers (Internet Explorer or Firefox) wherethis is not an issue.

    The 'Request Workspace' confirmation page contains inaccessible 'Captcha'style verification. Users must enter alphanumeric characters displayed in animage on-screen, however, this image has no ALT text by design. This means

    this is not accessible to screen reader users. This issue is tracked with Oraclebug 11728600.

    Workaround:

    The instance administrator can choose to disable the 'Captcha' styleverification.

    Reports can contain a 'Check All' checkbox in the column header. Thischeckbox is sometimes missing descriptive text. This issue is tracked withOracle bug 12612649.

    Workaround:

    Check the individual check boxes on each row for that column.

    Interactive report regions used throughout the Oracle Application Expressdevelopment environment do not include a HEADING (H1, H2, etc.) tagcontaining the region title. This makes it hard for screen reader users to easilyidentify such regions. This issue is tracked with Oracle bug 9780852.

    Workarounds:

    In order to easily navigate to the content in the interactive report region, godirectly to the search field at the top of the interactive report with JAWS by:

  • 7/30/2019 Apex Release Notes

    22/24

    22

    1. Press INSERT + F5 to load the Select a Form Field dialog box.

    2. Press the S key repeatedly until you hear "Search Report Edit".

    3. This is the field at the top of the report. It is usually the first form fieldbeginning with the letter S.

    4. Press ENTER and JAWS takes you to the search field at the top of theinteractive report region.

    To further your understanding of what the report contains, switch the reportto Report view. When running in Screen Reader Mode, interactive reportregions are optimized to run in Report view. To learn more, see "About ScreenReader Mode" section of "Accessibility in Oracle Application Express"Appendix in the Oracle Application Express Application Builder User's Guide.

    To enable Report view for an interactive report region:

    1. Press INSERT + F7 to load the links List dialog box.

    2. Press the V key repeatedly until you hear, "View Report".

    3. Press ENTER to refresh the interactive report.

    4. To get detailed information relating to what data the report contains, press Tand JAWS announces detailed information relating to this report.

    2. Affecting the Application Express Websheet Runtime:

    The top level menus used to navigate around the application and the 'Settings'menu available when editing 'Sections' on a page, do not follow the DHTMLStyle Guidelines for keyboard support. This issue is tracked with Oracle bug12691947.

    Workaround:

    They are however accessible via tabbing to the menu and respective menuitems. We also provide keyboard shortcuts for menu items available.

    3. Affecting Development Environment, Websheet Runtime and Custom

    Applications:

    A few helper-style icons in interactive report regions have empty ALT text.Specifically this relates to fields with popup controls used to assist in selectionof a value, where the icon used to open the popup has empty ALT text. Thisissue is tracked with Oracle bug 9671431.

    Workaround:

    Enter the text manually in the input box, instead of using the popup.

    The 'Rich Text Editor' native item type of Application Express is announced bythe screen reader referring the item's name, rather than the label. This issue istracked with Oracle bug 12702214.

    Workaround:Ensure the name given to the item is representative of its functionality andunderstandable by the end user.

  • 7/30/2019 Apex Release Notes

    23/24

    23

    Documentation AccessibilityFor information about Oracle's commitment to accessibility, visit the OracleAccessibility Program website athttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc .

    Access to Oracle Support

    Oracle customers have access to electronic support through My Oracle Support. Forinformation, visithttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visithttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you arehearing impaired.

    Accessibility of Code Examples in Documentation

    Screen readers may not always correctly read the code examples in this document. Theconventions for writing code require that closing braces should appear on anotherwise empty line; however, some screen readers may not always read a line of textthat consists solely of a bracket or brace.

    Accessibility of Links to External Web Sites in Documentation

    This documentation may contain links to Web sites of other companies ororganizations that Oracle does not own or control. Oracle neither evaluates nor makesany representations regarding the accessibility of these Web sites.

    Oracle Application Express Release Notes, Release 4.1E21672-06

    Copyright 2012, Oracle and/or its affiliates. All rights reserved.

    This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protectedby 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 themto us in writing.

    If this is software or related documentation that 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. Governmentcustomers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation andagency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictionsand license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, theadditional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway,Redwood City, CA 94065.

    This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for usein any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware indangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safeuse. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

    Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

    Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarksor registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registeredtrademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

    This software or hardware and documentation may provide access to or information on content, products, and services from third parties. OracleCorporation 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 ofthird-party content, products, or services.

  • 7/30/2019 Apex Release Notes

    24/24


Recommended