You are on page 1of 91

FLEXSIM BASICS TUTORIAL

This tutorial is designed to teach you the basics of building a simulation model in FlexSim.
You'll create a simulation of a customer service center with the goal of making the service
center run more efficiently.

In this tutorial, you'll experiment with two different methods of model building that are
available in FlexSim: 3D modeling and Process Flow modeling. In the last stage of this
tutorial, you'll merge these two types of models together to make an even more powerful
simulation model that combines the best aspects of both methods.

When you're finished with this tutorial, you'll have a good general sense of how FlexSim
works and the basic tasks involved in building a simulation model. When you're finished,
your 3D model will look similar to the following image:

T asks Co vered
This tutorial will cover the following tasks:

TASK 1.1

Buil d a 3D Model
In this task, you'll learn some of the basics about navigating inside of the
FlexSim user interface while building 3D models. This task will give you some
hands-on experience with the most important elements of the 3D model
interface.

1
TASK 1.2

Ge t Data from th e 3D Mo del


In this task, you'll learn how to get data from your model using various
simulation tools such as dashboards, charts, and statistics collectors. You'll also
learn how to analyze this data to learn how to improve your business system's
efficiency.

TASK 1.3

Buil d a Process Fl ow Mo del


In this task, you'll build an identical simulation model to the 3D model you
built in the first task, but this time you'll use the Process Flow tool to do it.
You'll learn some of the basics about using FlexSim's Process Flow tool as you
build a process flow model.

TASK 1.4

Link th e Mod els


In this task, you'll learn how to link a process flow to the 3D model so that the
process flow can control the model's overall logic. You'll also add an additional
service desk to see if it improves your business system's overall performance.

Fo r Mo re I nfo rmati o n
For more in-depth explanations of the concepts covered in these tutorials see:

 Overview of the FlexSim User Interface


 Reasons to Use 3D Objects
 Overview of 3D Object Flows
 Running Simulations
 Key Concepts About Getting Data
 Overview of the Process Flow Interface
 Key Concepts About Labels

2
TA S K 1 . 1 - B U I L D A 3 D M O D E L
 Task Overview
1.Add Objects to the 3D Model
2.Connect the 3D Objects
3.Run the Model for the First Time
4.Create a List to Track Customers
5.Edit the Model's Logic
6.Run and Test the Simulation Model
 Conclusion

T ask O vervi ew
One of the things that makes FlexSim unique is that it gives you the ability to create 3D
representations of business systems. While other simulation software can help you to build
theoretical models, FlexSim give you the ability to view your business system in a more
concrete way that is easier to understand and use. See Reasons to Use 3D Objects for a
deeper explanation of the benefits of 3D modeling.

In this tutorial task, you'll learn some of the basics about navigating inside of the FlexSim
User Interface while building 3D models. You'll get some hands-on experience with the
most important elements of the 3D model interface, as shown in the following image:

ST EP 1  Ad d Ob j ects to th e 3D Mo d el
The first step in building a 3D model is to build the basic layout of the business system
you're trying to simulate. The customer service center that you are modeling has a service

3
desk with one or more customer service representatives. Customers who arrive generally
line up near the window until they can be helped by an employee. In this simulation model,
you'll also simulate customers who leave early if the wait is too long.

To simulate all of these different elements, you'll add objects to the 3D model. Objects are
the basic building blocks of a 3D simulation model. Different types of objects have
different purposes and functions within the simulation model. Some of the most common
objects are:

 Flow items - Objects that move (or "flow") through the simulation model, usually from
one station (typically a fixed resource) to another downstream station. In this simulation
model, the flow items will represent customer service center customers.

 Fixed resources - Objects that remain stationary in the 3D model and interact with
flow items. Each fixed resource performs a specific function. This simulation model will
use a variety of fixed resources that will interact with the customers.

 Task executers - Objects that can move around in the 3D model and perform tasks
such as transporting flow items, operating machines, etc. For now, you won't use any task
executers in your simulation model. You'll add task executers later in the tutorial.

See Types of 3D Objects for a more thorough explanation.

In this step, you'll start by adding some fixed resources to your simulation model:

Object Explanation

Source Sources create flow items. You'll use the source to create customers,
which will represent their arrival at the customer service center.

Queue Queues store flow items until they can be sent to another object. The
queue will represent the waiting line at the customer service center.

4
Processo Processors process flow items, which is typically simulated as a time
r delay. The processor will represent the employee who will help the
customer.

Sink Sinks remove flow items from the simulation model. You'll use sinks to
represent customers leaving the customer service center. In this model,
you'll actually use two sinks: one to represent happy customers and one
for unhappy customers (the ones who left early).

To build your 3D model layout:

1. Start a new simulation model. Find the 3D model area, which is located in the center pane
in FlexSim. Also find the Library, which is located in the left pane in FlexSim.

2. Drag the following objects from the Library into the 3D model:

o 1 Source
o 1 Queue
o 1 Processor
o 2 Sinks

3. If needed, move the objects so that they are approximately in the positions shown in the
previous image.

4. Click the Source to select it. Notice that the right pane changes to display the Quick
Properties for this object. Under the General Properties group, click inside the first
box, which displays the object's current name. Delete the object's current name and type a

5
new name: Customers Arrive. Notice that the display name for this object updates in the
3D model.

5. Repeat the previous step to rename all of the objects as follows:

Object New Name

Queue Waiting Line

Processor Service Desk

Sink Happy Customers


(by the
processor)

Sink Unhappy Customers


(by the queue)

When you're finished, your 3D model should look similar to the following image:

6
ST EP 2  Co n n ect th e 3D O bj ects
In this step, you'll connect the 3D objects so that customers move from one object to the
next in the appropriate order. In other words, you will create the logic that will help items
flow from one fixed resource to another. There are several different methods for doing this
in FlexSim (see Connecting 3D Flows for more information). In this step, you'll learn how
to connect objects using port connections because it is the easiest and most straight-forward
method.

In FlexSim, a port is a point on an object where flow items can be transferred from one
object to another. A port connection is the connection between ports on two different
objects. Ports create relationships between objects that allow them to communicate with
each other and exchange flow items. See Key Concepts About Ports for more information.

In this model, you'll create input/output port connections from the Customers Arrive source
to the Waiting Line and from the Service Desk to the Happy Customers sink. You'll leave
the other objects disconnected for now because you will connect those flows using a
different tool later in the tutorial.

To create port connections between these objects:

7
1. Click the Connect Objects button   on the toolbar to open a menu.
Select Connect Objects to enter connection mode.

2. When you are in connection mode, your mouse pointer will change to a plus sign with
chain link symbol next to it: 

3. Once you are in connection mode, you can connect two objects together. Click
the Customers Arrive source object. (You will notice as you move your mouse that a
yellow line will appear between the object you clicked and your cursor.)

4. Click the Waiting Line queue object to create the port connection between the two
objects.

5. You will still be in connection mode after connecting these two objects. If you wanted to
connect another object to the queue, you would stay in connection mode. But since you're
done connecting the queue to objects, simply press the Esc key to exit connection mode.

6. You'll turn on connection mode one more time, but this time you'll use a shortcut. Press
and hold the A key, then click the Service Desk processor and then click the Happy
Customers sink to create another connection.

7. Release the A key to exit connection mode.

When you're finished, your 3D model should look similar to the following image:

8
ST EP 3  Ru n th e Mo d el fo r th e Fi rst T i me
In this step, you'll try running the model at this point to see what happens when you run a
model. For now you'll just run the model for the first time, but a later step in this tutorial
will explain why and how to run a model in more depth. To run the model:

1. Press the Reset button on the simulation control bar, which is just beneath the main
toolbar.

2. Press Play to start the simulation and Stop to pause it.

At this point, you'll see the source (Customers Arrive) create flow items (which look like
boxes at this point) and place them in the Waiting Line. Since you haven't created any logic
that will move these flow items, they'll simply stack up inside the queue until you stop the
simulation.

ST EP 4  Creat e a Li st to T rack Cu sto mers

9
In the previous step, you learned how to connect the flows of objects using port
connections. In this step, you'll learn how to use a tool called global lists to create more
complex flows between fixed resources.

In this model, the flow items will represent customers. When customers enter the waiting
line, they will be added to a list of waiting customers, which will track how long customers
have been waiting. The service desk will help the customers who have been waiting the
longest first. However, customers who have waited more than 200 seconds will get
frustrated and leave through the Unhappy Customers sink. To create this functionality,
you'll use a global list, which can filter and prioritize flow items using sophisticated sets of
criteria. (See Key Concepts About Lists for more information.)

In this step, you'll set up a flow item list and name it WaitingCustomers. You'll create this
list using the Toolbox, which is the place where you can access nearly every tool in
FlexSim. (See Using the Toolbox for more information.)

When you create a list, you first need to set up its fields. Fields determine which
information the list will track. By default, item lists come with four default fields, each with
pre-programmed logic. These fields are merely suggestions for what kind of fields you
might want on a flow item list. You can delete these fields or add other pre-programmed or
custom fields as needed.

One of the default fields is the age field, which tracks the amount of time that has elapsed
since that flow item was created by the source. While this field would probably work for
this list's logical needs, it might be better to add an ageInQueue field for more accuracy.
The ageInQueue field tracks the length of time the item has been on the list. In other words,
it will track the length of time that has passed since the customer joined the waiting line.
You'll add this field in this step.

To create a global list:

1. Look in the left pane where the Library is located. Near the top of this pane, you'll see a
tab called Toolbox. Click this tab to open the Toolbox.

2. In the Toolbox, click the Add button   to open a menu. Point to Global List, then
select Item List. The new list's properties window will automatically open.

3. In the top box, change the name of the list to WaitingCustomers.

4. With the Fields tab open, click the Add button   to open a menu. Select ageInQueue.


The new field will show up at the bottom of the fields.

10
5. Press the Delete button   next to all the other fields to remove them to remove since
they are unnecessary.

6. Now you'll change the name of the ageInQueue field to something more descriptive. Click
the Expression Field box, delete the current text, and change its name to WaitTime.

7. In the Back Orders tab, check the Reevaluate All Values On Push checkbox.

What Does This Do?


This checkbox will ensure that the list entries are updated every time a new customer
joins the waiting line. You'll need this functionality to update the wait time for customers
who are already on the list.

8. Press the OK button to save the changes.

Your new Waiting Customers list should now appear under the Global Lists group in the
Toolbox.

ST EP 5  Ed i t th e Mod el ' s L og i c


11
In this step, you'll edit the properties of the 3D objects to create the basic logic of the
simulation model. The following is an explanation of the objects you'll edit and the reasons
why you'll make these changes:

Object Explanation

Customers Most 3D models begin with a source object that creates the flow
Arrive items that will move through the 3D model and interact with objects.
(Source) In this model, the flow items will represent customers coming to the
customer service center.

The source will determine how frequently customers arrive. For this
model, you'll change the arrival rate for customers so that a customer
arrives approximately every minute. You'll use a statistical
distribution called the exponential distribution to randomly calculate
the arrival rate within a range of times averaging around 60 seconds.

By default, the source creates flow items that looks like boxes. Since
the flow items in this model represent customers, you'll change the
flow item class so that it looks like a person.

Waiting Line You'll set up this object so that customers (flow items) are added to
(Queue) the WaitingCustomers list as soon as they enter the waiting line.

You'll also change the queue so that the customers form a line,
rather than getting stacked up inside the queue.

Service Desk This object represents the time it takes an employee to help a
(Processor) customer. For that reason, you'll set up this object so that it pulls the
first customer from the WaitingCustomers list when it is ready to help
another customer.

12
You'll also set the amount of time it takes an employee to help a
customer. You'll use the log normal 2 statistical distribution so that it
will take approximately 92 seconds to help a customer.

Unhappy Sinks remove flow items from the model. You'll set this sink up so
Customers that it will search the WaitingCustomers list for any customers that
(Sink) have been waiting longer than 200 seconds. It will pull any
customers who meet this criteria and remove them from the model,
representing the customer getting frustrated and leaving.

Happy You'll use the default settings for this object, so you won't make any
Customers changes to it.
(Sink)

To add this logic to your 3D objects:

1. Double-click the Customers Arrive source to open its properties window.

2. In the Source tab, click the FlowItem Class menu and select Man.

3. Check the Arrival at time 0 box so that a customer arrives right when the model begins
running.

4. Notice that the Inter-Arrivaltime is already set to use the exponential statistical


distribution, with customers arriving randomly, averaging around 10 seconds. Click
the Edit Properties button   to open the distribution chooser and edit the properties for
this distribution. In the Scale box, change the number to 60.

13
What Does this Distribution Mean?
Notice that customers will most frequently arrive at a rate of 50 seconds or less in this
distribution, but some might take slightly longer or even much longer to arrive.

5. Click OK to save the changes.

6. Double-click the Waiting Line queue to open its properties window.

7. In the Queue tab, click the Item Placement menu and select Horizontal Line.

8. In the Flow tab, click the arrow next to the Send to Port box to open a menu. Point
to Use List, then select Push to Item List. A box will appear to select the appropriate
item list. Confirm that the WaitingCustomers list has been selected.

9. Click OK to save the changes.

10. Double-click the Service Desk processor to open its properties window.

11. In the Processor tab, clear the Convey Items Across Processor


Length checkbox.

12. Click the arrow next to the Process Time box to open a menu. Point to Statistical
Distribution, then select Log Normal 2 to open the distribution chooser.

13. In the distribution chooser, set the following parameters:

14
o Location: 90
o Scale: 3.1
o Shape: 0.5

What Does this Distribution Mean?


Notice in the chart that most customers will take approximately 91.5 to 93.5 seconds to
complete their order, but some might take a little more or less.

14. In the Flow tab in the Input group, check the Pull checkbox.

15. Click the arrow next to the Strategy box to open a menu. Point to Use List, then
select Pull from Item List.

16. Confirm that the WaitingCustomers list has been selected. Next to the Query box, click
the Add button   to open a menu. Point to ORDER BY and select WaitTime.

17. Edit the query to change the ASC (ascending) to DESC(descending) since you want to
pull the customer that has been waiting the longest.

18. Press OK to save the changes.

19. Double-click the Unhappy Customers sink to open its properties window.

15
20. In the Flow tab in the Input group, check the Pull checkbox.

21. Click the arrow next to the Strategy box to open a menu. Point to Use List, then
select Pull from Item List.

22. Confirm that the WaitingCustomers list has been selected. Next to the Query box, click
the Add button   to open a menu. Point to WHERE and select WaitTime.

23. Edit the query to change it to > 200.

24. Press OK to save the changes.

Now that you're done editing the 3D object properties, consider saving your model.

ST EP 6  Ru n and T est th e Si mul ati o n Mod el


In this step, you'll run your simulation model again. Running a simulation model is an
important step in the simulation model building process. In the early phases of model
building, it helps you test and troubleshoot your model to ensure that you built it correctly.
See Running a Simulation Model for more information.

To run the model, press the Reset button on the simulation control bar, which is below the
main toolbar. (Pressing Reset clears the simulation model and returns it to its starting
values.) Press Play to start the simulation and Stop to pause it.

When you first run the model a customer will immediately appear in the service desk.
Gradually, more customers will appear and form a line in the Waiting Line queue:

16
If your simulation model isn't behaving in a similar manner or if you are getting error
messages, double-check that you have followed all the previous steps correctly.

Also, right now the 3D visuals probably look a little strange and unnatural. Be aware that in
the early model building phase, you're more concerned about building out the basic model
and making sure it works correctly than in making it look realistic. In a future tutorial task,
you'll learn how to improve the visuals of your 3D model to make it look more natural.

As you work on the next step in the tutorial, it might be helpful to run the simulation model
at a faster speed than the default speed. It might also be helpful to run the simulation model
for a full day to get representative data from the model. Since a typical day in the customer
service center lasts 12 hours, you'll set the simulation to run for 43,200 seconds (equivalent
to 12 hours).

To change the speed and stop time of the simulation run:

1. Click the arrow next to the Run Time box on the simulation control bar to open a menu.

2. Check the Stop Time checkbox and type 43200 in the box below it.

17
3. Click the arrow next to the Run Speed box on the simulation control bar.

4. In the Custom box, type 1000 and click the Set button.

Try running the model a second time to see how this affects the simulation run.

Con cl u si o n
In the next tutorial task, you'll learn how to use various tools in FlexSim to get data from
your simulation model. Continue to Tutorial Task 1.2 - Get Data from the 3D Model.

18
TA S K 1 . 2 - G E T D ATA F R O M T H E 3 D
MODEL
 Task Overview
1. Create a Dashboard
2. Pin a Statistic from Quick Properties
3. Add a Chart from the Library
4. Create a Custom Statistics Collector
5. Create a State Chart
6. Analyze the Data
 Conclusion

T ask O vervi ew
In this tutorial task, you'll learn how to get data from your model using various simulation
tools such as dashboards, charts, and statistics collectors.

Since the purpose of building this simulation model is to make the customer service center
more efficient and to increase customer satisfaction, you'll gather data with the purpose of
answering the following questions:

 How long does the waiting line get at various points during the simulation?

 What is the average amount of time that customers spend waiting in line?

 How many customers are leaving feeling satisfied or unsatisfied?

 What percentage of the time is the service desk busy helping customers (as opposed to
being idle)?

You'll learn how to create charts that will help you better answer these questions. When
you're finished, you'll create a dashboard that has charts similar to the ones in the following
image:

19
20
ST EP 1  Creat e a Dash b o ard
In this step, you'll add a dashboard to your simulation model. A dashboard is a blank space
that you can fill up with charts that will display data about your simulation model as it runs,
updating in real time. You'll create the actual charts in the next step.

In this step, you'll add, rename, and resize the dashboard:

1. On the main toolbar, click the Dashboards button to open a menu. Select Add a


dashboard. The new dashboard will open as a separate pane to the right of the 3D
model.

2. In Quick Properties in the Dashboard Name box, delete the current text and


type Customer Service Metrics to give the dashboard a new name.

3. Lastly, you'll resize the dashboard so it is a little bigger. Mouse over the left edge of the
dashboard until the mouse pointer changes to a set of arrows.

4. Click the edge of the window or pane and drag it until the dashboard pane is about a third
larger than the default size.

ST EP 2  Pi n a Stati sti c fro m Q ui ck Pro p erti es


In this step, you'll learn how to pin a statistic from a 3D object to your dashboard. Each
object in your 3D model collects automatic statistics such as its current content (how many
flow items are currently at that fixed resource) and its staytime (how long flow items are
staying at the fixed resource). You can view these statistics for a specific object in Quick
Properties and watch them update in real time as a simulation runs.

You can also pin statistics from these objects to the dashboard to help with data collection.
Since you're interested in gathering data about the customer waiting times, you'll pin some
content statistics for the Waiting Line queue to the dashboard in this step.

21
When you pin a statistic to the dashboard, it automatically creates something called
a statistics collector to track this data. Statistics collectors work behind the scenes to gather
specific data from the objects in your model. During a simulation run, each statistics
collector listens to events on the 3D objects in the model and collects data about those
events in a data table. You can either view the data table directly or visualize the data using
a chart in the dashboard. (You can also export the table if you would prefer to analyze or
visualize the data using a third-party software program such as Excel or Tableau.) See the
chapter about Getting Data from Your Simulation Model for more information.

You'll use this statistic to create a timeplot chart that will show the content of the waiting
line as it increases or decreases over time. To create this chart:

1. In the 3D model, click the Waiting Line queue to select it. In Quick Properties, click
the Expand button   next to the Statistics group to open the object's statistics.

You Can Watch These Statistics During a Simulation Run


Right now the statistics all display zeroes because the simulation hasn't started running. If
you were to run the simulation, you'd notice these statistics updating in real time.

2. Next to the Content statistics, click the Pin button   to open a menu. Point to Pin to


Customer Service Metrics, then select Content vs Time.

3. Confirm that the Content vs Time chart now appears in the dashboard. If the chart is not
already selected, click this chart to select it. Mouse over the right edge of the chart until
the mouse point changes to a set of arrows. Drag the edge of the chart to make it bigger.

22
4. Open the Toolbox in the left pane. Under the Statistics Collectors group, confirm that
there is a new WaitingLineContentvsTime statistics collector.

Consider Exploring this Statistics Collector


When you pinned the Content vs Time statistics to the dashboard, it automatically created
this new statistics collector to collect the necessary data. If you double-click this statistics
collector it will open its properties. In the properties, you can see how it automatically set
up an event-listener that listens to the content of of the Waiting Line queue. It is also set
up to record data about the queue's current content and the time the queue reached that
content level.

You could also right-click this statistics collector and select View Tableand view the raw
data during a simulation run.

Pinning statistics to a dashboard can be a good way to explore and learn about how to
create custom statistics collectors, using these auto-generated statistics collectors as a
guide or a template. See Using the Statistics Collector for more information.

5. In the dashboard, double-click the Content vs Time chart to open its properties.


23
6. In the name box at the top of the properties, change the chart's display name to Waiting
Line Content Over Time.

7. Confirm that the Data Source displays the WaitingLineContentvsTime Statistics


Collector.

8. Press the OK button to save the changes and close the window.

If you were to run your simulation model at this point, your chart would look similar to this
over time:

ST EP 3  Ad d a Ch art fro m th e Li b rary


In this step, you'll learn how to add a chart from the Library to the dashboard. When you
pin a chart from the dashboard, most of the time you get a simple text display. However,
you'll notice that when you have the dashboard open and active, the Library (in the left
pane) changes to show a variety of charts. You can choose a chart from the Library
depending on how you would like to visualize the data.

24
In this step, you'll add charts that will track the staytime of customers in the waiting line.
These statistics will give you data about the average and maximum wait times that
customers are experiencing.

To add a chart from the library:

1. In the 3D model, click the Waiting Line queue again to select it.

2. Next to the Staytime statistics, click the Pin button   to open a menu. Point to Pin to


Customer Service Metrics, then select Staytime. Notice that there is now both a new
chart in the dashboard and a new statistics collector named WaitingLineStaytime in the
Toolbox.

3. In the dashboard, double-click the Staytime chart to open its properties.

4. In the name box at the top of the properties, change the chart's display name to Wait
Times.

5. In the Include group, clear the Object and Min checkboxes. Press the OK button to save


the changes.

6. In the left pane, click the Library tab to switch to the Library. (Make sure the dashboard
is still the active window.)

7. Under the Charts group, drag a Bar Chart to the dashboard. Its properties window will
open automatically.

8. In the name box at the top of the properties, change the chart's display name to Average
Waiting Time.

9. In the Data tab, open the Data Source menu and select WaitingLineStaytime.

10. In the Bar Title menu, select Object.

11. In the Include group, clear the Object checkbox and check the Average checkbox.

25
12. In the Settings tab, clear the Show Legend and Show Percentages checkboxes.

13. Press the OK button to save the changes and close the properties.

14. Feel free to resize or re-position the charts in the dashboard as needed.

If you were to run your simulation model at this point, your charts would look similar to
this over time:

ST EP 4  Creat e a Cu sto m Stati sti cs Co l l ecto r


26
Up to this point, you've used the auto-generated statistics collectors to create your charts. In
this step, you'll customize a statistics collector to compare two sources of data: the ratio of
unhappy customers to happy customers. You'll measure this by comparing the number of
customers that exit through the Happy Customers sink as opposed to the Unhappy
Customers sink. The throughput statistic is the best statistic for capturing this kind of data.

This is also the first tutorial in which you will use a useful tool called the Sampler button 
. When you click this button, your mouse will change to a sampler icon to indicate that
you're in sampling mode. In sampling mode you can sample objects in your simulation
model quickly and easily as needed. In this step, you'll sample one of the sinks to add it to
your custom statistics collector.

To create a custom statistics collector:

1. In the 3D model, click the Happy Customers sink to select it.

2. In Quick Properties next to the Throughput statistics, click the Pin button   to open a


menu. Point to Pin to Customer Service Metrics, then select Throughput. Notice
that there is now both a new chart in the dashboard and a new Statistics Collector
named HappyCustomersThroughput in the Toolbox.

3. In the dashboard, double-click the Throughput chart to open its properties.

4. In the Data tab, confirm that the Data Source menu


displays HappyCustomersThroughput. Then press the ... button next to this menu to
open the properties window for this statistics collector.

5. In the name box at the top of the properties, change the statistics collector's name
to CustomersThroughput.

6. In the Events tab click the EnumeratedObjects from the list on the left. Then under


the Objects section click the Samplerbutton   to enter sampling mode. Notice that
your mouse pointer changes to a sampler icon.

7. Click the Unhappy Customers sink in the 3D model to sample it and add it to the


Enumerated Rows.

27
8. Press the OK button to save the changes and return to the chart properties.

9. With the Data tab open in the chart properties, in the Include list, clear


the Output checkbox.

10. Press the OK button to save the changes.

11. In the Library under Charts, drag another Bar Chart into the dashboard. Its properties
will automatically pop up.

12. In the name box at the top of the properties, change the chart's display name to Happy vs.
Unhappy Customers.

13. In the Data tab, click the Data Source menu and select CustomersThroughput.

14. Click the Bar Title menu and select Object.

15. In the Include list, check the Input box.

28
16. In the Settings tab, clear the Show Legend and Show Percentages checkboxes.

17. Press the OK button to save the changes and close the window.

If you were to run your simulation model at this point, your charts would look similar to
this over time:

ST EP 5  Creat e a State Ch art

29
In this step, you'll add one last chart to your dashboard: a pie chart that shows how well the
service desk is being utilized. To create this chart:

1. In the 3D model, click the Service Desk process to select it.

2. In Quick Properties next to the State box, click the Pinbutton   to open a menu. Point
to Pin to Customer Service Metrics, then select Pie Chart. Notice that there is now
both a new chart in the dashboard and a new Statistics Collector
named ServiceDeskPieChart in the Toolbox.

3. Double-click the Pie Chart to open its properties.

4. In the name box at the top of the properties, change the chart's display name to Service
Desk Utilization.

5. In the Include list, clear all of the checkboxes except Idleand Processing.

6. Press the OK button to save the changes and close the window.

If you were to run your simulation model at this point, your chart would look similar to this
over time:

30
ST EP 6  An al yze th e Data
In this step, you'll run your simulation model and view your charts. Using the information
gathered from these charts, you'll learn how to identify problem areas in your business
system.

If you haven't already, you should change the speed at which your simulation model runs to
1000 so that you can get more comprehensive data faster. You should also set the
simulation model to stop running after 12 hours (43,200 seconds). See Step 6 in the
previous tutorial task for specific directions.

Press the Reset button on the simulation bar to reset the model. Then press the Run button.

31
32
As the simulation runs, the charts will update in real time. When the chart is finished,
analyze them to see what they the reveal about the potential problems in the customer
service center.

For example, notice that, while there are more happy customers than unhappy customers
overall, there is still an unacceptable number of customers who left because of overly long
waiting times:

Also notice that the service desk was utilized almost constantly. It is good that the
employees at the service desk are always working hard and are constantly helping
customers. But the lack of any down time probably indicates that the service desk is being
over-utilized.

Based on these results, it might be good to experiment with adding more service desks to
see how many desks will help increase the number of happy customers without causing too
much idle time. You'll make this change by the end of the last task in this tutorial.

33
Con cl u si o n
In the next tutorial task, you'll build this same simulation model using the Process Flow
tool, which provides a different approach to modeling. Continue to Tutorial Task 1.3 -
Build a Process Flow Model.

34
TA S K 1 . 3 - B U I L D A P R O C E S S
FLOW MODEL
 Task Overview
1.Adding and Connecting Process Flow Activities
2.Rename and Resize Activities
3.Edit Activity Properties
4.Run the Simulation
5.Create Process Flow Charts
6.Analyze the Data
 Conclusion

T ask O vervi ew
In this tutorial task, you'll build an identical simulation model to the 3D model you just
built, but this time you'll use the Process Flow tool to do it. The Process Flow tool is more
abstract and theoretical than FlexSim's 3D modeling tools, which might have some appeal
to some users. The other advantage of using the Process Flow tool is that you can create
custom model logic much more easily in this tool. By experimenting with both methods of
simulation modeling, you'll learn which method is more appropriate for your specific
simulation projects.

In this tutorial task, you'll learn some of the basics about navigating inside of FlexSim's
Process Flow tool as you build a process flow model. The most important elements of the
Process Flow tool are labeled in the following image:

35
ST EP 1  Ad d in g and Co nn ecti n g Pro cess F lo w
Acti vi ti es
In this first step, you'll create a process flow. The first thing you'll need to do is choose the
type of process flow you'll make. For this tutorial, you'll make a General Process Flow
because this type of process flow is ideal for creating theoretical simulation models that can
run independently of 3D models.

Then, you'll begin adding and connecting some activities to your process flow. An activity
is like a chunk of logic or a logical operation in a simulation model. There are a number of
different ways you can add and connect activities. In this step, you'll try out all of these
methods.

For now, you'll add the activities to your process flow without an explanation of what each
activity will do. You'll learn more about what each activity does in step 3 of the tutorial.
When you're finished with this step, your process flow should look approximately like the
following image:

36
To add these activities:

1. Make sure you are using the same simulation model that you created in the previous
tutorial task.

2. Click the Process Flow button on the main toolbar to open a menu. Select Add a


General Process Flow to create a general process flow and open it as a separate tab in
the center pane. Also, notice that when the Process Flow view is open and active, the
Library changes to display the process flow activities.

3. From the Library, under the Token Creation group, drag an Inter-Arrival


Source activity into the process flow.

4. From the Library under the Shared Assets group, drag an Acquire Resource activity


and drop it on top of the Sourceactivity. Notice that the two activities have been snapped
together, as shown in the following image. They are now automatically connected in
a block (also sometimes referred to as a stacked block).

37
5. Now you'll try the second method for adding and connecting an activity using a
connection coming out from the stacked block. Point your mouse on the bottom edge of
the block. The mouse icon will change to a chain link.   Click the edge of the block
and, while holding down the mouse, drag it a little bit toward the bottom of the screen.
Notice that there is a connector coming from the edge of the block to your mouse pointer.
When you release the mouse, the Quick Library will appear. Under the Basic group,

click the Delayactivity.   The following animated gif shows this step:

Working With Connectors


If needed, you can delete a connection by clicking it and pressing the Delete key. You can
also change the connector's settings by clicking on it and editing the settings in Quick
Properties. You can change the curve of the connection arrow by clicking it and using the
control handles to change its curves.

6. Now you'll try the last method for adding and connecting a new activity by adding an
activity directly to the end of a stacked block. Point your mouse on the bottom edge of
the Delay activity. The mouse icon will change to a chain link.   Double-click this
edge to open the Quick Library again.

7. Under the Shared Assets group, click the Release Resourceactivity. 

38
8. At this point, you've tried using all the different methods for adding activities. Using your
preferred method, add and connect a Sink activity after the Release Resource activity.

9. Some activities can have more than one outgoing connector, such as the Acquire
Resource activity. Create a second connector coming out from the Acquire activity and
connect it to a Sink activity, as shown in the following image.

10. From the Library, under Shared Assets, drag a Resourceactivity into the process
flow. It shouldn't be connected to any other activities.

Check to make sure that your process flow layout looks similar to the image at the
beginning of this step.

ST EP 2  Ren ame and Resi ze Acti vi ti es


In this step, you'll rename all of the activities to be more descriptive. This step will
demonstrate two different methods for renaming activities.

Be aware that changing an activity's name will have no effect on the way that activity
behaves, but renaming activities will make your process flow a little more intuitive and

39
understandable. This step will also explain how to resize activities, since some of the
activities will be too small to display the new names using a readable font size.

When you finish this step, your process flow should look approximately like the following
image:

To rename the process flow activities:

1. Click the first Sink activity (the one connected to the Acquireactivity) to select it.

2. In Quick Properties under Activity Properties, click inside the Name box. Change the


current text to Sink: Unhappy Customers to change the Sink activity's name, as shown in
the following image:

3. Now you'll try the second method of changing an activity name. Double-click the
second Sink activity (the one connected to the Release activity) to highlight its name.
Type Sink: Happy Customers as the new name and hit the Enter key.

4. At this point, you've tried using the two different methods for renaming activities. Using
your preferred method, rename the following activities as listed in the following table:

Activity New Name

40
Source Source: Customer Arrival

Acquire Acquire: Get Service

Delay Delay: Service Time

Release Release: End Service

Resource Resource: Service Desk

5. Notice that the names of some of the activities now use a small font because they're very
long. Now you'll resize the activity block to make the full name visible. Click the first
activity block to select it.

6. When the activity block is selected, the entire border of the activity block turns yellow
and the black sizer boxes appear. Click the middle sizer box on the right edge and drag it
a little to the right until the full name matches the same font size as the other activities.

41
7. Repeat the previous step for the second activity block until the font is at a comfortable
size for you.

Leave a Small Space At the End of the Activity


Sometimes it helps to leave a small space at the end of the activity where tokens can
appear during a simulation run without running on top of the activity name.

Check to make sure that your process flow layout looks similar to the image at the
beginning of this step.

ST EP 3  Ed i t Acti vi ty Prop erti es


In this step, you will edit the properties for the activities you added in the previous steps.
The following is an overview of how the activities in this process flow will function:

Activity Explanation

Resource: You might have noticed that the Resource activity is a different color
Service Desk than the other activities. That's because it is a shared asset. Shared
assets don't interact with tokens the way other activities do. They can
be used to build complex logic into process flows by controlling
access to finite resources.

42
The customer service center will begin with only one employee,
which is represented by the Resource shared asset in this model. In
one sense, the customer service representative is a finite resource.
When that representative is busy helping a customer, he or she can't
help other customers until the current customer's request has been
completed.

Source: Most process flows begin with a source activity that will create the
Customer tokens that will move through the other activities. In this model, the
Arrival tokens will represent customers coming to the customer service
center. This process flow uses an Inter-Arrival Source to represent
the customers, who will arrive at random intervals.

In this step, you'll change the arrival rate for customers. Just as you
did in the 3D model, you'll set the arrival rate so that a customer
arrives approximately every minute. You'll use the exponential
distribution to randomly calculate the arrival rate with an average of
60 seconds.

Acquire: Get This activity will represent a customer standing in line waiting to
Service receive service from a customer service representative at the service
desk. If the representative is busy, the customer will wait in line until
the representative is free.

In order to simulate certain customers getting frustrated and leaving


when the line is too long, you'll change the maximum wait time on
this activity. If a customer waits more than 200 seconds, they will
become frustrated. Tokens representing frustrated customers will be
sent to the Unhappy Customers sink.

Sink: This activity will remove the token (the customer) from the model and

43
Unhappy track the number of customers that exited the process flow through
Customers this particular sink. In other words, it will track the number of
customers that got frustrated and left.

Delay: This activity will represent the time it takes a representative to help a
Service Time customer. You'll change the delay time to use a random statistical
distribution that will take approximately 92 seconds to help a
customer.

Release: End This activity will release the customer service representative to help
Service another customer.

Sink: Happy This activity will remove the token (the customer) from the model and
Customers track the number of customers that exited the process flow through
this particular sink.

There are two different ways you can edit an activity's properties. In this step, you'll try out
both of these methods:

1. Click the icon on the Resource activity to open its properties directly in the process
flow:

44
2. You'll use the default properties for now. Confirm that the Count property is set
to 1.00, meaning that there is only one resource available for now.

3. Now you'll edit some activity properties using the Quick Properties pane. Click
the Source: Customer Arrival activity to select it. Notice that Quick Properties (in the
far right pane) displays all the properties for all the activities in this stacked block.

4. In Quick Properties, under the Source: Customer Arrivalgroup, check the Arrival at


time 0 box so that a token gets created right when the model begins running.

5. Notice that the Inter-Arrivaltime is already set to use the exponential statistical


distribution, with customers arriving randomly on average every 3 seconds. Click
the Edit Properties button   to open the distribution chooser and edit the properties for
this distribution. In the Scale box, change the number to 60.

45
6. Next, you'll connect the Acquire Resource: Get Service activity to the Resource:
Service Desk shared asset. Notice there is a red Exclamation icon   to the right of
the Acquire Resource: Get Service activity. This means that this activity is not
connected to a resource, which is required. Click the Exclamation icon. The mouse will
turn into a sampler   to indicate you are in sampling mode.

7. Click the Resource: Service Desk shared asset to link them. A blue line will appear to
show they are linked.

46
8. In the properties for the Acquire Resource activity, check the Use Max Wait
Timer checkbox to turn on the maximum wait time. A few additional settings will appear
underneath the checkbox.

9. In the Time box, change the time to 200.

10. Next to the OnWaitTimerFired trigger, click the Edit Properties  button. Click the


arrow next to the Release Token picklist to open its picklist options. In
the Destination box, type 2. This setting will send customers (tokens) that reach the
maximum wait time to the second connector, which is connected to the Unhappy
Customers activity.

47
Check Your Connection Numbers
In order for this activity's logic to work correctly, the outgoing connectors need to be
correct. With the Release Token Activity selected, the connector to the Delay should have
a 1 next to it and the connector to the Sink should have a 2 next to it.

If your connection numbers are reversed, you could delete them and re-connect the
activities, making sure to connect the Delay activity first. Alternatively, you could click
the connection and change its rank number in Quick Properties. See Changing the Rank
Number or Name of Outgoing Connectors for information about editing a connector's
rank number.

11. In the properties for the Delay: Service Time activity. Click the Edit Properties   
button next to the Delay Time box to open the Distribution Chooser.

12. From the Distribution menu, select the lognormal2distribution. Set the following


parameters:

o Location - 90
o Scale - 3.1
o Shape - 0.5

48
Now that you're done editing the process flow properties, consider saving your model.

ST EP 4  Ru n th e Si mu l atio n
Running a process flow simulation is just the same as running a simulation for a standard
3D model. Once the simulation starts, tokens will move through the process flow activities.
As a token enters each activity, it will apply that activity's logic. To run the simulation
model:

1. On the simulation control bar, click the arrow next to the Run Speed to open the
options. In the Custom box, change the time to 4.00.

2. On the simulation control bar, press the Reset button to clear any data from the process
flow.

3. Then press the Run button to watch the simulation at work.

49
As you watch the simulation, you should see the following:

 There should only be one token at a time in the Delay: Service Time activity (representing
a customer being helped)

 There should be multiple tokens waiting in Acquire: Get Service activity (representing
customers waiting in line)

 You'll only ever see tokens inside the Acquire: Get Service activity and the Delay:
Service Time activity. All of the other activities perform their logic in 0 time with no
created events so they won't show tokens moving through them. If you want to see a token
move through each activity you can use the Step button on the simulation control bar to
step a token through each of its activities.

 You'll notice there is a green and red circle that will appear on the Resource: Service Desk
resource as you run. The green icon shows how many tokens have acquired a resource. In
this case there is only 1 resource available so this number will never be any higher than 1.
The red icon is the number of tokens that are attempting to acquire a resource but cannot
because none are available.

The Process Flow Won't Match the 3D Model Exactly


Even though the source in the 3D model and process flow use the same random distribution
to simulate when customers will arrive, the two models will not be in sync with each other
because they are randomized.

ST EP 5  Creat e Pro cess F lo w Ch arts


Now that all the logic of your process flow is set up, you'll create a dashboard to record the
number of happy customers and unhappy customers created by this process flow. You'll pin
the input vs. time statistic for the Sink: Unhappy Customers to the dashboard you created in
the previous tutorial task.

The process for pinning statistics from a process flow is nearly identical to the one for 3D
objects. When you pin a statistic to the dashboard, it will automatically create a statistics
collector. In this step, you'll edit the statistics collector so that it listens to both the Unhappy
Customers and Happy Customers sinks.

You'll also pin the staytime for the Acquire: Get Service activity, which is analogous to the
customer waiting line in the 3D model. To pin these statistics:

1. Click the Sink: Unhappy Customers activity to select it.

2. In Quick Properties, click the Statistics button   button to open the statistics window


for this activity.

50
3. You'll want to track how many tokens enter this activity. So, next to the Input box, click
the Pin button   to open a menu. Point to Pin to Customer Service Metrics, then
select Input vs Time. The chart will appear on the dashboard.

4. Double-click the chart to open its Chart Properties window.

5. In the Name box at the top, delete the current chart name and type Customers (Process
Flow) in its place.

6. In the Data tab, confirm that the Data Source menu


displays Sink:UnhappyCustomersInputvsTime. Then press the ... button next to
this menu to open the properties window for this statistics collector.

7. In the name box at the top of the properties, shorten the statistics collector's name
to CustomersInputVsTime.

8. In the Event Listening tab, select the Sink - Input event in the event list to select it. In
the Event Details, change the Nameof the event to Unhappy Sink - Input.

9. Click the Sampler button   above the event list to enter sampling mode.

51
10. If the process flow isn't visible, point the sampler over the ProcessFlow tab.

11. In the process flow, click the Sink: Happy Customers to open a menu. Select On
Input Change.

12. With this newly created event selected in the event list, change the Name of the event
to Happy Sink - Input.

13. In the Parameters table, in the New Value row under the Event Data Label


Name column, delete the current text and type Input.

14. In the event list, click the Unhappy Sink - Input event to select it. In the Event Details
in the Parameters table, in the New Value row under the Event Data Label
Name column, delete the current text and type Input.

15. Press the OK button to save the changes and close the window. Close all the other open
windows to save their changes too.

16. In the process flow, click the Acquire: Get Service activity.

17. In Quick Properties, click the Statistics button   button next to the Acquire Get


Service activity to open the statistics window for this activity.

52
18. Next to the Staytime box, click the Pin button   to open a menu. Point to Pin to
Customer Service Metrics, then select Staytime Vs Time. The chart will appear on
the dashboard.

19. You're actually only interested in the statistics collector that was automatically generated
for this statistic, so click the new chart and delete it. You can close the statistics window
as well.

20. With the dashboard open and active, notice that the Library changes to show different
chart options. Drag a Histogramchart into the dashboard. It will automatically open
the Chart Properties.

21. In the Name box at the top, delete the current chart name and type Wait Times (Process
Flow) instead.

22. In the Data tab, click the Data Source menu and


select Acquire:GetServiceStaytimevsTime.

23. Click the Values menu and select Staytime.

24. Click the OK button to save the changes and close the window.

Consider saving your simulation model.

ST EP 6  An al yze th e Data


In this step, you'll run the data and compare the results from the process flow model to the
3D model.

Double-Check the Run Settings


Double-check that your model is running at a speed of 1000 so that you can get more
comprehensive data faster. You should also set the simulation model to stop running after
12 hours (43,200 seconds).

Reset and run the model. When you're finished, your results should look similar to the
following image:

53
Similar to the results from the 3D model, you'll notice that there are only slightly more
happy customers than unhappy customers, which isn't a good sign. Also notice that the
average wait times are very close to the maximum wait time of 200 seconds. Clearly, this is
a business process that could be improved.

Con cl u si o n
After completing this tutorial, you've hopefully learned the basics of building a model in
the Process Flow tool. In the next tutorial task, you'll learn how to improve the visuals of
your 3D model and you'll learn how to use a process flow to create custom logic for a 3D
model. You'll also experiment with adding an additional service desk to see if that will
solve the business system's problem. Continue to Tutorial Task 1.4 - Link the Models.

54
TA S K 1 . 4 - L I N K T H E M O D E L S
 Task Overview
1.Remove the Flow Logic in the 3D Model
2.Add New Objects and Change the 3D Visuals
3.Add 3D Objects to Groups
4.Reorganize the Process Flow
5.Add Additional Process Flow Activities
6.Connect the Activities
7.Edit the Customer Arrival Logic
8.Edit the Unhappy Customer Logic
9.Edit the Customer Service Logic
10.
Run the Model and Analyze the Results
 Conclusion

T ask O vervi ew
The real power of using FlexSim comes from combining the strengths of the Process Flow
tool with the 3D visuals. In this tutorial task, you'll learn how to link a process flow to the
3D model so that the process flow can control the overall logic. You'll also add an
additional service desk to see how it affects your business system's overall statistics. When
you're finished, your simulation model will look similar to the following image:

And your process flow will control the overall logic of the model:

55
Using Labels to Connect to the 3D Model
In this tutorial, you'll use labels extensively to link tokens in a process flow to objects in the
3D model. Process flows can control the logic of the 3D model using labels that contain a
reference to a 3D object in the model. As the token moves through the activities in the
process flow, the activity's logic can be applied to the object in the 3D model using the
reference in the label. Consider reading Key Concepts About Labels for a deeper
understanding of how to work with labels in a process flow.

56
In this model, you'll use labels to link tokens to flow items in the 3D model. You'll create a
label named customer to link tokens in a process flow to the customers in the 3D model.
You'll also create labels to keep track of the resources in the model: the two service desks
and the two desk workers.

ST EP 1  Remo ve th e F lo w Lo gi c i n th e 3D Mo d el
Before you can link the process flow model to the 3D model, you'll need to remove all the
old logic that controls the flow of customers in the 3D model. You'll delete the Customers
Arrive source and remove the port connections. Then, you'll remove the list logic from the
Waiting Line queue, the Service Desk, and the Unhappy Customers sink.

To make these changes:

1. Click the Customers Arrive source and press the Delete key to delete it.

2. Click the Disconnect Objects button   on the toolbar to open a menu.


Select Disconnect Objects to enter disconnection mode.

3. When you are in disconnection mode, your mouse pointer will change to a plus sign with broken
chain link symbol next to it: 

4. Once you are in disconnection mode, you can remove a connection between two objects. Click
the Service Deskprocessor. (You will notice as you move your mouse that a yellow line will
appear between the object you clicked and your cursor.)

5. Click the Happy Customers sink to remove the port connection.

6. Press the Esc key to exit disconnection mode.

Is There a Shortcut For This?


You can alternatively press and hold the Q key to enter disconnection mode. Simply
release the key to exit disconnection mode.

7. Double-click the Waiting Line queue to open its properties window.

8. In the Flow tab, click the arrow next to the Send to Port box to open a menu. Select First
Available.

9. Click the OK button to save the changes and close the window.

10. Double-click the Service Desk to open its properties window.

11. In the Flow tab in the Input group, clear the Pull Strategycheckbox.

12. Click the OK button to save the changes and close the window.

57
13. Repeat the previous steps to remove the pull logic from the Unhappy Customers sink as well.

Consider saving your model.

ST EP 2  Ad d New Ob j ects and Ch an g e th e 3D


Vi su al s
In this step, you'll add some new objects to the 3D model. You'll add two visual objects: 1)
a shape object that will act as the entrance to the customer service center and 2) a plane to
represent the back room of the customer service center. You'll also add an additional
service desk and two workers to help customers at the service desks. By adding these
additional service desks, you'll be able to study the ideal number of service desks and
employees that will be needed to meet customer demand.

After you've added these objects, you'll then change the visual properties of some of the
objects to make them look more realistic or functional. You'll change the color of the back
room area so that it is more visible, you'll make the service desks look more like desks, and
you'll change the visual appearance of the workers so that they look different from the
customers. When you're finished, your 3D model should look similar to the following
image:

To make these changes:

1. From the Library, add the following objects to the 3D model:

o A Shape (under the Visual group)
o A Plane (under the Visual group)
o A Processor (under the Fixed Resources group)
o 2 Operators under the Task Executers group)
Picking an Operator Shape.

58
If you just click and drag an operator from the library window, it will add the default
operator shape and type, or the last selected operator type. If you click on the Operator
selection in the Library first, it brings up a selection menu with which you can select your
operator's shape. This includes Male, Female, Custom, and others. For this tutorial use
either Male or Female operators.

2. For clarity, rename the new objects as follows:

Object New Name

Shape Entrance

59
Plane Back Room

First Processor Service Desk 1

Second Processor Service Desk 2

First Operator Desk Worker 1

Second Operator Desk Worker 2

Displaying the Names of the Shape and Plane


To display the name of the shape and plane, double-click each one to open its properties.
On the General tab in the Flags group, check the Show Name box.

3. Click the Back Room to select it.

4. In Quick Properties, click the arrow next to the color box to open the color selector. Select the
lightest yellow color.

5. Change the X-size to 3.00.

60
6. Double-click Service Desk 1 to open its properties window.

7. In the General tab in the Appearance group, next to the 3D Shapes box, click


the Add button   to change its shape to a box.

8. Click the arrow next to the Color box to open the color selector. Select the second lightest gray
color.

9. In the Position, Rotation, and Size group, change the following sizes:

o X-Size: 1.30
o Y-Size: 4.00
o Z-Size: 1.00

10. Click the OK button to save the changes and close the window.

11. Repeat the previous steps to change the visuals for Service Desk 2 as well.

61
12. If needed, re-arrange the 3D objects so they look more like the image of the model at the
beginning of this step.

Consider saving your simulation model.

ST EP 3  Ad d 3D O bj ects to G rou p s


As was mentioned in the introduction for the previous step, you added an additional service
desk so that you can experiment with how much an additional service desk will affect the
customer statistics. In the future, you might possibly want to add any number of service
desks so that you can find the optimal number of desks and employees, especially if
customer traffic patterns change. In order to make your model scale-able for more than one
service desk, you'll want to add the service desks to a group. You'll also want to create an
additional group for the desk workers. In a future step, you'll link both of these groups to
the process flow.

To create these groups:

1. Click the Toolbox tab in the left pane to open the Toolbox.

2. Click the Add button   to open a menu. Select Group to add a new group.

3. In the name box at the top of the properties window, change the name of this group
to ServiceDesks.

4. Click the Sampler button   to enter sampling model.

5. In the 3D model, sample Service Desk 1 to add it to the group.

6. Repeat these steps to add Service Desk 2 to the group as well.

7. Close the window by clicking the X in the top right corner. Confirm that the
new ServiceDesks group now appears in the Toolbox under Groups.

8. Repeat this process to create a second group named DeskWorkers. Add Desk Worker


1 and Desk Worker 2 to this group.

Consider saving your simulation model.

ST EP 4  Reo rg an i ze th e Pro cess Fl ow


62
Your process flow is about to become a little more complex. For that reason, it might be a
good idea to use some of the flowchart shapes to keep your activities organized. Adding
and naming process flow shapes can help keep your process flow more organized so that
you can easily follow the logic of a process flow. When you're finished, your process flow
will look similar to the following image:

To make these changes:

63
1. In the process flow, delete the two connectors between the stacked blocks of activities. Be
aware that this might cause some error messages to appear.

2. From the Library under Flowchart, add 5 Process shapes to the process flow.

3. Rename the Process shapes as follows:

o Resources
o Customer Arrives and Waits in Line
o Unhappy Customers Leave
o Customer Gets Service
o Worker Helps Customer

4. Move the Resource: Service Desk to the Resources shape.

5. Move the stacked block with the Source: Customer Arrival to the Customer Arrives and
Waits in Line shape.

6. Move the Sink: Unhappy Customers activity to the Unhappy Customers Leave shape.

7. Click the stacked block with the Delay: Service Time activity to select it.

8. Click the Scissors button   between the activities to separate all of them and make them
loose and unconnected.

Consider saving your simulation model.

ST EP 5  Ad d Add i tio n al Pro cess F lo w Acti vi ti es


In this step, you'll add activities to your process flow that will control the logic of the 3D
model. When you're finished with this step, your process flow will look similar to the
following image:

64
For now, you'll merely add and connect these activities to the process flow. You'll edit the
properties to add the functionality in a later step.

To add these activities:

1. In the Resources shape, add an additional Resource shared asset (under Shared Assets).

2. Change the name of this new shared asset to Resource: Desk Worker.

65
3. In the Library under the Objects group, drag a Create Objectactivity and drop it in
the Customer Arrives and Waits in Lineshape between the Source: Customer
Arrival and Acquire: Get Service activity.

Alternate Ways to Insert Activities


You can also insert activities in between activities using the Quick Library. Hover your
mouse over the line between two activities until the line turns yellow. Then double-click
the line to open the Quick Library.

4. Continue to insert the following activities after the Create Object activity and before
the Acquire: Get Service activity in this stacked block:

o A Travel activity (under Task Sequences)


o A Move Object activity (under Objects)

5. Rename the activities in this stacked block as follows:

Activity New Name

66
Create Object Create Object: Customer

Travel Travel: Customer to Waiting Line

Move Object Move Customer into Line

Acquire: Get Service Acquire: Get Service Desk

6. In the Unhappy Customers Leave shape, add the following activities before the Sink:


Unhappy Customers activity to create a stacked block:

o A Move Object activity (under Objects)


o A Travel activity (under Task Sequences)
o A Destroy Object activity (under Objects)

7. Rename the activities in this stacked block as follows:

Activity New Name

67
Move Object Move Customer to Unhappy Customers

Travel Travel: Customer to Unhappy Customers

Destroy Destroy Object: Unhappy Customer Leaves


Object

8. In the Customer Gets Service shape, create a new stacked block with the following activities
(not including the Delay activity):

o An Acquire Resource activity (under Shared Assets)


o A Move Object activity (under Objects)
o A Split activity (under Coordination)

9. Also in the Customer Gets Service shape, add a Travel activity (under Task Sequences)


and snap the Delay: Service Timeactivity to the end of this activity to create another stacked
block.

10. Add a Synchronize activity (under Coordination) after this stacked block, but leave it loose
and unconnected.

11. After the Release: End Service activity, add a Travel activity (under Task Sequences) to


create a stacked block.

12. Add a second Synchronize activity (under Coordination) after this stacked block, but leave it
loose and unconnected.

68
13. Add the following activities before the Sink: Happy Customers to create a stacked block:

o A Release Resource activity (under Shared Assets)


o A Destroy Object activity (under Objects)

14. Rename the activities in this shape as follows:

Activity New Name

Acquire Acquire: Get Desk Worker

Move Object Move Customer to Service Desk

Split Split: Coordinate Task Sequences

Travel Travel: Customer to Service Desk

First Synchronize Synchronize: Desk Worker With Customer

Release: End Service Release: Service Desk

Travel Travel: Customer to Happy Customers

69
Second Synchronize Synchronize: Worker and Customer Finish

Release (second Release: Desk Worker


activity)

Destroy Object Destroy Object: Happy Customer Leaves

15. Resize both of the Synchronize activities so that they span across the Customer Gets
Service and Worker Helps Customershapes.

70
16. In the Worker Helps Customer shape, add the following activities, but do not connect them
into a stacked block:

o 2 Travel activities (under Task Sequences)


o A Sink activity (under Basic)

17. Rename the activities as follows:

Activity New Name

First Travel Travel: Desk Worker to Service Desk

Second Travel: Desk Worker to Back Room


Travel

71
Sink Sink: Task Sequence Complete

18. Move the Travel: Desk Worker to Service Desk activity so that it is parallel to the Travel:
Customer to Service Desk activity.

19. Move the Travel: Desk Worker to Back Room activity so that it is parallel to the Travel:
Customers to Happy Customersactivity.

20. Move the Sink: Task Sequence activity so that it is parallel to the Sink: Happy


Customers activity.

Check to make sure your process flow looks similar to the image at the beginning of this
step.

ST EP 6  Co n n ect th e Acti vi ti es


You'll notice that in the previous step you added some coordination activities (the Split and
Synchronize activities). These logic of these activities depends on setting up the connectors
between your activities correctly. (See Process Flow Coordination for more information.)
For that reason, you'll work on connecting all the activities correctly in this step. The
important thing to pay attention to is making sure you connect the activities in the right
order so that the connector rankings are correct.
72
When you're finished, your process flow should look similar to the following image:

To connect these activities:

1. Create a connector going out from the Acquire: Get Service Desk activity to the Acquire:
Get Desk Worker activity.

2. Create a second connector going out from the Acquire: Get Service Desk activity to
the Move Customer to Unhappy Customers activity.

73
Check Your Connection Numbers
In order for this activity's logic to work correctly, the outgoing connectors need to be
correct. With the Acquire: Get Service Desk activity selected, the connector to the
Acquire: Get Desk Worker activity should have a 1 next to it and the connector to the
Move Customer to Unhappy Customers activity should have a 2 next to it.

If your connection numbers are reversed, you could delete them and re-connect the
activities, making sure to connect the Delay activity first. Alternatively, you could click
the connection and change its rank number in Quick Properties. See Changing the Rank
Number or Name of Outgoing Connectors for information about editing a connector's
rank number.

3. Create a connector going out from the Split: Coordinate Task Sequences activity to


the Travel: Customer to Service Deskactivity.

4. Create a second connector going out from the Split: Coordinate Task Sequences activity to
the Travel: Desk Worker to Service Desk activity.

Check Your Connection Numbers


In order for this activity's logic to work correctly, the outgoing connectors need to be
correct. With this Split activity selected, the connector to the Travel: Customer to Service
Desk activity should have a 1 next to it and the connector to the Travel: Desk Worker to
Service Desk stacked block should have a 2 next to it.

5. Create a connector going out from the Delay: Service Timeactivity to the Synchronize:


Desk Worker With Customeractivity.

6. Create a connector going out from the Travel: Desk Worker to Service Desk activity to
the Synchronize: Desk Worker With Customer activity.

7. Create a connector going out from the Synchronize: Desk Worker With Customer to
the Release: Service Desk activity.

8. Create a second connector going out from the Synchronize: Desk Worker With
Customer to the Travel: Desk Worker to Back Room activity.

Check Your Connection Numbers


In order for this activity's logic to work correctly, the incoming and outgoing connectors
need to be correct. With the Synchronize: Desk Worker With Customer activity selected,
the incoming connector from the Delay: Service Time activity and the outgoing connector
to the Release: Service Desk activity should both have a 1 next to them. The incoming
connector from the Travel: Desk Worker to Service Desk and the outgoing connector to
the Travel: Desk Worker to Back Room should both have a 2 next to them.

9. Create a connector going out from the Travel: Customer to Happy Customers activity to


the Synchronize: Worker and Customer Finish activity.

74
10. Create a connector going out from the Travel: Desk Worker to Back Room activity to
the Synchronize: Worker and Customer Finish activity.

11. Create a connector going out from the Synchronize: Worker and Customer Finish to
the Release: Desk Worker activity.

12. Create a second connector going out from the Synchronize: Worker and Customer
Finish to the Sink: Task Sequence Complete activity.

Check Your Connection Numbers


In order for this activity's logic to work correctly, the incoming and outgoing connectors
need to be correct. With the Synchronize: Worker and Customer Finish activity selected,
the incoming connector from the Travel: Customer to Happy Customers activity and the
outgoing connector to the Release: Desk Worker activity should both have a 1 next to
them. The incoming connector from the Travel: Desk Worker to Back Room activity and
the outgoing connector to the Sink: Task Sequence Complete activity should both have a
2 next to them.

Consider saving your simulation model.

ST EP 7  Ed i t th e Cu sto mer Arri val Lo gi c


In this step, you will edit the properties for the new activities you added in one of the
previous steps. In this step, you'll edit the logic that will affect customer arrivals and the
waiting lines. You'll also start setting up some of the labels that will link tokens in the
process flow to objects in the 3D model.

The following is an overview of how the activities in this process flow will function:

Activity Explanation

Resource: Since this shared asset represents the customer service desks in the
Service Desk business system, you'll link it to the Service Desk group you created
in a previous step. You'll recall that both of the Service Desk
processor objects from the 3D model are members of this group.

Resource: In a similar vein, you'll link this shared asset to the Desk Workers

75
Desk Worker group.

Source: You won't make any changes to this activity. It will still create tokens
Customer to represent customers. It will simulate the random arrival of
Arrival customers using the exponentialstatistical distribution.

Create When a token enters this activity, it will create the visual
Object: representation of the customer. It will look identical to the person
Customer flow item that you created in the first tutorial task but it will function
more like a task executer. You'll tell this activity to create the flow
item inside the Entrance shape.

You'll also create a label called customer that will link this 3D object


(the customer flow item) to this token. The label will contain a
reference to the flow item that is tied to this specific token. You'll
refer to this label throughout the rest of the process flow.

Travel: This activity will cause the customer to walk from the entrance to the
Customer to waiting line.
Waiting Line

Move Since the travel activity only moves the customer to the waiting line,
Customer you need to move the customer into the waiting line in order for the
Into Line queue to apply its line logic to the customers.

Acquire: Get Much of this logic will stay the same. However, you'll change the

76
Service Desk default label that is assigned to the token that tracks the resource
that was pulled by the token. You'll rename this label serviceDesk for
clarity.

Recall from the previous tutorial task that the customer will wait in
line for an open service desk for a maximum of 200 seconds. If the
customer reaches 200 seconds, the token will be sent to the
Unhappy Customer activity sequence instead.

To add this functionality:

1. Click the Resource: Service Desk shared asset to select it. In Quick Properties, click the
arrow next to the Reference box to open a menu. Point to Group, then select ServiceDesks.

2. Repeat the previous step for the Resource: Desk Workersshared asset, this time linking it to
the DeskWorkers group.

3. Click the Create Object: Customer activity to select it. In Quick Properties, click the arrow
next to the Object box to open a menu. Point to Flowitems, then select Man.

4. Click the Create At button. Then click the Sampler button  next to this box to enter sampling
mode.

5. In the 3D model, click the Entrance to open a menu. Select Entrance from the menu to


sample this object.

6. In the Assign to box, type token.customer.

77
What Does This Label Do?
The customer label will link the token in the process flow with the flow item that was
created in the 3D model (the customer). It will be used throughout the process flow to
reference the customer that is tied to this token.

7. Click the Travel: Customer to Waiting Line activity to select it. In Quick Properties, click the
arrow next to the Executer / Task Sequence box to open a menu. Point to Token Label,
then select customer.

8. Next to the Destination button, click the Sampler button  to enter sampling mode.

9. In the 3D model, click the Waiting Line queue to open a menu. Select Waiting Line to sample
this object.

10. Click the Move Customer to Waiting Line activity to select it. In Quick Properties, click the
arrow next to the Object(s) box to open a menu. Point to Token Label, then
select customer.

11. Next to the Destination button, click the Sampler button  to enter sampling mode.

12. In the 3D model, click the Waiting Line queue to open a menu. Select Waiting Line to sample
this object.

78
13. Click the Acquire: Get Service Desk activity to select it. In Quick Properties in the Assign
To Label box, delete the current text and type token.serviceDesk.

What Does This Label Do?


The serviceDesk label will store a reference to the specific service desk that was acquired
through this activity. This label will tell the customer and the desk worker which desk
they need to travel to.

Consider saving your simulation model.

ST EP 8  Ed i t th e Un h app y Cu sto mer L og i c


In this step, you will edit the properties for the activities in the Customer Leaves and
Unhappy Customers Leave shapes. You'll edit the activities that will release the acquired
resources and remove both the happy and unhappy customers from the 3D model. The
following is an overview of how the activities in this process flow will function:

79
Activity Explanation

Move Customer to Since you moved the customer into the waiting line in the 3D
Unhappy Customers model, you'll need this activity to move them out of the
waiting line and into Unhappy Customers sink.

Travel: Customer to This activity sends the customer to the Unhappy Customers
Unhappy Customers sink.

Destroy Object: This activity removes the customer flow item from the
Unhappy Customer simulation model.
Leaves

Sink: Unhappy This activity removes the token that was linked to the
Customers customer from the process flow.

To create this functionality:

1. In the Unhappy Customers Leave shape, click the Move Customer to Unhappy


Customers activity to select it. In Quick Properties, click the arrow next to the Object(s) box
to open a menu. Point to Token Label, then select customer.

2. Click the arrow next to the Destination box, then select Model.

3. Check the Preserve Global Position checkbox.

80
4. Click the Travel: Customer to Unhappy Customers activity to select it. In Quick Properties,
click the arrow next to the Executer / Task Sequence box to open a menu. Point to Token
Label, then select customer.

5. Next to the Destination button, click the Sampler button  to enter sampling mode.

6. In the 3D model, click the Unhappy Customers sink to open a menu. Select Unhappy


Customers to sample this object.

7. Click the Destroy Object: Unhappy Customer Leaves activity to select it. In Quick


Properties, click the arrow next to the Object(s) box to open a menu. Point to Token Label,
then select customer.

Consider saving your simulation model.

ST EP 9  Ed i t th e Cu sto mer Servi ce L og i c


In this step, you will edit the properties for the customer service activities. You'll use two of
the Coordination process flow activities for the first time in this step: the Split and
Synchronize activities. Coordination activities are useful when you have different processes
that will happen concurrently and you want all of them to be synchronized with each other.
Unlike other process flow activities, the behavior of Coordination activities is mostly
determined by their incoming and outgoing connectors. For that reason, you won't need to

81
edit their properties as much as simply make sure the connectors between the activities do
what you need them to do. See Process Flow Coordination for more information.

The following is an overview of how the activities in this process flow will function:

Activity Explanation

Acquire: Get This activity will acquire one of the Desk Workers to help serve
Desk Worker the customer. You'll assign a label named deskWorker to link this
token with the worker that has been assigned to help the
customer linked to this token.

Move Customer Since you moved the customer into the waiting line in the
to Service Desk previous step, you'll need this activity to move them out of the
waiting line and back into the general model.

Split: Coordinate The Split activity will split the incoming token into two identical
Task Sequences tokens and release them through each outgoing connector. You'll
use these two tokens to synchronize the customer with the desk
worker. One token will control the customer and the other will
control the desk worker. You'll create the second token as a child
token with access to the original token's labels.

Travel: Desk This activity will send the acquired desk worker to the acquired
Worker to service desk.
Service Desk

82
Travel: This activity will send the customer to the acquired service desk.
Customer to
Service Desk

Delay: Service You won't make any changes to this activity. Recall that the delay
Time will simply represent the amount of time it takes the desk worker
to help the customer. It will use the lognormal 2 statistical
distribution to determine how long the customer will take.

Synchronize: This activity will ensure that the desk worker stays with the
Desk Worker customer for the full amount of the service time. The token
With Customer controlling the desk worker will wait until the token controlling the
customer reaches this activity.

Travel: Desk This activity moves the acquired desk worker to the back room
Worker to Back after the delay time has finished and it is time for the customer to
Room leave.

Release: Service This activity releases the acquired service desk so that another
Desk customer can acquire the desk.

Travel: This activity sends the customer to the Happy Customers sink.
Customer to
Happy

83
Customers

Synchronize: This activity ensures that the worker and the customer finish at
Worker and the same time. The token controlling the desk worker will wait
Customer Finish until the token controlling the customer reaches this activity.

Release: Desk This activity releases the acquired desk worker so that another
Worker customer can acquire the worker.

Destroy Object: This activity removes the customer flow item from the simulation
Happy Customer model.
Leaves

Sink: Happy This activity removes the token that was linked to the customer
Customers from the process flow.

To create this functionality:

1. In the Customer Gets Service shape, click the Acquire: Get Desk Worker to select it.
Click the Exclamation icon   to enter sampling mode.

2. Click the Resource: Desk Worker shared asset to link them. A blue line will appear to show
they are linked.

3. In Quick Properties, in the Assign To Label box, delete the current text and


type token.deskWorker.

84
What Does This Label Do?
The deskWorker label will store a reference to the specific desk worker that was acquired
through this activity.

4. Click the Move Customer to Service Desk activity to select it. In Quick Properties, click the
arrow next to the Object(s) box to open a menu. Point to Token Label, then
select customer.

5. Click the arrow next to the Destination box to open a menu. Select Model.

6. Check the Preserve Global Position checkbox.

7. Click the Split: Coordinate Task Sequences activity to select it. In Quick Properties, click
the Create As menu and select Child Tokens. Confirm that the Label Access on Parent
Onlybox is checked.

85
8. Click the Travel: Desk Worker to Service Desk activity in the Worker Helps
Customer shape to select it. In Quick Properties, click the arrow next to the Executer / Task
Sequence box to open a menu. Point to Token Label, then select deskWorker.

9. Click the arrow next to the Destination button to open a menu. Point to Token Label, then
select serviceDesk.

10. Click the Travel: Customer to Service Desk activity in the Customer Gets Service shape


to select it. In Quick Properties, click the arrow next to the Executer / Task Sequence box to
open a menu. Point to Token Label, then select customer.

11. Click the arrow next to the Destination button to open a menu. Point to Token Label, then
select serviceDesk.

86
12. In the Worker Helps Customer shape, click the Travel: Desk Worker to Back
Room activity to select it. In Quick Properties, click the arrow next to the Executer / Task
Sequence box to open a menu. Point to Token Label, then select deskWorker.

13. Next to the Destination button, click the Sampler button  to enter sampling mode.

14. In the 3D model, click the Back Room to open a menu. Select Back Room to sample this
object.

15. In the Customer Gets Service shape, click the Release: Service Desk activity to select it.
In Quick Properties, click the arrow next to the Resource(s) Assigned To box to open a
menu. Point to Token Label then select serviceDesk.

16. Click the Travel: Customer to Happy Customers activity to select it. In Quick Properties,
click the arrow next to the Executer / Task Sequence box to open a menu. Point to Token
Label, then select customer.

17. Next to the Destination button, click the Sampler button  to enter sampling mode.

18. In the 3D model, click the Happy Customers sink to open a menu. Select Happy


Customers to sample this object.

87
19. Click the Release: Desk Worker activity to select it. In Quick Properties, click the arrow next
to the Resource(s) Assigned To box to open a menu. Point to Token Label then
select deskWorker.

20. Click the Destroy Object: Happy Customer Leaves activity to select it.

21. In Quick Properties, click the arrow next to the Object(s) box to open a menu. Point to Token
Label, then select customer.

Consider saving your simulation model.

ST EP 10   Run th e Mo d el an d An al yze th e Resu l ts


Reset and run the model.

Double-Check the Run Settings


Double-check that your model is running at a speed of 1000 so that you can get more
comprehensive data faster. You should also set the simulation model to stop running after
12 hours (43,200 seconds).

In the 3D model, the customers should arrive, form a line and get help from the workers at
the desk:

88
The process flow should closely mirror what is happening in the 3D model because it
controls it:

89
Take a look at your process flow charts on your dashboard:

90
Notice that the addition of another service desk has almost completely solved the problem.
The ratio of happy to unhappy customers is much better and the average wait time is greatly
reduced.

Con cl u si o n
This concludes the FlexSim Basics tutorial. Hopefully you have a good sense of how easy it
is to create a simulation project for nearly any kind of business system using FlexSim. Be
aware that you can do even more to model people-based simulation models (like customer
service centers) using the People 3D objects and process flow activities. See the FlexSim
HC Tutorial for more information.

91

You might also like