Student forms / form1-insert
form1-insert
Insert a course: PRE-INSERT takes COURSE_NO from COURSE_NO_SEQ and sets CREATED_DATE and MODIFIED_DATE to SYSDATE (the run date, masked) and the user columns to :GLOBAL.USER_ID ('Qafe').
Three runs from a fresh database gave byte-identical diffs. Behaviour that looks odd in the migrated app but is the original's: faithful to the original and waivers. Files: scenario, golden record, target record, diff (JSON).
Scenario steps
Items are addressed by their Forms name (BLOCK.ITEM[row]), the same name in the
original and, through the mapping, in the migrated app.
| # | Step | Action | Checked on the original |
|---|---|---|---|
| 0 | Open form QAFE_FORM1 | ||
| 1 | new record | Click Toolbar.Insert Record | |
| 2 | Type COURSE.DESCRIPTION[0] = Behavioural Contracts, COURSE.COST[0] = 1195 | ||
| 3 | save | Click Toolbar.Save |
Screens, step by step
Left: the original Oracle Forms application, recorded on a virtual display. Right: the migrated application in headless Chromium. Screenshots are evidence only; the comparison works on the recorded values.
Step 0: open QAFE_FORM1
Step 1: new record
Step 2: type
Step 3: save
Golden record of the original
After each step: the focus, the displayed values that changed, the message line and any alert. The full record (every item of every step, windows, lists of values) is in the JSON file.
| # | Step | Action (by name) | Focus after | Displayed values that changed | Message line | Alert | Expect |
|---|---|---|---|---|---|---|---|
| 0 | Open form QAFE_FORM1 | COURSE.COURSE_NO[0] | COURSE.COST[0] = 40COURSE.COURSE_NO[0] = 456COURSE.CREATED_BY[0] = QafeCOURSE.CREATED_DATE[0] = 29-APR-2016COURSE.DESCRIPTION[0] = Dutch GrammarCOURSE.MODIFIED_BY[0] = QafeCOURSE.MODIFIED_DATE[0] = 29-APR-2016 | ||||
| 1 | new record | Click Toolbar.Insert Record | COURSE.COURSE_NO[0] | Course No. | |||
| 2 | Type COURSE.DESCRIPTION[0] = Behavioural Contracts, COURSE.COST[0] = 1195 | COURSE.COST[0] | COURSE.COST[0] = 1195COURSE.DESCRIPTION[0] = Behavioural Contracts | ||||
| 3 | save | Click Toolbar.Save | COURSE.COST[0] | COURSE.COURSE_NO[0] = 457COURSE.CREATED_BY[0] = QafeCOURSE.CREATED_DATE[0] = <date>COURSE.MODIFIED_BY[0] = QafeCOURSE.MODIFIED_DATE[0] = <date> | FRM-40400: Transaction complete: 1 records applied and saved. |
Database effects
COURSE inserted: {"COURSE_NO": 457, "DESCRIPTION": "Behavioural Contracts", "COST": 1195, "PREREQUISITE": null, "CREATED_BY": "Qafe", "CREATED_DATE": "<date>", "MODIFIED_BY": "Qafe", "MODIFIED_DATE": "<date>"}
sequence COURSE_NO_SEQ: next 457 -> 458, drawn [457]
generated: COURSE.COURSE_NO = 457 is COURSE_NO_SEQ#1
Classified diff against the migrated app
Diff: form1-insert counts: match 68, tolerated 2, waived 1, defect 0, unmapped 0, harness 0 generated-id pairs (source -> target): COURSE_NO_SEQ#1 -> COURSE_NO_SEQ#1 waivers: S1 [proposed] Screen-reader announcement of the COURSE_NO item read as a message: applied to 1 value(s) [tolerated] ui.values.COURSE.CREATED_DATE rule=mask:audit-dates x1 [tolerated] ui.values.COURSE.MODIFIED_DATE rule=mask:audit-dates x1 [waived] ui.message rule=waiver:S1 x1 step01.message: source 'Course No.' | target ''
Waivers
| Id | Waiver | Values | Reason |
|---|---|---|---|
| S1 | Screen-reader announcement of the COURSE_NO item read as a message | 1 | After the cursor enters COURSE.COURSE_NO by record navigation (Next Record, the first record of a query, the Hide Student Count button), the Forms 14.1.2 Java client announces the item for assistive technology: its prompt or hint ("Course No." in QAFE_FORM1, "Course No Required" in QAFE_FORM3) followed by the current value, e.g. "Course No.454". The recorder reads this accessible text where the message line lives, but nothing is written to the visible message line (the screenshots of those steps show an empty status bar) and no form code issues it. A browser target leaves screen-reader announcements to the browser (the item's label is its accessible name), so the visible message line stays empty, as on screen in the source. Only these announcement values are waived; every other message is still compared. |







