Source-derived document; reported behaviour, inference and evidence gaps are identified in the text.
Return to: Lifecycle states
Lifecycle states
In this document
Which states can a business object enter, and what triggers or guards each change?
This view models the Customer record as a small, evidence-supported lifecycle: record presence, selection, and absence after deletion. The states are semantic interpretations of source behavior rather than declared enum labels; the supplied evidence does not define an explicit customer-state enumeration. E0007 The source documents and implements customer insertion, lookup/selection, update, and deletion paths, but generated Java and legacy 4GL artifacts are not proven to be semantically identical or live runtime behavior. E0007 E0010
No initial or terminal state is inferred. Customer updates are not shown as transitions because they modify an already existing record and do not establish a distinct resulting lifecycle state. E0007
Diagram
Preparing diagram…
View Mermaid diagram source
stateDiagram-v2
state "Customer record present #40;inferred#41;" as n64ee104c34159b16f2dc
state "Customer record selected #40;inferred#41;" as nc9314e60a784792cb2d3
state "Customer record absent #40;inferred#41;" as n1033acd67e94faa2f314
n1033acd67e94faa2f314 --> n64ee104c34159b16f2dc: Customer input completes normally and the add operation executes. / Input is not interrupted or aborted.
n64ee104c34159b16f2dc --> nc9314e60a784792cb2d3: Find-customer lookup selects a matching customer record. / A matching customer record is found and selected.
nc9314e60a784792cb2d3 --> n1033acd67e94faa2f314: The user confirms customer deletion. / A customer is selected and has no matching orders.
Elements
Customer record present
Kind: state
Basis: inferred
Description: A customer record is present after a completed customer insertion; the source inserts customer fields into the customer table and obtains the generated customer number. E0007
Evidence: E0007
Customer record selected
Kind: state
Basis: inferred
Description: A present customer can become the current selected customer through customer lookup and browse selection; update and delete operations require a selected customer. E0007
Evidence: E0007
Customer record absent
Kind: state
Basis: inferred
Description: This represents the record condition after a confirmed customer deletion; the source deletes the customer only after confirmation, although the supplied evidence also reports misleading success feedback when deletion is declined in another customer-management path. E0007 E0010
Evidence: E0007, E0010
Relationships
Add customer
From: Customer record absent
To: Customer record present
Relation: transition
Basis: reported
Description: The customer-add path accepts customer fields and, when input completes normally, inserts the customer record and assigns the generated customer number. E0007
Trigger: Customer input completes normally and the add operation executes. E0007
Guard: Input is not interrupted or aborted. E0007
Evidence: E0007
Select customer
From: Customer record present
To: Customer record selected
Relation: transition
Basis: reported
Description: Customer lookup constructs selection criteria, queries customer records ordered by last name, and allows a matching record to be selected for subsequent operations. E0007
Trigger: Find-customer lookup selects a matching customer record. E0007
Guard: A matching customer record is found and selected. E0007
Evidence: E0007
Delete customer
From: Customer record selected
To: Customer record absent
Relation: transition
Basis: reported
Description: The delete path requires a selected customer, blocks deletion when matching orders exist, asks for confirmation, and deletes the record only when the response is y or Y. E0007
Trigger: The user confirms customer deletion. E0007
Guard: A customer is selected and has no matching orders. E0007
Evidence: E0007
Gaps
The supplied evidence does not provide explicit named customer lifecycle states or a formal state machine; the state names above are therefore inferred from record existence and selection behavior. E0007 No transition is modeled for customer update because the evidence shows field modification of an existing record, not a distinct resulting state. E0007
The evidence contains different customer-management artifacts, including legacy 4GL and generated Java. Their one-to-one semantic equivalence is unresolved, so the transitions should not be treated as proof that every artifact implements the same lifecycle. E0010 Runtime execution, database constraints, and transaction outcomes are not independently verified. E0004 E0010
The deletion evidence has an unresolved behavioral inconsistency: the source conditionally performs the delete, but a reported path can still clear the form and display “Record deleted” after a negative response. E0010 Further follow-up should identify the authoritative runtime implementation and verify deletion behavior for customers with and without active orders.
Recovery limitations
- The view includes explicitly marked inference.
Sources
- E0004 — SHA256
a7fa93a436c487d708267db6e5038c7415b98377a56232869519d6206a15e7e9 - E0007 — SHA256
ce6dd2b00b79f008ecb98935db9ed709c044218bcdd4143008d56d06a04cff97 - E0010 — SHA256
bd29371182d16de63a7651533fa5c84e151a01ea9bf23399f7f6ca0397ab0250
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.