Application Express

PreviousNext

Websheets

Using Websheet Applications, end users can manage structured and unstructured data without developer assistance. Capabilities enable users to:

  • Create and share content over the Web using just a Web browser.
  • Organize web pages in a hierarchy and cross-link pages (using [[ pagename ]] syntax).
  • Create and manage tabular data using an embedded feature called Data Grids.
  • Create interactive reports using SQL on existing data structures within your database.
  • Expose Data Grid and Report data within pages as charts or reports.
  • Annotate pages with files, tags and notes. Associated images can be shown inline within page content (using [[image: filename]] syntax).
  • Search page content (using built-in search function).
  • Manage who can login and once logged in, who can read, write or administer the application (authentication and authorization).

Pages

The content of pages are organized into sections. The following section types are supported:

  • Text - Displays entered text which can include inline images and inline reports as well as links to reports, data grids, other pages, files, external URLs, and so on. Text sections are managed using a WYSIWIG editor.
  • Navigation - Displays dynamically generated navigation to subordinate pages or page sections.
  • Data - Provides an inline report based upon a data grid or report.
  • Chart - Provides an inline chart based upon a data grid or report.

Data Grids

Data grids are contributor defined sets of tabular data - essentially a Web-based spreadsheet. You can define the structure of a data grid (column names, data types and basic validations) or you can create a data grid by pasting in spreadsheet data. Once created, the structure can be modified as needed over time.

In addition to the defined columns, a set of standard columns is always included within each data grid. These include owner, created by, created on, updated by, updated on, row order and annotations (files, notes, links and tags).

Data grids are basically editable reports that are highly customizable. Users can alter the layout of report data by choosing the columns they are interested in and applying filters, highlighting, and sorting. They can also define breaks, aggregations, group by, computations and different charts. Users can create multiple variations of a data grid and save them as named reports, for either public or private viewing.

Aside from being available under the Data tab, data within a data grid can be included as a chart or report within any page.

Reports

Reports are queries against the database objects you have access to. To define a report, you can either simply select a table or view within an available schema or create something more complex using industry standard SQL.

Just as with data grids, reports are highly customizable. Users can alter the layout of report data by choosing the columns they are interested in and applying filters, highlighting, and sorting. They can also define breaks, aggregations, group by, computations and different charts. Users can create multiple variations of the report and save them as named reports, for either public or private viewing.

Aside from being available under the Data tab, data within a report can be included as a chart or report within any page.

Annotations

Within pages or rows of a data grid, you can include the following annotations:

  • Files - Upload files for download or to display as an inline image within section text
  • Notes - Include obvious and usually temporary notes specific to the content
  • Tags - Include tags to aid in searching
  • Links - Include URL links for a data grid row

Access Control

An administrator controls who can login to a Websheet application by specifying one of the following authentication mechanisms:

  • Public access (no authentication)
  • Application Express Account
  • Oracle Single Sign-On
  • LDAP
  • Custom

Once logged in to the application, a user's access will be governed by the role assigned to them. The supported roles include:

  • Administrator
  • Contributor
  • Reader
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:3:74565147815::NO:::
==== Headers in Request ====
accept: */*
user-agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
accept-encoding: gzip, br, zstd, deflate
referer: http://reconquistatramites.gov.ar:9095/apex/f?p=4600%3A3%3A1858300824271%3A%3ANO%3A%3A%3A
cookie: ORA_WWV_USER_63113586886954=ORA_WWV-ePl5jZA0fGNKICkRQpr11Skt
host: reconquistatramites.gov.ar:9095
==== Cookies in Request ====
ORA_WWV_USER_63113586886954 =  ORA_WWV-ePl5jZA0fGNKICkRQpr11Skt
request parameter: p=4600:3:74565147815::NO:::
isValidRequest(), procedure name: 
Validating: f
*** Total number of arguments: 15
SID: 119
Parse: 0 ms
-----
begin 
 f(p=>?);
commit;
  end;
*** Total number of arguments: 15
{p=4600:3:74565147815::NO:::}
p=4600:3:74565147815::NO:::
p= 4600:3:74565147815::NO:::
Exec: 28 ms
Got results length: 12691
==== Headers from Results ====
Setting Content-Type (Content-type): text/html; charset=utf-8
Adding X-Frame-Options: DENY
Adding X-DB-Content-length: 12691
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