System Test Management · Phase VI and VII

Flight Test Execution in Teamcenter

How post-flight execution data is captured inside Active Workspace using the standard Teamcenter pattern: data lives on the Mission, Flight Event and Test Point result objects, people enter it on those objects' own pages, and workflow moves the status.

Draft for team review2 Nov 2026Data model baseline: Teamcenter 2506, template xve5xceleratormbse (export 8.3.0.7)
In model property exists in the 2506 export New to add in BMIDE Verify confirm on the VM before building Conflict source documents disagree

Approach

The post-flight execution deck lays out a five-page wizard: Mission, then each Event, then Test Points, then parameters, then service data. We keep its content and drop its shape. Teamcenter users do not fill in forms that sit outside the objects. They open an object, use Edit, change fields on a tab, and Save. Tables of child data are edited inline. Status changes happen through workflow tasks, which also lock the record.

So each page of the deck becomes a tab or a table on the object that owns the data, and the wizard's Save Draft and Submit buttons become an Inbox task. The deck and the attributes spreadsheet remain the inventory of what must be captured.

Almost all of that inventory already has a home. The Catalyst template built execution on top of Verification Management: the Mission is a Verification Request, the Flight Event is a test run, and each Test Point in a Flight Event is a validation link that already carries the execution fields, including the votes.

Decisions taken

Repeat runs go in a run table

Teamcenter allows only one result link per Test Point per Flight Event (tested 2 Nov). So the link holds the Test Point's final result, and each execution is a row in a run table on the Flight Event. Test Points are never copied to record a repeat. Proposed; needs your OK.

Service data goes to SLM

Landings, engine time, power-on time and gear cycles are recorded against the serialized tail in SLM, where maintenance already reads them. They are not stored on the Flight Event.

Configuration first

Release 1 is pages, BMIDE rules, workflows and one server action. A guided entry panel is considered only if users find the results table slow after real use.

Object map

Inheritance read from the 2506 export. The Mission and the Flight Event both inherit Crt0VldnContractRevision, which is where the shared Flight Test fields xve5ExecutionState, xve5PlannedDate and crt0ValStartDate live.

flowchart LR
  M["Mission
XVE5Mission
(Verification Request)"] --> E1["Flight Event
XVE5FlightEvent
(Test Run)"] M --> E2["Flight Event ..."] M --> D["Execution Card Deck
XVE5MissCardDeck
xve5IsExecutionCard = true"] D --> C["Execution Test Card
XVE5TestCard
xve5ExecutedFlightEvent"] E1 --> R["Result row per run
Crt0ValidationLink"] R --> TP["Test Point
XVE5TestPoint"] TP --> REQ["Requirements
(verification rollup)"] E1 -.-> SLM["Serialized tail
SLM as-maintained"]

Execution flow

  1. Mission is approved.The Test Card Release workflow has released the cards; the Mission and its Flight Events reach xve5ExecutionState = Approved.
  2. Start Execution.The test conductor runs Start Execution on the Mission. The server builds the execution card decks and adds one result row per planned Test Point to each Flight Event. See Start Execution.
  3. Post-flight task arrives.The execution workflow puts a Record post-flight data task in the Inbox of the responsible flight test engineer, one per Flight Event. A Home tile, Missions to execute, runs a saved query for anyone who prefers to start from the Mission.
  4. Record the Flight Event.From the task, the engineer opens the Flight Event and fills in the Execution tab and the Test Point Results table, including any unplanned repeat runs and build-up parameters, then records service data in SLM.
  5. Submit.Completing the task validates the record, sets xve5LockExecutionProp, and moves the Flight Event to Executed. When every Flight Event is Executed, the Mission task opens for the Mission-level outcome and delays.
  6. Data assessment (vote 3).Each discipline engineer gets a task for the Test Points they own, reviews the data and records acceptability on the result row.
  7. Grade and roll up.Event and Mission grades are derived from the result rows. Accepted Test Point results roll up to requirement verification status.

Mission page: Execution tab

A new tab on XVE5MissionRevision, shown when xve5ExecutionState is Approved or later. Fields are read-only unless the Mission task is open and the lock flag is false.

LabelPropertyType / LOVEntryStatus
Header
Mission ID, Revision, Titleitem_id, item_revision, object_nameOOTBSystem / planningIn model
Execution statexve5ExecutionStateXVE5MissionStatusLOV (Draft, Planned, Scheduled, Approved, Executed)Workflow onlyIn model
Planned datexve5PlannedDateDatePlanning, read-only hereIn model
Executed datecrt0ValStartDateDateDefaults to earliest Flight Event takeoff; editableIn model
Test sitexve5TestSiteXVE5FTTestSiteLOVEditableIn model
Entered bylast_mod_user and the workflow performerOOTBSystemIn model
Outcome
Execution resultxve5ExecutionStatusXVE5FlightEventStatusLOV (Canceled, Aborted, Successful, Partially Successful, Non-Productive)Required at submit; see open question 1In model
Reasonxve5NonSuccExeReasonXVE5FTNonSuccExeReasonLOV (aircraft, resource, weather, personnel)Shown and required unless result is SuccessfulIn model
Delays (inline table)
Delay rowsxve5MissionDelayTbl, rows of XVE5MissDelayTable: xve5MissionDelayReason, xve5MissionDelayDay, xve5MissionDelayHour, xve5MissionDelayMinReason LOV XVE5FTMissionReasonLOVAdd / remove rowsIn model confirmed live
Total delayxve5TotalDelayRuntime, DD:HH:MMComputed from rowsNew
Events
Flight EventsFlight Events whose crt0ParentVldnContract is this MissionTable: Event ID, Name, Aircraft ID, Execution state, ResultClick a row to open the Flight EventIn model confirmed live; not a GRM relation
Qualificationsxve5AssignedProfiles, XVE5LinkToQualDefReferencesPlanning, read-only hereIn model

Flight Event page: Execution tab

A new tab on XVE5FlightEventRevision. Every field on page 2 of the deck and in the EVENT block of the spreadsheet exists in the model.

LabelPropertyType / LOVEntryStatus
Identification
Aircraft ID (tail)xve5AircraftIDXVE5TestArticleIDLOVPlanning, editable if the tail changedIn model
Event typexve5EventTypeXVE5FTEventTypeLOVPlanning, read-onlyIn model
Flight dateiav0TestRunDateDateDefaults from takeoff; editableIn model
Flight #, Sortie #, Test #xve5FlightNum, xve5SortieNum, xve5TestNumStringEditableIn model
OPS #xve5OPSNumInteger in the model, confirmed live; "Alphanumeric" in the deck and spreadsheetEditableConflict
Outcome
Execution resultxve5ExecutionStatusXVE5FlightEventStatusLOVRequired at submitIn model
Reasonxve5NonSuccExeReasonXVE5FTNonSuccExeReasonLOVConditional, as on the MissionIn model
Post flight codexve5PostFlightCodeXVE5FTPostFlightCodeLOVRequired at submitIn model
Delays (inline table)
Delay rowsxve5EventDelayTbl, rows of XVE5EventDelayTable: xve5EventDelayReason, xve5EventDelayDay, xve5EventDelayHour, xve5EventDelayMinsReason LOV XVE5FTEventDelayReasonLOVAdd / remove rowsIn model confirmed live
Total delayxve5TotalDelayRuntime, DD:HH:MMComputedNew
Times (stored in UTC, shown in the user's time zone)
Electrical power onxve5ElecPwrOnTimeDate and timeRequiredIn model
Engine startxve5EngineStartTimeDate and timeRequired for flightsIn model
Taxi startxve5TaxiStartTimeDate and timeRequired for flightsIn model
Takeoffxve5EventTakeOffTimeDate and timeRequired for flightsIn model
Landingxve5EventLandingTimeDate and timeRequired for flightsIn model
Engine offxve5EventEngineOffTimeDate and timeRequired for flightsIn model
Electrical power offxve5ElectricalPowerOffTimeDate and timeRequiredIn model
Flight durationxve5FlightDurationDouble, hours and tenthsDefaults to landing minus takeoff on save; editableIn model

"Required for flights" applies when the event type is a flight. A ground test or functional checkout needs only the power times.

Flight Event page: Test Point Results tab

Two tables on the Flight Event, both edited inline.

  • Test Point Results: the Verification Management results table, one row per Test Point (a Crt0ValidationLink). It holds the Test Point's final outcome for this Flight Event: vote 3, rejection reason, verification result and data files.
  • Test Point Runs: a new table property xve5TPRunTbl on the Flight Event, rows of a new table-row type XVE5TPRunTable (the same mechanism as the delay tables). One row per execution: Test Point, sequence #, run type, IADS ID, start and stop time, votes 1 and 2 with their reasons, and run status. Add Repeat Run adds a row for the selected Test Point with the next sequence number and run type Repeat. This replaces "Add a Copy" in the deck.

Start Execution creates one result row and one run row per planned Test Point. In the table below, the run-level columns (sequence through run status) move from the link to the run table; the link keeps the rest.

ColumnPropertyType / LOVEntered atStatus
Test Pointcrt0SourceObjectReference to Test Point revisionStart Execution / Add Repeat RunIn model
Test Cardxve5TestCardReference to execution Test CardStart ExecutionNew
Run sequence #xve5RunSeqIntegerSystem, editableNew
Run typexve5RunTypeNew LOV: Prescriptive Build-up, Inflight Build-up, Compliance, RepeatDefaults from the Test Point's xve5TestPointRunType; editableNew
IADS IDxve5IADSIDStringPost-flightIn model
Start / stop timexve5StartTime, xve5StopTimeString in the modelPost-flightVerify strings, not dates; decide format
Executed properly (vote 1)xve5ExecProperlyY / NPost-flightIn model
Reason, improper executionxve5ExecRiskReasonLOVRequired when vote 1 is NIn model labeled "Improper Execution Reason"
Behaved properly (vote 2)xve5BehaveAsExpectedY / NPost-flightIn model
Reason, improper behaviorxve5ProductRiskReasonLOVRequired when vote 2 is NIn model labeled "Improper Behaved Reason"
Run statusxve5ExecutionStatusExecuted, Not executed, AbortedPost-flightIn model
Data acceptable (vote 3)xve5RequestorVoteAccept / RejectAssessment task, read-only beforeIn model
Rejection reasonxve5RejectionReasonLOVRequired when vote 3 is RejectIn model
Verification resultcrt0ResultOOTB resultSet by assessment; feeds rollupIn model
Data filescrt0AttachmentsDatasetsQuick Look Report and data extractsIn model
Tested 2 Nov on Pre-Int 2506: one link per Test Point per Flight Event. Creating a Flight Event with the same Test Point listed twice produced one link; Verification Management drops the duplicate without an error. Adding a second link directly was refused, even as infodba: "relation was not created ... because it already exists" (code 35010). This is why runs live in their own table. The alternative is Catalyst's approach, where each repeat is a copy of the Test Point (xve5OrigTestPoint, xve5TPRun) with its own link. That multiplies Test Points and splits the requirement rollup, so the run table is recommended.
Found in the demo data. The one Flight Event on the 2506 tier (FE-0000005) has a single validation link, and it points to a Test Card (FTC-0000002), in the input group, with every vote field empty. So the existing demo links cards, not Test Points. One example cannot tell us what Catalyst intended, but the votes are per Test Point in the product summary, which is why this spec links Test Points. Start Execution can link both: the card for context and its Test Points as the result rows.

Build-up parameters

Page 4 of the deck lists a Test Point's parameters (altitude, KCAS, gear, configuration, G, pitch rate) with min, goal and max, editable for an in-flight build-up. In Teamcenter these are the Test Point's Parameter Management values, and the build-up values are overrides in the context of the run, not edits to the released Test Point.

Users reach them from the result row with Edit Run Parameters, which opens the Parameters table for that row. The released Test Point keeps its planned values.

Verify: whether 2506 Parameter Management can hold overridden values per validation link (per run), or only per Verification Request. If only per request, two build-up runs of one Test Point in one flight cannot hold different values, and the per-run child object from the risk note above is the fallback.

Service data

Page 5 of the deck records landings, engine time, electrical power-on time and gear cycles for the tail. These update the serialized aircraft in SLM, using SLM's own usage recording against the as-maintained structure for xve5AircraftID.

  • Engine time defaults to engine off minus engine start; editable.
  • Power-on time defaults to power off minus power on; editable.
  • Landings and gear cycles are entered.

The Flight Event gets a Record Usage command that opens the SLM entry for that tail with these defaults filled in.

Verify: the 2506 export has a Utilization business object, the likely target. Still to confirm: how SLM records usage against a serialized tail on 2506, and whether the tail's characteristic list matches the four on the slide.

Start Execution

One server-side action on an approved Mission. It is the only custom code in release 1. It must be safe to run twice: a second run fills gaps and never duplicates.

  1. Check.The Mission and every Flight Event are Approved; every assigned Test Card is released and not past xve5ExpDate. Otherwise stop and list what is wrong.
  2. Build execution decks.For each approved Mission Card Deck, create an execution copy with xve5IsExecutionCard = true and xve5ExecutedVR pointing to the Mission.
  3. Build execution cards.For each card assigned to a Flight Event, create an execution copy with xve5IsExecutionCard = true and xve5ExecutedFlightEvent pointing to that event.
  4. Create result rows.For each Test Point on those cards, add a result row to the Flight Event in card order: xve5RunSeq = 1, xve5RunType from the Test Point, xve5TestCard set.
  5. Start the workflow.Set the execution state and start the post-flight workflow for each Flight Event.

Workflows

WorkflowTargetTasksOn completionStatus
FT Post-Flight RecordFlight EventRecord post-flight data (flight test engineer), then Review (test conductor)Validate the rules; set xve5LockExecutionProp; set Executed; when all events are Executed, start the Mission taskNew
FT Mission Close-outMissionRecord Mission outcome and delaysLock; set the Mission to Executed; start assessmentNew
FT Data AssessmentResult rows, grouped by disciplineOne task per discipline engineer (xve5Discipline on the Test Point) to record vote 3Derive Event and Mission grades; set results for rollup; flag rejected Test Points as retest candidatesNew

The existing Test Request, Test Plan and Test Card Release workflows are unchanged.

Rules

Put these in BMIDE (conditions, property constants and a save-time check) and in the page layout's visibility conditions, so they hold for every way data gets in, including imports and the API.

  • Conditional reasons. Each reason field is visible and required only when its result field is not the success value.
  • Time order. Power on ≤ engine start ≤ taxi ≤ takeoff ≤ landing ≤ engine off ≤ power off. Missing times are allowed while drafting and blocked at submit.
  • Derived defaults. Flight duration, Executed date and Flight date are filled on save when empty and stay editable. They are stored values, not runtime properties, so later edits stick.
  • Lock. When xve5LockExecutionProp is true, execution fields are read-only for everyone except the DBA role.
  • Vote order. Vote 3 can only be set on a run whose status is Executed.
  • Grade derivation. Event: Successful if every executed run has vote 3 Accept, Partially Successful if some do, Non-Productive if none do. Mission: Successful if every Event is Successful, Partially Successful if at least one is, Non-Productive if none are. Canceled and Aborted are set by people, never derived.

Screen crosswalk

Where each part of the post-flight execution deck ends up.

DeckBecomes
Slide 1, start from a Mission or a Home tileStart Execution command on the Mission; Inbox task; "Missions to execute" tile
Page 1, Mission outcome, delays, events listMission Execution tab
Page 2, Event outcome, delays, flight IDs, timesFlight Event Execution tab
Page 3, Test Point execution grid, Add a CopyTest Point Results tab; Add Repeat Run
Page 4, build-up parameter tablesEdit Run Parameters on a result row
Page 5, service characteristicsRecord Usage, into SLM
Save DraftSave (the record stays editable until the task is completed)
Submit, mark Event CompleteComplete the workflow task
"Entered by"Last modifying user and the workflow audit

Open questions

  1. Outcome at post-flight versus grade after assessment. The deck asks for Successful, Partially Successful or Non-Productive at post-flight. The product summary defines those grades as the result of the data vote, which happens later. Proposal: at post-flight the engineer records only Flown, Aborted or Canceled, and the three grades are derived after assessment. This needs a decision before the LOV is fixed.
  2. OPS #. The model has an integer; the deck and spreadsheet say alphanumeric. Changing the type of an existing property is a migration, so confirm what values are really used.
  3. Run start and stop times. The model stores them as strings. Decide whether they are clock times, IADS times or offsets from takeoff.
  4. Without TcQualification. The product summary leaves open what replaces qualification checks if the customer does not license it. This affects the Start Execution check, not data entry.

Checks against the 2506 tier

Run read-only on 2 Nov 2026 against the Saber 2.0 / Pre-Int 2506 tier: type descriptions plus the properties and relations of the 4 Missions, 1 Flight Event and 4 Test Cards found there. Nothing was written.

CheckResultStatus
Delay table propertiesxve5MissionDelayTbl on the Mission, xve5EventDelayTbl on the Flight EventSettled
Mission to Flight Event linkcrt0ParentVldnContract on the Flight Event (FE-0000005 points to MISS-0000004). The Flight Event also carries runtime copies of the Mission's title and dates.Settled
Reason fields on the result rowxve5ExecRiskReason is "Improper Execution Reason", xve5ProductRiskReason is "Improper Behaved Reason", xve5RequestorVote is "Data Acceptable", xve5RejectionReason is "Non Acceptance Reason"Settled
Same Test Point twice in one Flight EventNot allowed. Tested as infodba: Verification Management collapses a repeated Test Point to one link, and a second link is refused with code 35010 ("already exists"). Probe objects left on the tier: MISS-0000008 and FE-0000007, both named "ZZ PROBE exec test 2026-11-02", owned by infodba, with one link from FE-0000007 to TPT-000019.Settled
Who can create MissionsThe cmartini account was refused write access on a new Mission revision (code 2010); infodba succeeded. Access Manager rules for Flight Test objects must be part of the deployment.Open
Parameter values per runVerification Management attaches parameters to a Verification Request (here, the Flight Event) per content element, with a direction and a "copy" option, so a Flight Event can hold its own copy of a Test Point's parameter values. Whether two runs of one Test Point in one Flight Event can hold different values is still untested.Open
Create path for Start ExecutionMissions and Flight Events should be created with createVerificationRequest (it takes the parent Mission and the content list in one call), not with generic create. Generic create failed on required fields and on an invalid tag.Settled
SLM usage recordingUtilization type present in the export; command and flow not checkedOpen