Migrate Oracle Forms Applications to Oracle APEX on a VM DB system

Oracle Forms applications still play a vital role, but many are looking for ways to modernize their applications. Modernize your Oracle Forms applications by migrating them to Oracle Application Express (Oracle APEX) in the cloud.

Your stored procedures and PL/SQL packages work natively in Oracle APEX, making it the clear platform of choice for easily transitioning Oracle Forms applications to modern web applications with more capabilities, less complexity, and lower development and maintenance costs.

Oracle APEX is a low-code development platform that enables you to build scalable, secure enterprise apps, with world-class features, that you can deploy anywhere. You can quickly develop and deploy compelling apps that solve real problems and provide immediate value. You won't need to be an expert in a vast array of technologies to deliver sophisticated solutions.


Oracle Forms applications still play a vital role, but many are looking for ways to modernize their applications. Modernize your Oracle Forms using Oracle Application Express (Oracle APEX) and Oracle Cloud Infrastructure.

The following diagram illustrates this reference architecture.

Description of forms-apex-dbcs.png follows
Description of the illustration forms-apex-dbcs.png

The architecture has the following components:

  • Region

    An Oracle Cloud Infrastructure region is a localized geographic area that contains one or more data centers, called availability domains. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).

  • Availability domains

    Availability domains are standalone, independent data centers within a region. The physical resources in each availability domain are isolated from the resources in the other availability domains, which provides fault tolerance. Availability domains don’t share infrastructure such as power or cooling, or the internal availability domain network. So, a failure at one availability domain is unlikely to affect the other availability domains in the region.

  • Fault domains

    A fault domain is a grouping of hardware and infrastructure within an availability domain. Each availability domain has three fault domains with independent power and hardware. When you distribute resources across multiple fault domains, your applications can tolerate physical server failure, system maintenance, and power failures inside a fault domain.

  • Virtual cloud network (VCN) and subnets

    A VCN is a customizable, software-defined network that you set up in an Oracle Cloud Infrastructure region. Like traditional data center networks, VCNs give you complete control over your network environment. A VCN can have multiple non-overlapping CIDR blocks that you can change after you create the VCN. You can segment a VCN into subnets, which can be scoped to a region or to an availability domain. Each subnet consists of a contiguous range of addresses that don't overlap with the other subnets in the VCN. You can change the size of a subnet after creation. A subnet can be public or private.

  • Security list

    For each subnet, you can create security rules that specify the source, destination, and type of traffic that must be allowed in and out of the subnet.

  • Cloud Guard

    You can use Oracle Cloud Guard to monitor and maintain the security of your resources in Oracle Cloud Infrastructure. Cloud Guard uses detector recipes that you can define to examine your resources for security weaknesses and to monitor operators and users for risky activities. When any misconfiguration or insecure activity is detected, Cloud Guard recommends corrective actions and assists with taking those actions, based on responder recipes that you can define.

  • VM DB System

    Oracle VM Database System is an Oracle Cloud Infrastructure (OCI) database service that enables you to build, scale, and manage full-featured Oracle databases on virtual machines. A VM database system uses OCI Block Volumes storage instead of local storage and can run Oracle Real Application Clusters (Oracle RAC) to improve availability.


Use the following recommendations as a starting point when modernizing Oracle Forms. Your requirements might differ from the architecture described here.
  • VCN

    When you create a VCN, determine the number of CIDR blocks required and the size of each block based on the number of resources that you plan to attach to subnets in the VCN. Use CIDR blocks that are within the standard private IP address space.

    Select CIDR blocks that don't overlap with any other network (in Oracle Cloud Infrastructure, your on-premises data center, or another cloud provider) to which you intend to set up private connections.

    After you create a VCN, you can change, add, and remove its CIDR blocks.

    When you design the subnets, consider your traffic flow and security requirements. Attach all the resources within a specific tier or role to the same subnet, which can serve as a security boundary.

  • Security Zones

    For resources that require maximum security, Oracle recommends that you use security zones. A security zone is a compartment associated with an Oracle-defined recipe of security policies that are based on best practices. For example, the resources in a security zone must not be accessible from the public internet and they must be encrypted using customer-managed keys. When you create and update resources in a security zone, Oracle Cloud Infrastructure validates the operations against the policies in the security-zone recipe, and denies operations that violate any of the policies.

  • Schema

    Retain the Database structure that Oracle Forms were built on as it is and use that as the schema for Oracle Application Express (Oracle APEX).

  • Business logic

    Oracle Forms has most of the business logic in Triggers/Program Units/Events, before starting the migration for Oracle Forms to Oracle APEX, migrate the business logic to Stored Procedures/Functions/Packages in database.


Consider the following when working on a conversion project to migrate Oracle Forms Object navigator components to Oracle Application Express (Oracle APEX).

  • Data Blocks

    A data block from Oracle Forms relates to Oracle APEX with each page broken up into several regions and components. Review the Oracle APEX Component Templates available in the Universal Theme.

  • Triggers

    In Oracle Forms, triggers control almost everything. In Oracle APEX, control is based on flexible conditions that are activated when a page is submitted and are managed by validations, computations, dynamic actions, and processes.

  • Alerts

    Most messages in Oracle APEX are generated when you submit a page.

  • Attached Libraries

    Oracle APEX takes care of the JavaScript and CSS libraries that support the Universal Theme, which supports all of the components that you need for flexible, dynamic applications. You can include your own JavaScript and CSS in several ways, mostly through page attributes. You can choose to add inline code as reference files that exist either in the database as a BLOB (#APP_IMAGES#) or sit on the middle tier, typically served by Oracle REST Data Services (ORDS). When a reference file is on an Oracle WebLogic Server, the file location is prefixed with #IMAGE_PREFIX#.

  • Editors

    Oracle APEX has a text area and a rich text editor, which is equivalent to Editors in Oracle Forms.

  • List of Values (LOV)

    In APEX, the LOV is coupled with the Item type. A radio group works well with a small handful of values. Select Lists for middle-sized sets, and select Popup LOV for large data sets. You can use the queries from Record Group in Oracle Forms for the LOV query in Oracle APEX. LOV's in Oracle APEX can be dynamically driven by a SQL query, or be statically defined. A static definition allows a variety of conditions to be applied to each entry. These LOVs can then be associated with Items such as Radio Groups & Select Lists, or with a column in a report, to translate a code to a label.

  • Parameters

    Page Items in Oracle APEX are populated between pages to pass information to the next page, such as the selected record in a report. Larger forms with a number of items are generally submitted as a whole, where the page process handles the data, and branches to the next page. These values can be protected from URL tampering by session state security, at item, page, and application levels, often by default.

  • Popup Menus

    Popup Menus are not available out of the box in Oracle APEX, but you can build them by using Lists and associating a button with the menu.

  • Program Units

    Migrate the Stored procedures and functions defined in program units in Oracle Forms into Database Stored Procedures/Functions and use Database Stored procedures/functions in Oracle APEX processes/validations/computations.

  • Property Classes

    Property Classes in Oracle Forms allow the developer to utilize common attributes among each instance of a component. In APEX you can define User Interface Defaults in the data dictionary, so that each time items or reports are created for specific tables or columns, the same features are applied by default. As for the style of the application, you can apply classes to components that carry a particular look and feel. The Universal Theme has a default skin that you can reconfigure declaratively.

  • Record Groups

    Use queries in Record Groups to define the Dynamic LOV in Oracle APEX.

  • Reports

    Interactive Reports in Oracle APEX come with a number of runtime manipulation options that give users the power to customize and manipulate the reports. Classic Reports are simple reports that don't provide runtime manipulation options, but are based on SQL.

  • Menus

    Oracle Forms have specific menu files, controlled by database roles. Updating the .mmx file required that there be no active users. The menu in Oracle APEX can either be across the top, or down the left side. These menus can be statically defined, or dynamically driven. Static navigation entries can be controlled by authorization schemes, or custom conditions. Dynamic menus can have security tables integrated within the SQL.

  • Properties

    The Page Designer introduced in Oracle APEX is similar to Oracle Forms, particularly with regard to the ability to edit multiple components at once, only intersecting attributes.

Explore More

Learn more about Oracle Cloud Infrastructure best practices and Oracle Application Express.

Review these additional resources: