Partner Panel Discussion on Forms Modernization

Watch Joel Kallman, Senior Director of Software Development, along with a number of experts from the global APEX Community, discuss Oracle Forms Modernization. Learn about the positive aspects, together with the challenges, of using Oracle APEX to modernize your Oracle Forms applications. Real-world success stories, challenges, and tips are discussed.

Participants

Joel Kallman (Host)
Senior Director of Software Development, Oracle, in Columbus, Ohio, USA

Dario Bilić
Board member and manager, BiLog in Zagreb, Croatia

Simon Greenwood
Development Services Director, Explorer UK Ltd. in Leeds, United Kingdom

Sergei Martens
Managing Partner, Smart4APEX in Tilburg, The Netherlands

Francis Mignault
CTO and co-founder, Insum Solutions in Montreal, Canada

This recording was done as part of APEX Office Hours: https://apex.oracle.com/officehours

Major Discussion Points

Question 1

Can you please give a brief overview of one of your completed projects (or something which is underway)? (11:55)

Dario:

  • A large regional European bank
  • 500 Oracle Forms; 600 Oracle Reports
  • Pilot using APEX, Java with Angular, .NET, upgrading to Forms 12c
  • Based on pilot selected Oracle APEX

Simon:

  • Energy sector ISV that manages smart meters for gas and electricity meters
  • Used by 4 / 6 largest energy suppliers in the UK
  • 100s of Forms being transformed
  • Reasons for modernization =
    • Needed a SaaS offering for delivery of software (browser only)
    • Responsive, modern design for tablets, not just desktops
    • Lower entry-point cost
    • Needed a cloud option going forward – no Oracle Forms cloud service
    • Branching out into Europe so needed to be multi-language capable
    • Forms developers had prerequisite skills to learn APEX

Sergei:

  • Tank terminal company in the oil and gas industry
  • Modernizing Oracle Forms to prepare for the future and expected growth, and refactoring to better fit business needs
  • Initially struggled with ADF and believed APEX would be faster
  • Mission critical app being developed by 2 teams of ten members each

Francis:

  • Major US cruise line, shipboard property management system (embarkation, shore excursions, guest services, back office, and reports)
  • Multiple projects across many years
  • 300 Forms modernized and numerous reports
  • Reasons for modernization =
    • Performance issues
    • Improved UI
    • Able to leverage all of their PL/SQL investment

Question 2

What would you say is your approach in modernization with APEX? Rewrite? Partial migration? Create new apps adjacent to the existing Oracle Forms apps? (20:50)

Simon:

  • Should consider all depending on circumstances
  • Generally, complete re-write to take advantage of lower licensing costs, etc
  • Can be made like-for-like but shouldn’t – Forms basically client / server
  • Build modern “web” app using APEX
  • No “silver bullet” to migrate from Forms to anything else – must redevelop
  • Reuse as much code as possible

Sergei:

  • Start with one-to-one (or more) migration so developers learn APEX
  • Move trigger logic into database logic
  • Choose low-hanging fruit for new functionality to make business happy
  • Look at migrating “user groups” so they don’t have to work in both Forms and APEX

Francis:

  • Hard to justify “big bang” where do everything in one project
  • Use partial re-write extending existing apps – By module
  • First understand APEX and start using it on existing tables

Question 3

What were some of the biggest challenges you faced in this type of project? (29:40)

Sergei:

  • Changing Forms developers mindset from putting as much on a page as possible to a web friendly design
  • For larger projects, setting UI standards and being consistent
  • Scope creep – Business continually asking for new functionality

Simon:

  • Forms developers being used to persistent database connections so using temporary tables – In APEX you need to use APEX collections
  • Multi-row edit pages
  • Validations using item and block triggers instead of validating at page submission in APEX
  • Issues trying to replicate 100% Forms processing (for example, across multiple pages)

Question 4

What was the biggest benefit to the customer? Has the customer been satisfied with the result?

Dario:

  • Already paying for APEX (via database licenses) so can save money moving away from Forms
  • Being able to retrain the Forms developers to use APEX – significant cost savings
  • Instantly move to web technology – Deploy via the web (centralized) rather than pushing out to thousands of end users
  • Get mobile and REST services capabilities by using APEX
  • Modernized apps appeal to business users

Francis:

  • Leverage the existing investment in Oracle – Licensing, data model, same technology stack
  • Easier to train Forms developer in APEX then other web technologies
  • Jump to the 21stcentury - mobile, responsive, modern apps

Question 5

We always talk about preserving your investment in the back-end business logic, in SQL and PL/SQL. Is this a fallacy? How much of the back-end code had to be modified to work in the new world with APEX? (41:50)

Francis:

  • If logic resides in the database (not inside Forms) can utilize almost all of the code
  • If built inside Forms (or Designer generated) harder to go through and extract business logic
  • Can use APEX Forms Migration feature built-into APEX to annotate logic
  • APEX as close as possible to Forms development approach = easier reuse

Dario:

  • Most of the code inside of Forms – Have to try and move it all to the database
  • If code already in the database then very easy to reuse.

Question 6

Can you describe the process you follow to assess if something is appropriate to be modernized with APEX? Can you give an example of something you would not use APEX to modernize a Forms app? (46:30)

Simon:

  • Some things are not suitable for a web framework , such as web_util (which performs desktop operations)
  • Determine how much code is in the Forms triggers to determine the effort
  • Review what sections are still being utilized (some no longer used = do not modernize)

Dario:

  • APEX is web based not client / server which has some limitations
  • Forms had more control on the client-side, which is not really a “web” thing to do
  • Can use plug-ins, and other techniques to achieve client-side requirements

Question 7

How do you go about educating someone to use APEX, who comes from a Forms background? It is Web, and Web is different. (50:55)

Sergei:

  • Trained Forms developers in 3 stages across company
    • Beginner – APEX basics; then allowed developers to play and learn more
    • Intermediate – Rendering stage, client stage, processing stage
    • Advanced – Best practices and standards; Consistency
  • Once they start developing talk about JS and CSS
  • Best to have Web developer expert for JS, CSS, HTML

Dario:

  • Best to have web technologies expert on the team to grasp new web technologies
  • Targeted workshops using Forms that need to be modernized
  • Make them aware of the power of the APEX community (twitter, apex.world)
  • Encourage them to ask questions (even do Google search)
  • Build plug-ins for common features needed across multiple pages / apps
  • Look at 3rdparty frameworks such as FOEX

Francis:

  • Educating Forms developers in how web works and a “mind change” is most important
  • Get them to play with it and build simple apps
  • Partner up with them and teach them do’s and don’ts
  • Learn how to debug / trace apps
  • Also need to train end users – screens and processes will be different

Question 8

How long does it take for the existing Forms developers to become competent in APEX and Web development? Were they able to carry on with further development on their own? (1:01:45)

Dario:

  • 42 minutes
  • After training, should be productive in weeks, with support
  • After a month or two should be productive, without much support

Simon:

  • Up and running in a few days, competent in a few weeks
  • Other Web technologies such as JavaScript or jQuery take longer and may take several months
  • Developers need to embrace APEX, which takes time and experience

Question 9

Can customers do this migration on their own? This Office Hours forum is comprised of our many partners, and if I were watching this, I might think "Wow, I need outside help to get this done". What would you say?

Francis:

  • If they already know APEX then can readily start on their own
  • Very helpful to have an experienced coach / partner
  • Partners have tooling, can provide training and more.
  • Partners have extensive experience with challenges, security, approach, and so forth
  • Customers should start with a small prototype

Sergei:

  • Smaller apps are no problem
  • Bigger apps important to use best practices (version control, environments, plug-ins, …) that partners can provide
  • Especially important to get help for the first few months

Question 10

For anyone watching this, who is contemplating modernizing some fo their Forms apps with APEX, do you have any specific advice? (1:08:40)

Dario:

  • Business users love it, management love it, developers really love it so just do it
  • Go to an Oracle or APEX conferences and see the enthusiasm and great content

Simon:

  • Download the latest version of APEX
  • Sign up on apex.oracle.com
  • Forms developers will pick up APEX quickly
  • Review the existing apps to make sure the pages are still being used
  • There is no “silver bullet” for migration – it is primarily a redesign
  • See white paper related to Forms: “Java Client Roadmap” to assess future
    { https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf}

Sergei:

  • Start small – Pick a small project that achieves quick result
  • Investigate reporting functionality, such as Interactive Reports, Interactive Grids, etc

Francis:

  • Start using APEX immediately – play with it
  • Plan UI, plan security (authentication and authorization), and plan navigation
  • Develop in phases not “big bang”
  • Keep it simple – minimize bells and whistles
  • Don’t try and reproduce Forms
  • Change Management – Users, developers, analysts, DBAs need to be trained
  • Get involved in the APEX community