Continuous Flows#
Estimated time to read: 17 minutes
Overview#
The Continuous Flow feature improves handling of scenarios where parts of a lot (Material) gradually move to the next step while the rest of the lot finishes the previous process step.
It enables partial chunks of the lot to be processed in parallel across different steps, while preserving a single lot grouping:
- Step execution activities like Checklists and Data Collections apply to the lot as a whole (not to each partial material individually).
- All partial Materials must be merged back at the end of the Continuous Flow block.
Topics#
- Concept
- Partial Track-Out
- Context Resolution
- Auto Re-Evaluation of Material Ranks
- Materials Final Merge
- Auto Partial Merge
- Scenario
- Configuration
- Configuration Entries
- Generic Tables
- Lookup Tables
- Checklists and Data Collections
- Executing a Continuous Flow
Concept#
The logic introduces a Material Rank:
- Head: First/leading material chunk.
- Middle: All other chunks in between.
- Tail: Last/trailing material chunk.
Rank is automatically assigned on Partial Track-Out and recalculated when merging back.
Checklists and Data Collections can be conditioned by Rank, so that, for example, a Checklist can be triggered only for the Head material and a Data Collection can be filled only when the final Tail material passes through the step.
A step can be configured as a Merge Step, causing all partial Materials to be automatically merged together once they reach the Step.
Partial Track-Out#
- During Track-Out, set the primary quantity below the main Material’s primary quantity to split a chunk.
- The first split tracked out becomes Head; the remaining InProcess main material becomes Tail. Additional splits become Middle.
- If the flow contains a Step with attribute MedDevIsPartialMatMergeStep = true, a Future Action is created/updated on Partial Track-Out to automatically merge at the merge Step.
- Additional partial Track-Outs in subsequent steps split the then-current Head into a new Head and Middle.
Context Resolution#
- In Steps following a Partial Track-Out, Checklists/Data Collections appear only for the configured rank(s) as defined in the context tables.
Auto Re-Evaluation of Material Ranks#
This functionality will enable MES to automatically re-evaluate Material ranks, to ensure continuity in the flow when Materials overtake others during the process.
It will guarantee that, even when the relative positions of the Materials change, the first Material in the Flow will always be the "Head", the last will always be the "Tail" and everyone in between will be "Middle".
Note
This is a core function of the Feature and thus it is recommended to always have it enabled. Otherwise, MES will assume that the rank update will be performed manually.
Materials Final Merge#
- If a final merge Step is predefined:
- Partial Materials are blocked at the merge Step waiting for the Merge Future Action to be applied.
- Once all partial Materials arrive, the system automatically merges and releases the Material.
- If no automatic merge is configured, users must manually merge partial Materials.
- When recording full loss on a material, the system attempts to merge with the next material in the flow; if the merge Future Action performs the merge, AutoReEvaluationOfMaterialRanks does not execute.
- When the full loss is recorded while the material is in active rework, Continuous Flows first resolves the rework case:
- Non-main rework materials are terminated without updating the main flow.
- Main rework materials complete the remaining rework path, return to the main flow, and then continue with the standard auto-movement and merge logic.
- This applies to
Record Loss/BonusandTrack-Out.
Auto Partial Merge#
Supports automatically merging partial materials when they share the same conditions, reducing proliferation of partials in short cycle-time environments. The source and target materials must share the same:
- System State (Queued/In Process/Processed)
- Production Order
- Manufacturer Lot Number
- Resource (applies only to In Process)
- Resource Lane (if it exists, applies only to In Process)
Save In-Process Material Rank for Rework Returns#
When a Material is Tracked-In with a certain rank, the user may require it to maintain the same rank throughout the entire process, ensuring that it performs Checklists or Data Collections which are configured for Track-Out/Move-Next in the context of that rank, to guarantee continuity.
This functionality enables MES to keep track of the Material's rank when it was Tracked-In, even if the rank is afterwards updated due to a Material returning from rework, by saving it in the Material's attribute MedDevInProcessMaterialRank, and use this attribute as the primary driver for context resolution.
In this example, the Material was Tracked-In with rank "Tail", and may already have executed some Checklist or Data Collection configured in the context of this rank. While the Material was In-Process, a Material returned from Rework to a step behind its position, being awarded the "Tail" and causing this Material's rank to be updated to "Middle".
With this functionality enabled, the original "Tail" rank is saved in the Material, and it will be used to resolve the tables when Track-Out and Move-Next are performed.
Assumptions#
To use the Continuous Flow logic, the process should follow these assumptions:
- The material quantity should represent a bulk of non-serialized units. If sub-materials are used, a Line-Flow based approach might be more adequate.
- The Partial Track-Out feature is used to Split the chunks of materials for the next Step.
- The processing of different material chunks will be executed in sequence, e.g. a Tail will not surpass its Head.
Scenario#
Enabling Continuous Flows#
This Feature can either be enabled globally in MES, or only for specific contexts.
A) Global Configuration#
To enable this feature globally across MES, the following actions need to be taken:
-
Configurations
- Enable Feature globally through
/MedDev/ContinuousFlows/EnableGlobalContinuousFlows.
These optional configurations can also be enabled, to apply these functionalities globally:
- Enable Auto-Merging through
/MedDev/ContinuousFlows/EnableGlobalMergeFutureActionOnStepFeature - Enable Auto Re-Evaluation of Material Ranks through
/MedDev/ContinuousFlows/EnableGlobalAutoReEvaluationOfMaterialRanks - Enable Keep In-Process Rank on Rework Material Return through
/MedDev/ContinuousFlows/EnableGlobalKeepInProcessRankOnReworkMaterialReturn
- Enable Feature globally through
Note
Useful documentation on how to Manage Configuration Entries ⧉
B) Context-Specific Configuration#
Instead of enabling the Continuous Flow feature globally, it is possible to enable it and its optional functionalities for specific contexts (e.g., per Flow, Product, or Production Order) using the MedDevContinuousFlowFeaturesConfig smart table:
- Navigate to the
MedDevContinuousFlowFeaturesConfigsmart table. - Add a new row, filling in the key columns that define the context (one or more of: Flow, LogicalFlowPath, Product, ProductGroup, ProductionOrder).
- Set the desired value column(s) to
true:ContinuousFlowsEnabled,AutoReEvaluationOfMaterialRanksEnabled,MergeFutureActionOnStepEnabled,KeepInProcessRankOnReworkMaterialReturnEnabled.
Note
The global configuration entries need to be disabled for context-specific overrides to take effect. If a global entry is enabled, the smart table is ignored for that setting. The override logic is applied only for enabling scenarios like the one described above, not disabling ones (e.g., configuration entry is enabled, but the smart table has it set to false for a specific context).
Rank names#
The default values for the Rank Names are Head, Middle, Tail and InRework. If required, these names can be changed by:
-
Configurations
- Set Material Rank Names:
/MedDev/ContinuousFlows/HeadRankName/MedDev/ContinuousFlows/MiddleRankName/MedDev/ContinuousFlows/TailRankName/MedDev/ContinuousFlows/InReworkRankName
- Set Material Rank Names:
-
Update Lookup Table 'MedDevMaterialRank' with new names, so that the MedDev Smart Tables are prepared to use them.
Generic Tables#
- Update Generic Table
ContextResolutionwith both MedDev Smart Tables to ensure the resolution includes the MaterialMedDevMaterialRank: - MaterialChecklistResolution:
MedDevMaterialChecklistContext -
MaterialDataCollectionResolution:
MedDevMaterialDataCollectionContext
Warning
This will override the existing MaterialChecklistContext and MaterialDataCollectionContext tables - all data from the original context tables should be copied to the new MedDev equivalent tables before switching the ContextResolution settings.
Configuration#
To assess how this industry and production requirement is addressed, consider a simplified model:
Basic entities like Step, Resource, Flow, Product, and Material can be configured as detailed below:
- Steps:
- Catheter Production Order Starts
- Assemble
- Clean
- After Clean
- Dry
- After Dry
- Catheter Packing
- Shipping
- Final Packing
- Shipping Customer
- Flow - Flow Catheter
- Product - Foley V Catheter
- Material - Lot Foley V Catheter#01 (this Material represents a lot with 500 units)
Note
This is the Master Data file used to create this model.
Continuous flow should be applied to steps Clean → After Clean → Dry → After Dry → Catheter Packing:
- Enable Partial Track-Out by setting the Use Split and Track-Out flag in step Clean

- Configure additional Split/Track-Out options in the
StepSplitTrackOutContextSmart Table - To auto-merge at the end of the flow block, set the
MedDevIsPartialMatMergeStepattribute on the designated merge step Catheter Packing - If no such Step is found, the system assumes Materials will be merged manually
-
To automatically perform merge action on this step, set the
MedDevIsPartialMatMergeStepattribute -
Additionally, if the cycle time is short, consider enabling the Auto Partial Merge, by setting the
MedDevAllowAutoPartialMergeattribute for any steps throughout the process where several Materials of the same group may accumulate.
Checklists and Data Collections#
For all remaining configurations, follow these steps:
-
Assign both Parameters to the Data Collection created above:

-
Fill in the Smart Table
MedDevMaterialDataCollectionContextwith the Data Collection created above
-
Fill in the Smart Table
MedDevMaterialChecklistContextwith the Checklist created above
Executing a Continuous Flow#
This section explores the Continuous Flows operations. To test and execute this functionality, follow the use case outlined in a step-by-step scenario.
Note
This example does not contain any Rework flows configured. If a Material is sent to Rework while in a Continuous Flow, MES will handle the rank update automatically according to the specific scenario. A detailed explanation of this logic can be found in the User Guide.
-
In the Step
Clean, perform a Material Track In of the MaterialLot Foley V Catheter#01 -
Perform a partial track-out and move next on Material
Lot Foley V Catheter#01-
A new material Material
Lot Foley V Catheter#01.01is created with: -
Quantity: 100
- Rank:
Head - Manufacturing Lot Number:
Lot Foley V Catheter#01
- Main Material
Lot Foley V Catheter#01is updated with: - Future action created for future merge
- Rank:
Tail - Manufacturing Lot Number:
Lot Foley V Catheter#01 - Current Head:
Lot Foley V Catheter#01.01 - Current Tail:
Lot Foley V Catheter#01
-
-
Dispatch and track-in Material
Lot Foley V Catheter#01.01to StepAfter Clean -
Perform a partial track-out and move next on Material
Lot Foley V Catheter#01-
A new material Material
Lot Foley V Catheter#01.02is created with: -
Quantity: 50
- Rank:
Middle - Manufacturing Lot Number:
Lot Foley V Catheter#01
-
-
Dispatch and track-in Material
Lot Foley V Catheter#01.02to StepAfter Clean -
Track-out Material
Lot Foley V Catheter#01.02from StepAfter Cleaninto StepDry- Material
Lot Foley V Catheter#01.01is updated with: - Rank:
Middle
- Material
Lot Foley V Catheter#01.02is update with: - Rank:
Head
- Material
Lot Foley V Catheter#01is update with: - Current Head:
Lot Foley V Catheter#01.02
- Material
-
Record a full loss on Material
Lot Foley V Catheter#01.02with optionTerminate Material on zero quantities and no Sub-Materialsset toTRUE- System doesn't allow the operation since
Headmaterial cannot be terminated
- Repeat action to record a full loss on Material
Lot Foley V Catheter#01.02but this time with optionTerminate Material on zero quantities and no Sub-Materialsset toFALSE
- System allows full loss record on Material
Lot Foley V Catheter#01.02and material Quantity is updated to0
- System doesn't allow the operation since
-
Track-out and Move Next Material
Lot Foley V Catheter#01.01from StepAfter Cleaninto StepDry- Material
Lot Foley V Catheter#01.01is update with: - Rank:
Head
- Material
Lot Foley V Catheter#01.02is terminated
- Material
-
Perform next flow steps for Material
Lot Foley V Catheter#01.01until material reaches StepCatheter Packing- When track-out operation is performed at Step
Dry: - No Checklist is triggered for material with rank
HeadorMiddle -
Data Collection is performed for Material
Lot Foley V Catheter#01.01(Head)*Refer to configuration in Smart Tables MedDevMaterialDataCollectionContext and MedDevMaterialChecklistContext*
-
When Material
Lot Foley V Catheter#01.01reaches stateQueuedin StepCatheter Packing: -
Material
Lot Foley V Catheter#01.01is set on hold for Future Action
- When track-out operation is performed at Step
-
Perform a partial track-out and move next on Material
Lot Foley V Catheter#01- A new material Material
Lot Foley V Catheter#01.03is created with: - Quantity: 150
- Rank:
Middle - Manufacturing Lot Number:
Lot Foley V Catheter#01
- A new material Material
-
Perform next flow steps for Material
Lot Foley V Catheter#01.03until material reaches StepCatheter Packing- When track-out operation is performed at Step
Dry: - No Checklist is triggered for material with rank
HeadorMiddle -
No Data Collection is triggered for material with rank
MiddleorTail*Refer to configuration in Smart Table MedDevMaterialDataCollectionContext*
-
When Material
Lot Foley V Catheter#01.03reaches stateQueuedin StepCatheter Packing: - Material
Lot Foley V Catheter#01.03is set to on hold for Future Action
- When track-out operation is performed at Step
-
Update Step
Dryto perform Auto Partial Merge- Set Attribute
MedDevAllowAutoPartialMergetoTRUE
- Set Attribute
-
Perform a partial track-out and move next on Material
Lot Foley V Catheter#01- A new material Material
Lot Foley V Catheter#01.04is created with: - Quantity: 25
- Rank:
Middle - Manufacturing Lot Number:
Lot Foley V Catheter#01
- A new material Material
-
Perform next flow steps for Material
Lot Foley V Catheter#01.04until material reaches StepDry -
Perform a partial track-out and move next on Material
Lot Foley V Catheter#01- A new material Material
Lot Foley V Catheter#01.05is created with: - Quantity: 25
- Rank:
Middle - Manufacturing Lot Number:
Lot Foley V Catheter#01
- A new material Material
-
Perform next flow steps for Material
Lot Foley V Catheter#01.05until material reaches StepDry -
Perform next flow steps for Material
Lot Foley V Catheter#01until material reaches StepDry -
Track-out and Move Next Material
Lot Foley V Catheter#01from StepDry- Checklist is performed for Material
Lot Foley V Catheter#01(Tail)
*Refer to configuration in Smart Table MedDevMaterialChecklistContext*
- Checklist is performed for Material
-
Perform next flow steps for Material
Lot Foley V Catheter#01until material reaches StepCatheter Packing-
Materials
Lot Foley V Catheter#01.01andLot Foley V Catheter#01.03are merged into MaterialLot Foley V Catheter#01 -
Material
Lot Foley V Catheter#01.01is terminated - Material
Lot Foley V Catheter#01.03is terminated -
Material
Lot Foley V Catheter#01is updated- Quantity is updated after merge operation
- Manufacturer Lot Number is reset
- Attributes are reset
-
Info
For more information on Continuous Flows, as well as a guide on how it handles Rework scenarios, see Continuous Flows in the User Guide.














































