FormsRefresh

Retail order system / orders-delete-refused

orders-delete-refused

Query the orders, press DELETE on order 901, which has lines; nothing is deleted.

0defects
91values match
120tolerated by policy
0waived
39unmapped

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.

  1. open ORDERS
  2. execute query: click Toolbar.Execute Query
  3. do not save: alert No expect {"values": {"ORDERS.ORDER_ID[0]": "901"}}
  4. delete: click ORDERS.PUSH_BUTTON9 expect {"alert": "Cannot delete master record when matching detail records exist."}
  5. acknowledge refusal: alert OK

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

Original (Oracle Forms 14.1.2), step 00-open
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 00-open
Migrated (.NET, PostgreSQL)

Step 01: execute-query

Original (Oracle Forms 14.1.2), step 01-execute-query
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 01-execute-query
Migrated (.NET, PostgreSQL)

Step 02: do-not-save

Original (Oracle Forms 14.1.2), step 02-do-not-save
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 02-do-not-save
Migrated (.NET, PostgreSQL)

Step 03: delete

Original (Oracle Forms 14.1.2), step 03-delete
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 03-delete
Migrated (.NET, PostgreSQL)

Step 04: acknowledge-refusal

Original (Oracle Forms 14.1.2), step 04-acknowledge-refusal
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 04-acknowledge-refusal
Migrated (.NET, PostgreSQL)

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.

#StepAction (by name)Focus afterDisplayed values that changedMessage lineAlertExpect
0open ORDERSORDERS.CUSTOMER_ID[0]ORDERS.ORDER_ID[0] = 16
1execute queryclick Toolbar.Execute QueryFWindow/PushButton:YesPress Tab to move between choices, Return to select.Do you want to save the changes you have made?
2do not savealert NoORDERS.CUSTOMER_ID[0]ORDERS.CUSTOMER_ID[0] = 1
ORDERS.DISCOUNT[0] = 0
ORDERS.EMPLOYEE_ID[0] = 1
ORDERS.FINAL_AMOUNT[0] = 165
ORDERS.ORDER_DATA[0] = 03-OCT-2026
ORDERS.ORDER_ID[0] = 901
ORDERS.ORDER_TYPE[0] = Takeaway
ORDERS.STATUES[0] = Delivered
ORDERS.TABLE_NUMBER[0] = 3
ORDERS.TOTAL_AMOUNT[0] = 165
ORDER_ITEMS.ITEM_ID[0] = 901
ORDER_ITEMS.ITEM_ID[1] = 902
ORDER_ITEMS.ORDER_ID_FK[0] = 901
ORDER_ITEMS.ORDER_ID_FK[1] = 901
ORDER_ITEMS.PRODUCT_ID_FK[0] = 1
ORDER_ITEMS.PRODUCT_ID_FK[1] = 1
ORDER_ITEMS.QUANTITY[0] = 2
ORDER_ITEMS.QUANTITY[1] = 1
ORDER_ITEMS.TOTAL_PRICE[0] = 110
ORDER_ITEMS.TOTAL_PRICE[1] = 55
ORDER_ITEMS.UNIT_PRICE[0] = 55
ORDER_ITEMS.UNIT_PRICE[1] = 55
Customer Id1pass
3deleteclick ORDERS.PUSH_BUTTON9FWindow/PushButton:OKCannot delete master record when matching detail records exist.Cannot delete master record when matching detail records exist.pass
4acknowledge refusalalert OKORDERS.PUSH_BUTTON9[0]FRM-40401: No changes to save.

Database effects

sequence ORD_SEQ: next 16 -> 17, drawn [16]

Classified diff against the migrated app

Diff: orders-delete-refused
counts: match 91, tolerated 120, waived 0, defect 0, unmapped 39, 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  x3
[tolerated] ui.values.ORDERS.FINAL_AMOUNT  rule=money  x3
[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  x3
[tolerated] ui.values.ORDER_ITEMS.ITEM_ID  rule=blank_rows  x19
[tolerated] ui.values.ORDER_ITEMS.PRODUCT_ID_FK  rule=blank_rows  x19
[tolerated] ui.values.ORDER_ITEMS.QUANTITY  rule=blank_rows  x19
[tolerated] ui.values.ORDER_ITEMS.TOTAL_PRICE  rule=blank_rows  x19
[tolerated] ui.values.ORDER_ITEMS.TOTAL_PRICE  rule=money  x6
[tolerated] ui.values.ORDER_ITEMS.UNIT_PRICE  rule=blank_rows  x19
[tolerated] ui.values.ORDER_ITEMS.UNIT_PRICE  rule=money  x6
[unmapped] ui.alert.title  (browser dialogs have no title)  x2
[unmapped] ui.record  (no target counterpart)  x5
[unmapped] ui.seen.alert.title  (browser dialogs have no title)  x2
[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.