Source-derived document; reported behaviour, inference and evidence gaps are identified in the text.
Return to: Actor journeys
Actor journeys
In this document
Who is trying to achieve what, and which actions and handoffs lead to the outcome?
This view separates startup, order entry, and command execution journeys. The published evidence shows that the application loads state and stock reference data before presenting its main menu, and that order entry has explicit commit and rollback branches. E0012 The view treats command execution as an invocation outcome rather than proof that a command completed successfully, because the scope of Application.execute() is not supplied. E0012 Customer validation, customer selection, and several surrounding steps remain unresolved because no D4_Cust.java implementation is included. E0012 These are document-derived journeys, not live runtime observations. E0012
Diagram
Preparing diagram…
View Mermaid diagram source
flowchart TD
nbf6155aecfb6cd6f54d9["Application startup"]
n6d84efb6ae5b029afd5d["Interactive user (inferred)"]
n0e8a31ca8cf0eb0db650["Load bounded reference data"]
n6edc4a991d48bbffb6e2["Present main menu"]
nf8f1d6d1ccd8fe131a39["Reference data available"]
n5fdaecd81f8d5ad22674["Request order entry (inferred)"]
ncf6b30224b0b81ecad99["Begin order transaction"]
ne654449b5ffb85494d54["Insert order header"]
na5c150655c10be05e1c7["Insert order items"]
n5c919bc9b85aafea39a6["Commit order transaction"]
na40e7c8012f67394c33f["Rollback order transaction"]
n463cee194e8f21d918db["Committed order (inferred)"]
n66ec2d5867f492d63ca5["Rolled-back order transaction (inferred)"]
n350e53090f763fc1d73a["Enter command"]
nc9d6ffeae86a364812a3["Invoke application execution"]
nd9e39cc3e2f46e56549e["Command execution invoked"]
nbf6155aecfb6cd6f54d9 -->|"Startup loads references"| n0e8a31ca8cf0eb0db650
n0e8a31ca8cf0eb0db650 -->|"Loading precedes menu"| n6edc4a991d48bbffb6e2
n0e8a31ca8cf0eb0db650 -.->|"Loading achieves availability (inferred)"| nf8f1d6d1ccd8fe131a39
n6d84efb6ae5b029afd5d -.->|"User requests order entry (inferred)"| n5fdaecd81f8d5ad22674
n5fdaecd81f8d5ad22674 -.->|"Request begins transaction (inferred)"| ncf6b30224b0b81ecad99
ncf6b30224b0b81ecad99 -->|"Transaction inserts header"| ne654449b5ffb85494d54
ne654449b5ffb85494d54 -->|"Header precedes items"| na5c150655c10be05e1c7
na5c150655c10be05e1c7 -->|"Items permit commit"| n5c919bc9b85aafea39a6
n5c919bc9b85aafea39a6 -.->|"Commit achieves order (inferred)"| n463cee194e8f21d918db
ne654449b5ffb85494d54 -->|"Header failure rolls back"| na40e7c8012f67394c33f
na5c150655c10be05e1c7 -->|"Item failure rolls back"| na40e7c8012f67394c33f
na40e7c8012f67394c33f -.->|"Rollback achieves failed outcome (inferred)"| n66ec2d5867f492d63ca5
n6d84efb6ae5b029afd5d -->|"User enters command"| n350e53090f763fc1d73a
n350e53090f763fc1d73a -->|"Command enters execution"| nc9d6ffeae86a364812a3
nc9d6ffeae86a364812a3 -->|"Invocation produces request outcome"| nd9e39cc3e2f46e56549e
Elements
Application startup
Kind: actor
Basis: reported
Description: The Java demo is launched through com.ais.demo.D4_Main, and startup loads reference data before entering the main menu. E0014 E0012
Evidence: E0014 E0012
Goal: Initialize bounded reference data and present the application menu.
Interactive user
Kind: actor
Basis: inferred
Description: An interactive user supplies order-entry input and can enter a command through the application’s command path. The exact user workflow and authorization model are not established. E0012
Evidence: E0012
Goal: Enter an order or request command execution.
Load bounded reference data
Kind: action
Basis: reported
Description: Startup calls get_states() and get_stocks() to populate in-memory state and stock arrays before the main menu. The retained capacities are 50 states and 30 stock rows; records beyond those limits are not retained. E0012
Evidence: E0012
Owner: D4_Main
Present main menu
Kind: action
Basis: reported
Description: After reference-data loading, D4_Main enters the main menu. E0012
Evidence: E0012
Owner: D4_Main
Reference data available
Kind: outcome
Basis: reported
Description: The startup loading actions retain bounded state and stock reference data for subsequent application use. E0012
Evidence: E0012
Request order entry
Kind: action
Basis: inferred
Description: The user requests the order-entry flow represented by D4_Orders.add_order(). The evidence does not establish every preceding menu selection or input-validation step. E0012
Evidence: E0012
Owner: Interactive user
Begin order transaction
Kind: action
Basis: reported
Description: D4_Orders.add_order() begins a database transaction before inserting the order header and items. E0012
Evidence: E0012
Owner: D4_Orders.add_order()
Insert order header
Kind: action
Basis: reported
Description: The order-entry flow inserts the order header and checks the resulting error status. E0012
Evidence: E0012
Owner: D4_Orders.add_order()
Insert order items
Kind: action
Basis: reported
Description: The order-entry flow calls insert_items() after the order header insertion. E0012
Evidence: E0012
Owner: D4_Orders.add_order()
Commit order transaction
Kind: action
Basis: reported
Description: The transaction is committed only after the order-header operation and item insertion succeed. E0012
Evidence: E0012
Owner: D4_Orders.add_order()
Rollback order transaction
Kind: action
Basis: reported
Description: Explicit rollback is present when the order-header update reports a negative error status or when insert_items() returns false. E0012
Evidence: E0012
Owner: D4_Orders.add_order()
Committed order
Kind: outcome
Basis: inferred
Description: A committed order is the conditional result of reaching the commit action after successful header and item processing. The evidence does not independently confirm the persisted database result. E0012
Evidence: E0012
Rolled-back order transaction
Kind: outcome
Basis: inferred
Description: The explicit failure branches lead to a rollback action rather than the commit action. E0012
Evidence: E0012
Enter command
Kind: action
Basis: reported
Description: D4_Main.bang() reads a command into cmd from interactive user input. E0012
Evidence: E0012
Owner: Interactive user
Invoke application execution
Kind: action
Basis: reported
Description: The entered command is passed to _app.execute(true, Str.valueOf(cmd)). The source shows no allowlist, validation, or sanitization. E0012
Evidence: E0012
Owner: D4_Main.bang()
Command execution invoked
Kind: outcome
Basis: reported
Description: The application execution method is invoked with the user-supplied command. This outcome does not establish what the execution method does or whether the command succeeds. E0012
Evidence: E0012
Relationships
Startup loads references
From: Application startup
To: Load bounded reference data
Relation: starts
Basis: reported
Description: D4_Main calls get_states() and get_stocks() during startup. E0012
Evidence: E0012
Loading precedes menu
From: Load bounded reference data
To: Present main menu
Relation: next
Basis: reported
Description: The reference-data calls occur before D4_Main enters the main menu. E0012
Evidence: E0012
Loading achieves availability
From: Load bounded reference data
To: Reference data available
Relation: achieves
Basis: inferred
Description: The loading methods populate the bounded in-memory state and stock arrays used after startup. E0012
Evidence: E0012
User requests order entry
From: Interactive user
To: Request order entry
Relation: starts
Basis: inferred
Description: The order-entry action is attributed to an interactive user, but the exact menu-selection and validation sequence is not supplied. E0012
Evidence: E0012
Request begins transaction
From: Request order entry
To: Begin order transaction
Relation: next
Basis: inferred
Description: The available implementation evidence places transaction start inside D4_Orders.add_order(), after the unresolved preceding user-input steps. E0012
Evidence: E0012
Transaction inserts header
From: Begin order transaction
To: Insert order header
Relation: next
Basis: reported
Description: add_order() begins a transaction and then inserts the order header. E0012
Evidence: E0012
Header precedes items
From: Insert order header
To: Insert order items
Relation: next
Basis: reported
Description: Item insertion follows the order-header operation in the visible order-entry flow. E0012
Evidence: E0012
Items permit commit
From: Insert order items
To: Commit order transaction
Relation: next
Basis: reported
Description: Commit occurs only after item insertion succeeds. E0012
Guard: insert_items() returns true and the order-header status is not negative. E0012
Evidence: E0012
Commit achieves order
From: Commit order transaction
To: Committed order
Relation: achieves
Basis: inferred
Description: The commit action is the documented successful endpoint of the visible order-entry transaction path. Persistence semantics beyond that call are not shown. E0012
Evidence: E0012
Header failure rolls back
From: Insert order header
To: Rollback order transaction
Relation: next
Basis: reported
Description: An explicitly negative order-header error status causes rollback. E0012
Guard: Order-header update reports a negative error status. E0012
Evidence: E0012
Item failure rolls back
From: Insert order items
To: Rollback order transaction
Relation: next
Basis: reported
Description: A false result from insert_items() causes rollback. E0012
Guard: insert_items() returns false. E0012
Evidence: E0012
Rollback achieves failed outcome
From: Rollback order transaction
To: Rolled-back order transaction
Relation: achieves
Basis: inferred
Description: The explicit failure branches invoke rollback instead of commit. E0012
Evidence: E0012
User enters command
From: Interactive user
To: Enter command
Relation: starts
Basis: reported
Description: bang() reads a command interactively from the user. E0012
Evidence: E0012
Command enters execution
From: Enter command
To: Invoke application execution
Relation: next
Basis: reported
Description: The value read into cmd is passed to _app.execute(...). E0012
Evidence: E0012
Invocation produces request outcome
From: Invoke application execution
To: Command execution invoked
Relation: achieves
Basis: reported
Description: The execution call is reached with the user-supplied command. The exact execution scope and success behavior remain unknown. E0012
Evidence: E0012
Gaps
The evidence does not establish the complete order-entry journey before add_order(): customer validation, customer selection, and customer maintenance depend on a missing D4_Cust.java implementation. E0012 Ownership of those missing steps is therefore unknown. E0012
The broad exception handler in add_order() does not visibly call rollback, so rollback after an exception outside the explicit failure branches is unresolved. E0012 The meaning of status zero during reference-data capacity handling is also unresolved, including whether it represents success or a suppressed overflow condition. E0012
The command path proves that user input reaches Application.execute(), but not the exact commands executed, authorization controls, validation, sanitization, or execution success. E0012 The model therefore intentionally stops at invocation.
The supplied evidence identifies report, database, framework, and shared-state behavior, but those dependencies are not converted into journey steps without supported actor actions or handoffs. E0012 No live runtime verification is available, and the source qualification warns that semantic completeness and correctness are not established. E0012
Recovery limitations
- The view includes explicitly marked inference.
Sources
- E0012 — SHA256
b17ef2d84bcd51af76724530e686489917c4271029456ef08648f9aa518bfa2b - E0014 — SHA256
e5d61550897f3f357225936593a023fb98f078b01e2cd2c44f20a866fb0a3fef
Harten documentation of the Informix 4GL and Java source repository, from the retained 17 October 2026 export. The exact upstream revision analysed is not established. Source findings do not establish runtime behaviour or equivalence between the implementations.
Evidence identifiers are retained for traceability. The underlying analysis records are not included in this public edition; credential values are redacted. About this case study.