Flow#
Flow.Show
Overview#
A Flow represents a pre-defined route or path for Material.
A Flow consists of a combination of Flow Items, which can be of type Step or Flow. Therefore, a Flow may contain exclusively Steps, Flows, or a mixture of both Flows and Steps.
graph TD;
A[Flow]
A --> D(Step 1)--> E(Step 2)--> F(Step 3)--> G(Step 4)
A --> H(Flow 1)--> I(Flow 2)--> J(Flow 3)--> K(Flow 4)
A --> L(Flow 1)--> M(Step 1)--> N(Step 2)--> O(Flow 2)
classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300;
class A mermaid_businessdata
class H,I,J,K,L,O mermaid_entity
class D,E,F,G,M,N mermaid_entitylinked A Flow can be shared by multiple Materials at any given time. A Material is always in a Flow. Since Flows can be nested, the Flow of the Material always refers to the TopMost Flow.
Because Steps and Flows can be repeated in a given Flow, the unique position of the Flow Item in the Flow is determined by a Flow Path. A Flow Path includes a sequence in the form of Flow:RevisionName:CorrelationId/Flow:RevisionName:CorrelationId/.../Step:CorrelationId. The CorrelationId allows changes to be made to a Flow - when creating a new version - and still preserve compatibility with previous Flow versions. For a particular Flow version, the CorrelationId also maps to a Position (or sequence), that defines the position of the Flow Item in a particular Flow. When setting a new Flow version effective, the system will check that no Material stays in an invalid Flow Path using the CorrelationIds. This allows the reorganization and addition of new Flow Items, as well as the removal of Flow Items that have no Materials.
Info
Materials always store internally the Flow Path with references to CorrelationIds. In some places in the GUI, a user friendly Flow Path using the Positions instead of CorrelationIds is displayed.
The reusability potential of Flows and Steps is reflected in the use of Logical Names and Logical Flow Paths:
-
A Logical Name is an optional qualified name for a Flow or Step within a specific Flow version that designates the Intended Usage of the Flow Item.
-
A Logical Flow Path is a simple sequence of all the Logical Names of the Flow Item.
This means you do not need to duplicate Flow Items, and you can reuse them but with different contexts/intents. For example, in situations where you repeat a sequence of Steps but some parameters are different (Durables, Recipe, BOM, and other).
The Logical Name feature gives you the freedom to specify the usage, purpose or intent of your Step, and it is assigned when you create the Flow. You can use the same Flow Items with different Logical Names across various Flows, except for Alternate Flows or Non-Sequential Blocks.
Note
Logical Names are predefined and managed at the Flow and Step level. For more information, see How to: Manage Step Logical Names.
A Flow can be marked as Alternate. When a Flow is alternate, it means that only one of the Flow Items is taken by the Material in that Flow. At runtime, the specific path to be taken must be specified.
A Step within a Flow can be marked as Optional. This indicates that the Step can be performed or not. During runtime there must be the indication as to whether the Material moves to the optional Step or not.
A Flow can be a Non-Sequential Block. A Non-Sequential Block consists of a set of Steps that can be performed in any order. A Non-Sequential Block must contain at least one non-optional Flow Item.
The following restrictions apply to Flows:
- A Flow cannot be empty - it must have at least one Flow Item.
- A Flow cannot include any Child Flows that are a Revision of the same Flow (including itself).
- When a Flow has Steps and is not a Non-Sequential Block, the last Step cannot be an optional Step.
- A Flow which is Alternate cannot have Optional Flow Items.
- A Flow which is a Non-Sequential Block cannot be Alternate.
- A Flow which is a Non-Sequential Block cannot have duplicated Steps.
While a Flow can span across multiple Facilities through the Areas associated with its Steps, it is important to note that during runtime, if a Step belongs to a different Facility, it will not be possible to perform a Material Move-Next. The only way to transfer Material between Facilities is through a Ship Material transaction.
A Flow can be enabled or disabled. A disabled Flow prevents any Material form being assigned to that Flow - be it from Material creation, Material flow change, or any other operation. In case the Material already exists in a disabled Flow, it can continue to be processed normally.
A Flow with Steps can have Rework Information configured for each Step. Rework Information is assigned to each Step individually. A Step can have multiple Reworking Paths. A Rework Path includes a Go To Flow Path and a Return Flow Path to a Step anchored to the TopMost Flow. Optionally, you can specify a Rework Reason for the Step,indicating that the Rework Path serves as the default for that specific Rework Reason.
Warning
A Flow that is used as a rework Flow may only contain Steps. Rework Flows composed of other Flows may not be used for rework.
Global and Versioned Data#
A Flow, being a change controlled object, contains global data and versioned data components as shown in the following image:
graph TD
subgraph Flow
Main1["Global Data<br>(Without Change Control)"] --- A1[IsEnabled]
Main2["Versioned Data<br>(With Change Control)"] --- A2[IsAlternate<br>SubFlows or Steps<br>Rework Paths<br>All other]
end
classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300;
class Main1,Main2 mermaid_entity
class A1,A2 mermaid_entitylinked A Flow is also an optional element in several context resolution tables:
- BOMContext
- MaterialChecklistContext
- MaterialDataCollectionContext
- MaterialDocumentContext
- MaterialDurablesContext
- MaterialPrintableDocumentContext
- ServiceContext
- StepChartContext
- MaterialDurablesContext
- RecipeContext
- RecipeParameterOverrideContext
- StepInspectionPlanContext
- StepLineFlowContext
- StepProductYieldAndCycleTimeContext
- StepSamplingPatternContext
- StepSplitTrackOutContext
- TimeConstraintsContext
Tying Everything Together#
graph LR
A1[Notification] -.- Main[Flow]
A2[Product] -.- Main
A3[Schedule Scenario Job] --- Main
A4[Protocol Instance] -.- Main
Main --- A5[Material]
Main -.- A6[Data Collection Instance]
Main -.- N1[Flow Logical Name]
Main === L1[Flow Item]
L1 === L2[Child Flow]
L1 === L3[Step]
L3 --- L4[Rework Path]
L4 --- A7[Reason]
Main -.- C1[Context Smart Tables]
classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
class Main mermaid_entity
class A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12 mermaid_businessdata
class L1,L2,L3,L4,L5,L6 mermaid_entitylinked
class C1,C2,C3,C4,C5,C6 mermaid_context
class N1,N2,N3,N4,N5,N6 mermaid_nonbusinessdata
click Main "../../business-data/flow"
click A1 "../../business-data/notification"
click A2 "../../business-data/product"
click A4 "../../business-data/protocol/protocol-instance"
click A5 "../../business-data/material"
click A6 "../../business-data/data-collection/data-collection-instance"
click A7 "../../business-data/reason"
click L2 "../../business-data/flow"
click L3 "../../business-data/step" Sequence Of Steps#
The necessary steps for correctly using a Flow are the following:
- Create the necessary Flow Items, either Steps or Child Flows, for the Flow.
- Create a Flow - note that it is necessary to associate the Flow Version to a Change Set.
- Approve the Change Set, which contains the Flow Version that has been created.
Info
For convenience, the Flow can be configured to use implicit Change Sets. Please refer to the Change Set section for more information.
Info
For more information, see the Creating a Flow Model tutorial.
Available Pages#
Dive into the pages below to explore more about Flow: