FormsRefresh

Retail order system / products-browse

products-browse

Open products from the main menu, browse first/last/next/previous, exit to the menu.

0defects
62values match
10tolerated by policy
0waived
14unmapped

Unmapped values are recorded on the original but have no counterpart the mapping names in the migrated app, so they are listed, not compared, and are not defects. Here: the Forms record indicator ("Record: 1/2" in the status bar) (7); the list of open Forms windows (7).

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.

#StepActionChecked on the original
0Open form MAIN_MENU
1open productsClick BLOCK7.ITEM14PRODUCTS.NAME[0] = Latte
2last recordClick PRODUCTS.ITEM16PRODUCTS.NAME[0] = Espresso
3first recordClick PRODUCTS.ITEM15PRODUCTS.NAME[0] = Latte
4nextClick PRODUCTS.NEXT_BTNPRODUCTS.NAME[0] = Espresso
5previousClick PRODUCTS.PRE_BTNPRODUCTS.NAME[0] = Latte
6exit to menuClick PRODUCTS.PUSH_BUTTON11

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 MAIN_MENU

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 1: open products

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

Step 2: last record

Original (Oracle Forms 14.1.2), step 02-last-record
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 02-last-record
Migrated (.NET, PostgreSQL)

Step 3: first record

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

Step 4: next

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

Step 5: previous

Original (Oracle Forms 14.1.2), step 05-previous
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 05-previous
Migrated (.NET, PostgreSQL)

Step 6: exit to menu

Original (Oracle Forms 14.1.2), step 06-exit-to-menu
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 06-exit-to-menu
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 form MAIN_MENUBLOCK7.PUSH_BUTTON11[0]FRM-41003: This function cannot be performed here.
1open productsClick BLOCK7.ITEM14PRODUCTS.PRODUCT_ID[0]PRODUCTS.AVAILABLE[0] = Yes
PRODUCTS.CATEGORY_ID_FK[0] = 1
PRODUCTS.COST[0] = 20
PRODUCTS.NAME[0] = Latte
PRODUCTS.PRICE[0] = 55
PRODUCTS.PRODUCT_ID[0] = 1
pass
2last recordClick PRODUCTS.ITEM16PRODUCTS.PRODUCT_ID[0]PRODUCTS.COST[0] = 15
PRODUCTS.NAME[0] = Espresso
PRODUCTS.PRICE[0] = 40
PRODUCTS.PRODUCT_ID[0] = 21
Product Id Required21pass
3first recordClick PRODUCTS.ITEM15PRODUCTS.PRODUCT_ID[0]PRODUCTS.COST[0] = 20
PRODUCTS.NAME[0] = Latte
PRODUCTS.PRICE[0] = 55
PRODUCTS.PRODUCT_ID[0] = 1
Product Id Required21pass
4nextClick PRODUCTS.NEXT_BTNPRODUCTS.PRODUCT_ID[0]PRODUCTS.COST[0] = 15
PRODUCTS.NAME[0] = Espresso
PRODUCTS.PRICE[0] = 40
PRODUCTS.PRODUCT_ID[0] = 21
Product Id Required21pass
5previousClick PRODUCTS.PRE_BTNPRODUCTS.PRODUCT_ID[0]PRODUCTS.COST[0] = 20
PRODUCTS.NAME[0] = Latte
PRODUCTS.PRICE[0] = 55
PRODUCTS.PRODUCT_ID[0] = 1
Product Id Required1pass
6exit to menuClick PRODUCTS.PUSH_BUTTON11BLOCK7.ITEM14[0]

Database effects

None: the scenario changes no row and draws no sequence value.

Classified diff against the migrated app

Diff: products-browse
counts: match 62, tolerated 10, waived 0, defect 0, unmapped 14, harness 0
generated-id pairs (source -> target): none

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.PRODUCTS.COST  rule=money  x5
[tolerated] ui.values.PRODUCTS.PRICE  rule=money  x5
[unmapped] ui.record  (no target counterpart)  x7
[unmapped] ui.windows  (no target counterpart)  x7

Waivers

No waiver applies to this scenario: every compared value matches or is within the tolerance policy.