














Create a sub process flow within a process flow to simplify repetitive logic.
Transcript
00:03
In FlexSim, a sub process flow, or sub flow, is a specific segment of a process that can be reused at multiple points within the process.
00:14
This eliminates the need to recreate repetitive logic.
00:20
Using a sub flow allows for modular process flow designs and enhances the flexibility, efficiency, and scalability of your simulation model.
00:31
In this example, a previously created model shows items moving from conveyors into a warehousing system.
00:40
The ProcessFlow is set up to control the flow and loading of items through the ASRS system to the racks.
00:47
Here, you can see that each ASRS process is set up individually, making for a complicated design that uses repetitive logic.
00:58
While this setup works, you can simplify it by using a sub flow, resulting in a more manageable and efficient design.
01:07
First, Stop the simulation.
01:10
In the SouthSide of the model, begin by grouping the ASRS decision points.
01:17
Right-click a decision point and select Object Groups > Add to a New Group.
01:24
In the Group Properties dialog, enter a name for the Group, such as “SouthDP”.
01:31
Then, use the Sampler to add the rest of the decision points to the group—here, DP1 through DP10.
01:41
Close the Group Properties.
01:43
Select one of the decision points in the model.
01:47
In Properties, under Triggers, click Add, and select On Arrival.
01:55
Then, click Add and select Data > Set Label.
02:03
In the Set Label dialog, change the Label to “ASRS” and the Value to “1”.
02:09
Repeat these steps for the remaining decision points, increasing the Value by one.
02:16
For example, the second decision point will have a Value of 2, the third a Value of 3, and so on.
02:25
The trigger is now set up to add a corresponding label to each item when it arrives at the decision point.
02:32
Next, in the SouthSide ProcessFlow,
02:36
move the ASRS activities down to make space, and then copy and paste one of the repetitive process flows to use as a starting point.
02:46
Open the Source Quick Properties and then click the Object Sampler.
02:52
In the Model, select one of the decision points, then select Group: SouthDP > On Arrival.
03:02
This sets the Source up for the group instead of an individual decision point.
03:07
Back in the Source Quick Properties, under Label Assignment, add a Label Name of “pallet”, and for the Operation, select assign.
03:20
Open the Quick Library and add an Assign Labels activity to the Source.
03:26
In the Assign Labels Quick Properties, set the Name to “ASRS”, and the Value to “token.pallet.ASRS”
03:35
to apply a label to each token that corresponds to its pallet.
03:39
Next, open the Pull from ASRS_1 list Quick Properties, and change the setup from an individual list to a uniform list.
03:49
Click the List Reference Sampler and select a blank spot in the ProcessFlow.
03:55
In Quick Properties, rename the list to “Pull from South ASRS List”.
04:02
Then, in the Toolbox, select ASRS_1, then right-click and select Duplicate.
04:13
Rename the list to “South ASRS List”, then click OK.
04:19
Back in the ProcessFlow, in the List Quick Properties, expand the List drop-down-and select Global List > South ASRS List.
04:33
Next, create a sub flow for the process that finds and assigns slots, and then loads and unloads each item.
04:41
Select this part of the process and move it to the side.
04:46
Open the Quick Library and add a Run Sub Flow, placing it below the Acquire activity.
04:54
Disconnect the Pull from South ASRS List activity from its current activity block, and then add it below Assign Labels.
05:03
When you add a Run Sub Flow activity, you must link it to a sub flow.
05:09
Click the exclamation mark icon next to Run Sub Flow to select the Sampler.
05:15
Click in the ProcessFlow to create a Start activity, then make it the first activity in your sub flow.
05:24
In this example, some of the connections and the adjacent flow are deleted to make room for the sub flow.
05:32
Next, the Decide is separated from its block and the sub flow activities are moved up.
05:39
Then, in the Quick Library, a Finish Sub Flow is selected and placed as the last activity in the sub flow.
05:48
The Decide and connector are removed, and the Move Object block is added below Run Sub Flow.
05:57
The List is moved up closer to the rest of the newly created flow.
06:02
In List Quick Properties, the List is renamed to “South ASRS List”.
06:09
Then, the remaining individual ASRS process flows are deleted, and the Process Flow container is resized to fit the new sub flow.
06:20
In the Run Sub Flow Quick Properties, the Quantity is set to “token.pallet.subnodes.length.”
06:28
In the Acquire Quick Properties, the Query is adjusted to “WHERE ASRSvehicle = puller.ASRS”.
06:38
When the model is Reset and Run, you can see that it accomplishes the same outcome as the previous model.
06:46
However, the ProcessFlow logic has been significantly simplified by adding decision points to a group,
06:53
and by adding labels for the process flow and sub flow to recognize.
06:59
In this example, you can further simplify the design by performing the same steps on the North Side Operations.
07:08
With both processes using sub flows, the overall ProcessFlow design is far more efficient.
00:03
In FlexSim, a sub process flow, or sub flow, is a specific segment of a process that can be reused at multiple points within the process.
00:14
This eliminates the need to recreate repetitive logic.
00:20
Using a sub flow allows for modular process flow designs and enhances the flexibility, efficiency, and scalability of your simulation model.
00:31
In this example, a previously created model shows items moving from conveyors into a warehousing system.
00:40
The ProcessFlow is set up to control the flow and loading of items through the ASRS system to the racks.
00:47
Here, you can see that each ASRS process is set up individually, making for a complicated design that uses repetitive logic.
00:58
While this setup works, you can simplify it by using a sub flow, resulting in a more manageable and efficient design.
01:07
First, Stop the simulation.
01:10
In the SouthSide of the model, begin by grouping the ASRS decision points.
01:17
Right-click a decision point and select Object Groups > Add to a New Group.
01:24
In the Group Properties dialog, enter a name for the Group, such as “SouthDP”.
01:31
Then, use the Sampler to add the rest of the decision points to the group—here, DP1 through DP10.
01:41
Close the Group Properties.
01:43
Select one of the decision points in the model.
01:47
In Properties, under Triggers, click Add, and select On Arrival.
01:55
Then, click Add and select Data > Set Label.
02:03
In the Set Label dialog, change the Label to “ASRS” and the Value to “1”.
02:09
Repeat these steps for the remaining decision points, increasing the Value by one.
02:16
For example, the second decision point will have a Value of 2, the third a Value of 3, and so on.
02:25
The trigger is now set up to add a corresponding label to each item when it arrives at the decision point.
02:32
Next, in the SouthSide ProcessFlow,
02:36
move the ASRS activities down to make space, and then copy and paste one of the repetitive process flows to use as a starting point.
02:46
Open the Source Quick Properties and then click the Object Sampler.
02:52
In the Model, select one of the decision points, then select Group: SouthDP > On Arrival.
03:02
This sets the Source up for the group instead of an individual decision point.
03:07
Back in the Source Quick Properties, under Label Assignment, add a Label Name of “pallet”, and for the Operation, select assign.
03:20
Open the Quick Library and add an Assign Labels activity to the Source.
03:26
In the Assign Labels Quick Properties, set the Name to “ASRS”, and the Value to “token.pallet.ASRS”
03:35
to apply a label to each token that corresponds to its pallet.
03:39
Next, open the Pull from ASRS_1 list Quick Properties, and change the setup from an individual list to a uniform list.
03:49
Click the List Reference Sampler and select a blank spot in the ProcessFlow.
03:55
In Quick Properties, rename the list to “Pull from South ASRS List”.
04:02
Then, in the Toolbox, select ASRS_1, then right-click and select Duplicate.
04:13
Rename the list to “South ASRS List”, then click OK.
04:19
Back in the ProcessFlow, in the List Quick Properties, expand the List drop-down-and select Global List > South ASRS List.
04:33
Next, create a sub flow for the process that finds and assigns slots, and then loads and unloads each item.
04:41
Select this part of the process and move it to the side.
04:46
Open the Quick Library and add a Run Sub Flow, placing it below the Acquire activity.
04:54
Disconnect the Pull from South ASRS List activity from its current activity block, and then add it below Assign Labels.
05:03
When you add a Run Sub Flow activity, you must link it to a sub flow.
05:09
Click the exclamation mark icon next to Run Sub Flow to select the Sampler.
05:15
Click in the ProcessFlow to create a Start activity, then make it the first activity in your sub flow.
05:24
In this example, some of the connections and the adjacent flow are deleted to make room for the sub flow.
05:32
Next, the Decide is separated from its block and the sub flow activities are moved up.
05:39
Then, in the Quick Library, a Finish Sub Flow is selected and placed as the last activity in the sub flow.
05:48
The Decide and connector are removed, and the Move Object block is added below Run Sub Flow.
05:57
The List is moved up closer to the rest of the newly created flow.
06:02
In List Quick Properties, the List is renamed to “South ASRS List”.
06:09
Then, the remaining individual ASRS process flows are deleted, and the Process Flow container is resized to fit the new sub flow.
06:20
In the Run Sub Flow Quick Properties, the Quantity is set to “token.pallet.subnodes.length.”
06:28
In the Acquire Quick Properties, the Query is adjusted to “WHERE ASRSvehicle = puller.ASRS”.
06:38
When the model is Reset and Run, you can see that it accomplishes the same outcome as the previous model.
06:46
However, the ProcessFlow logic has been significantly simplified by adding decision points to a group,
06:53
and by adding labels for the process flow and sub flow to recognize.
06:59
In this example, you can further simplify the design by performing the same steps on the North Side Operations.
07:08
With both processes using sub flows, the overall ProcessFlow design is far more efficient.