Edit simulation scenario

Simulation in Apromore allows users to simulate different scenarios within their process and assess these changes’ potential impact.

Simulation is done from a BPMN model that has a specified simulation scenario. If a BPMN model does not have a simulation scenario, we can specify a simulation scenario from Apromore BPMN Editor. To specify the simulation scenario of a BPMN model, go to Apromore Portal and open the BPMN model.

Edit002

Note

We can also open a BPMN model by right-clicking and clicking Edit model.

This opens the BPMN Editor, with the selected BPMN model. Click on the Edit003 icon in the top-right corner to open the Properties panel.

Edit004

Go to the Simulation tab to specify the simulation scenario.

Edit005

Note

If we want to hide the parameters panel, we can always click on the “>>” sign located at the right side of the panel and click on it once again to make it visible.

The parameters are organized into different tabs.

  • General

  • Attributes

  • Tasks

  • Timetables

  • Roles

  • Gateways

  • Waiting time

For convenience, it is recommended to fill it in the following order: Timetables -> General -> Attributes -> Roles -> Tasks -> Waiting time -> Gateways.

Timetables parameters tab

The Timetables tab is used to define time periods where cases may occur differently. For instance, the case scenario on weekdays may be different from those on weekends. In such a situation, weekdays and weekends should be defined as separate timetables.

To create a timetable, go to the Timetables tab and click the” +” icon.

Edit006

A new timetable called Timetable is created. We can edit the timetable name by clicking the available field and entering our preferred timetable name. Let’s say we wish to create a timetable called Weekdays (Mondays to Fridays from 09:00 to 17:00). We add the Timetable name and define the time range in the timeslot.

Edit007

To create a Timetable for Weekends, we can create another timetable and fill the Timeslot for weekends (Saturday to Sunday, 09:00 to 17:00).

Edit008

Note

One timetable may consist of many different timeslots. This is very useful when workers (also known as actors/resources) work in shifts.

To create another Timeslot within a Timetable, click on the “+” icon in the Timeslots section and fill in the details accordingly.

General parameters tab

The General tab allows us to specify properties that apply universally to the process.

We can specify the simulated scenario start date and time to determine when the first process starts. We can also specify the scenario timezone.

Edit009

For the cost calculations, we may choose a suitable currency from the dropdown list.

Edit010

Inter-arrival time

The inter-arrival time is the time between each arrival of the process instances. Simply put, it shows how frequently a new case starts.

To specify an arrival time, go to the General tab.

Edit011

Click on the “+” in the Inter arrival time section.

Edit012

To specify an arrival time, we select a timetable from the dropdown. The inter-arrival time will be applied to this timetable.

Edit013

Note

The timetable must have been created in the Timetables tab. This is why it is advisable to define the timetables first.

Apromore offers a variety of statistical distributions for the inter-arrival time. Inter-arrival time could be fixed, normal, exponential, uniform, triangular, log-normal, or gamma.

If, for instance, during weekdays, a process starts every 20 minutes, we select the “Weekday” arrival timetable from the dropdown. This is a fixed arrival time, so we choose “Fixed” inter-arrival time and enter a value of 20. Also, we change the Time unit to “Minutes.”

Edit014

Note

To prevent us from entering incorrect values, Apromore displays inline alert messages signaling that we need to recheck the data. Alert messages are shown in red.

Specify the total number of cases. This indicates the number of cases that start in the simulation scenario. If 200 cases occur within our simulation scenario, the total number of cases is 200.

Edit015

If we wish to simulate a scenario that begins with some cases in the queue, we can specify the Number of cases in the queue at the start of simulation.

Edit016

We can exclude a certain percentage of statistics from the start and the end of the process instances that fall between the start and the end time of the simulation scenario. This is usually done considering the availability of resources and activities that are handled without any delays.

Edit017

We can specify the max branching probability error as well. When this is done, the gateway branching probabilities in the simulation results will not deviate more than the specified value. If, for instance, we simulate a process model with X/OR split gateways that have probability-based conditions, and we select a maximum branching probability error of 5%, the simulation results of the branching probabilities will not deviate more than 5% for all the X/OR split gateways.

Edit018

By default, the deterministic mode is unchecked. This means that when a simulation is performed with the same parameters, the simulated log slightly changes between every run. If we want to obtain the same log with the same simulation parameter, check the Deterministic mode.

Edit019

Multiple inter-arrival timetables

We can specify different inter-arrival times for different periods of the week. For instance, if, during weekends, a process starts every 30 minutes, we can add a new inter-arrival time for the Weekend timetable. To do this, click on the “+” sign by the Inter arrival time section.

Edit020

Select the new Inter arrival time from the Arrival timetable.

Edit021

Specify the distribution the inter-arrival time follows, the value, and the time unit. If a process starts every 30 minutes, we can specify a “Fixed” distribution, a value of 30, and Time unit in minutes.

Edit022

We can also define the number of cases that happen in this timetable. If we want 100 cases generated for weekends, we can specify the Total number of cases as 100.

Edit023

Attributes

In a simulation, we can specify that some of the branching behavior of the process depends on one or more attributes. Apromore distinguishes two types of attributes:

  • Case attributes: These are attributes that remain unchanged in a case, e.g., the “type of customer” in an order-to-cash process.

  • Event attributes: These are attributes that may be altered by the execution of activities in the case.

We can attach attributes to a simulation scenario. These attributes may behave as case attributes or event attributes, depending on whether they are modified by one or more tasks (event attributes) or never modified (case attributes).

To specify an attribute, open the model in BPMN Editor. Open the Properties pane. In the Simulation tab, click Attributes. Click the “+” sign to create a new attribute.

Edit024

Specify whether it is a categorical or numerical attribute and enter the name of the attribute. Edit the Attribute name to System.

Edit025

We can create the following categories for the system: Guidewire BillingCenter, Guidewire ClaimCenter, and iSight with 40, 30, and 30 percent, respectively. Click the “+” sign in Categories.

Edit026

Enter the categories and their respective probabilities.

Edit027

Note

The sum of probabilities for all the defined categories must equal 100.

To capture the fact that this attribute may be modified by the task being executed, we must specify which tasks will update it. Let’s say the “System” attribute changes when performing the “Analyze Defect” and “Register” tasks. Click the “+” symbol in the “Tasks updating the selected attribute” section to add these two tasks.

Edit028

In the Select task dropdown, add the tasks that affect the attribute.

Edit029

The added tasks are displayed in the “Tasks updating the selected attribute” section.

Edit030

Note

Specifying the “Tasks updating the selected attribute” section indicates an event attribute is being created.

For categorical attributes, we can also specify the probability distribution after executing a task. Click a task in “Tasks updating the selected attribute” to edit the probabilities. By default, the probabilities are inherited from the probabilities of the attribute.

Edit031

However, we can change the probabilities for each category.

Edit032

The categorical attribute is successfully defined.

Attributes can also be numerical. This is done by switching the slider to Numerical. Add a new attribute with the “+” sign and switch to the Numerical type.

Edit033

Examples of numerical case attributes would be the purchase amount of a case. In this case, we define its distribution and its value. For example, we can define an “Activity cost” attribute with an exponential distribution and mean of 2.386.

Edit034

Since it is a case attribute, we do not specify “Tasks updating the selected attribute”.

Case Priority

We can also define Case priority based on some conditions. For instance, if a case attribute is equal to one of the categories, the case should be a high priority, or vice versa. Priority is an integer from 1 to 10, with 1 indicating low priority and 10 indicating high priority. We can specify a Case Priority by clicking the “+.”

Edit035

We can add different clauses, the condition, and the corresponding priority. In the following example, we mean that when the system of a case is “iSight”, the case has a priority 9.

Edit036

We can also use the “Add else if statement” to add other conditions for case priority.

Edit037

Role parameters tab

The role parameter tab is used to define a role or role group used in the process. To create a new resource, go to the Role tab.

Edit038

Click on the “+” button to create a new role. We can use the slider to create a role or a role group.

Edit039

A role is a job title assigned to one or more resources that perform specific tasks. For instance, when a “Clerk” does the “Register” task. Edit the Role name to “Clerk”. A clerk works during weekdays. There are three clerks. Each clerk costs 30 euros per hour, and the clerk does the task “Register”. We can define the Resource as shown.

Edit040

We can add more tasks to a role. If, for instance, the clerk also does the task, “Archive Repair,” we assign this task to the resource by clicking on the “+” button in the Assigned task section.

Edit041

Select the specific task from the Assign task dropdown. The dropdown is a list of all tasks in the BPMN model.

Edit042

The selected task will be added to the Assigned tasks dialog box.

Edit043

On the other hand, we can define a role group. A role group is used when multiple roles do one or more tasks. For example, a ‘Junior Engineer’ and ‘Senior Engineer’ can do the ‘Analyze Defect’ task. In such a case, they should be defined as a role pool.

To specify this role group, we first must define the Junior Engineer and Senior Engineer roles.

Edit044

We have created two new Roles (Junior Engineer and Senior Engineer). To create the role group, click the “+” in the Roles section. Switch the slider to Role group.

Edit045

Add the Assigned tasks for the role group, which is “Analyze Defect”.

Edit046

Add a Group name, and finally, use the “+” button to add the roles to form the Group roles.

Edit047

Click the “Add role to group” dropdown to add the roles. In our case, we add “Junior Engineer” and “Senior Engineer”.

Edit048

Role performance handicap

In some cases, a role may take longer to complete an activity than the assigned activity duration. For instance, assume we have two different roles, namely “Junior Engineer” and Senior Engineer”. Let us assume that both roles can perform the same tasks (e.g., “Test Repair”, “Restart Repair”, etc.). However, the resources for the “Junior” role are 10% slower due to their lack of experience. To capture this difference, we can add a 10% “performance handicap” to the Junior Engineer.

To this end, go to the Roles tab. Add a new “Junior Engineer” role and specify the role timetable, number of resources, cost per hour, and assigned tasks. In Handicap, enter 10. The activity instances that the Junior Engineer performs will be, on average, 10% longer in duration than those performed by the Senior Engineer. For instance, a 15-minute activity instance would take 15 + (15 * 10%) = 16.5 minutes to the Junior role. Edit049

Role maximum allowed overtime

When we simulate a process model, a resource may sometimes begin an activity instance just before their work shift completes, in such a way that the resource is unable to complete the activity instance within their current shift. For instance, consider the following example. Mark (a Clerk) starts the “Archive Repair” activity, which takes 30 minutes at 4:40 pm. However, his shift ends at 5.00 pm, so he does not complete the activity in the current shift. The following day, Mark continues the activity execution and completes it in 10 minutes (at 9.10 am). In other words, the default behavior of the simulator is to interrupt an activity instance at the end of a shift and resume it at the beginning of the next shift (e.g., the next work day).

In reality, when faced with such situations, a resource may opt to do a 10-minute overtime to complete the task instead of postponing its completion to the next working day.

We can now capture this behavior by assigning a “maximum allowed overtime” to a role. In the above example, if the Purchase Agent role has a maximum allowed overtime of 10 minutes or more, the simulator will consider that Mark will use overtime to complete the above activity instance within the same work shift where it started.

To specify overtime hours allowed, go to the Roles tab. Add a new role and specify the role name, role timetable, number of resources for that role, and the cost per hour. In Maximum allowed overtime (in minutes), enter the overtime the role can take, say 30 minutes.

Edit050

In the screenshot above, we defined the Weekdays (Mon-Fri, 9 am to 5 pm) timetable with a 30-minute maximum allowed overtime. Thus, the simulation engine considers the role to be valid until 5:30 pm if necessary but not beyond.

Task parameters tab

The task tab is used to specify the behavior of each task in the scenario. To specify the task parameters, go to the task tab. The simulation parameters for all the tasks in the BPMN model are shown. The simulation parameters to define are:

  • The role pool responsible for performing this task. These are the roles defined in the Roles tab. Please note that we can assign multiple role pools to a task. When this is done, any specified roles can do the task.

  • The probability distribution of the task duration and the parameters of this distribution (e.g., the mean in the case of an exponential distribution). The task’s duration is the time it takes for a role to execute one instance of a task. Please note that the duration of a task must not include the waiting time before the start of the task. It should only include the processing time.

  • Fixed cost: A fixed cost may be incurred when performing a task. This can be specified in the Tasks tab.

  • External delays in arcs: Some tasks may be delayed before they are executed. We can set the external delays that exist in the arc.

Suppose we want to specify that the “Repair (Complex)” task occurs every 2 minutes. We can select the Fixed Duration distribution, set the Value to 2, and the Time unit to Minutes.

Edit051

Assuming the “Repair (Complex)” task requires external equipment with a fixed lending cost, we can specify the cost in the Fixed cost section. Let’s say this cost is 5 EUR.

Edit052

We can assign a resource pool for the task. If the Senior Engineer does the “Repair (Complex)” task, we can click the “+” button in the Task roles and select “Senior Engineer” from the Assign task role dropdown.

Edit053

Note

If tasks have been assigned to a role while creating roles in the Roles tab, the role will appear as a “Task roles” for the task in the Tasks tab.

Edit054

Note that we can have multiple role pools for the task. If, for instance, the Engineers’ role group (including both Junior Engineers and Senior Engineers) does the “Repair (Complex)” task, the role group must first be created. We can select Engineers from the Task roles dropdown.

Edit055

Note

The roles must have been defined in the Roles tab.

Note

We can precisely define the parameters of a task by clicking the task in the BMPN model. The simulation parameters tab for only the selected task pops up.

Waiting time parameters tab

We can specify a delay in sequence flow (arc). Go to the Waiting time tab. The waiting time parameters for all the arcs appear. If the Engineers hypothetically wait for 2 hours before they begin their task, we can specify this in the Waiting time tab. By default, all the waiting times are set to zero. Here is the arc for the waiting time we wish to specify.

Edit056

To find the waiting time for the arc going to the “Repair (Complex)” task, we look for the Analyze Defect > Repair (Complex) section. We can define the distribution as Fixed, set the value to 2, and the Time unit to hours.

Edit057

Note

We can precisely define the waiting time of an arc by clicking the arc in the BMPN model. The Waiting time tab for only the selected arc pops up.

Gateways parameters tab

Gateways is a BPMN notation used to control how a process flows. Gateways can be exclusive (XOR), meaning that precisely one alternative path can be selected, or inclusive (OR), meaning several paths can be selected. The Gateways tab is used to specify the behavior of the gateways in a process.

There are two ways of defining a gateway:

  • Through probabilities

  • Through conditions

Specifying gateways through probabilities

Gateway elements in the BPMN model require execution probabilities for their outgoing sequence flows.

Probability numbers show the percentage of cases following one or another gateway path.

Note

Usually, a smaller probability (for example, 40%) indicates low-value cases, while a larger probability (for example, 60%) shows high-value cases.

To define gateway probabilities, go to the Gateways tab.

Edit058

The BPMN model contains only 1 forward XOR with the 3 possibilities. This is why the Gateway tab presents three options: Archive Repair, Restart Repair, and Inform User.

Edit059

To specify the gateway’s behavior as probability, we can enter the probability of each task occurring after the gateway. For example, we can say Restart Repair happens 20% of the time, Inform User happens 60%, and Archive Repair happens 20%.

Note

We can precisely define the parameters of a gateway by clicking the gateway in the BMPN model. The simulation parameters tab for only the selected gateway pops up.

Edit060

Note

The sum of probabilities must equal 100.

Specifying gateways through conditions

We can also specify a gateway behavior through conditions. To do this, switch the slider to condition.

Edit061

Create clauses for each of the possible gateway outputs. A clause is simply a condition that must be fulfilled for the task to happen.

To create a new clause, click the “+” sign in the Clauses section. We may rename the clause by double-clicking on the clause name.

Edit062

Specify the clause details. For the Condition types, we could use a Case attribute or the Cycle time. If we want the Inform User task to be done when the customer type is Loyal Customer, we can use the case attribute to specify this condition.

In the Condition types section, select Case attributes. Select Customer Type as the Attribute. Use the Equal to (=) operation and select Loyal customers as the category.

Edit063

Note

When using case attributes for conditions, the case attribute must have been defined in the General tab.

We can also use cycle time to define the condition of gateways. If we want the “Restart Repair” to be done when the cycle time is less than 30 minutes, we can add a new clause under the Clauses section. Select Cycle time from the Condition types dropdown.

Edit064

Set the operator to ‘Cycle time is less than or equal to’. Set the value to 30 minutes.

Edit065

Note

A task may have more than one clause. We can click the “+” to add more clauses. When multiple clauses are defined, we can set the condition to be satisfied where both clauses are satisfied (using the AND operator) or when one of the clauses is met (using the OR operator).