Forms Reloaded APEX 19.2 | Part 1

References: Oracle Office Hours

What are the upgrades in APEX Forms as of APEX 19.2?

 Oracle APEX form is being great component for interacting with database. These are basically require very low code to build and seem less functionality.

There are significant upgrades in APEX forms from APEX 18 to APEX 19. let’s walk through them.

APEX 18.2

  • There is no Form Region, a “form” is the package/bundle of
    • One or more Regions
    • Page Items
    • Buttons
    • Form Fetch and DML Process
  • The Data Source defined in the process attributes
    • Only table and view are supported
    • Duplicate meta data: Fetch and DML Process

APEX 19.1

  • Data Source
    • Table or View, SQL Query,PL/SQL returning SQL Query
    • Local database, REST enabled SQL, REST SERVICES
    • Multiple Form per page
  • A Page Item can be reference two(!) regions
    • Layout Region
    • Source Region
  • Form process (init, DML) references the form region
    As the upgrades are also includes the source definition changes, now we have more flexibility on data source side. We can create forms on SQL, PL/SQL returning SQL Query, REST Enabled SQL, REST Services and of course on Table/ views.
  • Source Selection 
  • First thing in new forms can be visualize when try to create.
  • New Form Region: New Form Region instead of Static Region. 
  • SQL Query Support New form region supports simple and Complex SQL queries.

  1. Simple Query
SELECT e.empno, e.ename,
       e.job,
       e.mgr,
       e.hiredate,
       e.sal,
       e.comm,
       e.deptno
  FROM emp e

  1. Complex Query
SELECT e.empno,
       e.ename,
       e.job,
       e.mgr,
       e.hiredate,
       e.sal,
       e.comm,
       e.deptno
  FROM emp e
  INNER JOIN dept d
  ON e.deptno = e.deptno
 WHERE d.deptno = 20;

  • Item References to Regions: 
  • Form Initialize process 
  • Auto validation: 
  • Lost Update Detection: If row is being modified already before you pushed it to database.
  • DML Process options
    • Region Source
    • Table/ View
    • Custom Pl/SQL Code
  • Locking Row: Locking Row does not mean form will lock the row after load, Locking means when user hits the request/ click the save button it takes pretty short time to update to the database. For that tiny time it locks the row so that nobody else cannot change it.
  • Session State Maintenance: Available options include:
  • Per Request (Memory Only)
Do not save state in the database. State is only available when processing the current request.
When AJAX requests need to use an item, make sure to pass the item name via "Page Items To Submit".

Per requests session maintenance is really helpful in reducing load on database when number of concurrent users increases. 

  • Per Session (Disk)
Maintain for each session by storing the value in the database, to access it across requests.

Per Session stores the values in session state right from clicking on edit button till manual cleanup or session cleanup.

References: Oracle Office Hours