sqling Runner
Oracle Forms in the browser. No Forms Server.
sqling Runner reads .fmb, .mmb,
.pll and .rdf files directly and runs the
application they describe — triggers, menus, LOVs, record groups,
master-detail blocks, the logon dialog, CALL_FORM chains —
against SQLite, DuckDB or Postgres. The runtime is a Python service.
There is no Forms Services, no WebLogic, no Java bridge, no
frmweb.
Two deployment shapes
-
Server-hosted
sqling Runner installs as a service on your server, points at a folder of
.fmbfiles, and talks to Postgres. The browser is the client UI — triggers, alerts, LOVs, the logon dialog all round-trip through HTTP. Shape of the live demo at sqling.com/pro/formtester/. -
Browser-only
Same wheel, loaded into Pyodide. The forms, the database, and the PL/SQL interpreter all live in the tab — nothing uploaded, nothing kept. Shape of the live demo at sqling.com/pro/formtester-local/. The right fit for showing a form to an auditor without handing them the
.fmb.
What it runs
-
Modules you already have
.fmbforms (6i → 12c),.mmbmenus,.pllattached libraries,.rdfreports. Source form, not.fmx— read directly from the binary, no Oracle tool in the pipeline. -
Trigger and block semantics
PRE-FORM/WHEN-NEW-FORM-INSTANCE/WHEN-VALIDATE-ITEMand the rest of the lifecycle; navigable items, auto-skip, required and format mask;CALL_FORM/OPEN_FORM/NEW_FORMwith parameter lists; master-detail coordination. -
The Forms supplied packages
MESSAGEwith theACKNOWLEDGEelevation,SHOW_ALERT,LOGONdialog,SET_ITEM_PROPERTYfor every documented shape,GET_APPLICATION_PROPERTY, record-group population from a query, SQL*Plus-styleSPOOLandSET SQLFORMAT, and theTEXT_IO/CLIENT_TEXT_IOfamily sandboxed under a per-session scratch directory withCREATE DIRECTORYaware access control.
What is honestly not there yet
Three months of heavy testing is still ahead. The runtime covers the shapes we have seen in real Forms corpora; a form that reaches for something unusual will surface the gap and we will close it. The pieces that are deliberately absent — not planned until a customer asks:
- WebUtil Java-side features (file transfer, native OLE, signed applets) beyond the stubs that let a form open at all.
- Forms Services administration surface (
frmrwebconfig, the Forms Compiler, cluster deployment tooling). - Oracle Reports server integration —
RUN_REPORT_OBJECTrenders through our own reports path, not against a Reports Server instance.
Try it with your forms
Both demos accept a folder of .fmb files via the browser's
file picker. For the browser-only variant,
nothing leaves your machine: load a folder, pull your
network cable, the forms still run.
Run a Form Application (in-browser) · Run a Form Application (server)
On your own server, the licensed build runs with the wizard skipped — point it at a folder of modules on disk and the application boots at the URL it serves:
$ sqling-runner --folder /opt/myapp/forms loaded: 39 .fmb, 1 .pll, 3 .mmb starting form: LOGIN http://127.0.0.1:8771/
A formsrt.json at the folder root carries settings that
travel with the app (prompt-for-logon, default user, starting form).
Have Forms you need to keep running without Forms Services?
Send us a sample module and a count of what you have. We will tell you what runs today and what we would need to look at. Contact Data Design Group.