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 models the documented application components involved in customer management and adjacent order, stock, reporting, navigation, and persistence responsibilities. The main menu routes users to Customer, Orders, Stock, and Reports modules E0001. The strongest implementation evidence supports customer creation, search, update, deletion, order creation and lookup, mailing-label reporting, and accounts-receivable reporting E0002. Order update/delete, stock maintenance, backlog reporting, and stock-list reporting are menu-level or documented options but are explicitly unimplemented in the retained source E0002E0007.

Relationships represent only documented calls or data exchanges. They describe published source evidence, not live runtime verification; framework behavior, database schema, report lifecycle, and some shared-state semantics remain unconfirmed E0002.

Diagram

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

Preparing diagram…

View Mermaid diagram source
flowchart LR
  n6d8b138957e733b047ad["D4_Main"]
  n6b2fa7edee39260657b3["D4_Cust"]
  n5baadc371c855c20e8dd["D4_Orders"]
  nb5864bb545e4be837307["D4_Stock"]
  n0a1cee70c0bf7e9f86a6["D4_Report"]
  nced86c88b09b1b9b5acd["D4_Globals"]
  n83a8d10f2ae31eba8e97["stores7 database"]
  n6d8b138957e733b047ad -->|"Main menu opens customer management"| n6b2fa7edee39260657b3
  n6d8b138957e733b047ad -->|"Main menu opens order entry"| n5baadc371c855c20e8dd
  n6d8b138957e733b047ad -->|"Main menu opens stock management"| nb5864bb545e4be837307
  n6d8b138957e733b047ad -->|"Main menu opens reporting"| n0a1cee70c0bf7e9f86a6
  n6b2fa7edee39260657b3 -->|"Customer persistence exchange"| n83a8d10f2ae31eba8e97
  n5baadc371c855c20e8dd -->|"Order creation selects or creates customers"| n6b2fa7edee39260657b3
  n5baadc371c855c20e8dd -->|"Order persistence exchange"| n83a8d10f2ae31eba8e97
  n0a1cee70c0bf7e9f86a6 -->|"Report data exchange"| n83a8d10f2ae31eba8e97
  nced86c88b09b1b9b5acd -.->|"Shared state exchange (inferred)"| n5baadc371c855c20e8dd
  nced86c88b09b1b9b5acd -->|"Shared print option exchange"| n0a1cee70c0bf7e9f86a6

Elements

D4_Main

Kind: component
Basis: reported
Description: Main application module that starts the application, selects the stores7 database alias, and presents commands for Customer, Orders, Stock, Reports, and Exit E0001E0002.
Evidence: E0001, E0002, E0007

D4_Cust

Kind: component
Basis: reported
Description: Customer-management component implementing customer entry, query and browse, update, deletion, validation, state selection, and database persistence E0001E0002E0007.
Evidence: E0001, E0002, E0007

D4_Orders

Kind: component
Basis: reported
Description: Order component implementing customer selection or creation, order-header entry, line-item collection, order insertion, customer-based order lookup, transaction handling, and invoice generation E0001E0002E0007. Order update and deletion handlers are explicitly unimplemented E0002E0007.
Evidence: E0001, E0002, E0007

D4_Stock

Kind: component
Basis: reported
Description: Stock-management component providing menu handlers for adding, finding, updating, and deleting stock, but each retained implementation reports that the operation is not implemented E0001E0002E0007.
Evidence: E0001, E0002, E0007

D4_Report

Kind: component
Basis: reported
Description: Reporting component implementing mailing-label and accounts-receivable reports with file, printer, and screen destinations E0002E0007. Backlog and stock-list report handlers are explicit stubs E0002E0007.
Evidence: E0001, E0002, E0007

D4_Globals

Kind: component
Basis: reported
Description: Shared-state component that initializes or retrieves application-level customer, order, item, stock, state, count, and print-option values through the application global-state map E0001E0002E0007. Persistence, lifecycle, and thread-safety behavior are not established E0002.
Evidence: E0001, E0002, E0007

stores7 database

Kind: component
Basis: reported
Description: Database dependency used for customer, order, item, stock, state, and report queries or persistence; the application selects it through the stores7 database alias E0001E0002E0007. The supplied evidence does not expose the complete schema E0001E0002.
Evidence: E0001, E0002, E0007

Relationships

From: D4_Main
To: D4_Cust
Relation: calls
Basis: reported
Description: The main menu provides a Customer command that invokes the customer module E0001E0002E0007.
Evidence: E0001, E0002, E0007
Trigger: User selects Customer from the main menu E0001E0007.
Mechanism: Main-menu command dispatch E0001E0007.
Evidence type: Source and published help text E0001E0007

Main menu opens order entry

From: D4_Main
To: D4_Orders
Relation: calls
Basis: reported
Description: The main menu provides an Orders command that invokes the orders module E0001E0002E0007.
Evidence: E0001, E0002, E0007
Trigger: User selects Orders from the main menu E0001E0007.
Mechanism: Main-menu command dispatch E0001E0007.
Evidence type: Source and published help text E0001E0007

From: D4_Main
To: D4_Stock
Relation: calls
Basis: reported
Description: The main menu provides a Stock command that invokes the stock module E0001E0002E0007.
Evidence: E0001, E0002, E0007
Trigger: User selects Stock from the main menu E0001E0007.
Mechanism: Main-menu command dispatch E0001E0007.
Evidence type: Source and published help text E0001E0007

From: D4_Main
To: D4_Report
Relation: calls
Basis: reported
Description: The main menu provides a Reports command that invokes the reporting module E0001E0002E0007.
Evidence: E0001, E0002, E0007
Trigger: User selects Reports from the main menu E0001E0007.
Mechanism: Main-menu command dispatch E0001E0007.
Evidence type: Source and published help text E0001E0007

Customer persistence exchange

From: D4_Cust
To: stores7 database
Relation: exchanges
Basis: reported
Description: Customer creation inserts into the customer table, query and browse reads customer rows, updates modify a selected customer row, and deletion checks related orders before removing a customer E0002E0007.
Evidence: E0001, E0002, E0007
Information: Customer identity, contact fields, query criteria, and related-order counts E0002E0007.
Mechanism: SQL queries and database record operations E0001E0002.
Control: Deletion requires confirmation and is prevented when matching orders exist; whether “active orders” means all orders or only open orders is unresolved E0002E0007.
Evidence type: Source code and original 4GL evidence E0002E0007

Order creation selects or creates customers

From: D4_Orders
To: D4_Cust
Relation: calls
Basis: reported
Description: Order creation queries for a customer and opens customer creation when no customer is selected E0002E0007.
Evidence: E0002, E0007
Trigger: User starts order entry and customer lookup returns no selected customer E0007.
Guard: Order creation returns if no customer number remains selected after the customer-creation path E0007.
Information: Customer query criteria and selected customer number E0002E0007.
Mechanism: Customer query followed by customer-form creation E0002E0007.
Evidence type: Source code and original 4GL evidence E0002E0007

Order persistence exchange

From: D4_Orders
To: stores7 database
Relation: exchanges
Basis: reported
Description: Order creation inserts an order, obtains its generated number, inserts item rows, and commits only after both insertion stages succeed; failures cause a rollback attempt E0002E0007. Order lookup reads orders and associated items for a selected customer E0007.
Evidence: E0001, E0002, E0007
Information: Order header, customer number, line items, quantities, prices, and generated order number E0002E0007.
Mechanism: Database transaction, order and item inserts, and customer-based order queries E0002E0007.
Control: Commit follows successful order and item insertion; failure paths attempt rollback E0002E0007. The completeness of framework-level transaction handling is not established E0002.
Evidence type: Source code and published help text E0002E0007

Report data exchange

From: D4_Report
To: stores7 database
Relation: exchanges
Basis: reported
Description: Mailing-label reporting queries selected customer rows ordered by ZIP code, while accounts-receivable reporting joins customers, orders, and items and selects orders whose paid date is null E0002E0007.
Evidence: E0002, E0007
Information: Customer address data, unpaid order data, item data, totals, and report criteria E0002E0007.
Mechanism: Query-by-example construction and SQL cursor or prepared-query processing E0002E0007.
Control: Report destination is selected as file, printer, or screen through print_option E0002E0007. SQL-construction safety is unresolved because the Construct implementation is absent E0002.
Evidence type: Source code and original 4GL evidence E0002E0007

Shared state exchange

From: D4_Globals
To: D4_Orders
Relation: exchanges
Basis: inferred
Description: The shared global-state component provides customer, order, item, stock, and related values that the order flow uses during customer selection, stock selection, line-item entry, and order display E0001E0002E0007. This is an inference from global declarations and usage, not proof of lifecycle or cross-session behavior E0002.
Evidence: E0001, E0002, E0007
Information: Shared customer, order, item, stock, and count values E0001E0002E0007.
Mechanism: Application-level global map and shared record or array values E0001E0002.
Evidence type: Source-derived inference E0001E0002

Shared print option exchange

From: D4_Globals
To: D4_Report
Relation: exchanges
Basis: reported
Description: The global state includes print_option, and report output uses file, printer, or screen values to select its destination E0002E0007.
Evidence: E0002, E0007
Information: Print destination option values f, p, and s E0002E0007.
Mechanism: Shared application state read by report handlers E0002.
Control: The report-options menu changes the destination option; no broader persistence is established E0007.
Evidence type: Source code and original 4GL evidence E0002E0007

Gaps

The supplied evidence does not establish the complete database schema or the exact semantics of customer “active orders”; the deletion query reportedly counts all orders for a customer while the user-facing message refers to active orders E0002. The framework implementations for database helpers, error handling, report output, shared application state, and query construction are absent, so transaction completeness, SQL safety, report lifecycle, and global-state behavior remain unresolved E0002.

Stock data is preloaded and selectable during order entry, but the evidence does not support a stock CRUD exchange because all stock operations are explicit stubs E0002E0007. Likewise, order update/delete and backlog or stock-list reporting should not be modeled as successful calls or state changes E0002E0007.

The evidence reports inconsistent database configurations in separate artifacts and does not establish which configuration takes precedence E0008. Form dependencies such as orderform, state_list, and stock_sel cannot be verified from the supplied material, and help text diverges from executable source in several form and field names E0008. Further source and configuration evidence is required before treating those dependencies or documented workflows as authoritative.

Recovery limitations

  • Ownership, mechanism or boundary controls remain explicitly unverified.
  • The view includes explicitly marked inference.

Sources

  • E0001 — SHA256 26c6795c3bc4cc1018c05a3a14a9e8bfd1a7ac99525d062262c695930de1f2d0
  • E0002 — SHA256 94dd964106462ec595f965ac2acdca80c48d31234c90d9f93ef18c5d0f26cf01
  • E0007 — SHA256 ce6dd2b00b79f008ecb98935db9ed709c044218bcdd4143008d56d06a04cff97
  • E0008 — SHA256 1713f4e3d42ac5e2af28387ac6ff649f06bbe1683b11869af71326929d6a5f32