Wayfinder / Case study / Diagram galleries

Source-derived document; reported behaviour, inference and evidence gaps are identified in the text.

Return to: Component cooperation

Component cooperation

In this document

Which internal components cooperate, what are their responsibilities, and what passes between them?

This view isolates the named modules and form/persistence artifacts that cooperate around order entry. The strongest evidence is the legacy d4_orders.4gl flow: it selects or creates a customer, opens order_form, collects order-header and line-item data, looks up stock information, writes the order and items in a transaction, and generates an invoice E0007. Java evidence also reports a substantive D4_Orders implementation with customer selection, item insertion, rollback, commit, and invoice generation E0002.

Relationships are shown only where a call or data exchange is explicitly reported. Stock-management handlers and several report operations exist as menu-level components but are explicitly unimplemented E0002E0007. Database behavior is evidenced in source and configuration, but the supplied material does not establish which conflicting database configuration is active or fully prove framework transaction semantics E0002E0008.

Diagram

Source-derived diagram. Some relationships may be inferred and require review.

Preparing diagram…

View Mermaid diagram source
flowchart LR
  n02d8ae424813c36c3eea["D4_Orders"]
  n89db35edd2020643ad16["D4_Cust"]
  naeca3f5aed42ba874b5e["D4_Stock"]
  n09b08cefb1dcf0b23156["D4_Report"]
  n7d79f14aa21c71ac20e6["D4_Globals"]
  n1aa8f0e9117c2ad5c8f8["order_form"]
  n6f4efd45ccae31829893["stores7 database"]
  n02d8ae424813c36c3eea -->|"Select or create customer"| n89db35edd2020643ad16
  n02d8ae424813c36c3eea -->|"Open order-entry form"| n1aa8f0e9117c2ad5c8f8
  n02d8ae424813c36c3eea -->|"Persist order and items"| n6f4efd45ccae31829893
  n89db35edd2020643ad16 -->|"Persist customer records"| n6f4efd45ccae31829893
  n09b08cefb1dcf0b23156 -->|"Read reporting data"| n6f4efd45ccae31829893

Elements

D4_Orders

Kind: component
Basis: reported
Description: Implements order creation and customer-based order viewing. Its order-entry flow collects the order date, purchase-order number, shipping instructions, and line items; it performs item lookup, order insertion, item insertion, transaction commit or rollback, and invoice generation E0002E0007.
Evidence: E0002E0007

D4_Cust

Kind: component
Basis: reported
Description: Provides customer creation, query and browse, update, deletion, help, and state-selection behavior. The supplied Java assessment reports customer persistence through inserts, updates, and deletion checks, while the legacy source describes the corresponding customer functions E0002E0007.
Evidence: E0002E0007

D4_Stock

Kind: component
Basis: reported
Description: Provides the stock-management menu and handlers for adding, finding, updating, and deleting stock. Each reported handler displays an unimplemented-option error, so this component represents an incomplete stock-management surface rather than delivered stock CRUD E0002E0007.
Evidence: E0002E0007

D4_Report

Kind: component
Basis: reported
Description: Provides report-menu and report-generation functions. Mailing-label and accounts-receivable paths contain report logic, while backlog and stock-list paths are explicitly unimplemented E0002E0007.
Evidence: E0002E0007

D4_Globals

Kind: component
Basis: reported
Description: Initializes or reuses application-level shared state for a customer, an order, item arrays, stock arrays, state arrays, counts, and the report output option E0001E0002.
Evidence: E0001E0002

order_form

Kind: component
Basis: reported
Description: Order-entry form resource opened by the order flow. The documented/source flow uses it for order headers and a scrolling line-item array of up to ten items; related form artifacts expose customer, order, shipping, backlog, purchase-order, charge, and item-line fields E0006E0007.
Evidence: E0006E0007

stores7 database

Kind: component
Basis: reported
Description: Persistence target named by the application source and runtime configuration. Reported operations use customer, orders, items, stock, manufacturer, and state data, although the schema and active connection configuration are not fully established E0001E0007E0008.
Evidence: E0001E0007E0008

Relationships

Select or create customer

From: D4_Orders
To: D4_Cust
Relation: calls
Basis: reported
Description: During order creation, add_order() queries for a customer and, when none is selected, opens customer entry and invokes customer creation before continuing E0002E0007.
Trigger: Starting a new order E0002E0007
Information: Customer selection and resulting customer number E0007
Mechanism: query_customer(2), followed conditionally by customer-form entry and add_customer(FALSE) E0007
Evidence type: Source call flow E0007 Evidence: E0002 E0007

Open order-entry form

From: D4_Orders
To: order_form
Relation: calls
Basis: reported
Description: The orders function opens and displays the order form before presenting order commands, and the add-order path collects order-header and line-item input through that form E0007.
Trigger: Entering the Orders module or starting order entry E0007
Information: Order date, purchase-order number, shipping instructions, stock number, manufacturer code, and quantity E0007
Mechanism: Form opening followed by field and array input E0007
Evidence type: Source form invocation and input flow E0007 Evidence: E0007

Persist order and items

From: D4_Orders
To: stores7 database
Relation: exchanges
Basis: reported
Description: Order creation begins a transaction, inserts the order, retrieves the generated order number, inserts item rows, and commits only after both stages succeed; failure causes rollback and an error return E0002E0007.
Trigger: Completion of valid order-header and line-item entry E0007
Guard: Item lookup and quantity validation must succeed; commit occurs only when order and item insertion succeed E0007
Information: Order header, generated order number, item stock/manufacturer values, quantities, and totals E0007
Mechanism: Transactional insert, generated serial retrieval, item insertion, commit, or rollback E0002E0007
Control: The completeness of rollback and status propagation depends on framework behavior that is not supplied E0002
Evidence type: SQL and transaction source flow E0007 Evidence: E0002 E0007

Persist customer records

From: D4_Cust
To: stores7 database
Relation: exchanges
Basis: reported
Description: Customer operations are reported to insert customer rows, query and browse customer rows, update a selected customer, and delete only after order-related checks and confirmation E0002E0007.
Trigger: Customer creation, search, update, or deletion E0002E0007
Guard: Deletion is blocked when matching orders exist in the reported source; the source message calls these active orders, but the Java assessment notes that the query counts all orders rather than demonstrably active ones E0002.
Information: Customer number, names, company, address, city, state, ZIP code, and phone E0002E0007
Mechanism: Customer-table insert, selection, update, and delete operations E0002E0007
Control: Confirmation and order-related deletion checks are reported; the precise active-order semantics remain unresolved E0002E0007
Evidence type: Customer source and SQL-operation findings E0002E0007 Evidence: E0002 E0007

Read reporting data

From: D4_Report
To: stores7 database
Relation: exchanges
Basis: reported
Description: Mailing-label reporting queries customer data ordered by ZIP code, while accounts-receivable reporting joins customer, order, and item data and selects orders whose paid date is null E0007.
Trigger: Selecting mailing labels or accounts receivable E0007
Information: Customer identity and address fields for labels; customer, order, item, payment, and total information for accounts receivable E0007
Mechanism: Customer selection query and accounts-receivable cursor/query E0007
Control: Backlog and stock-list report functions do not perform equivalent exchanges because they are explicitly unimplemented E0002E0007
Evidence type: Report query and output source E0007 Evidence: E0007 E0002

Gaps

The supplied evidence does not establish a separate stock component call from D4_Orders; stock lookup functions are reported within the order flow, while D4_Stock handlers are stubs. A relationship between those two components would therefore be unsupported E0002E0007.

The evidence identifies shared global state but does not show a specific call or exchange edge between D4_Globals and the other components. Its lifecycle, persistence, thread safety, and cross-session behavior remain unknown E0002.

The database schema is absent, and two active-looking configurations specify different hosts, ports, server names, URLs, and credentials. Configuration precedence and deployment context are unresolved E0001E0008.

The order transaction flow is present in source, but the supplied framework implementations do not prove that every failure path sets status correctly or that rollback covers every relevant exception E0002. The intended relationship between the interactive 10% order-total multiplier and separate 6.5% tax and 3.5% shipping calculations is also unresolved E0002E0008.

The supplied material contains conflicting capability descriptions: interfaces and menus expose order update/delete and backlog/stock reporting, while the implementation and help evidence explicitly mark those functions unimplemented E0002E0003E0007.

Recovery limitations

  • Some identified concepts have no supported connection.

Sources

  • E0001 — SHA256 26c6795c3bc4cc1018c05a3a14a9e8bfd1a7ac99525d062262c695930de1f2d0
  • E0002 — SHA256 94dd964106462ec595f965ac2acdca80c48d31234c90d9f93ef18c5d0f26cf01
  • E0003 — SHA256 d6724e53cd2df11bbcdc4c2e6b8487fa7ffa2317a121b3ebae2594a6130343e0
  • E0006 — SHA256 caaf28b181903beefb938762690d58ef2027cc70e645ab30a05ee9158cf684c0
  • E0007 — SHA256 ce6dd2b00b79f008ecb98935db9ed709c044218bcdd4143008d56d06a04cff97
  • E0008 — SHA256 1713f4e3d42ac5e2af28387ac6ff649f06bbe1683b11869af71326929d6a5f32