Application Express

PreviousNext

Application Development

Database applications enable developers to have full control over all aspects of the development process and final application functionality. With database applications, developers can directly leverage their SQL and PL/SQL programming skills. Database applications use declarative control over flow control and support full user interface controls through the use of templates and themes.

A Database application is a collection of pages linked together using tabs, buttons, or hypertext links. The pages in an application share a common session state definition and authentication method.

You can create applications from scratch where the developer specifies the pages, or from a spreadsheet where the developer uploads a spreadsheet.

Navigation

Every Web application needs navigation and dynamic applications need flow control. Oracle Application Express provides built-in components to simplify the development and maintenance of navigational controls. Navigation is controlled using declarative tabs (one or two levels), breadcrumbs, tree controls, and lists of links. Flow control is performed using declare controls including:

  • Tabs (one level and two level)
  • Lists
  • Breadcrumbs
  • Tree Controls
  • Navigation Bar

Reports and Forms

Interactive Reports

Interactive Reporting regions enable end users to customize reports. Users can create multiple variations of the report and save them as named reports, output to comma-delimited files, and print them to PDF documents. Interactive reports support:

  • Column Selection
  • Filters
  • Sorting
  • Control Breaks
  • Highlighting
  • Calculated Columns
  • Subscriptions
  • Charting
  • Group By Reporting
  • Download to CSV, eMail, CSV and PDF
Forms

You can define forms that enable data entry for a wide verity of use cases including:

  • Master-Detail
  • Tabular Forms
  • Forms on Web Services
  • Forms on Tables
  • Forms on Stored Procedures
  • Wizard Forms

Page processing consists of:

  • Computations - set the value of an application or page item
  • Validations - perform edit checks to ensure data quality
  • Processes - interact with the database, web services, other pages, and so on
  • Branching - identifies where the user is taken after the page is processed

Charting

Flash chart regions provide a wide verity of charts to be driven off one or more SQL queries, with one query for each series. Example flash charts:

Web 2.0

Application Express provides a number of ways to enhance application usability by incorporating Web 2.0 capabilities.

Dynamic Actions

Dynamic Actions enable developers to define client-side behaviors declaratively, without the need for JavaScript or AJAX. Developers simply specify an element, when to execute, and what action to perform.

Plug-ins

Plug-ins provide a way to enhance the existing built-in functionality of Application Express with new item types, region types, dynamic actions, and so on. Once loaded into an application, a developer uses plug-ins in a similar fashion to native widgets and controls.

Oracle Application Express separates presentation (or user interface themes) from the application logic. You can design your application in one theme, change to another supplied theme, or create and use your own custom theme. By separating the application logic (such as queries, processes, and branches) from the HTML rendering, your application can take advantage of new designs and other technological advances without an application rewrite.

BLOB Support

Binary Large Objects (BLOBs) provide the storing of images, files, and so on within an Oracle database column. This information can easily be uploaded using the built-in File Download item type and displayed within an application.

jQuery Library

Integrating the jQuery library into Application Express lets developers write complex JavaScript functionality using jQuery procedures rather than needing to write low-level code.

Globalization

Oracle Application Express includes full globalization support, enabling the easy development of completely localized applications. Globalization support includes:

  • Translation - Translate the user interface of your application after it is written. Export all translatable strings of an application into an XLIFF (XML Localization Interchange File Format) file for translation processing. Application Express takes care of the proper Oracle NLS (National Language Support) settings based upon a user's language preference.
  • Data Exports - Export reports to CSV in a format that is compatible with localized versions of Microsoft Excel.
  • Time Zones - Automatically derive user's time zone from their browser and set the time zone within an Application Express application.

Internal Server Error

500 - Internal Server Error

Request Path passes syntax validation
Mapping request to database pool: PoolMap [_poolName=apex, _regex=null, _workspaceIdentifier=null, _failed=false, _lastUpdate=-1, _template=null, _type=REGEX]
Applied database connection info
Attempting to process with PL/SQL Gateway
==== Processing Request: ====
GET /apex/f?p=4600:16:24169640834345::NO:::
==== Headers in Request ====
accept: */*
user-agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
cookie: ORA_WWV_USER_63113586886954=ORA_WWV-HhsCNxiT7hdwbpPzBVkwDc33
accept-encoding: gzip, br, zstd, deflate
referer: http://reconquistatramites.gov.ar:9095/apex/f?p=4600%3A16%3A31738645562149%3A%3ANO%3A%3A%3A
host: reconquistatramites.gov.ar:9095
==== Cookies in Request ====
ORA_WWV_USER_63113586886954 =  ORA_WWV-HhsCNxiT7hdwbpPzBVkwDc33
request parameter: p=4600:16:24169640834345::NO:::
isValidRequest(), procedure name: 
Validating: f
*** Total number of arguments: 15
SID: 289
Parse: 0 ms
-----
begin 
 f(p=>?);
commit;
  end;
*** Total number of arguments: 15
{p=4600:16:24169640834345::NO:::}
p=4600:16:24169640834345::NO:::
p= 4600:16:24169640834345::NO:::
Exec: 50 ms
Got results length: 13472
==== Headers from Results ====
Setting Content-Type (Content-type): text/html; charset=utf-8
Adding X-Frame-Options: DENY
Adding X-DB-Content-length: 13472
Processed PL/SQL Gateway request

WebException [statusCode=500]
	at oracle.dbtools.rt.web.WebException.webException(WebException.java:343)
	at oracle.dbtools.rt.web.WebException.internalError(WebException.java:262)
	at oracle.dbtools.rt.web.WebErrorResponse.internalError(WebErrorResponse.java:101)
	at oracle.dbtools.rt.web.WebErrorResponse.error(WebErrorResponse.java:75)
	at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:132)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.util.ConcurrentModificationException
	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
	at java.util.AbstractList$ListItr.set(AbstractList.java:409)
	at java.util.Collections.sort(Collections.java:121)
	at oracle.dbtools.apex.statistics.Statistics.toString(Statistics.java:226)
	at oracle.dbtools.apex.statistics.Statistics.print(Statistics.java:174)
	at oracle.dbtools.apex.statistics.Statistics.finishRequest(Statistics.java:141)
	at oracle.dbtools.apex.ModApexContext.close(ModApexContext.java:324)
	at oracle.dbtools.common.util.Closeables$2.closeType(Closeables.java:155)
	at oracle.dbtools.common.util.Closeables$2.closeType(Closeables.java:149)
	at oracle.dbtools.common.util.Closeables$BaseCloser.close(Closeables.java:239)
	at oracle.dbtools.common.util.Closeables.close(Closeables.java:97)
	at oracle.dbtools.apex.ModApex.close(ModApex.java:176)
	at oracle.dbtools.apex.ModApex.doGet(ModApex.java:101)
	at oracle.dbtools.apex.ModApex.service(ModApex.java:301)
	at oracle.dbtools.rt.web.HttpEndpointBase.modApex(HttpEndpointBase.java:347)
	at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:130)
	... 13 more