Retail order system / orders-delete-empty
orders-delete-empty
Query the orders, go to order 902 (no lines), press DELETE; the order is deleted.
Three runs from a fresh database gave byte-identical diffs. Files: scenario, golden record, target record, diff (JSON).
Scenario steps
Items are addressed by Forms name (BLOCK.ITEM[row]). Step 0 opens the form.
open ORDERS- execute query:
click Toolbar.Execute Query - do not save:
alert No - last record:
click ORDERS.ITEM16expect {"values": {"ORDERS.ORDER_ID[0]": "902"}} - delete:
click ORDERS.PUSH_BUTTON9
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 00: open
Step 01: execute-query
Step 02: do-not-save
Step 03: last-record
Step 04: delete
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 ORDERS | ORDERS.CUSTOMER_ID[0] | ORDERS.ORDER_ID[0] = 16 | ||||
| 1 | execute query | click Toolbar.Execute Query | FWindow/PushButton:Yes | Press Tab to move between choices, Return to select. | Do you want to save the changes you have made? | ||
| 2 | do not save | alert No | ORDERS.CUSTOMER_ID[0] | ORDERS.CUSTOMER_ID[0] = 1ORDERS.DISCOUNT[0] = 0ORDERS.EMPLOYEE_ID[0] = 1ORDERS.FINAL_AMOUNT[0] = 165ORDERS.ORDER_DATA[0] = 03-OCT-2026ORDERS.ORDER_ID[0] = 901ORDERS.ORDER_TYPE[0] = TakeawayORDERS.STATUES[0] = DeliveredORDERS.TABLE_NUMBER[0] = 3ORDERS.TOTAL_AMOUNT[0] = 165ORDER_ITEMS.ITEM_ID[0] = 901ORDER_ITEMS.ITEM_ID[1] = 902ORDER_ITEMS.ORDER_ID_FK[0] = 901ORDER_ITEMS.ORDER_ID_FK[1] = 901ORDER_ITEMS.PRODUCT_ID_FK[0] = 1ORDER_ITEMS.PRODUCT_ID_FK[1] = 1ORDER_ITEMS.QUANTITY[0] = 2ORDER_ITEMS.QUANTITY[1] = 1ORDER_ITEMS.TOTAL_PRICE[0] = 110ORDER_ITEMS.TOTAL_PRICE[1] = 55ORDER_ITEMS.UNIT_PRICE[0] = 55ORDER_ITEMS.UNIT_PRICE[1] = 55 | Customer Id1 | ||
| 3 | last record | click ORDERS.ITEM16 | ORDERS.CUSTOMER_ID[0] | ORDERS.ORDER_DATA[0] = 04-OCT-2026ORDERS.ORDER_ID[0] = 902ORDERS.ORDER_TYPE[0] = DeliveryORDERS.STATUES[0] = ReadyORDERS.TABLE_NUMBER[0] = 7ORDER_ITEMS.ORDER_ID_FK[0] = 902 | Customer Id1 | pass | |
| 4 | delete | click ORDERS.PUSH_BUTTON9 | ORDERS.CUSTOMER_ID[0] | ORDERS.DISCOUNT[0] = 0ORDERS.FINAL_AMOUNT[0] = 165ORDERS.ORDER_DATA[0] = 03-OCT-2026ORDERS.ORDER_ID[0] = 901ORDERS.ORDER_TYPE[0] = TakeawayORDERS.STATUES[0] = DeliveredORDERS.TABLE_NUMBER[0] = 3ORDERS.TOTAL_AMOUNT[0] = 165ORDER_ITEMS.ITEM_ID[0] = 901ORDER_ITEMS.ITEM_ID[1] = 902ORDER_ITEMS.ORDER_ID_FK[0] = 901ORDER_ITEMS.ORDER_ID_FK[1] = 901ORDER_ITEMS.PRODUCT_ID_FK[0] = 1ORDER_ITEMS.PRODUCT_ID_FK[1] = 1ORDER_ITEMS.QUANTITY[0] = 2ORDER_ITEMS.QUANTITY[1] = 1ORDER_ITEMS.TOTAL_PRICE[0] = 110ORDER_ITEMS.TOTAL_PRICE[1] = 55ORDER_ITEMS.UNIT_PRICE[0] = 55ORDER_ITEMS.UNIT_PRICE[1] = 55 | FRM-40400: Transaction complete: 1 records applied and saved. |
Database effects
ORDERS deleted: {"ORDER_ID": 902, "ORDER_DATA": "2026-10-04T00:00:00", "CUSTOMER_ID": 1, "EMPLOYEE_ID": 1, "TOTAL_AMOUNT": null, "TABLE_NUMBER": 7, "ORDER_TYPE": "LIST11", "DISCOUNT": null, "FINAL_AMOUNT": null, "STATUES": "LIST14"}
sequence ORD_SEQ: next 16 -> 17, drawn [16]
Classified diff against the migrated app
Diff: orders-delete-empty counts: match 97, tolerated 123, waived 0, defect 0, unmapped 37, harness 0 generated-id pairs (source -> target): ORD_SEQ#1 -> ORD_SEQ#1 (draw order) waivers: W1 [proposed] ORDER_DATA saved as NULL: applied to 0 value(s) W2 [proposed] Order number consumed when the form opens: applied to 0 value(s) W3 [proposed] Line ITEM_ID typed by the user: applied to 0 value(s) W4 [proposed] Two modal alerts after saving: applied to 0 value(s) W5 [proposed] Key debug message on record navigation (single-table forms): applied to 0 value(s) W6 [proposed] Customer debug message in ORDERS: applied to 0 value(s) W7 [proposed] Placeholder alert on leaving Employees: applied to 0 value(s) W8 [proposed] Error message when the application starts: applied to 0 value(s) W9 [proposed] Keyboard hint of the Forms client while a question is open: applied to 0 value(s) W10 [proposed] An order added with Add cannot be saved: applied to 0 value(s) [tolerated] ui.values.ORDERS.DISCOUNT rule=money x2 [tolerated] ui.values.ORDERS.FINAL_AMOUNT rule=money x2 [tolerated] ui.values.ORDERS.ORDER_TYPE rule=text x2 [tolerated] ui.values.ORDERS.STATUES rule=text x2 [tolerated] ui.values.ORDERS.TOTAL_AMOUNT rule=money x2 [tolerated] ui.values.ORDER_ITEMS.ITEM_ID rule=blank_rows x21 [tolerated] ui.values.ORDER_ITEMS.PRODUCT_ID_FK rule=blank_rows x21 [tolerated] ui.values.ORDER_ITEMS.QUANTITY rule=blank_rows x21 [tolerated] ui.values.ORDER_ITEMS.TOTAL_PRICE rule=blank_rows x21 [tolerated] ui.values.ORDER_ITEMS.TOTAL_PRICE rule=money x4 [tolerated] ui.values.ORDER_ITEMS.UNIT_PRICE rule=blank_rows x21 [tolerated] ui.values.ORDER_ITEMS.UNIT_PRICE rule=money x4 [unmapped] ui.alert.title (browser dialogs have no title) x1 [unmapped] ui.record (no target counterpart) x5 [unmapped] ui.seen.alert.title (browser dialogs have no title) x1 [unmapped] ui.values.ORDER_ITEMS.ORDER_ID_FK (no target item) x25 [unmapped] ui.windows (no target counterpart) x5
Waivers
No waiver applies to this scenario: every compared value matches or is within the tolerance policy.









