← Back to work

Meijer · Enterprise systems

Modernizing product hierarchy operations

I redesigned a transaction-driven mainframe workflow into a searchable, auditable enterprise experience while preserving the business rules expert users relied on.

Role
Senior UX Designer, experience design lead, in partnership with business analysts, product and engineering
Platform
Enterprise responsive web application
Focus
Legacy modernization, data management and accessibility
Scope
Approximately 13 connected hierarchy modules

Interface recreated for portfolio presentation to protect confidential product information. Record values shown are illustrative.

Corp Table/Enterprise Admin
randall.hayes@meijer.com

Corp Table

Corp Table manages enterprise product hierarchy, maintenance, allocations, and inventory configurations.

Recent updates

View audit log
AreaUpdated byTimestampChange summaryStatus
Merchandise AreaEvelyn HayesMar 03, 2025 09:42Updated freight % for MA: CCompleted
DepartmentTheodore VanceFeb 22, 2025 14:08Created department DPT 5520Completed
Mass UploadArabella MuellerJan 11, 2025 11:17store_keys_bulk.xlsx importFailed
MPRSKobe HarrellApr 04, 2025 08:55Reject reprocessing, batch 0042Pending
AllocationsZackary NixonSep 09, 2025 16:30Modified allocation rule for DPT 1240Completed
Merchandise AreaBrigitte JastOct 10, 2025 10:01Created Merchandise Area IPending

01

Project snapshot

What Corp Table manages

Product-hierarchy reference data: merchandise areas, departments, primary keys, sales keys, store overrides, MPRS and product categories, alternate hierarchy and freight exceptions. Almost every downstream merchandising, finance and warehouse process reads these values.

Who uses it

Experienced internal users. Business and merchandise teams look up known keys, maintenance users correct mappings, administrators manage controlled reference data, and a large group has inquiry-only access.

Why it matters

A single wrong freight percentage or an inactivated parent record ripples into cost, allocation and store operations. Speed matters, but so does being able to prove what changed and who changed it.

What made it complex

Nine record types plus cross-level list views, three modes per module, store-level overrides, security gating on maintain, and business terminology that engineering, finance and merchandising each read slightly differently.

My role

I led the experience design: facilitating working sessions, turning mainframe behavior into written requirements, designing the shell and every module pattern, and documenting states for engineering. Business analysts owned rule confirmation; engineering owned the data layer.

Constraints

Business rules could not change. Terminology used by business teams had to survive. Some rules were undocumented and only visible in mainframe behavior, so the work included flagging what still required confirmation.

02

The system that already worked

Corp Table lives inside a 3270 mainframe application reached from the CICS application menu. Every task is a typed selection, and every action is a function key. Expert users were genuinely fast in it, the redesign had to earn its keep against that speed.

MCICSMNUApplication selection menu

Corp Table is reached as option 3, CORPTABL, from the CICS application list. Users memorize the number.

M128100ACorporate Table System, main menu

Seven two-letter selections: PH Product Hierarchy, MM MPRS Maintenance, IT I.T.S. Functions, DA Dept. Allocations, BW Buyer Worksheet, PI Physical Inventory, CK Cost Key Inventory.

M128101AProduct hierarchy sub menu

Two typed inputs, selection and function. Selections MA, DP, PK, SP, SK, SS, MP, PC, SR plus list views MD, PM, PS and AH. Functions I, M, L. Footer states security is required for (M) Maintain.

M128102AMerchandise area information, inquiry

Code, description, status, import and non-import maximum freight % and $, default freight %, vendor receipt tolerance min/max % and limit $, Meijer average cost % change, net item cost max amount change.

M128103AMerchandise area information, maintain

The same data as a dense multi-row grid, split across two stacked blocks because the values do not fit one 3270 screen.

M128104ADepartment information, inquiry

Department number and description, parent merchandise area code and description, status. PF3 is the only action.

M109406AFreight exceptions by key

Primary key and description with import and non-import maximum freight % / $, minimum freight %, cost-change limits, and a NEXT KEY field for paging one record at a time.

MCICSMNU, Application selection menu
MCICSMNUApplication selection menu

Corp Table is option 3, CORPTABL, in the CICS application list.

M128100A, Corporate Table System, main menu
M128100ACorporate Table System, main menu

Seven two-letter selections typed into a single command field.

M128101A, Product hierarchy sub menu
M128101AProduct hierarchy sub menu

Thirteen selections and three functions, inquiry, maintain, list.

M128102A, Merchandise area information, inquiry
M128102AMerchandise area information, inquiry

Freight limits, tolerances and cost-change caps for one area.

M128103A, Merchandise area information, maintain
M128103AMerchandise area information, maintain

One record split across two stacked blocks to fit the 3270 screen.

M128104A, Department information, inquiry
M128104ADepartment information, inquiry

Department, parent merchandise area and status. PF3 is the only action.

M109406A, Freight exceptions by key
M109406AFreight exceptions by key

NEXT KEY pages one primary key at a time.

Function keys and their replacements

Legacy function keys and their modern equivalents
KeyLegacy behaviorModern equivalent
F1 / PF1Help, and Forward on the maintain gridContextual help link in the page header; pagination controls on tables
F2 / PF2Set 2, and Backward on the maintain gridColumn selector for the second set of fields; pagination controls
F3Exit the current screenBreadcrumb and a labeled Back to results action
F4SignoffAccount menu → Sign out
F5Home, and Freight Exceptions from merchandise area screensCorp Table home in global nav; a Freight exceptions action inside the record it belongs to
F6Switch applicationApplication switcher in the global header
F7 / F8Backward and forward through recordsPrevious and next paging with a visible result count
F9Retrieve the previous commandRecent searches on the find-a-record screen
F10PrintExport records sheet with column and permission summary
F11Return to application selectionMeijer application switcher
F12CancelCancel and Discard changes, with an unsaved-changes dialog
NEXT KEYTyped field to jump straight to another recordPersistent known-key search kept in the page header

03

Thirteen modules, one hierarchy

The product hierarchy sub menu holds thirteen selections. In the terminal each one is a two-letter code paired with a function letter. In the redesign each is a named module that states what it holds and what your role can do with it.

Merchandise Area

MA

Top-level areas with freight and cost-change limits

Inquiry · Maintain · ListM128102A / M128103A

Department

DP

Departments mapped to a merchandise area

Inquiry · Maintain · ListM128104A

Primary Key

PK

Primary keys and their freight exceptions

Inquiry · Maintain · ListM109406A

Store / Primary Key

SP

Store-level overrides on primary keys

Inquiry · Maintain · ListM128101A → SP

Sales Key

SK

Sales key reference values

Inquiry · Maintain · ListM128101A → SK

Store / Sales Key

SS

Store-level sales key overrides

Inquiry · Maintain · ListM128101A → SS

MPRS Category

MP

MPRS categorization values

Inquiry · ListM128101A → MP

Product Category

PC

Product categories under MPRS

Inquiry · ListM128101A → PC

Store

SR

Store reference records

Inquiry · ListM128101A → SR

Area / Dept / Key, list

MD

Cross-level list view

ListM128101A → MD

Key / MPRS / Category, list

PM

Cross-level list view

ListM128101A → PM

Key / Sales Key / Store, list

PS

Cross-level list view

ListM128101A → PS

Alternate Hierarchy

AH

L2 / key / product category

ListM128101A → AH

04

What was preserved, simplified and retired

The hardest part of this project was separating real business rules from terminal limitations. They look identical until you ask why the screen behaves that way.

PreservedMCICSMNU option 3 → M128100A → PH → M128101A

Legacy limitation: Three memorized hops before any work begins.

Modern approach: Product Hierarchy → module → mode, always visible in breadcrumbs.

Why: The hierarchy of choices is real. Only the memorization was removed.

PreservedENTER SELECTION + FUNCTION (I / M / L)

Legacy limitation: Mode is a typed letter; users can enter maintain by accident.

Modern approach: Inquiry, Maintain and List as a labeled mode selector on the module, with Maintain disabled and explained when the user lacks security.

Why: Modes are genuinely different tasks with different permissions.

Preserved** SECURITY IS REQUIRED FOR (M) MAINTAIN

Legacy limitation: A footnote; the failure only appears after the attempt.

Modern approach: Permission is shown on the module card and on the record, before the action is attempted.

Why: The rule is unchanged; only the moment it becomes visible moved earlier.

SimplifiedPF5 = FRT EXCEPTIONS from M128102A / M128103A

Legacy limitation: A hidden key jump; the originating record is not carried on screen.

Modern approach: Freight exceptions opens from the record it belongs to and keeps the primary key in context.

Why: Same destination, visible entry point, no lost context.

SimplifiedNEXT KEY field on M109406A

Legacy limitation: One record at a time, no result set, no idea how many exist.

Modern approach: Known-key search plus a semantic results table with an announced count.

Why: Experts still type a key and press Enter, they just also get context.

RetiredM128103A two stacked blocks of the same records

Legacy limitation: Fields split across blocks because of the 80-column limit.

Modern approach: One table with a column selector and horizontal scroll retained under sticky headers.

Why: The split existed only because of the terminal, not because of a business rule.

SimplifiedImmediate commit on Enter

Legacy limitation: No before-and-after view of what is about to change.

Modern approach: Review changes screen with field, previous value and new value, then Save.

Why: Business users asked for exact before-and-after values.

SimplifiedSystem-generated error lines at the bottom of the screen

Legacy limitation: Generic, terminal-oriented, sometimes clears the entry.

Modern approach: Error summary linked to each field, entered values preserved, plain-language recovery.

Why: Requires business confirmation for the full legacy message catalog.

RetiredF10 = PRINT

Legacy limitation: Printing a screen was the only way to take data away.

Modern approach: Export records sheet listing filters, record count, included columns and excluded restricted fields.

Why: Screen printing was a workaround for a missing export.

05

Before and after

Drag the handle to wipe between the original mainframe screen and the redesigned equivalent. The screens on the left are the real Corp Table terminal; the right side is the recreated interface built on the Meijer design tokens.

Corp Table/Enterprise Admin
randall.hayes@meijer.com

Corp Table

Corp Table manages enterprise product hierarchy, maintenance, allocations, and inventory configurations.

Recent updates

View audit log
AreaUpdated byTimestampChange summaryStatus
Merchandise AreaEvelyn HayesMar 03, 2025 09:42Updated freight % for MA: CCompleted
DepartmentTheodore VanceFeb 22, 2025 14:08Created department DPT 5520Completed
Mass UploadArabella MuellerJan 11, 2025 11:17store_keys_bulk.xlsx importFailed
MPRSKobe HarrellApr 04, 2025 08:55Reject reprocessing, batch 0042Pending
AllocationsZackary NixonSep 09, 2025 16:30Modified allocation rule for DPT 1240Completed
Merchandise AreaBrigitte JastOct 10, 2025 10:01Created Merchandise Area IPending
M128100A, Corporate Table System, main menu, original mainframe screen
Before · M128100AAfter

A typed two-letter selection becomes a searchable home with the modules on screen.

06

The challenge

How might we make product-hierarchy maintenance easier to understand without removing the speed, precision and business rules experienced users depend on?

Hierarchy levels

Merchandise Area → Department → Primary Key → Store / Primary Key, with Sales Key, Store / Sales Key, MPRS Category, Product Category and Alternate Hierarchy connected across levels.

Modes

Inquiry, Maintain and List for applicable modules, connected instead of presented as separate products.

Permissions

Inquiry, maintenance, administrator and view-only. Maintain is security-gated exactly as the mainframe stated.

Store overrides

Store-level values sit on top of hierarchy defaults, which is where most troubleshooting starts.

Freight exceptions

A primary-key workflow reached today by a hidden PF key.

History and export

Quick recent changes for triage, full audit table for investigation, export for downstream work.

07

How I learned the system

Mainframe review

Walked every supplied screen and recorded screen IDs, field names, PF-key actions and message lines.

Working sessions

UI and UX sessions with business stakeholders to confirm what each field means and which rules cannot move.

Mode clarification

Confirmed how Inquiry, Maintain and List actually differ, and that maintain is security-gated.

Table versus card

Discussed presentation directly with the business. Tables won because the work is comparison-heavy.

Open questions

The complete legacy validation-message catalog, and several derived freight rules, remain marked Requires business confirmation.

Handoff

Documented interaction, validation and permission behavior for engineering, and supported implementation questions.

What I heard, and what I did

  • Users often begin with a known primary key.

    Use a focused numeric lookup instead of forcing users through a large dropdown.

  • Recent changes are needed for rapid troubleshooting.

    Provide a quick history sheet with a path to the complete audit table.

  • Business users need exact before-and-after values.

    Show field-level comparisons in review and history.

  • Inquiry and maintenance permissions differ.

    Adapt available controls to the user's role instead of showing disabled buttons everywhere.

  • Experts had learned the mainframe's shortcuts and did not want them taken away.

    Keep Enter-to-search, keyboard paging and direct key entry; add labels rather than steps.

08

Design principles

Preserve expert speed

Type a key, press Enter, land on the record.

Make hierarchy relationships visible

Every record shows its parent and children as links.

Prevent errors before save

Validate inline, review before commit, detect duplicates.

Show permission and status clearly

Role and record status are visible before an action is attempted.

Keep changes traceable

Field-level history with previous and new values.

Scale through reusable patterns

One module pattern serves all thirteen.

09

The redesigned experience

The live Corp Table application shown at the top of this case study lets you navigate the hierarchy from the sidebar, open a module, search a known key, open a record, edit it, review the before-and-after values and save. Values are illustrative.

10

Anatomy of the data table

  • Sticky header with clear column labels and stable widths
  • Sort indicators with a text alternative, not arrows alone
  • Filter summary chips that can be removed individually
  • Right alignment for percentages and amounts
  • Status as a label plus icon, never color alone
  • Truncation only where the full value can still be read
  • Announced result count and rows-per-page control
  • Full keyboard navigation with a visible focus ring
  • Responsive column reduction with a column selector on tablet

11

Error and edge-case inventory

Required field missing

Error summary above the form, focus moved to it, each message links to its field.

Invalid identifier format

Explains the expected format with an example; entry is preserved.

Duplicate record

Names the existing record, links to it, keeps the form intact.

Invalid hierarchy relationship

Explains which parent the value conflicts with.

Inactive parent record

Blocks the save and offers the parent record for review.

Invalid effective date

States the permitted range in plain language.

Restricted action / permission failure

Explains the restriction and offers Request access.

Record changed by another user

"This record changed after you opened it." with Review latest version, Compare changes, Cancel my changes.

Save failure

Keeps entered values and offers Try again.

System unavailable / connection loss

Non-destructive banner; the form stays editable.

No results

Repeats the search terms and offers to widen to a contains match.

Export failure

Explains the failure and keeps the filter set.

Session timeout

Warns before expiry and returns the user to the same record after sign-in.

Loading and empty history

Skeleton rows for initial load; an explanatory empty state for records with no changes.

12

Permission model

Roles and what each can do
RoleCanCannot
Inquiry userSearch, view records, view relationships, view recent changes.Edit, add, inactivate, export restricted fields.
Maintenance userEverything inquiry can do, plus edit, add, review and save changes.Manage controlled reference lists.
AdministratorMaintain, manage controlled values, review full audit history, export.-
View-only userSearch, review, view permitted history and export permitted data.See enabled editing controls anywhere in the product.

13

Accessibility (WCAG 2.2 AA)

  • Semantic tables with captions, scope on headers and programmatic sort state
  • Error summary receives focus; each message links to its field
  • Save and export results announced through a live region without moving focus
  • Status communicated by label and icon as well as color
  • Visible focus that is never hidden behind sticky headers or side sheets
  • Skip to main content, logical tab order, no hover-only information
  • Reflow at 200% zoom, essential reflow at 400%, text wrapping preserved
  • Reduced Motion and Increased Contrast supported; transitions 150–220ms

14

What engineering received

  • Component behavior with default, hover, pressed, focus, selected, disabled, loading, error and read-only states
  • Field rules: type, length, required, controlled values, read-only system fields
  • Permission rules per module and per action
  • Validation order and message text for every inventoried error
  • Loading, empty and offline states for each surface
  • Audit requirements: which fields are recorded, and the previous/new value pairing
  • Responsive behavior at 1440, 1280, 1024, 768 and narrow widths
  • Accessibility annotations and acceptance criteria per screen

15

Outcomes

Confirmed

One consistent pattern now serves every hierarchy module instead of a screen per transaction.

Confirmed

Visible, labeled actions replaced hidden PF-key commands.

Confirmed

Review-before-save protects every maintenance change.

Confirmed

Role-based actions replaced a footnote about security.

Confirmed

Field-level audit visibility is available from both a quick sheet and a full table.

Confirmed

Reusable specifications and states were delivered to engineering.

Design intent

Fewer mis-keyed maintenance changes reaching production.

Design intent

Faster troubleshooting when a store value looks wrong.

Design intent

Shorter onboarding for users who never learned the transaction codes.

Honest limitations

  • The full legacy validation-message catalog was not supplied; those messages are marked Requires business confirmation.
  • No formal usability testing was run, so no task-time or error-rate metrics are claimed.
  • Values shown in the prototype are illustrative and contain no confidential Meijer data.

16

Reflection

What was most difficult

Separating rules from terminal limitations. A split screen and a business rule can look identical until you ask why.

The tradeoff that took the most judgment

How much of the typed, keyboard-first speed to keep. I kept Enter-to-search and direct key entry, and added labels rather than steps.

What expert users taught me

They were not fighting the mainframe. They were fast in it. The redesign had to earn its keep against people who were already efficient.

What I would test next

Time to correct a wrong store override, and whether the review step is read or skipped.

How it scales

Each new module is a configuration of the same shell, search, table, record, review and audit pattern.