Forms

Reverse-engineer Oracle Forms with AI

Extract business logic, blocks, triggers and dependencies from legacy FMB modules with an AI agent — the first step of any safe migration.

Advanced⏱ 2 min readUpdated: 2026-10-10

Before you migrate Oracle Forms, you must understand what each module actually does. AI makes this fast: convert the form to a readable format, then have an agent extract a structured inventory of blocks, items, LOVs, triggers and their PL/SQL.

Convert FMB to XML

Oracle Forms ships the Forms to XML conversion tool (frmf2xml.sh on Linux/Unix, frmf2xml.bat on Windows). It accepts .fmb, .mmb and .olb files and writes <name>_fmb.xml (or _mmb.xml / _olb.xml) next to the input file. In a configured Forms 12c+ domain the script is in $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/forms1/bin.

frmf2xml.sh OVERWRITE=YES ORDERS.fmb
# writes ORDERS_fmb.xml

# every property, including inherited ones (analysis only)
frmf2xml.sh OVERWRITE=YES DUMP=ALL ORDERS.fmb
  • OVERWRITE=YES replaces an existing XML file; the default (NO) stops if the file exists.
  • By default only overridden properties are written. DUMP=ALL writes every property, which gives the AI a fuller picture, but that XML cannot be converted back into a form.
  • Trigger and program-unit PL/SQL is stored in XML attributes (TriggerText, ProgramUnitText) with line breaks escaped as &amp;#10; in the raw file — tell the agent so it decodes them.

💡 "Error initialising the Forms Jdapi"

The tool loads the Forms Java API. On a headless Linux server this error commonly means there is no X display: point DISPLAY at an X server (for example Xvfb) and run it again.

Attached PL/SQL libraries (.pll)

Libraries are not handled by frmf2xml. Convert each .pll to a .pld text file with Forms Builder (File > Convert) or the Forms Compiler in script mode:

frmcmp_batch.sh module=ORDERS_LIB.pll module_type=library logon=no script=yes output_file=ORDERS_LIB.pld

Ask the agent for a structured inventory

Feed the XML (and any .pld files) to the agent with a precise prompt so the output is a reviewable table, not prose. Large forms produce large XML files, so work one module at a time.

› Act as an Oracle Forms->APEX migration analyst. From this module XML,
  extract a table of blocks, items, LOVs, triggers (with their PL/SQL),
  program units, and the business rules they encode.

⚠ Verify every extracted rule

AI can miss or misread a trigger. Treat the inventory as a draft to confirm against the running app, not ground truth. Form source can contain table names, credentials or business rules — check your organisation's policy before sending it to an external AI service.

Check your understanding

Check your understanding

0% · 0/2

What converts a binary FMB to something AI can read?

How should you treat the extracted inventory?

Need this delivered?

Request a quote