PITSS Tech Blog

News zu Java, PL/SQL, Entwicklung & Technologiewechsel

Q&A – Bring your business into APEX [webcast]

“Oracle APEX is the clear platform of choice for easily transitioning Oracle Forms applications to modern web apps.” (Oracle)

“Oracle Recognized as a November 2019 Gartner Peer Insights Customers’ Choice for Enterprise Low-Code Application Platform Market.” (Gartner)

Over 100 #orclapex community members were united on the topic of APEX migration in yesterday’s webcast. Our experts showed in interviews, demos & examples how easy and smooth migrations can be. It was a great opportunity to gain confidence in one’s migration project.
See the FAQs from this webcast, which helps you on the way to your own Forms to APEX Migration project.

Your most important questions about a Forms to APEX migration

What do you recomend during an APEX migration? A big bang approach or like a hybrid between APEX and Forms until we move everything to APEX?

It’s definitely a hybrid, or in the words of Gartner, a staged approach. There are two reasons to follow this path. On one hand follow the principle „Get your feedback fast“ to see, how the overall experience for APEX is. On the other hand it’s a question of future save architecture. You will break down your big monolithic Forms application into smaller pieces, and those you should bring to live. 

What have you done to implement CI/CD with APEX?

A very good question. We are more or less in the same situation, if we treat our Product Development as a kind of ISV. We export small pieces of the APEX application with the classical APEX export functionality into our version control system. From their we set up a nightly build in different Databases, with different versions on different operating systems and run a couple of test on top. Our architecture is set up in a kind, that we have a couple of small APEX application with common components and the same database backend functionalities. 

What about microservices with ORDS? Can that be done?

Yes! One of our product (Database Replacer Kit) comes along with a pure microservice architecture and allow a headless use of our application cube.
It’s even a good way to extract possible PL/SQL code out of the Forms, move them into database and provide them via WebServices over ORDS.

Can APEX be considered an enterprise tool that is reliable? Can it support thousands of users online?

Yes, and I like to add two arguments. One is from Oracle itself. Larry Ellison decide to implementll COVID relevant applications for the citizen of US with APEX. Press Release for COVID App on ZDNet. On the other hand – the most traffic of the APEX application is inside the database. The ORDS in front is only handling the requests. So if you Oracle database cover the load for the existing Forms-Application, it’s ready to go for the same in APEX. 

Is APEX Migration Live Experience workshop appropriate even if we don’t have exeprience with APEX so far?

Perhaps you could not validate the complexity of the remaining work, but to understand the benefit of the preparation phase, the possibilities of the process analysis and the potential of APEX in UX for your application, it’s worth participate the workshop. We recommend to have APEX know how, before you start thinking about the future architecture, development pattern, cross functionality and team structure. 

What APEX Version do you use to migrate?

We advise to use the latest 20.2 Version of APEX to benefit most from the feature set of APEX. If necessary, we could go back until APEX 5 – but that doesn’t make sense. 

What is the conversion rate? Ie., What percentage of the form (on average) is converted to APEX vs what is not?

Our data cube loads only in the last year, round about 20.000 different Forms modules and we saw different style on implementation pattern inside the Forms Modules. For the migration APEX the rate depends on the Object Type, eg. we could generate near to 95% of the Blocks, 80% of the Items, but we ignore Alerts and Editors. With this an overall calculation of rate is capable of being misunderstood.  In my point, the springboard of generated artifacts are only one part of the story of benefits. 

How to create interactive reports with dynamic queries with multiple fields?

You could create a function which return a SQL Statement which is the base for the interactive report. 

Is it easy to migrate from Oracle forms to APEX?

It’s not as easy as migrate from Forms 11g to 12c, but it’s easier than starting on a green field. The main purpose of our Product is to simplify complexity, save time and ensure quality on the way from Oracle Forms to Oracle APX.

How to proceed to implement management rules?

Use PL/SQL-Packages!

What additional loads will appear in the database for almost 500 forms, 100 of which are very complicated, with about 200 simultaneous users (as a percentage of the current load). How to estimate it before migration?

The number and complexity of the Forms Modules is not relevant for the additional load in the database. It’s more or less the number of concurrent users, the Efficiency of the SQL-Statements and the amount of PL/SQL-Code, which is creating the load. In that case, the number of user and the SQL-Statements creates the greatest amount of load – but this is equal to the load of the Forms application. Usually in our assessment we run a small recording to analyse the number of user, and the amount of UI Interactions per Intervall to estimate the additonal workload through APEX page refresh. 

How can we take advantage of the low code benefits of APEX to migrate complex Forms applications

Once you migrate your Forms Application to APEX you could benefit immediately from the low code benefits. Extending the application, changing requirements and even finalise the migration is much more faster than in any other technology.

How do you deal with transferring the PL/SQL logic to APEX? For example, APEX has a distinct naming convention for items. How are you mapping the Forms variables to the APEX ones?

In general we support two different ways to treat the PL/SQL Code from Oracle Forms. On one hand we could move the PL/SQL Code to the database. This is helpful, if the code consist of any CRUD statement or consist of a relevant amount of LOC. In this case, any context information, like block-item-name, global variables, system variable, which are used inside the code, is transformed into a procedure parameter and with this we decouple the information from any naming convention which exist before. 

On the other hand we even generate the Elements in APEX out of the existing elements in Forms. So we could consider this mapping also in the adjustments of the code. 

How to improve version control, and simplify install and upgrade process of APEX applications on OnPremise database. thank you!

Use the Import/Export Functionality of APEX to extract the definition of the application into a SQL-File. This will be the base for any kind of update and version control systems. Please avoid using simple merge-statements to solve conflicts. 

How to approach migration from forms?

In our opinion a workshop on your sources would be the best starting point. With minimal effort from your side, you’ll get the most outcome for any kind of decision, budgeting, and project calculations

Forms migration challenges?

Most of the issues during the migration are created by the traditional user behaviour to use Function keys, and other „Hot-Keys“. It could be covered, but in my point of view „it hurts in the heart of a real APEX developer“.

For all obstacles, the APEX development from Oracle provides a solution, which may result in the end to a slightly different architecture or more work in the fine tuning phase. 

The next recommended step is the APEX Migration Live Experience Workshop to experience the migration with your own application.

Any question left?

Could you find all the answers to your questions on this page? If not, we will be happy to be there for you personally and clarify all open points. Just fill out the form below and we will get back to you as soon as possible.

[ninja_form id=6]

[search-in-place-form in_current_page=“1″]