SPUser

444
User’s Manual SIMPROCESS Release 2.2.1

Transcript of SPUser

User’s Manual

SIMPROCESSRelease 2.2.1

Copyright © 2000 CACI Products CompanyAugust 2000

All rights reserved. No part of this publication may be reproduced by any means without written permission from CACI.

The information in document is believed to be accurate in all respects. However, CACI cannot assume the responsibility for any consequences resulting from the use thereof. The information contained herein is subject to change. Revisions to this publication or new editions of it may be issued to incorporate such change.

SIMPROCESS is a registered trademark of CACI Products Company.

Table of Contents

Table of Contents

Organization of the SIMPROCESS Documentation Set .............. ix

Part ASIMPROCESS Functions and Features .................................................... 1

CHAPTER 1Process Modeling and Analysis with SIMPROCESS................... 3

What is Process Modeling?............................................................. 4Why Dynamic Modeling?............................................................... 6What is SIMPROCESS?................................................................. 7How Do You Use SIMPROCESS? ................................................ 8SIMPROCESS Terminology .......................................................... 9SIMPROCESS Menus .................................................................. 12

CHAPTER 2SIMPROCESS Basics .................................................................. 49

SIMPROCESS Model Components ............................................. 50Using the Palette Bar to Create Activities .................................... 55Generate Activity .......................................................................... 61Delay Activity............................................................................... 65Dispose Activity ........................................................................... 68Defining an Entity......................................................................... 69Defining Resources....................................................................... 73Defining a Process ........................................................................ 74Simulation Setup........................................................................... 77Running a Simulation ................................................................... 81Standard Output Report ................................................................ 83

SIMPROCESS User’s Manual i

Table of Contents

CHAPTER 3Statistical Modeling Constructs ................................................... 85

Why use a statistical approach? .................................................... 86Random Number Generation ........................................................ 87Standard Distributions .................................................................. 88User Defined Distributions ........................................................... 90Run Settings .................................................................................. 94

CHAPTER 4Activity Modeling Constructs....................................................... 97

Entity Related Activities ............................................................... 99Assemble Activity....................................................................... 100Batch Activity ............................................................................. 103Unbatch Activity......................................................................... 105Gate Activity............................................................................... 106Synchronize Activity .................................................................. 109Entity Control Activities ............................................................. 110Assign Activity ........................................................................... 111Transform Activity ..................................................................... 113Branch Activity........................................................................... 116Branch Connectors...................................................................... 119Merge Activity ............................................................................ 123Copy Activity.............................................................................. 124Split and Join Activities .............................................................. 125Defining a Split Activity............................................................. 127Defining a Join Activity.............................................................. 132

CHAPTER 5Resource Modeling Constructs .................................................. 135

Resources and Simulation........................................................... 137Defining Resources..................................................................... 138Defining Resource Requirements for Activities ......................... 142

ii SIMPROCESS User’s Manual

Table of Contents

Explicitly Getting and Freeing Resources .................................. 146Replenishing Consumable Resources ......................................... 153

CHAPTER 6Graphical Modeling Constructs................................................. 157

Background Text......................................................................... 158Background Graphics ................................................................. 160Importing Bitmap Graphics ........................................................ 161

CHAPTER 7Activity-Based Costing ............................................................... 163

Introduction to Acitivity-Based Costing..................................... 164Why ABC?.................................................................................. 165What is ABC? ............................................................................. 166How Does SIMPROCESS Implement ABC?............................. 167Benefits of ABC with SIMPROCESS ........................................ 168How to Use ABC in SIMPROCESS........................................... 169Setting Up Cost Periods .............................................................. 170Setting Up Resource Costs ......................................................... 172Cost Calculations ........................................................................ 175Displaying ABC Reports ............................................................ 177

CHAPTER 8Output Reports............................................................................ 181

Standard Output Report .............................................................. 182Custom Statistics......................................................................... 185Simulation Results File ............................................................... 195

SIMPROCESS User’s Manual iii

Table of Contents

Part BAdvanced SIMPROCESS Functions and Features.............................. 197

CHAPTER 9Reusable Templates and Libraries............................................. 199

Library Concepts......................................................................... 200Defining and Editing Templates ................................................. 202Editing Templates ....................................................................... 203Saving a Resource for Reuse ...................................................... 208Importing Bitmap Graphics For Use As Palette Icons ............... 212

CHAPTER 10Customizing a Model with Attributes and Expressions ............ 213

Introduction to Attributes and Expressions ................................ 215Using Attributes in SIMPROCESS ............................................ 218User Defined Attributes .............................................................. 220Assign Activity ........................................................................... 230Variable Resource Usage............................................................ 232Writing Expressions.................................................................... 234Evaluate (Evl) Function .............................................................. 240Expression Activation Events ..................................................... 241Attribute Value Initialization ...................................................... 246Example: Batching Entities Based on Weight ............................ 247User-Defined Functions .............................................................. 257Dynamic Labels .......................................................................... 258Summary..................................................................................... 262

CHAPTER 11More Advanced Model Building................................................ 263

Defining a More Complex Generate Activity............................. 264Downtime Schedule of Resources .............................................. 280

iv SIMPROCESS User’s Manual

Table of Contents

Event Logs .................................................................................. 291

Part CAdvanced SIMPROCESS Tools............................................................. 299

CHAPTER 12Advanced Data Analysis............................................................. 301

An Introduction to Data Analysis and Modeling........................ 303Why Statistical Simulation Experiments? .............................................................................. 306SIMPROCESS Statistical Distributions ..................................... 308

CHAPTER 13SIMPROCESS Database ............................................................311

Commiting Results To The Database ......................................... 312System, Design, And Scenario ................................................... 313Database Table Relationships ..................................................... 316Database Queries ........................................................................ 317Forms (Graphs) And Reports...................................................... 319Launch Database Application ..................................................... 321

CHAPTER 14Graphics Editor Tool .................................................................. 323

Running SIMDRAW .................................................................. 324Using the Image Editor ............................................................... 327

SIMPROCESS User’s Manual v

Table of Contents

CHAPTER 15Experiment Manager ................................................................. 339

Defining Experiments ................................................................. 340Running Experiments ................................................................. 348

Appendices ............................................................................................... 355

Appendix AActivity Summary Table ............................................................ 357

Appendix BSIMPROCESS File Structure .................................................. 361

Appendix CStatistical Distributions ............................................................. 369

Uniform Distribution .................................................................. 370Normal Distribution .................................................................... 371Triangular Distribution ............................................................... 372Exponential Distribution............................................................. 373Gamma Distribution ................................................................... 374Beta Distribution......................................................................... 375Erlang Distribution ..................................................................... 376Weibull Distribution ................................................................... 377Lognormal Distribution .............................................................. 378Poisson Distribution.................................................................... 379Hyper Exponential ...................................................................... 380Uniform Integer .......................................................................... 381Geometric.................................................................................... 382Hyperbolic .................................................................................. 383

vi SIMPROCESS User’s Manual

Table of Contents

Appendix DStatistical Tools Glossary .......................................................... 385

Appendix ESIMPROCESS System Methods and Examples ...................... 393

System Attributes........................................................................ 393SIMPROCESS System Methods ................................................ 399System Method Examples .......................................................... 403SIMPROCESS Color Table........................................................ 410

Appendix FSimulation Results File ............................................................. 411

Format of the Simulation Results File ........................................ 412

Appendix GExternal Event Files.................................................................. 419

General Rules for Event Files ..................................................... 419Event Record Description ........................................................... 421Examples..................................................................................... 424

Index ......................................................................................................... 425

SIMPROCESS User’s Manual vii

Table of Contents

viii SIMPROCESS User’s Manual

Organization of the SIMPROCESS Documentation Set

The SIMPROCESS documentation set consists of two manuals:

• Getting Started With SIMPROCESS• SIMPROCESS User’s Manual

Getting StartedThe Getting Started With SIMPROCESS manual is a must for first time SIMPROCESS users. This manual can also be used for evaluation purposes. Chapter 1 provides an overview of Process Modeling and Analysis and the SIMPROCESS product. Chapter 2 provides system requirements and installation instructions. Chapters 3 and 4 of the Getting Started With SIMPROCESS manual provides a tutorial and Chapter 5 provides a description of the demonstration and reference models.

SIMPROCESS User’s Manual ix

Organization of the SIMPROCESS Documentation Set

User’s ManualThe User’s Manual is distributed in electronic format with SIMPROCESS. It can be opened directly from the SIMPROCESS Installation CD, or from the Help/On-line Documentation menubar option.

The User’s Manual is divided into three parts. Part A is an excellent reference for beginners and casual users. This part contains a detailed documentation of the basic and intermediate functions of SIMPROCESS. Chapters 1 and 2 provide SIMPROCESS terminology and basics. Chapter 3 provides a detailed description of SIMPROCESS Statistical Constructs and their use. Chapter 4 describes in detail how the SIMPROCESS Activity Modeling blocks are used. Chapter 5 describes the use of Resources. Graphical Modeling Constructs are covered in Chapter 6. Chapter 7 is dedicated to Activity-based Costing. Chapter 8 covers the Output Reports for analysis.

Part B is a reference intended for advanced users of SIMPROCESS. This part contains a detailed documentation of the programming and library management functions in SIMPROCESS Professional. Chapter 9 provides documentation of the Reusable Templates and Library Management. Chapter 10 covers the Advanced SIMPROCESS constructs such as attributes, expressions, and timestamps. Chapter 11 wraps-up the advanced features of SIMPROCESS with descriptions of the complex features of the Generate activity and Downtime Schedules for Resources.

Part C describes the integrated statistical and drawing tools included with SIMPROCESS Professional. Chapter 12 of this manual provides an introduction to data analysis and Stat::Fit. Chapter 13 covers using the SIMPROCESS Database, while Chapter 14 discusses using the graphics editor tool, SimDraw. The Experiment Manager is described in Chapter 15.

x SIMPROCESS User’s Manual

Part ASIMPROCESS Functions and Features

The chapters in Part A describe the basic functions and features of SIMPROCESS.

SIMPROCESS User’s Manual 1

2 SIMPROCESS User’s Manual

CHAPTER 1

Process Modeling and Analysis with SIMPROCESS

SIMPROCESS User’s Manual 3

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

What is Process Modeling? The goal of Process Modeling is to create a simplified but useful model of a business enterprise. The enterprise can be a small work group or development team, a particular division, a related set of departments, or even an entire company. The model allows an analyst to study the processes in a business in order to:

• Determine any bottlenecks or wasted effort• Devise revisions to the process to correct performance

problems• Select process designs that give the best results• Provide cost justification to planned alternatives• Establish performance targets in the new process

implementation

Many types of tools and techniques are available for Process Modeling. Frequently, a simple diagram or flowchart can expose the obvious redundancies, unnecessary work, and inefficiencies in a given process. Tools which provide simple diagramming of a process are called static modeling tools. However, to expose less obvious bottlenecks and costs intrinsic to the process requires information about the resources employed in the process, measurements of the processing capacity of the resources, and some measure of the expected workflow through the process.

Unfortunately, many process modeling tools today do not allow a quantified analysis of the process under study. And those that do, do not take into account the:

• Time varying nature of many processes• Non-linear interactions among elements of a process• Randomness in the behavior of most real processes• Unexpected events which can occur in the business

environment.

The bottom line is that most processes are not well characterized by deterministic, mathematical models. For a quantified analysis of the time varying business process, you need a dynamic business process

4 SIMPROCESS User’s Manual

What is Process Modeling?

modeling tool, which can simulate the behavior of the process as it responds to the events occurring in the business environment.

SIMPROCESS User’s Manual 5

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Why Dynamic Modeling?In a dynamic model, a computer simulates the flow of materials and information through the process. The dynamic model accounts for the random variations in how work is done and the way materials (and information) flow through the real world. Simulation offers several advantages over a simple pictorial abstraction of a business process. SIMPROCESS employs discrete event simulation to capture the time varying nature of the process under study.

SIMPROCESS advantages include:• First, the analyst can correlate the data produced by the model

with measurements taken from the real processes to gain a good degree of certainty that the model has adequately captured the essential features of the real process.

• Second, the model will generate quantified process measurements such as: excess capacity or bottlenecks, the time it takes work items to flow through the process, and the percentage of time in value-adding processes versus non-value-adding processes.

• Third, the model allows the analyst to estimate, in quantified terms, the effects of reengineering the process.

6 SIMPROCESS User’s Manual

What is SIMPROCESS?

What is SIMPROCESS? SIMPROCESS is a hierarchical and integrated process simulation tool that radically improves your productivity for process modeling and analysis. SIMPROCESS is designed for BPR and IT professionals of industrial and service enterprises who need to reduce the time and risk it takes to service customers, fulfill demand, and develop new products.

Unlike other tools, SIMPROCESS integrates process mapping, hierarchical event-driven simulation, and activity-based costing (ABC) into a single tool. The architecture of SIMPROCESS provides an integrating framework for ABC. The building blocks of SIMPROCESS are processes, resources, and entities (flow objects), bridges, ABC and dynamic process analysis. ABC embodies the concept that a business is a series of inter-related processes, and that these processes consist of activities that convert inputs to outputs. The modeling approach in SIMPROCESS manifests this concept, and builds on it by organizing and analyzing cost information on an activity basis.

ProcessMapping

Event-drivenSimulation

Activity-basedCosting

SIMPROCESS

SIMPROCESS User’s Manual 7

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

How Do You Use SIMPROCESS?SIMPROCESS allows you, as a consultant or analyst, to create an abstract model of a process under study. With it, you produce a computer model of a business process from which documentation (diagrams and descriptions) can be printed. While the functionality of most business process modeling tools ends at that point, the value of SIMPROCESS has just begun.

Because SIMPROCESS is a dynamic modeling tool, it also allows you to simulate the flow of entities through the defined process. Entities could be:

• proposals• orders• invoices• customers• work-in-process• patients

In fact, many things that a process receives, acts upon, or produces should be included in the definition of the business process. Items flow from one process step to the next and at each step some task is performed. The Resources, such as people, machines, or information required to complete the tasks are also included in the business model. SIMPROCESS employs simple elements to construct a business model: Processes, Resources, and Entities.

During a simulation, SIMPROCESS generates valuable information about the Activities, Entities, and Resources in the model. From this data, you can make sure that the process has been accurately captured. Next, you can use the generated statistics and reports to determine where the process needs to be improved. Finally, SIMPROCESS allows you to try out proposed alternatives and different management policies. To sum it up, SIMPROCESS helps a team decide which changes to the structure and operational policies in a business process will provide the most benefits.

8 SIMPROCESS User’s Manual

SIMPROCESS Terminology

SIMPROCESS TerminologyThis manual uses the following words and meanings in its description of SIMPROCESS.

Activities

An Activity is a basic step in a model where an operation is performed on a entity, possibly using Resources. Examples of activities are Generate, Delay, and Dispose. An activity may or may not involve passage of time.

Attributes

Attributes are system and user-defined variables of model elements whose value can change during the course of a simulation run. Attributes may be used to:

• Alter the behavior of a process by changing the value of an attribute during a simulation. They can also be used to:

• Communicate information (such as attribute values) between two processes in a model. Or,

• Store data collected during a simulation run.

Connectors

Connectors link Activities and Processes together and are paths used by entities to flow through the model.

Cycle time

A Entity’s cycle time is the sum of the processing times and delays it encounters as it travels across the model.

SIMPROCESS User’s Manual 9

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Entities

An entity represents people, goods or information. Most are produced as a result of a process or activity. Prior to introducing instances of an entity into the model, an entity type must be defined from the menu.

Most frequently, instances of a predefined entity type are created at the Generate activity, although other activities (e.g. Batch, Assemble) may produce entity instances as well. Entities must be disposed to ensure statistics collection

Hierarchical Processes

The concept of Process provides hierarchical modeling capabilities. A Process is a collection of Activities and sub-Processes organized as a model network.

Layout

The layout contains graphical representations of the activities, processes, and connectors that make up your SIMPROCESS model. The entities only appear on the layout while the simulation is running. The layout can be made to resemble the physical layout of a system or it can be closer in appearance to a flow diagram. It is only the topology that matters.

Model

A SIMPROCESS model is a representation of the system being studied. It is not intended to be an exact duplicate of the system, but rather a simplified version that just captures the relevant features.

Pads

Pads are small triangular graphic objects located along the border of an Activity/Process. Pads are used for connecting connectors to the

10 SIMPROCESS User’s Manual

SIMPROCESS Terminology

inputs and outputs of the Activity/Process. Entities enter and exit activities through input and output pads.

Sub-Process (Alternative)

Alternative Processes define alternative behaviors of a Process. Any number of alternatives can be associated with a Process, but only one can be active at any point in time.

Resources

The agents required to perform an Activity are known as Resources. People, computers, and trucks are all examples of Resources. Resources may be consumable or reusable.

Simulation

Simulation is defined as the reproduction of the dynamic and random behavior of a business process with the goal of quantifying some key characteristics of the business process.

Templates

Templates of Activities, Processes, and Resources can be stored in a library for reuse.

SIMPROCESS User’s Manual 11

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

SIMPROCESS Menus

File Menu

New

File/New creates a new model file. If you already have a model open, you will be prompted on whether or not you wish to save any changes to the open model. You can only have one model open at a time.

Open

File/Open loads a previously saved model. If you already have a model open and you have made changes since your last save, you will be prompted on whether or not you wish to save any changes to the open model. You can only have one model open at a time.

Save

Saves the model. It is a good idea to save a model any time you make changes to it, and to save a model under a different name any time you extensively change a model. SIMPROCESS saves your models with the extension.spm and at the same time also saves a backup with the extension .bck. To save a new model or to save an existing model

12 SIMPROCESS User’s Manual

SIMPROCESS Menus

under a new name, use File/Save As…. For information on automatic saving, see “Other Preferences” on page 22

Save As…

Used to save a model for the first time, or to save a model with a new name. If you plan on making extensive revisions to an existing model, it is a good idea to load the model and then give it a new name using Save As…. You should do this even if you do not think you will be going back and using the old model. You will often find that after making revisions to a model you may decide that you have proceeded down a “blind alley,” and wish that you could go back to your original model. If you save copies of your models as you make changes it will give you a way to backtrack, if necessary.

Import

Bitmap File…

This command lets you import a bitmap to use as a SIMPROCESS icon or background. The file type is the standard bitmap file type for the windowing environment you are using. For example, on Microsoft Windows systems, the file type used is the Windows Bitmap (.BMP); on X-Window systems, the file type is the X-Windows bitmap (.XWD). You must give the imported bitmap a unique name.

SA/BPR File...

This command lets you import a file from SA/BPR System Architect from POPKIN Software. See the SA/SIMULATOR documentation for more information on this feature.

Export

ASCII Model File…

Outputs the model to a file in text format for the purpose of portability between platforms.

SIMPROCESS User’s Manual 13

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Bitmap File…

Creates a bitmap image of the current layout. The bitmap file type will be the default for the platform you are using: on Windows machines, it will be a .BMP file; on X-Windows platforms, it will be an .XWD file.

Encapsulated Postscript…

Creates an encapsulated PostScript image of the current layout. Encapsulated PostScript files can easily be imported into a word processor or other program. A preview bitmap is not included with the EPS file, so that you will not see an image of the file in your application, just a sizing box.

InConcert Workflow File

Outputs your model file in a format that can be read by the InConcert Workflow tool. See the InConcert documentation for more information on this feature.

Simulation Results...

Exports the results of the current model to a tab-delimited file. The data from all reports selected for the current model will be written to this file. The file can be opened with a text editor or spreadsheet.

Activity List...

Outputs the process and activity hierarchy to an ASCII file.

14 SIMPROCESS User’s Manual

SIMPROCESS Menus

You can set various options for the EPS file.

Print All will write all levels of the model hierarchy to the EPS file.

PS fonts will use actual PostScript fonts instead of the SIMPROCESS fonts. We recommend that you use this option for readability.

If Show border is enabled, a border will be drawn around the EPS graphic and it will be labeled with the name of the model.

Normally you leave the Number of Copies set to 1.

Although you can resize an EPS graphic in an application, it is often convenient to set the Width and Height to be close to the size you will be printing them at. This will make the default size in your application to be your chosen size.

You can change the Background Color (%) for you intended final use. For most applications its probably best not to make the Background Color either white (R=100, G = 100, B= 100) or completely black (R=0,

SIMPROCESS User’s Manual 15

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

G=0, B=0). The default values produce a pale gray when printed on a black and white printer. See the EPS graphic above.

You can shift the EPS image around by entering an Offset From Lower Left. You might want to do this if you are capturing an image that is not centered on the layout.

You can change the Orientation of the EPS image. Portrait is the default; Landscape will rotate the image of the layout 90 degrees in the EPS file.

Print

Print Layout…

This command prints a picture of the current model layout to the system printer. Background icons will be printed, but the layout color will not be.

Process Documentation…

Creates a text file with a description of a selected process. The file, with a .doc extension, contains the information entered into the description created when the Document command button was used, as well as the path to each subprocess and their descriptions. The following is a sample process documentation file.

Process Name: Process2Process Path: Process2Process Comment: AS-IS Process with 3 Service and 4 Sales Reps

Process Name: Alt1Process Path: Process2:Alt1Process Comment:

Process Name: Route CallsProcess Path: Process2:Alt1:Route CallsProcess Comment:

Process Name: Customer ServiceProcess Path: Process2:Alt1:Customer ServiceProcess Comment:

Process Name: SalesProcess Path: Process2:Alt1:SalesProcess Comment:

16 SIMPROCESS User’s Manual

SIMPROCESS Menus

Model Documentation…

This command creates a file with a .doc extension which contains a description of all elements of the model. This includes Name, Path and Comment field entries of all Activities/Processes, Entities, and Resources in the model. Any information you have added using the Document command button is also included in this file. The following is a sample model documentation file.

Printing Model Documentation on Wed Jan 17 13:50:16 1996_________________________________________________________ Process Section _________________________________________________________

Process Name: Process1Process Path: Process1Process Comment: This process generates 2 types of calls

Process Name: Process2Process Path: Process2Process Comment: AS-IS Process with 3 Service and 4 Sales Reps

Process Name: Process3Process Path: Process3Process Comment:

Process Name: Alt1Process Path: Process1:Alt1Process Comment:

Process Name: Alt1Process Path: Process2:Alt1Process Comment:

Process Name: Alt1Process Path: Process3:Alt1Process Comment:

Process Name: Generate Service CallsProcess Path: Process1:Alt1:Generate Service CallsProcess Comment:

Process Name: Generate Sales CallsProcess Path: Process1:Alt1:Generate Sales CallsProcess Comment:

Process Name: Route CallsProcess Path: Process2:Alt1:Route CallsProcess Comment:

SIMPROCESS User’s Manual 17

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Process Name: Customer ServiceProcess Path: Process2:Alt1:Customer ServiceProcess Comment:

Process Name: SalesProcess Path: Process2:Alt1:SalesProcess Comment:

Process Name: Dispose9Process Path: Process3:Alt1:Dispose9Process Comment:

_________________________________________________________ Entity Section _________________________________________________________

Entity Service CallsEntity priority

Entity Sales CallsEntity priority

Entity dummyentityEntity priority

_________________________________________________________ Resource Section _________________________________________________________

Process Name: Sales RepProcess Comment:

Process Name: Service RepProcess Comment:

List of Most Recently Used Models

The File menu contains a list of the most recently used models. You can load any of these models by clicking on its name, without going through File/Open….

Exit

Quits SIMPROCESS. If you have made edits since you last saved the current model, you will be prompted to save your model before exiting.

18 SIMPROCESS User’s Manual

SIMPROCESS Menus

Edit Menu

Cut

Cuts the selected object from the model layout. The cut object is copied to a temporary storage area and the object may be pasted onto a different part of the layout using Edit/Paste. Certain objects, such as Connectors, can only be cleared and cannot be cut.

Copy

Copy places a copy of the selected object in a temporary storage area. It will remain there until replaced by another object that is cut or copied. Once a copy is made, it can be pasted on the layout by using the Edit/Paste command.

Paste

Edit/Paste makes a copy of the object in the temporary storage area and pastes it onto the layout. If you want to make multiple copies of an object, you can Paste again and again, without having to make another copy of the original object.

SIMPROCESS User’s Manual 19

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Duplicate…

Duplicate is a shortcut that copies a selected object from the layout and then does a paste to a position selected on the layout. This combines the two preceding commands into one command. This is useful when you want to quickly copy something on the layout and paste it somewhere else.

Clear

Deletes a selected object without copying it to the clipboard. Certain objects, such as Connectors, can only be cleared and cannot be cut.

Select All

Selects all objects on the model layout.

Resize

Lets you resize a layout object. You can resize the horizontal and vertical directions separately if you wish to resize the icon in a non-proportional way.

20 SIMPROCESS User’s Manual

SIMPROCESS Menus

Preferences

This menu item lets you set personal preferences for various options in SIMPROCESS. These preferences take effect after the dialog is closed. They do not affect items that are already on the layout.

Toolbars

This item lets you turn the Toolbar, Palette, or Colorbar, on or off. You may wish to turn one or more of them off, if you need more space in the work area.

Activities

Show Name lets you specify whether you want the name to show on the layout by default when a new activity is created.

If Confirm Delete is checked, SIMPROCESS will ask for confirmation when you delete an Activity.

If Show Text Block is turned on, the text blocks for the activities will be displayed on the layout.

Icon Scale lets you set the default size for new activities. If you are only going to have a few activities on screen you might set this to a large value, or if you are going to have many activities you might set it to a small value.

Pads

Show Name lets you specify whether you want the name to show on the layout.

If Confirm Delete is checked, SIMPROCESS will ask for confirmation when you delete a Pad.

Icon Scale lets you set the default size for new pads.

Connectors

Show Name lets you specify whether you want the name to show on the layout.

If Confirm Delete is checked then SIMPROCESS will ask for confirmation when you delete a Connector.

SIMPROCESS User’s Manual 21

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Line Width lets you specify the default line width for new connectors.

If line width is zero, Line Style will be active, and the default line style for new connectors can be set.

Other Preferences

Show Graphic Handles lets you specify whether the resize handles will be visible when an activity or process is selected.

Time Between Auto Saves determines the approximate amount of time between automatic saves of your model. The automatic save feature creates a file with the same name as your current model, except with the extension .tmp. If your current model is new and you have not saved your work to a .spm file, the name of the temporary file will be default.tmp and will be located in the Spuser directory. The time is approximate because the automatic save feature is only active when a model is being built or modified. The feature does not activate during simulation runs, during Experiment Manager operation, or during periods of inactivity.

NOTE

Documentation editor lets you specify the text editor for documentation. The default is Notepad, but programs like MS Word can be used. Chapter 2–SIMPROCESS Basics, on page 59 describes documenting your model.

The automatic save does not affect the .bck file. The .bck file is created or updated when you initiate a save. See “Save” on page 12 for information on the backup file.

22 SIMPROCESS User’s Manual

SIMPROCESS Menus

Activity Browser…

The Activity Browser is a handy feature for navigating among and editing activities. A dialog box lists all the activities and processes contained in your model. Any name followed by a (+) signifies a hierarchical process. Double-clicking on the name will expand the tree diagram, displaying activities and processes underneath. If the name is followed by (E) then the activity has an expression, and if the name is followed by (R) then the activity has a resource.

You can select an activity and either Edit the properties of that activity

SIMPROCESS User’s Manual 23

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

or Go To the layer in the model layout where that activity resides. Also, you can search for a specific activity by name, display only the activities with expressions, expand the complete model hierarchy, and contract to the highest level of the model.

Properties…

Selecting Edit/Properties… will bring up the Properties dialog box for the selected item. For an activity this has the same effect as double-clicking on it (on Windows platforms). You will use this menu item most often when you want to edit Hierarchical Processes, since double-clicking on them will show their internal structure, and not bring up their dialog box.

24 SIMPROCESS User’s Manual

SIMPROCESS Menus

View Menu

Descend

Descend will take you down one level in the model hierarchy.

Ascend

Ascend will take you one level up in the process hierarchy.

Go To Top

Go To Top takes you to the top of the process hierarchy.

SIMPROCESS User’s Manual 25

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Activities

Hide

Hides the selected activity. The activity and its connectors to it will not be visible on the layout.

Show All

Makes all Activities and their connectors visible.

Show Attached

Makes all the Activities that are connected to a selected Activity visible.

Resources

By Activity

View or edit resource usage by activity. The activities with resources are displayed first. Other activities can be displayed by expanding the processes.

Activity Names

These menu items only affect the display of activity names. The changes are not saved with the model.

Show All

Show All makes all activity names visible throughout your model.

Hide All

Hide All makes all activity names invisible throughout your model.

Local

Local shows or hides activity names based on their individual properties (set with the Properties dialog Show name checkbox). This is the default setting when you open a model.

26 SIMPROCESS User’s Manual

SIMPROCESS Menus

Connector Names

Show All

Show All makes all connector names visible throughout your model.

Hide All

Hide All makes all connector names invisible throughout your model.

Local

Local shows or hides connector names based on their individual properties (set with the Properties dialog Show name checkbox). This is the default setting when you open a model.

Pad Names

Show All

Show makes all pad names visible throughout your model.

Hide All

Hide makes all pad names invisible throughout your model.

Local

Local shows or hides pad names based on their individual properties (set with the properties dialog Show name checkbox). This is the default setting when you open a model.

Zoom In

Zoom In allows you to magnify a section of the layout to see more detail. After choosing Zoom In, select the area you wish to see in detail by clicking and dragging the mouse to define a rectangle on the layout.

SIMPROCESS User’s Manual 27

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Zoom Out

Zoom Out is the reverse of Zoom In. It lets you see a larger portion of the screen layout.

View (1:1)

Returns the layout window to its original size.

Fit to Window

Zooms to a size at which the entire model layout, that is, the number of screens specified in Layout/Size, is visible at one time.

Refresh

Redraws the current screen.

28 SIMPROCESS User’s Manual

SIMPROCESS Menus

Layout Menu

Size…

Sets the size of the work area in terms of the number of “screens.” For example, if the view were set at 1:1 and the size is two screens, then there is twice as much work area as is visible.

Background Color

Changes the background color of the layout to the selected color. If the color bar is not visible, the new color of the background may be a surprise!

SIMPROCESS User’s Manual 29

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Align…

With this command you can align a number of selected objects according to various criteria.

Top will align the tops of the selected objects.

Bottom will align the bottoms of the selected objects.

Left will align the left sides of the selected objects

Right will align the right sides of the selected objects

Center (Vertical) will align the centers of the selected objects along a vertical line.

Center (Horizontal) will align the centers of the selected objects along a horizontal line.

The screen shots below show the effect of using Align.

30 SIMPROCESS User’s Manual

SIMPROCESS Menus

Before aligning the horizontal centers:

After aligning the horizontal centers:

SIMPROCESS User’s Manual 31

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Distribute…

This will distribute three or more selected objects so that they are equally spaced, either in a vertical direction, a horizontal direction, or about a circle.

The screen shots below show the results of using Distribute on some unequally spaced objects.

Before using Distribute:

32 SIMPROCESS User’s Manual

SIMPROCESS Menus

After using Distribute:

Distribute Pads

If you have added pads to a Hierarchical Process, you can space them evenly by selecting Distribute Pads.

Group

Combines multiple objects into a group. Once objects are grouped, all normal editing operations that can be done on an individual object can be done on the group. This can be useful when your model is divided into logical sections. You may be happy with the way each section appears, but not with their relation to one another. You can group a section, and then move it with respect to the other sections. You could also cut the group from the layout, or copy and paste it to create an identical group.

If you wish to edit individual components of a group, use Ungroup.

Ungroup

Breaks up a group into the original components that went into making the group.

SIMPROCESS User’s Manual 33

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Bring to Front

Brings an object that is behind another on the layout to the front so that it can be edited.

Send to Back

Sends an object that is at the front of the model layout to the back, to allow editing of objects that were behind it, so that you can hide the object behind the other objects.

Snap To Grid

If Snap To Grid is turned on, you can only place objects on the layout at grid intersections.

Grid Lines

Places a grid on the model layout as a convenience in aligning objects. The grid has no significance to your model.

Grid Spacing

Changes the spacing of the grid. Three levels are offered: Fine, Medium, and Coarse.

Grid Color

Changes the color of the grid to the color selected on the color pallette.

Create Menu

Activities

This command provides an alternative way of creating Activities, rather than graphically dragging and dropping them from the palette.

34 SIMPROCESS User’s Manual

SIMPROCESS Menus

When you add new Activities to the library, they will be added to this menu even if you do not add them to the palette.

Processes

This command provides an alternative way of creating processes, rather than graphically dragging and dropping them from the palette.

When you add new processes to the library, they will be added to this menu even if you do not add them to the palette.

Define Menu

SIMPROCESS User’s Manual 35

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Entities…

Used for adding, editing, copying and removing Entities to the model.

Resources…

Used for adding, editing, copying and removing Resources to the model.

36 SIMPROCESS User’s Manual

SIMPROCESS Menus

Distributions

Used for adding, editing, copying and removing customized Standard and Tabular Distributions to the model. Once a Distribution is defined, it can be used throughout the model without the need to redefine the parameters of the distribution.

SIMPROCESS User’s Manual 37

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Functions…

Used for adding, editing, copying and removing Functions to the model. If you have a mathematical function which you would like to use in several places in your model you can define it here.

Seeds…

Used for viewing the random number stream seeds.

Attributes

Used for globally defining attributes for entities, resources, activities, and the model.

38 SIMPROCESS User’s Manual

SIMPROCESS Menus

Time Stamps…

Used for adding, editing, copying and removing Time Stamps to the model. Time Stamps can be used as event logs.

Templates

Used for defining and editing Templates. This option also allows saving templates to a library or loading a new library.

Model Description…

This feature is useful for providing an overview of your model so users can quickly familiarize themselves with your model.

SIMPROCESS User’s Manual 39

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Simulate Menu

Run Settings…

Simulation Period

The Simulation Period determines how long your simulation will run. It is given in calendar and time format. Choose an appropriate time span to see all aspects of your system.

40 SIMPROCESS User’s Manual

SIMPROCESS Menus

Warmup Every Replication

Sets whether or not you wish to have a warmup period for every replication. If this box is not checked, there will only be a warmup period before the first replication.

Reset Random Number Streams

Resets the random number streams between replications.

Reset System

Resets the system to the initial conditions before each replication.

Number of Replications

Since statistical variation is built into SIMPROCESS, it is a good idea to run the simulation more than once for statistical accuracy. The Number of Replications is the number of times the simulation will be run.

Warmup Length

The Warmup Length is the amount of simulation time that will elapse before statistical data is collected. You might want to have a warmup period if you are worried about transient effects, and wish the simulation to reach a steady state before collecting data.

Timescale

This option has the effect of allowing you to set a timescale so that events that are too close to each other and events that are too far apart can be differentiated. Animation time will be lengthened by this value. The larger the number the farther apart the events.

If you use the default value of 0, no real clock time is spent between two consecutive simulation events. The simulation clock jumps from the time of one event to the time of the next event.

By setting Timescale to a value between 0 and 1, you cause SIMPROCESS to wait for some period of real time to elapse before moving on to the next event. This has the effect of slowing down the animation of a simulation, making it easier for you to see what is occurring at each moment.

SIMPROCESS User’s Manual 41

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

For example, if you set Timescale to 0.16, approximately one second of real clock time elapses for each minute of simulation time. Set Timescale to higher numbers to achieve a greater ratio of clock time to simulation time. If animation is turned off, set Timescale to zero.

Define Cost Periods…

Helps you define cost periods for activity based costing calculations.

Animation Settings…

Show Clock

Turns on or off a clock which displays simulation time while the simulation is running.

Show Counts

If Show Counts is turned on, each activity or process will display a number above its icon. Counts for Generate activities show the number of entities generated. Counts for Dispose activities show how many entities have been disposed. Counts for all other activities and processes show how many entities are in that process or activity.

Show Entities

Show Entities turns the display of entities on or off during the animation. Showing entities helps you visualize the workflow.

42 SIMPROCESS User’s Manual

SIMPROCESS Menus

Update Dynamic Labels

Update Dynamic Labels turns the display of dynamic labels on or off during the animation.

Animation Speed

You can change the Animation Speed to speed up or slow down the simulation. The fastest value is 5000, and the default is 1000. You may wish to set this to a smaller value while you are debugging your model. The smallest value allowed is 1.

Run

Verifies the model and then starts the simulation running.

Pause

Pauses the simulation.

Resume

Resumes running a paused simulation.

Stop

Stops the simulation and ends the collection of statistics. You may choose to save reports from partial runs.

Animation On

Turns on animation that has been turned off with Animation Off, but does not turn on animation that is turned off in the Animation Settings.

Animation Off

Turns all animation off, regardless of the individual settings (clock, counts, entities).

SIMPROCESS User’s Manual 43

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Verify Model

Checks the model to see whether or not all the activities are connected properly and whether the model can be simulated. If, for example, a Generate activity is left unconnected, the verification process will alert you to this.

Report Menu

Define Global Statistics Collection

Define Global Statistics Collection is where you set which statistics you wish to collect during the model execution. It is described in detail in Chapter 8–Output Reports, on page 181.

Define Real-Time Plots

Define Real-Time Plots is where you set which real-time plots you wish to view during the simulation run. It is described in detail in Chapter 8–Output Reports, on page 181.

44 SIMPROCESS User’s Manual

SIMPROCESS Menus

Display Standard Report

Display Standard Report is where you view the results from the simulation run either in a text editor or a spreadsheet. It is described in detail in Chapter 8–Output Reports, on page 181.

Display ABC Reports

Displays the Activity-Based Costing reports. Described in detail in Chapter 7–Activity-Based Costing, on page 163.

Commit to Database

Commit to Database is where you send simulation results to the SIMPROCESS database (SimProcDB). Described in detail in Chapter 13–SIMPROCESS Database, on page 311.

Launch Database Application

Launch Database Application allows you to start your database application from within SIMPROCESS. The Manage Results form launches automatically when launching MS Access from this menu item. The Manage Results form is described in detail in Chapter 13–SIMPROCESS Database, on page 311.

Experiment Menu

Define Experiments

Define Experiments is where you setup the experiments you wish to run. The Access database opens to the Experiment Setup form. It is described in detail in Chapter 15–Experiment Manager, on page 339.

SIMPROCESS User’s Manual 45

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Run All Experiments

Run All Experiments attempts to run every experiment defined in the SIMPROCESS database. It is described in detail in Chapter 15–Experiment Manager, on page 339.

Run Selected Experiments

Run Selected Experiments attempts to run experiments defined in the database for which the Selected field is checked. It is described in detail in Chapter 15–Experiment Manager, on page 339.

Run Specific Experiment

Run Specific Experiment allows you to enter an experiment name that SIMPROCESS will attempt to run. It is described in detail in Chapter 15–Experiment Manager, on page 339.

Tools Menu

The items on the Tool menu are additional features available in SIMPROCESS Professional.

SimDraw

This item brings up SimDraw. SimDraw is a graphics editor that can be used to create graphics for use with SIMPROCESS models.

Stat::Fit

This item brings up Stat::Fit. Stat::Fit can analyze data to determine the best fit with one of the standard statistical distributions.

46 SIMPROCESS User’s Manual

SIMPROCESS Menus

Help Menu

SIMPROCESS Help

Displays a list of main help topics, from which you can gain access to other parts of the SIMPROCESS Help System.

SIMPROCESS Books Online

Opens either the SIMPROCESS Getting Started or User’s Manual. This contains the complete documentation set for SIMPROCESS. To view the documentation, you must load the Adobe Acrobat Reader which can be found on the SIMPROCESS Installation CD.

About SIMPROCESS

Displays information about SIMPROCESS, including the version, the copyright, and information about how to obtain technical support for SIMPROCESS.

SIMPROCESS User’s Manual 47

CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

48 SIMPROCESS User’s Manual

CHAPTER 2

SIMPROCESS Basics

SIMPROCESS User’s Manual 49

CHAPTER 2–SIMPROCESS Basics

SIMPROCESS Model ComponentsA SIMPROCESS model contains the following components:

• Processes

• Activities

• Entities

• Resources

• Connectors

• Pads

Processes and Activities represent business operations in a SIMPROCESS model. SIMPROCESS models can be arranged in a hierarchy, with processes typically encompassing other processes and activities.

ProcessesA set of processes can represent the operation of a business at a very high level. At this level of the model, you see only an outline of the business process.

Activities represent the details of business operations. For example, in a mail order fulfillment operation, when a customer order is received, processing steps might include:

1. Identifying the customer.

2. Creating or accessing a customer profile.3. Verifying the customer profile against information contained

in the customer’s order.

Each of these steps can be modeled as an activity. Collectively, they could comprise a single process that might be called “Access/Create Customer Profile.”

The Process construct allows you to break down a business process into successively more detailed layers.

50 SIMPROCESS User’s Manual

SIMPROCESS Model Components

A Process can be (and usually is) composed of other Processes and Activities. Activities cannot be decomposed.

Activities

SIMPROCESS contains a suite of Activities, each reflecting a different type of action. Actions can be physical or logical.

The most frequently used SIMPROCESS activity is the Delay, a general-purpose activity that can be used to represent almost any task requiring some period of time to accomplish.

For example, when a new customer places an order, the clerk handling the call needs to gather customer information and enter it into a database. Then the clerk verifies the information with the customer. These tasks can be represented by Delay activities.

Entities

Entities are objects that circulate through the model. They represent things (e.g., parts, deliveries, people) and information (orders, service requests, etc.) that flow from activity to activity. In the order fulfillment process, the customer order is an Entity.

Unlike processes and activities, which appear as icons in the model layout, SIMPROCESS entities aren’t visible until you run a simulation. During the simulation, they emerge as icons flowing through the model, if animation is turned on. Most entities originate at Generate activities.

Resources

Resources are the agents that add value to entities, or perform work at activities. For example:

• A customer calls in an order, which requires a clerk to handle it. Order entry is the Activity, the order is an Entity, and the clerk is a Resource.

SIMPROCESS User’s Manual 51

CHAPTER 2–SIMPROCESS Basics

• When an order is filled, a truck is required to deliver merchandise to the customer; the truck is a Resource.

The way to minimize cycle time and activity costs in your business process is by experimenting with different levels of resources and different costs.

For instance, the availability of a resource affects the amount of time it takes an Entity to flow through the process. Lack of resources can be a cause of bottlenecks in a business process. If you have two clerks and a customer order arrives while both clerks are busy handling other tasks, order fulfillment is delayed until a clerk becomes available. The amount of time the customer order spends waiting for an available clerk is shown in the Entity Cycle Time by State output report as Wait for Resource. Another way to describe this situation, is that the order waited in a queue for the available resource.

On the other hand, if a clerk is always available to handle an incoming order, it might mean that you have more clerks than you need. In either event, knowing how resources are used is a key factor in understanding and improving upon the way a business operates.

Connectors

Connectors link activities and processes together and are the paths used by entities to flow through the model.

Pads

Pads are small triangular objects attached to activities and processes which serve as attachment points for connectors. A single pad can connect one or (possibly) more connectors. Entities flow in one direction, entering nodes at input pads and exiting at output pads.

Pads also connect one level of a process hierarchy to another. Pads can be queueing areas for entities waiting for a resource or condition.

52 SIMPROCESS User’s Manual

SIMPROCESS Model Components

Putting it Together

When you put it all together, a SIMPROCESS model shows a business process as a set of Nodes (Processes and Activities) connected by Connectors. Entities are generated from one or more Generate Activities, traverse the model, and finally proceed to a Dispose activity, where they are disposed of. Along the way, entities pass through other activities, such as Delays and Branches.

When you build a model, you supply numeric and symbolic attributes to the various activities and the entities that are processed at these activities. You also define the resources needed to process the entities.

The end result is a dynamic model of the business process. By running simulations on this model, you can see bottlenecks as they occur. You can generate reports and statistics describing the flow of people, materials and information and quantifying how resources are used. And you can continue to modify the model in order to experiment with different scenarios.

You can build a simple model with just three activity objects: the Generate, Delay, and Dispose activities.

All models require a Generate activity to generate Entities and a Dispose activity to end the processing of entities. Delay activities are used to represent value adding and non-value adding activities.

There are some things that are common to most activities, such as the activity name and resources required by the activity. This chapter begins with a discussion of the input fields and command buttons used to define these items. The remainder of the chapter describes the core SIMPROCESS activities in detail, with particular attention devoted to the powerful Generate activity and the entities that it generates.

SIMPROCESS User’s Manual 53

CHAPTER 2–SIMPROCESS Basics

The remaining SIMPROCESS activities are described in Chapter 4–Activity Modeling Constructs, beginning on page 97, and in “Explicitly Getting and Freeing Resources” on page 146.

54 SIMPROCESS User’s Manual

Using the Palette Bar to Create Activities

Using the Palette Bar to Create Activities

The Palette bar is the two columns of buttons running down the left margin of the SIMPROCESS window. You can use these buttons to place model building blocks on the SIMPROCESS layout — the central region of the SIMPROCESS window.

Begin by adding a Generate activity to the model. Click once on the Generate activity Palette bar button. Once selected, the button appears pressed in, with the inside edges shaded.

SIMPROCESS User’s Manual 55

CHAPTER 2–SIMPROCESS Basics

Next, point and click on the SIMPROCESS layout. A Generate activity icon is added at the location you point to.

After you click on the layout, the Generate button is deselected. If you need to add several activities of the same type, press and hold the Shift key while clicking on the layout.

For example, click on the Generate button, point at an area on the layout, and then press and hold Shift before clicking. Continue to hold down the Shift key and point and click at different spots on the layout. Each time you click, a Generate icon is added to the layout. Release the Shift key before dropping the last icon or click once on the Generate button to deactivate the Generate button.

Removing Objects from the Layout

To remove an object such as an activity icon from the layout, select it, then press the Delete key. To remove several items at one time, you can select the items by either:

• Pressing and holding the Shift key while you point and click on each item.

• Drawing a rectangle around the objects you are selecting. To draw a rectangle, press and hold the left mouse button while dragging the mouse.

When you have selected the items you want to delete, press Delete, or select Edit/Clear from the menu.

Common Activity Input Fields

Activity Properties dialog boxes have the following common input fields:

• Name is the name you choose to identify the activity you are creating. This name appears below the activity and it can be moved on the layout.

• Icon identifies the graphic icon representing the Activity.

56 SIMPROCESS User’s Manual

Using the Palette Bar to Create Activities

• Comment is a one line comment about the activity. This comment appears in the status bar when the activity is selected.

• Document opens an edit window for adding descriptive text about the activity.

• Attributes define custom attributes that the activity requires. This topic is covered extensively in Chapter 10, ”Customizing a Model with Attributes and Expressions,” beginning on page 213.

• Expressions allows you to define customized processing for the activity at various points during a simulation. This topic is covered in detail in Chapter 10, ”Customizing a Model with Attributes and Expressions,” beginning on page 213.

• Event Logs are used for defining timestamps and recorders.

• Text Block is a three line description that appears within the Activity’s icon on the layout.

• Help displays information about the activity.

The following command buttons and fields are found on most Activity Properties dialog boxes:

• Resources defines the resources required to process entities arriving at the activity. If one or more of these resources are unavailable, the entity waits in a queue until the resource can be obtained.

• Duration/Value is the amount of time it takes the activity to process an entity, once the required resources are obtained. Time can be defined as a constant, or as a statistical distribution.

• Duration/Time Units determines if the Duration entered is measured as Seconds, Minutes, Hours, Days, or Weeks.

For some activities, you can specify either Delay Before Activity or Delay After Activity. This tells SIMPROCESS whether to attribute the delay time to the entity when it arrives or after it is ready to be released.

SIMPROCESS User’s Manual 57

CHAPTER 2–SIMPROCESS Basics

Naming Activities

Use the Name field to assign a name to the activity you are creating. This name is shown below the activity icon in the model if you select the Show Name checkbox.

When you create an activity, SIMPROCESS assigns it a default name. It is a good idea to change this to a name that is meaningful to you; one that indicates what occurs at this activity. You can name an activity just about anything, as long as you do not use the same name twice in the same level of the model hierarchy.

To change the name of an existing activity, click in the Name field and type the new name.

Choosing an Icon

The Icon field identifies the graphical icon used to represent the Activity in the model layout.

Every Activity has several icons that you can choose from. The names of the standard icons differ slightly for each activity, because they include the name of the activity.

To select an icon, point and click on its name, then click on OK to view the icon. You can import bitmaps and use them as custom icons for your activities. With the SimDraw Graphic Editor tool, you can create your own icons or edit the icons included with SIMPROCESS.

Adding a Comment

Use the Comment field to add a brief comment describing the purpose of this activity. This field is optional; you do not have to enter anything. If you type in a comment and later print Process Documentation or Model Documentation, the comment will be included in the document. Also, when the activity is selected, the comment will appear on the status bar.

58 SIMPROCESS User’s Manual

Using the Palette Bar to Create Activities

Documenting the Activity

The Document button opens a file in which you can add information describing the activity. SIMPROCESS uses a text editor such as the Notepad to edit the Document file. You can specify the text editor by selecting Preferences on the Edit menu. The Document file is displayed with a preformatted template which you can fill in:

Documentation Template

The template is defined in a file named Nod, which is in the SIMPROCESS Template directory. You can edit this file and customize the template as you wish.

When you have entered all the information you want in the Document file, save the file before closing the editor. Do not change the name of the file. SIMPROCESS takes care of file naming for you.

You can print Document text using the SIMPROCESS Print facility.

Labeling with Text BlocksThe Text Block button opens a dialog box for adding text to the inside of the icon on the layout. Up to three lines of text can be added.

Description:

Inputs:

Output:

Type: (VA/NVA)

Owner:

_____________________________________________________

SIMPROCESS User’s Manual 59

CHAPTER 2–SIMPROCESS Basics

Text Block labels facilitate understanding of the activity or process in relation to the model as a whole.

To add descriptive labels to a node icon:

1. Click on Text Block:

2. Fill in one to three lines of text. 3. Make sure the Show Text Box is checked. If this box is not

checked, the text you entered is not displayed in the model.4. Click on OK.

Note: The Text Block is best used with blank box icons. Icons with a bitmap picture on them will not show the Text Block properly.

Getting HelpThe Help button displays information about the purpose of the Activity and the fields and buttons on the current dialog box.

60 SIMPROCESS User’s Manual

Generate Activity

Generate ActivityGenerate activities create entities for a model during a SIMPROCESS simulation. Generally, the first activity you define in your model is a Generate.

SIMPROCESS generates entities at the rate you specify when you define the Generate activity. You can specify a constant number and rate, such as a specified interval of time, or tell SIMPROCESS to produce entities according to a statistical distribution. The schedule of generation can be as simple as one constant rate, or as complex as dozens of different rates depending on the hour of the day, day of the week, season of the year, etc.

A Generate activity can generate one type of entity or several different types of entity, depending on how you define the activity.

Defining a Basic Generate Activity

Click on the Entity pull-down arrow to select the type of entity to be generated by this Generate activity.

SIMPROCESS User’s Manual 61

CHAPTER 2–SIMPROCESS Basics

If you have not yet defined any entities in your model, you can do so using the New Entity command button on this dialog box.

Use the Quantity field to specify the number of entities to be generated each time entities are released. You can enter a specific number or probability distribution in the Quantity field, or make a selection from the Quantity pull-down list.

The Interval field defines the time between entity generation events. You can enter a constant value or a statistical distribution. Entities are generated at the end of each interval:

As an example, say that you expect Customer Orders to arrive at an exponential rate, with an average of 20 arrivals per hour. Click on the Interval pull-down arrow and scroll through the list until you find the definition for Exponential distributions. It reads:

Exp(10.0)

Select the distribution. Then, click on the button to the right of the pull-down arrow.

This displays a dialog box for defining the parameters of the distribution:

62 SIMPROCESS User’s Manual

Generate Activity

You need to set the Mean value to indicate an average entity generation rate of 20 per hour.

Assume that Quantity is 1, meaning that only one entity is produced at each entity generation event:

• To get 20 entities in an hour (60 minutes), you need to generate an entity every 3 minutes.

Depending on which you select from the Time Unit field, time can be entered as Seconds, Minutes, Hours, Days or Weeks.

The View button displays a graphical representation of the distribution:

SIMPROCESS User’s Manual 63

CHAPTER 2–SIMPROCESS Basics

Stream identifies the random number stream used to seed the distribution.

You can learn more about statistical distributions and random number streams in Chapter 3–Statistical Modeling Constructs, beginning on page 85.

64 SIMPROCESS User’s Manual

Delay Activity

Delay ActivityDelay activities, common building blocks found in most models, have two functions: they represent the passage of time during simulation, and define the resources required to perform a task. The cycle time of an entity traversing the model is the sum of the delays it encounters, i.e., the time spent at the activities in its path, plus any hold time for a condition to be met, and the wait time for any resources.

The Resources button opens a dialog box for specifying the resources required to perform an Activity. For instructions on defining resource requirements for an activity, see Chapter 5–Resource Modeling Constructs, beginning on page 135.

Specifying Delay Duration

Value represents the amount of time required to perform an activity. This delay time can be expressed as either a constant value or a statistical distribution in units of hours.

Time Units determines if the Duration entered is measured as Seconds, Minutes, Hours, Days, or Weeks.

SIMPROCESS User’s Manual 65

CHAPTER 2–SIMPROCESS Basics

If you know precisely what you want to specify for the duration of the delay, you can type the value directly in the field. Alternatively, you can select a value from a pull-down list.

For example, say you define a Delay activity to represent the task of processing an order. This task takes an average of 30 minutes to perform, though it may take as little as 15 minutes, or as much as one hour.

A Triangular distribution is often used to represent the time required to complete a task, so that is what we will use here.

1. Click on the arrow to the right of the Value field to display a list of distributions:

2. Scroll through the list until you find the default definition for Triangular distributions. It reads:

Tri(0.0,5.0,10.0)

Select the distribution.3. Click on the box to the right of the Value field. Fill in the

following values:

• Minimum of 15, Mode of 30 and a Maximum of 60.

66 SIMPROCESS User’s Manual

Delay Activity

• Select Minutes from the Units field.

4. Click on View to see what the curve looks like.

5. To learn more about these parameters and the topic of statistical distributions, see Chapter 3–Statistical Modeling Constructs, beginning on page 85.

6. Click on OK to accept the definition.

SIMPROCESS User’s Manual 67

CHAPTER 2–SIMPROCESS Basics

Dispose ActivityA Dispose activity disposes of entities when they are no longer needed in the simulation. For example, when an order is fulfilled, its entity is sent to a Dispose.

The Dispose marks the end of an entity’s cycle time for the purpose of statistic collection (e.g., cycle times and counts).

Dispose Activity Properties

The Dispose Activity Properties dialog box contains only one unique field: Maximum Entity Count. You can use this field to set a limit to the number of entities that can be disposed of at the Dispose during a simulation. If this limit is reached, the simulation ends. So if you want to end a simulation after, say, 1000 customer orders are processed, set Maximum Entity Count to 1000.

Leaving Maximum Entity Count undefined or setting a value of 0 or “none” indicates that there is no limit.

68 SIMPROCESS User’s Manual

Defining an Entity

Defining an EntityIn your model, you can refer to a particular type of entity or a particular instance of an entity. When you refer to an entity type, you are referring to all entities of a particular type, e.g., customer orders. An entity instance refers to an individual entity (a single customer order).

When you define entities in SIMPROCESS, you are defining a type; SIMPROCESS generates instances of that entity during a simulation run. To define entities:

1. Click on Define on the SIMPROCESS menu, and then select Entities... from the pull-down menu.

2. Click on Add to define a new entity.

3. In the Entity Type Properties dialog box, specify:

• Entity Name to identify the type of entity you are creating. Name can be anything you want, as long as it has not already been used to define an entity elsewhere in your model.

For this example, double-click on the default name supplied by SIMPROCESS, and enter Customer Order as the entity Name.

SIMPROCESS User’s Manual 69

CHAPTER 2–SIMPROCESS Basics

• Entity Icon is the icon which will represent this entity during a simulation run. The icon appears during simulation if the Animation option is on.

If you click on the downward-pointing arrowhead next to the Entity Icon field, you get a list of different icons to choose from.

• Priority values range from 1 to 100. When entities contend for the same resource, the entity with the highest priority gets precedence.

• Define Attributes or Expressions For is used in association with any attributes defined for this entity. You can choose to create a new copy of an attribute or evaluate an expression every time an instance of an entity is created. Alternatively, you can create one copy of an attribute or evaluate an expression once for an entity type and have all instances refer to this value. You will learn about attributes and expressions in Chapter 10–Customizing a Model with Attributes and Expressions, beginning on page 213.

• Document opens a text file into which you can place extensive comments about the entity and your model. This is optional.

• Comment is used to enter brief text describing the purpose of this entity, if you wish.

4. When you finish entering the data, click on OK. The entity you have just defined is added to the list box in the Entities dialog.

70 SIMPROCESS User’s Manual

Defining an Entity

5. Add another entity and name it Shipment. Click on the pull-down arrow next to the Icon field to get a list of entity icons.

The list may be a lot longer than it first appears. Try clicking near the top of the scroll bar to see more list items. Select Truck. Then click on OK.

We will use the Batch Shipment entity to liven things up at simulation time.

If you want to copy the properties of an existing entity (such as the one you just defined), select the entity in the list box and click on the Copy button. On the Entity Type Properties screen, enter a

SIMPROCESS User’s Manual 71

CHAPTER 2–SIMPROCESS Basics

different Entity Name and make any other changes you want, and then click on OK.

To remove an existing entity, select the entity and click on the Remove button.

When you are finished defining entities, click on Close.

72 SIMPROCESS User’s Manual

Defining Resources

Defining ResourcesThe next thing we will define in our model are the resources required to process Customer Order entities. To keep things simple, we will just define one resource, the clerks needed to process customer orders.

1. From the Define pull-down menu, select Resources... 2. Select Add to define a new resource.

For an explanation of the remaining options and commands, and for more details on defining resources, including pre-defined resource types, see Chapter 5–Resource Modeling Constructs, beginning on page 135.

SIMPROCESS User’s Manual 73

CHAPTER 2–SIMPROCESS Basics

Defining a ProcessA SIMPROCESS Process allows you to define processes hierarchically. In this example, we will define a process that indicates how customer orders are handled.

To create a Process, select the Process button from the Palette bar, and then click on the layout.

With the Process icon on the layout, display a dialog box for defining the Process. Do this by either:

• Clicking on the Process icon to select it, and then pressing Alt+Enter.

• Selecting the Process icon, and then selecting Edit from the menu bar, followed by Properties...

Alternative Sub-Processes

A Process may consist of a set of alternative sub-processes. Each subprocess can represent an alternative implementation of the process. This allows you to create many variations of a process and keep them organized in one place.

74 SIMPROCESS User’s Manual

Defining a Process

Only one subprocess can be active at any point in time. For example, you may run an experiment with Alternative subprocess 1 active, and measure the overall performance of the model. Then you can switch to Alternative subprocess 2 and compare the results.

SIMPROCESS defines a single default subprocess when you create a process. If you want to rename the subprocess to something more meaningful for your model:

1. Select it from the Alternative Sub-Processes list on the Process dialog box.

2. Click Edit to modify the sub-process definition.3. Highlight the existing name and type over it. For this example,

call the sub-process Main. 4. Click on OK.

The new name you specified appears in the Alternative Sub-Processes list and becomes the sub-process.

You can add more sub-processes to the process by clicking on Add and naming the new sub-process. To activate a different sub-process, select it from the Alternative Sub-processes list.

Sub-processes can be deleted with the Remove command button, and copied using the Copy button.

Click on OK when you have finished defining the Process.

Adding Detail to a ProcessOnce you’ve defined a Process, you can begin to define the activities and processes that make up the Process.

Double-click on the Process icon. This opens the layout of the currently active subprocess.

What you see is a blank layout, except for two pads, an input pad on the left, and an output pad on the right:

SIMPROCESS User’s Manual 75

CHAPTER 2–SIMPROCESS Basics

These pads connect any processes and activities (nodes) at this level of the subprocess to the nodes at the next higher level. Once the input and output pad are connected by connectors, entities flow from level to level.

Within the subprocess, you can add activities (and processes) to detail the tasks being performed. We will not go into that level of detail here, but you do need to connect the input and output pads of the subprocess. If you neglect to do this, entities will have no path to follow across the process node: entities entering the process will never emerge again.

NOTE

Make sure you connect the Input and Output pads on all Sub-Processes.

76 SIMPROCESS User’s Manual

Simulation Setup

Simulation SetupThere are two steps you need to take before running a simulation:

• Set the run time parameters for the simulation, e.g., start and end dates, number of times to repeat the simulation, etc.

• Set animation parameters. These determine what you see on your screen while the simulation is running.

Run Settings

To set run time options for a simulation, select Simulate from the SIMPROCESS menu, and then click on Run Settings…:

Setting the Start and End Dates

The values you choose for the Start and End fields determine how long your simulation runs, in calendar time. For example, if you want to simulate a month of processing, you can specify:

Start: 1/1/2000 00:00:00

End: 2/1/2000 00:00:00

This indicates a starting date of January 1, 2000, at midnight, and an end date of February 1, 2000, at midnight. The simulation

SIMPROCESS User’s Manual 77

CHAPTER 2–SIMPROCESS Basics

terminates as soon as the clock strikes midnight at the end of January 31.

If you do not enter a time, the hours, minutes and seconds fields default to zero. So in the example above, we could have omitted the time of day.

NOTE

Run Dates and the Real Calendar

SIMPROCESS allows you to model varying levels of demand by specifying different entity generation rates in a Generate activity. You can specify different start and end dates for different entity generation events. You can also specify unique schedules for each day of the week.

SIMPROCESS knows what day of the week it is, as well as the month, year, and time of day, at any moment in a simulation. It maps the simulation dates to the real calendar. For example, if you look at a calendar for 2000, you will see that the year begins on a Saturday.

Remember that if you set Start and End dates for objects in your model, you must coordinate those dates with the simulation run dates.

For example, a Generate activity with Start and End dates that fall outside of the simulation Start and End dates will not generate entities during the simulation. Or, a Resource Downtime with Start and End dates outside of the simulation Start and End dates will not be applied.

78 SIMPROCESS User’s Manual

Simulation Setup

Animation Settings

Show Clock

Turns on or off a clock which displays simulation time while the simulation is running.

Show Counts

If Show Counts is turned on, each activity or process will display a number above its icon. Counts for Generate activities show the number of entities generated. Counts for Dispose activities show how many entities have been disposed. Counts for all other activities and processes show how many entities are in that process or activity.

Show Entities

Show Entities turns the display of entities on or off during the animation. Showing entities helps you visualize the workflow.

Update Dynamic Labels

Update Dynamic Labels turns the display of dynamic labels on or off during the animation.

Animation Speed

You can change the Animation Speed to speed up or slow down the

SIMPROCESS User’s Manual 79

CHAPTER 2–SIMPROCESS Basics

simulation. The fastest value is 5000, and the default is 1000. You may wish to set this to a smaller value while you are debugging your model. The smallest value allowed is 1.

80 SIMPROCESS User’s Manual

Running a Simulation

Running a SimulationTo start the simulation running, either click the blue runner icon on the tool bar, or select Simulate from the SIMPROCESS menu bar, followed by Run.

Before starting the simulation, SIMPROCESS does two things:

1. Asks you if you want to save the latest changes to the model.2. Checks your model for errors.

If SIMPROCESS finds errors, it issues informational messages and aborts the simulation.

If you want to check your model for errors before you try to run a simulation, choose Verify Model from the Simulate menu, before running.

Running a Simulation with Model ParametersIf your model has User-defined Attributes which were selected as Model Parameters, when you start the simulation run, you will be prompted to enter initial values for those Model Parameters.

The Model Parameters are displayed in a table. The column under Description gives you the name of the User-defined Attribute or a descriptive comment. The Value column shows the current initial value the attribute will have at the start of the simulation run.

To change the value of a Model Parameter, select it in the table. The Description of the selected parameter will be displayed below the table along with its default value and the mode of its value (integer, real, etc.)

The next step is to enter the desired value of the Model Parameter in the Current Value field. Press the Update button and the new value will entered in the Value column next to the corresponding description. If you press Reset, the selected Model Parameter will return to its default value. The Reset All button, under the Help button, will set the value of all the Model Parameters back to their defaults.

SIMPROCESS User’s Manual 81

CHAPTER 2–SIMPROCESS Basics

Creating Model Parameters from User-defined Attributes is covered in Chapter 10, ”Customizing a Model with Attributes and Expressions,” beginning on page 213

What You Can Do During a Simulation

While a simulation is running, you can double-click on a Process to view entity movement within the process’ hierarchy.

Double-click on any blank area of the model layout to ascend back to a higher level of the model hierarchy.

Using the Simulate option on the menu bar, you can:

• Pause the simulation.• Resume simulation after a pause.• Stop the simulation before its scheduled end.• Click on Animation Settings to change animation options. The

simulation pauses while you reset these options.• You can double click on an Activity icon to bring up its

properties dialog. The simulation will be paused. Some fields—most notably Duration/Value—can be changed in the middle of the run. When the dialog is closed and the simulation resumes the new value will take effect.

82 SIMPROCESS User’s Manual

Standard Output Report

Standard Output ReportAfter the simulation run has completed, you can display the Standard Report to view output statistics for your model. From the Report menu bar, choose Display Standard Report.

This will open the Standard Report Dialog. In the Report Replications list box, (if your model ran for multiple replications) you can select which individual Replications, the Average of All Replications run, or the Sum of All Replications run, that you want to see performance measures for. Typically, you will want to look at the Average of All Replications report. Next, select whether you want to view the Standard Report with a text editor (Notepad by default) or with a spreadsheet. Now, press the Display Report button to open the report.

To view the Standard Report with a spreadsheet, use the Browse button to point to its executable, i.e., Excel.exe.

For more detail on the Standard Report see Chapter 8, ”Output Reports,” beginning on page 181.

SIMPROCESS User’s Manual 83

CHAPTER 2–SIMPROCESS Basics

84 SIMPROCESS User’s Manual

CHAPTER 3

Statistical Modeling Constructs

SIMPROCESS User’s Manual 85

CHAPTER 3–Statistical Modeling Constructs

Why use a statistical approach?SIMPROCESS lets you analyze your processes using discrete event simulation. This means that SIMPROCESS models systems by taking the processes that happen in the real world and breaking them down into the key events that occur. In a factory parts move to a station, are processed, and then move to the next station. If one part goes into a station and one part comes out, then the most important aspect of mod-eling the station would be to represent the processing time (which, in the real world, will vary due to any number of factors) by a statistical distribution.

A statistical distribution is used to give the model the randomness that always occurs in the real world. Of course, if things in the real world never varied, you would not need simulation! You could perform mean-value analysis on your system. That's a simple way of predicting system performance by looking only at average rates. Unfortunately the real world almost never matches the performance predicted by mean-value analysis, because statistical fluctuations almost always need to be taken into account.

You don't need to be an expert in statistics or modeling to use SIMPROCESS, though; just having some idea of how things vary is enough. If you know that it usually only takes 5 minutes for a clerk to process some paperwork, but it can take as long as 15, you're well on your way to having a statistical model of that clerk. You're not looking for exact answers, but general behavior. Introducing a small amount of randomness through simulation can be all that is needed to transform a simplistic mean-value analysis into a realistic model.

In addition to being able to model processes' statistical nature, SIMPROCESS also gives you a picture of flow through your system. It is very difficult to know how people, machinery, deliveries and resources are going to interact in a proposed system. SIMPROCESS lets you see how things work, while still in the planning stage. Animation gives valuable insight into how things work, and how they could work.

86 SIMPROCESS User’s Manual

Random Number Generation

Random Number GenerationSIMPROCESS contains one hundred random number streams, each having a different random number seed. You can view the seeds available from Seeds on the Define menu bar.

The purpose of using different random number streams in your model is to control variance. This is an advanced topic well beyond the scope of this manual. Please refer to texts on statistics and ran-domness, including Simulation Modeling and Analysis by Law and Kelton (McGraw-Hill).

SIMPROCESS User’s Manual 87

CHAPTER 3–Statistical Modeling Constructs

Standard DistributionsSIMPROCESS comes with many standard probability distributions built-in. You can also create empirical distributions from your own data. The following pages give brief descriptions of the standard distributions.

Choosing the Right Distribution for Your DataFor a particular model, it is not always clear which of the standard distributions you should use. Fortunately, simulation results are usually not too strongly dependent on the choice of distributions: a distribution with approximately the right shape should be adequate.Here are some guidelines which can help you choose the right distribution.

If you are using the Professional version of SIMPROCESS, and have experimental data, use Stat::Fit to determine the best distribution. Stat::Fit uses sophisticated statistical tests to determine the best fit distribution to a set of experimental data, so if you have the data, use Stat::Fit. Use of Stat::Fit is covered in the Stat::Fit documentation.

Poisson distributions are good models for arrivals, or for any process in which you know the average number that will happen in a time period. If you are modeling events that are independent, but you know on average how many will happen, then use a Poisson distribution. There is both theoretical and experimental basis for this. The only parameter you need to know is the mean.

If you are concerned with the time between arrivals, you should use an exponential distribution, for it can be shown that if arrivals are Poisson distributed, the times between arrivals are exponentially distributed. The only parameter you need to specify is the mean.

If you are modeling a random process whose value is not too close to zero, you might use the normal distribution. This generates the familiar “bell-shaped curve.” You need to specify the mean and standard deviation.

If you would like a bell-shaped curve that is restricted to the inter-

88 SIMPROCESS User’s Manual

Standard Distributions

val between 0 and 1, choose a Beta distribution.

If you have a distribution that is skewed, you might choose the log-normal distribution.

The Weibull and Gamma distributions are useful when you want to be able to widely vary the shape of the distribution by varying the parameters you specify. This might be the case if you are using a SIMPROCESS Expression to implement the distribution.

The simplest distribution to use is a Triangular distribution. If you know the least amount of time it takes to perform a task, the aver-age time and the most time, you have the minimum, mean and max-imum. This can be useful as a starting point when you don’t have much data on the process being studied.

For a more complete listing of the statistical distributions available in SIMPROCESS, see Appendix C.

SIMPROCESS User’s Manual 89

CHAPTER 3–Statistical Modeling Constructs

User Defined DistributionsThere are two methods for creating User Defined Distributions. Both are listed on the Define pull-down menu. The first, Standard…, customizes an existing SIMPROCESS distribution. The second, Tabular…, creates a statistical distribution from discrete data points using a table format. These User Defined Distributions can be used anywhere in the model where a statistical distribution is specified, such as a duration field on an activity dialog.

User Defined Distributions Procedures1. Using the Define Distributions pull-down menu, select

Standard.... Use this dialog box to Add, Edit, Copy, or Remove User Defined Distributions found in the list box.

2. Choosing the Add or Edit button brings up another dialog box as shown below where you type in the:

Name is any unique non-blank user distribution name.Sample select a distribution for modification.

90 SIMPROCESS User’s Manual

User Defined Distributions

3. Using the Sample text box, either change the parameters of the distribution within the parentheses or select the triple dot but-ton. This button opens a dialog box containing the parameter descriptions, e.g., Erlang parameters.

4. To see the PDF (Probability Distribution Function) and CDF (Cumulative Distribution Function) plotted, choose the View button from the dialog box shown in Step 3. The PDF is labeled on the left y-axis, the CDF on the right y-axis.

5. The graph can be printed to a file. To continue, select Return from the graph’s Option pull-down menu.

6. Once you are finished entering the data, choose OK and the User Distribution you have just defined is added to the list box. This User Defined Distribution can now be used anywhere in the model where a statistical distribution is specified.

7. If you wish to copy an existing User Distribution, select the distribution, choose the Copy button and you can enter another Name for the distribution.

8. If you wish to remove an existing User Distribution, select the distribution, and choose the Remove button.

9. Once you are finished with the User Distributions, choose the Close button.

SIMPROCESS User’s Manual 91

CHAPTER 3–Statistical Modeling Constructs

Tabular DistributionsTabular Distributions help you create a statistical distribution from a table of discrete data points.

1. Using the Define Distributions pull-down menu, select Tabular... Use this dialog box to Add, Edit, Copy, or Remove Tabular Distributions in the list box.

2. Choosing the Add or Edit button brings up another dialog box shown below:

3. Type in the Name as any unique non-blank User Distribution name.

4. Type is selected from the list box. Choose either a discrete or continuous probability distribution function. If you choose discrete, only the exact values you indicated in the right column will be chosen when the distribution is sampled. If you choose continuous, SIMPROCESS will interpolate from the Values you specified and the probabilities associated with them.

5. To update the table, point and click on the cell you wish to modify. The Value text box under Type will switch between probability and value depending on which column you have clicked on.Type the number in the text box or in the table cell directly.

92 SIMPROCESS User’s Manual

User Defined Distributions

You can add and delete rows by clicking on a cell and then choosing the appropriate button on the right. The row will be added above the one selected. If you choose the Erase Row but-ton, entries in the selected row will be erased but cells will not be shifted up.You can also populate a table by importing data from a text file using the Import button.

To see the PDF (Probability Distribution Function) and CDF (Cumulative Distribution Function) plotted, choose the View button. The graph can be printed to a file.The PDF is labelled on the left y-axis, the CDF on the right y-axis.

6. To continue, select Return from the graph’s Option pull-down menu.

7. Once you are finished entering the data, choose OK and the Tabular Distribution you have just defined is added to the list box. This Tabular Distribution can now be used anywhere in the model where a statistical distribution is specified.

8. If you wish to copy an existing Tabular Distribution, select the distribution, choose the Copy button and you can enter another Name for the distribution.

9. If you wish to remove an existing Tabular Distribution, select the distribution, and choose the Remove button.

10. Once you are finished with the Tabular Distributions, choose the Close button.

• The first row of the text file should contain an inte-ger whose value is the number of records that follow.

• Value means a random variable value (x)Prob: means the Cumulative Distribution Function. CDF = P(X ≤ x).

• Specify both columns in ascending order. In other words, the cell below should always have a larger number than the cell above it. Otherwise, when you try to View, an error message appears.

• The Probability of the last cell should always equal 1.

• Unless specified in the table, P(X ≤ 0) = zero.

SIMPROCESS User’s Manual 93

CHAPTER 3–Statistical Modeling Constructs

Run Settings

Simulation TimeHere you will enter the calendar date and time for the start and end time of your simulation run.

Warmup Every ReplicationIf this option is selected, and you have entered values greater than 0 for both the Number of Replication and Warmup Length, SIMPROCESS will start collecting statistics after the Warmup Length has expired for each replication.

Warmup LengthIf a Warmup Length is entered (in hours) SIMPROCESS will start the collection of statistics for the model run, after the end of the Warmup Length. This allows you to only gather information on your system after it has reached "Steady State".

Number of ReplicationsWhen your model contains randomness (represented by statistical distributions) you will want to run the model for multiple replications. This allows you to average the results and gives you a more accurate picture of “most likely” outcome of your scenario.

Reports are gathered for each replication and the Total and Average of all runs.

94 SIMPROCESS User’s Manual

Run Settings

Reset Random Number StreamsThis option will reset the Random Number Stream before starting each new replication. Typically, you will leave this turned off. In general terms, the reason for running your model for multiple replications is to test how randomness affects your system. Turning this option on negates that test.

TimescaleTimescale connects the animation with the simulation clock. If Timescale is set to 0, the animation will run at its fastest, from event to event. If Timescale has any value greater than 0, the animation will pause between events to show the amount of time between them. If 100 is entered here, the animation clock will run approximately 1:1 with real-time. The smaller the number entered, the faster the animation will run. This feature is useful if you want the animation to show "bursty" behavior in your model.

Cost Periods...This option allows you to set the frequency over which the ABC Reports will be collected. You can also set the name of the currency that the ABC Reports will use.

SIMPROCESS User’s Manual 95

CHAPTER 3–Statistical Modeling Constructs

96 SIMPROCESS User’s Manual

CHAPTER 4

Activity Modeling Constructs

The SIMPROCESS activities that were not covered in Chapter 2, ”SIMPROCESS Basics,” beginning on page 49, can be divided into two categories:

Entity Related

These activities coordinate groups of Entities. This category includes:• Assemble. Receives two or more entities and assembles

them, as specified, into a single entity and releases the entity.• Branch. Routes entities through different connectors of the

model network.• Merge. Routes entities from different connectors onto one

connector.• Batch. Stores entities until conditions set by the user are met,

and then releases the entities in one batch. The entities emerge as a single unit, but retain their individual identity.

• Unbatch. Separates a batched entity into its constituent parts (entities).

SIMPROCESS User’s Manual 97

CHAPTER 4–Activity Modeling Constructs

• Split. Divides an entity into parent and child entities that can undergo parallel processing.

• Join. Reunites families of entities that were created in Split activities

• Transform. Transforms an arriving entity into a different entity type, and releases one or more entities of the new type.

• Copy. Makes duplicate copies of entities.• Gate. Accumulates entities until a condition is met, and then

releases a specified number of them. Entities are not assembled into a single entity.

• Assign. Assigns values to global entity and model attributes and sets entity priorities.

• Synchronize. Coordinates the release of various entities, which may be of different types, from different paths.

Resource Related

Unlike other SIMPROCESS activities, these activities affect resources, not entities:

• Replenish Resource. Adds capacity to consumable resources.

• Get Resource. Obtains a resource and holds on to it across several processes and activities.

• Free Resource. Releases resources obtained by Get Resource activities.

Resource related activities are described in Chapter 5–Resource Modeling Constructs, beginning on page 135. The Entity Related activities are covered in this chapter.

98 SIMPROCESS User’s Manual

Entity Related Activities

Entity Related ActivitiesThis section deals with activities that are used to coordinate grouping of Entities. The type of coordination to be done is specified at the activity. Entities are queued up in these activities (except for unbatch, split) until the conditions specified on the activity are met. This queueing time is reported as “Hold for Condition” in the reports. This is reported separately from the “Wait for Resource” queueing time which can accumulate at any activity that a resource requirement has been specified for.

• Assemble Activity• Batch Activity• Unbatch Activity• Gate Activity• Synchronize Activity• Split Activity• Join Activity

SIMPROCESS User’s Manual 99

CHAPTER 4–Activity Modeling Constructs

Assemble ActivityThe Assemble activity is used to build several entities into a single output entity. For example, if two approvals and a check are required to form one “approved loan,” you can use the Assemble activity to model this process.

Assemble has two input pads, Component and Trigger, and two output pads, Out and NoMatch, that determine Entity behavior. The Component pad places incoming entities into a queue until all entities to be assembled have arrived. If an entity entering the Component pad is not on the component entity list, it will immediately leave the Assemble activity through the No Match pad.

The Trigger pad is only relevant if Hold for Trigger is selected as one of the activity’s options. Entities entering the Trigger pad can trigger the release of the assembled entities. This way, assembled entities are only released when an entity, such as a Customer Order, arrives.

100 SIMPROCESS User’s Manual

Assemble Activity

Dialog Box Field Definitions

Component Entities A list of component entities to be converted to assembled entities. Entities on the list are queued until the specified quantity of each entity type has entered the Assemble activity.

• Add: Opens a dialog to define component entities.• Edit: Opens a dialog to modify the component entity

definition.• Remove: Removes the selected component entity.• Batch Components: Releases the assembled entity as soon

as all component entities are available for assembly.• Hold for Trigger: Holds output entities until an entity enters

the Trigger pad.

Assembled Entity

The entity type to be released after all component entities have entered the activity. A combo box provides a list of defined entity types.

Duration

Where you specify the delay time of the activity. The time specified in the Duration will be applied after the activity. In other words, it will be reflected in the Cycle Time of the Assembled Entity.

SIMPROCESS User’s Manual 101

CHAPTER 4–Activity Modeling Constructs

• Value: The amount of time required to perform this activity. Use the combo box to select a statistical distribution or enter a constant value directly in this field.

• Units: Determines if the Duration entered is measured as Seconds, Minutes, Hours, Days, or Weeks.

Resources

This command button opens a dialog for specifying the set of Resources that are required to perform this activity. Refer to Chapter 5–Resource Modeling Constructs, beginning on page 135 for information on defining resources.

102 SIMPROCESS User’s Manual

Batch Activity

Batch ActivityThe Batch activity combines several entities into one entity while retaining the identity of the original entities. The resultant entity travels throughout the process as a single entity. At some later time it can be disassembled into its constituent entities using an Unbatch activity.

The Batch activity is useful, for example, when combining several entities (e.g., merchandise ordered by various customers) into a parent entity for transportation. Then after the transportation activities the parent entity can be broken down into the entities that comprised it. Statistics can be collected for the batched entity separately from its constituent members.

SIMPROCESS User’s Manual 103

CHAPTER 4–Activity Modeling Constructs

Dialog Box Field Definitions

• Batched Entity: The type of entity that will serve as the container or parent entity. An entity of this type is created and all other entities become children of the parent.

• Quantity to Batch: The maximum number of entities that fit in one batch.

• Maximum Hold Time: The maximum amount of time to hold before a batch which has met the Minimum Quantity requirement is released.

• Minimum Quantity: The minimum number of entities that must be in a batch before it can be released.

When setting the Duration for a Batch activity, the time specified will be applied after the activity. In other words, it will be reflected in the Cycle Time of the Batched Entity.

104 SIMPROCESS User’s Manual

Unbatch Activity

Unbatch ActivityAn Unbatch activity separates a batch entity into its constituents (children) and then destroys (Disposes) the parent entity. Many levels of batching are possible. That is, batches can be composed of batches. The Unbatch activity only disaggregates one level of batch at a time.

When you set the Delay time for an Unbatch activity, the time specified in the Duration will be applied before the activity. In other words, it will be reflected in the Cycle Time of the Batched Entity. The time specified in the Duration will be applied after the activity. In other words, it will be reflected in the Cycle Time of the Assembled Entity.

SIMPROCESS User’s Manual 105

CHAPTER 4–Activity Modeling Constructs

Gate ActivityThe Gate activity accumulates entities until some number of entities have been received or until a signal is received from another activity to release entities. It then sends a designated number of entities out into the model. Entities are not batched in a Gate activity.

A Gate activity has two pads that determine entity behavior, the Hold pad and the Trigger pad. The Hold pad, located on the lower left of the Gate icon, is a queue for incoming entities. Entities that arrive at that pad are stored here. The Trigger pad, located on the upper left of the Gate icon, disposes of incoming entities and causes any entities stored on the Hold pad to be released.

A Gate activity has two gating policies that can be effective concurrently. The first gating policy is called Trigger Release. When an entity arrives at a Trigger pad, it is disposed of, and it triggers the release of the number of entities as specified in the Trigger Release Quantity field. A Trigger pad can synchronize the flow of entities between different activities.

The Gate activity can be used as a buffer or queue to hold material from one section of the model, until a condition is met in another part of the model. When that condition is met, a trigger entity is sent to the Trigger pad of the Gate Activity.

For example, say that customer orders are printed out and sent on to the shipping department on an hourly basis. This could be reflected in the model by a Gate activity, which is triggered when it receives an entity that is generated hourly by a Generate activity.

The second gating policy is called Threshold Release. It allows the release of some number of entities once a threshold number of entities have arrived. This policy is useful for example, in cases where a truck must wait until it is full before it departs.

Gating policies can be effective concurrently, so this activity can implement a truck leaving when it is full or on the hour, even if it is not full.

106 SIMPROCESS User’s Manual

Gate Activity

Dialog Box Field Definitions

Rank Method:

• Ranked As: Determines how the entities in queue will be sorted. LIFO, FIFO, first and last created, high and low priority, as well as high and low attribute values are supported.

• Attribute: The User-defined Attribute type used to rank entities at the gate. This field is only active when Highest or Lowest Attribute Value First is selected in the Ranked As field.

Threshold Release:

• On/Off: Enables/disables the Threshold Release feature. Threshold Release is on when the check box is selected.

• Threshold Quantity: The threshold number of entities to accumulate and release when the Threshold Release is checked on.

SIMPROCESS User’s Manual 107

CHAPTER 4–Activity Modeling Constructs

Trigger Release:

• Release All: Release all the accumulated entities when a trigger entity has been received on the Trigger Pad.

• Quantity: The number of entities to release when a trigger entity has been received on the Trigger pad. This is used with the Trigger Release policy. The value can be a constant integer or can be derived from a statistical distribution.

108 SIMPROCESS User’s Manual

Synchronize Activity

Synchronize ActivityA Synchronize activity coordinates the release of many entities, which may be of various types. You specify the number of input/output pads for a Synchronize activity. Entities arriving at each pad are stored in separate queues. When each queue has at least one entity, each queue releases one entity to its corresponding output pad.

For example, a project may require four jobs to be done in parallel, with the work kept in step at various tasks within the process. Before work can proceed on one job, all others must be at the same stage of completion. You can use a Synchronize activity with four pads to model the wait time and release of the parallel tasks.

Dialog Box Field Definitions

• Number of Pads: The number of pairs of input and output Pads required by this activity.

SIMPROCESS User’s Manual 109

CHAPTER 4–Activity Modeling Constructs

Entity Control ActivitiesThis section discusses activities that are used in the control of entities through the process model:

• Assign activity• Transform activity• Branch activity• Merge activity• Copy activity

110 SIMPROCESS User’s Manual

Assign Activity

Assign ActivityThe Assign activity is one method you can use to provide values to globally defined attributes. You can also use Assign to change the priority of an entity.

Setting of Attribute values using the Assign activity is covered in Chapter 10, ”Customizing a Model with Attributes and Expressions,” beginning on page 213.

Dialog Box Field Definitions and Buttons

• Set Entity Priority sets or changes the Priority of an entity as it passes through this activity.

SIMPROCESS User’s Manual 111

CHAPTER 4–Activity Modeling Constructs

NOTE

Set Attributes lists any existing attribute assignments:

• Use Add… to set values for entity attributes.• Use Edit… to modify existing assignments. Select the

attribute assignment you want to modify from the Set Attributes list.

• Use Remove to delete a previously defined assignment.

Resources and Duration, are used as they are in other SIMPROCESS activities.

When Entities are contending for Resources, Entities with a higher priority get to use available Resources first. The higher the number, the higher the Entity’s priority.

112 SIMPROCESS User’s Manual

Transform Activity

Transform ActivityThe Transform activity changes one type of entity into another type. A single arriving entity can be changed into many output entities (all of the same type.)

Dialog Box Field Definitions and Buttons

Output Entities

• Quantity. The number of new entities to create. This number of entities will be generated for every connector emanating from the activity.

• Entity Type. The type of entity to be released. You can enter the name of the entity type or select a type from a pull-down list.

SIMPROCESS User’s Manual 113

CHAPTER 4–Activity Modeling Constructs

• If you define a Duration for the activity, the time specified in the Duration will be applied before the activity. In other words, it will be reflected in the Cycle Time of the incoming entities.

• Copy Attributes opens a dialog box where you can select the attributes of the arriving entity to be transferred to the new output entity. Examples of attributes you can copy include User Defined Attribute values, creation time, etc. Time Stamps and Entity Priority can also be copied.

Specifying Attributes to Copy

When you select the Copy Attributes command button, the following dialog box appears:

You can select the following options on the Copy Entity Fields and Attributes dialog box:

• Copy Creation Time copies the simulation creation time of the original entity to the transformed entities.

• Copy Time Stamps duplicates the list of predefined timestamps carried by the arriving entity to transformed entities.

114 SIMPROCESS User’s Manual

Transform Activity

• Copy Entity Priority duplicates the priority of the arriving entity to transformed entities.

If you do not copy the arriving entity’s Priority, the transformed entity receives the default Priority value defined in the Entity Library. The initial setting is 1.

You may also wish to copy User Defined Entity Attribute values associated with the entity. During simulation, different variable types (Integer, Real, Boolean, and String) can be added to an entity. You can copy the User Attribute values using any of the usual list box selection techniques.

Once you are finished entering data, click on OK to leave the dialog box, confirming your current selections. The Cancel button cancels the current dialog selections.

SIMPROCESS User’s Manual 115

CHAPTER 4–Activity Modeling Constructs

Branch ActivityA Branch activity routes entities through different paths of the process model. It allows you to model a step in your process where a decision is reached and alternative pathways are selected depending on the decision.

In the Branch Activity detail dialog, you select the type of branching criteria to use, such as Probability, Entity Type, and globally defined Attribute value. But you specify the precise criteria on the Connectors associated with the Branch.

For example, say the order fulfillment process for new customers requires a step that is not needed for repeat customers, such as creating a customer profile. You might use different entities for new customers and repeat customers and branch on Entity Type. Or you can use a single Customer Order entity and assume that a certain percentage of customers are new and a certain percentage are repeats. In that case, you select Branch Type Probability and then set the probability of each event on the connectors leading from the Branch output pad:

Figure 1. Branching on Probability

116 SIMPROCESS User’s Manual

Branch Activity

Dialog Box Field Definitions and Buttons

Select Branch Type

• Probability tells SIMPROCESS to route entities based on a probability that you specify on each connector leading from the Branch. All probabilities must sum to 1.0 and at least one of the connector’s should have its Otherwise field set to True.

• Attribute. Route entities that have matching User Defined Attributes and value along the appropriate Connector.

• Entity Type. Route entities based on its type, e.g., send Orders one way and Bills another. Set the entity type on the Connectors emanating from the Branch.

• Priority. Enter the entity priority number to branch on. Values can range from 1 to 100.

SIMPROCESS User’s Manual 117

CHAPTER 4–Activity Modeling Constructs

NOTE

Resources

This command button opens a dialog for specifying the set of Resources that are required to perform Branch activity. Refer to Chapter 5–Resource Modeling Constructs, beginning on page 135.

When Entities are contending for Resources, Entities with a higher priority get to use available Resources first. The higher the number, the higher the Entity’s priority.

118 SIMPROCESS User’s Manual

Branch Connectors

Branch Connectors Connectors link Activities and Processes together and are paths used by Entities to flow through the model. They are objects in their own right with information such as selection probability, user defined attributes, etc. Connector names can assist in labeling your model, e.g. the Entity type that can flow across it. If selected, SIMPROCESS will automatically label Connectors emanating from Branch Activities, see “Connectors and Branch Activities” on page 120 for details.

You can change the Name of the Connector, type in a Comment, Document your Connector, change the Line Style, and set Branching Parameters using the Branch Connector Properties dialog box.

To display the Connector Properties box either: double-click on the Connector; or click to select the Connector and choose Properties on the Edit pull-down menu.

Connector NamesThe System always assigns a default Connector name, e.g. Conn44.

SIMPROCESS User’s Manual 119

CHAPTER 4–Activity Modeling Constructs

You should change the Connector name to one that you can identify later. To change the Connector Name double-click on the current name in the Name field and type a new one. The AutoLabel check box is discussed below.

Displaying Connector NamesThe Edit Preferences option, on the Edit pull-down menu, determines if Connector names are displayed in the model. However, individual Connector dialog boxes have Show Name check boxes that will override the model default.

If Show Name is selected, the Name field is displayed on the longest horizontal portion of Bent Connectors. Straight Connector labels are displayed across the middle of the Connector.

If this check box is unselected, the Name is NOT displayed.

The Auto Label check box applies only to Connectors emanating from Branch Activities. If selected, the Name will be generated by SIMPROCESS. SIMPROCESS uses entries in the Connector Detail dialog box depending on the Entity Type. Table 1, “Connector Names Using Auto Label,” on page 122 shows the fields used for each Entity Type and provides an example of the label displayed.

Connectors and Branch ActivitiesThere are additional fields that appear in the Connector detail dialog box depending whether or not the Connector is connecting a Branch Activity to another Activity or Process. When a Connector emanates from a Branch Activity, use the Branch Connector Properties dialog box to specify the branching parameters.

Depending on the type of Branch you selected in the Branch Activity Properties dialog box, you will see the corresponding branch in the Connector Properties dialog box.

120 SIMPROCESS User’s Manual

Branch Connectors

Entity Type —Select the type of the Entities you wish to flow along this connector from the combo box.

Probability —Enter the probability (a number between 0 and 1.0) that the Entity will flow on this Connector.

Priority — Enter the Entity priority number to branch on. Values are from 1 to 100.

Attribute —The first line shows the name and type of the attribute you selected in the Branch Properties box. Using the next two lines, you can branch on the equality of numbers, strings, booleans, or branch on ranges of numbers.

Otherwise —If you select Otherwise, this Connector becomes the default branching Connector. This means all entities pass through this Connector if none of the criteria in any other Connectors are satisfied.

When Entities are contending for Resources, Entities with a higher priority get to use available Resources first. The higher the number, the higher the Entity’s priority.

SIMPROCESS User’s Manual 121

CHAPTER 4–Activity Modeling Constructs

TABLE 1. Connector Names Using Auto Label

Branch Activity Type Connector Properties Used Display Example

Probability Probability (between 0 and 1.0)

Otherwise (True or False)

0.75

Otherwise

Attribute Branch If Attribute Is (value)

Otherwise, (True or False)

Displays User Defined Attribute Name on Connector with IF or AND conditions, e.g.My Attr1 = 5, or4 < My Attr1<7

Otherwise

Entity Type Type (from Entity type combo box)

Otherwise (True or False)

Request for Quote

Otherwise

Priority Priority (Entity Priority 1-100)

Otherwise (True or False)

1

Otherwise

122 SIMPROCESS User’s Manual

Merge Activity

Merge ActivityA Merge activity routes entities from different connectors into one connector. Merge can be used to TimeStamp all entities or to reduce the number of “to and from” Connectors to create a more visually appealing model.

SIMPROCESS User’s Manual 123

CHAPTER 4–Activity Modeling Constructs

Copy ActivityThe Copy activity generates duplicate entities. This is useful when two different activities require the same information. For example, an Order may need to go to Accounting and Manufacturing at the same time.

Dialog Box Field Definitions• Number of Copies per Connector is the number of entities that

will come out the Copies pad into each connector.• If you define a Duration for the activity, the time specified in

the Duration will be applied before the activity. In other words, it will be reflected in the Cycle Time of the incoming entities.

• If you have defined Time Stamps for the incoming Entity, those values can be passed to the Copies by selecting Copy Time Stamps.

124 SIMPROCESS User’s Manual

Split and Join Activities

Split and Join ActivitiesThe Split and Join activities work together to temporarily split the processing of an entity among parallel activities.

At the Split activity, an entity is converted into two or more entities, each of which follows a different path before reuniting at a Join activity.

The Split activity generates child entities from the parent entity. The children and the parent entity are said to belong to the same family. After going their separate ways, the family is reunited at the Join activity, where a single entity exits for continued processing.

In the order fulfillment process, Split and Join might come into play in the handling of rush orders. To speed up processing of rush orders, you might divide the work among several clerks at some point:

SIMPROCESS User’s Manual 125

CHAPTER 4–Activity Modeling Constructs

Figure 2. Rush Order

In the figure above, a Split activity takes a customer order entity and releases three entities, the original and two children. Each entity goes to a different activity, where a different task is performed on the order.

126 SIMPROCESS User’s Manual

Defining a Split Activity

Defining a Split ActivityWhen you add a Split activity to the SIMPROCESS layout, its icon is displayed with one input pad and two output pads attached:

The upper output pad is named Clones; the lower pad is named Original (if you double-click on the pads, you will see their names in the Pad Detail dialog box).

Use the Original pad to route the original entity to the next activity in its path. Use the Clones pad to route each of the split entities to their next activities. You can release an unlimited number of split entities of different entity types at a Split activity, but all entities emerge from the same pad; you cannot add a third output pad.

To define the process shown in Figure 2, begin by placing a Split activity and three Delay activities on the SIMPROCESS layout.

Open the Split Activity Properties dialog box by double-clicking on the Split icon:

SIMPROCESS User’s Manual 127

CHAPTER 4–Activity Modeling Constructs

Dialog Box Field DefinitionsThe unique attributes of the Split Activity are:

• Family Name. This names the family of entities you are creating. The original entity and its children can be identified by their common family name. Family Name is used at a Join activity to identify the entities to be joined.

In this example, enter Rush Order for Family Name.

Click on OK when you are done.

Identifying Split EntitiesSplit entities are connector attributes: you define a Split entity for each connector linking a Split activity to a connecting activity.

You first draw a single connector from the Original output pad to an adjoining activity’s input pad. Then, connect the Split output pad to the other adjoining activities.

128 SIMPROCESS User’s Manual

Defining a Split Activity

As an example, Figure 2 shows the distribution of rush order processing into three simultaneous activities: paper work, retrieval of an item from inventory, and updating of the inventory database.

The Original pad of the Split activity is connected to the input pad of the Update Database activity, so the original customer order entity flows through Update Database.

Double-click on one of the connectors emanating from the Split pad:

Dialog Box Field DefinitionsThe unique attributes of the Split Connector are:

• Entity Type is the field where you will select the split entity that will flow along this connector.

• Quantity allows you to specify how many of the split entities will flow along this connector for each original entity that enters the Split activity.

SIMPROCESS User’s Manual 129

CHAPTER 4–Activity Modeling Constructs

• Copy Attributes opens a dialog box where you can specify which Global Entity Instance attributes to copy from the original entity to each of the split entities. Entity Priority and Time Stamps can also be copied from the original entity to each of the split entities.

Click on the Entity Type pull-down box for a list of the entities in your model. Select the entity that you want to flow along this connector.

For analysis purposes, consider using a different name for the children. For example, if you use a Customer Order entity for each of the paths leading from the Split activity, and all split entities meet again at the Join activity, the two split entities are destroyed at the Join, while the original entity continues on. When total cycle time for customer order entities is calculated at the end of a simulation, those split entities skew the statistics.

Cycle times for the split entities are measured from generation in the Split activity to termination in the Join activity, while the original entity’s cycle is measured from a Generate to a Dispose activity.

In the case of Rush Order Processing, we do not want to skew the cycle time or entity count statistics for Customer Order entities, so we define an entity named Temp and use it on the Split connectors.

130 SIMPROCESS User’s Manual

Defining a Split Activity

Note that using an entity named Temp for split entities is adequate if you are not interested in any simulation statistics of these entities. If you are interested in the number of each split entity generated during a simulation, or any other entity statistic, define a different entity type for each Split path.

If you want SIMPROCESS to display the entity name on the connector, select the Auto Label option. The name will be displayed unless Show Name on the Connector is turned off.

Click on OK when you finish defining the connector.

SIMPROCESS User’s Manual 131

CHAPTER 4–Activity Modeling Constructs

Defining a Join ActivityEntities released from a Split activity are reunited at a Join activity.

Like the Split activity, the Join activity icon has one input pad and two output pads. The upper output pad is named Joined; entities that are reunited with their family exit through this pad. The lower pad is named NoMatch; entities that are not members of the Join family leave through this pad.

What happens if an entity that is not a member of the Rush Order family enters the Join activity? It will simply pass through the Join activity and exit through the NoMatch pad.

Double-click on the Join activity to define its properties:

132 SIMPROCESS User’s Manual

Defining a Join Activity

On the Join Activity Properties dialog box:

Family Name identifies the entity family to be joined. The pull-down list for Family Name contains the names of all families that you have defined in your model.

In this example, Rush Order is the family to be joined.

Batch Family Members tells SIMPROCESS to batch the child entities with the original entity. The entity can be separated into its components at an Unbatch activity. Otherwise, all the child entities are disposed of by the Join Activity.

In the Rush Order example, child entities are no longer needed after the Join.

By default, SIMPROCESS releases the original entity through the Joined pad. If the original entity enters a Dispose activity or is otherwise destroyed before it reaches a Join, SIMPROCESS releases one of the child entities at the Join activity. You cannot specify which child entity is released in this case; SIMPROCESS selects it for you.

Note that if you delete any child entities before they reach their Join activity, the rest of the family still reunites at the Join; if the rest of the family is already at the Join activity at the moment the child entity is destroyed, SIMPROCESS releases them.

SIMPROCESS User’s Manual 133

CHAPTER 4–Activity Modeling Constructs

134 SIMPROCESS User’s Manual

CHAPTER 5

Resource Modeling Constructs

A resource is an agent that is required to perform the tasks associated with an activity. People, equipment, vehicles, money, and space can be modeled as resources. The limited availability of resources is an important constraining factor in business processes.

For example, a bank customer requires the help of a loan officer in order to submit a loan application. On a manufacturing line, a computer board cannot be populated with chips unless both an operator and a surface mounting tool are available. In these examples, the loan officer, the operator, and the surface mounting tools are resources whose availability affects the activity.

The unavailability of critical resources creates bottlenecks in a business process. Simulation is a very effective tool for identifying resource bottlenecks. SIMPROCESS provides the means for modeling resources and for measuring the impact they have on the performance of a business process. In addition, variable and fixed costs associated with resources may be used to measure process costs and activity costs. See Chapter 7, ”Activity-Based Costing,” beginning on page 163 for more details.

SIMPROCESS User’s Manual 135

CHAPTER 5–Resource Modeling Constructs

This chapter describes how to:

• Define resources.• Define groups of resources for complex resource

requirements.• Define the resource requirements of activities.• Use resource related activities such as: Get Resource, Free

Resource, and Replenish Resource.

First, though, we will begin by describing how SIMPROCESS allocates resources during a simulation.

136 SIMPROCESS User’s Manual

Resources and Simulation

Resources and SimulationWhen an entity arrives at an activity, SIMPROCESS checks to see if any resources are required to process it. If resources are required, SIMPROCESS attempts to obtain them. Once an activity gains control of a resource, that resource is unavailable to any other activity that requests it. The activity retains control of the resource until it finishes processing the entity.

Resource Allocation Policy

During simulation, many activities may simultaneously contend for the same resource. If a required resource is not available when an entity arrives at an activity, the entity waits for that resource in a queue. This state is defined as "Wait for Resource" in the SIMPROCESS output reports.

If an activity requires two resources and only one is available, SIMPROCESS may or may not obtain the resource that is available. It depends on the rules you have defined for your model. Any resource an activity holds is unavailable to other activities.

SIMPROCESS attempts to satisfy resource requirements in the order of the priority of Entities queued for the resource. Priority is an entity attribute assigned when the entity is defined. All entities with the same priority are treated on a first-come, first-served basis.

SIMPROCESS User’s Manual 137

CHAPTER 5–Resource Modeling Constructs

Defining Resources Use the Resource option from the Define pull-down menu, to define resources in a model.

In the following discussion, we will use as examples resources for an order distribution process: salesclerks to process the orders, trucks to deliver merchandise, and fuel to power the trucks.

1. On the Define pull-down menu, select Resources...

From the Resources dialog box you can define new resources, modify existing resource definitions, copy resource definitions, or delete resources:

The Add function creates a new resource definition.

The Edit, Remove, and Copy functions are only active if there are existing resource definitions. These functions operate on the resource selected in the list box:

Edit modifies an existing resource definition.Remove deletes a resource definition.Copy creates a new resource based on the definition of an existing one.Type specifies the resource template that will be used to create a new resource definition.

138 SIMPROCESS User’s Manual

Defining Resources

SIMPROCESS comes with three Resource types defined. You can choose any one of the three when you define a new Resource from the Type field at the top of the Resources list box. When you push the Add button, a new Resource with the characteristics of the Type you selected will be created. The three types of Resources are characterized by their Downtime Schedules as follows:

• Resource - Default Resource, with no Downtime scheduled. Available 24 hours a day, every day.

• Standard Shift - Same as the Resource, except with a Downtime schedule that has the Day Shift Resource only available from 8 am to 5 pm, Monday through Friday. Also down for one hour from 12 noon to 1 pm.

• Night Shift - Same as the Resource, except with a Downtime schedule that has the Night Shift Resource only available from 11 pm to 8 am, Monday through Friday. Also down for one hour from 3am to 4 am.

For more information on Resource Templates, see Chapter 9–Reusable Templates and Libraries. This topic begins on page 199. For more information on Resource Downtime, see Chapter 11–More Advanced Model Building. This topic begins on page 263.

2. Click on Add to define a new resource:

SIMPROCESS User’s Manual 139

CHAPTER 5–Resource Modeling Constructs

On the Resource dialog box:

Name is any unique name identifying the resource. A default name is provided, but you should change this to something meaningful.

For this example, define the sales clerk staff, and name the resource Clerks.

NOTE

Units identifies how much of the resource is available.

In this example, assume that there are five clerks on the staff. Enter the number 5 in the Units field.

Defining all clerks as a single resource implies that the clerks are interchangeable: each clerk can perform the same tasks as any other clerk.

If any clerks on the staff have unique capabilities, define those clerks as separate resources. For instance, say one of your five clerks is particularly adept at handling irate customers. This is the clerk you want to handle customer complaints. You can define that person as a separate resource, named Diplomatic Clerk, with 1 Unit. Then specify 4 Units for the interchangeable Clerks resource.

Then number of Units of a Resource can also be specified with a single line Expression, or a User-defined Attribute. For more information on these topics, see Chapter 10–Customizing a Model with Attributes and Expressions, beginning on page 213.

Fractional Usage indicates whether or not you can allocate fractional units of the resource. If you check off this box, you can define a non-integer value for Units (e.g., 2.5, 10.2). It also means that an activity can acquire a fractional part of the resource.

Whether or not to allow fractional usage depends on how the resource is used in your model. For human resources such as

Special characters, such as "/", "+", or "-", should not be used in the Name of a resource. This may cause SIMPROCESS to not collect statistics for the ABC Reports.

140 SIMPROCESS User’s Manual

Defining Resources

Clerks, allow fractional capacity if clerks can work on more than one task at a time. If you assume that a clerk can only attend to one task at a time, leave the Fractional Usage box blank.

Consumable indicates whether a resource loses a portion of its units when it is allocated to an activity.

Fuel and money are examples of consumable resources. Say you define a Fuel resource, with a capacity of 1000 gallons. Some activity requires 50 gallons of fuel. Once the activity uses 50 gallons of fuel, those 50 gallons are gone.

You can use the Replenish Resource activity to add units to consumable resources during a simulation.

Clerks are reusable, so do not check Consumable.

The Cost function allows you to assign cost values to resources and keep track of the expense involved in using resources. This function is described in detail in Chapter 7–Activity-Based Costing, beginning on page 163.

Expressions provide you with the means of writing your own specialized processing instructions. Attributes are customized variables you define for a resource. Typically, expressions include processing of attributes. These topics are discussed in depth in Chapter 10–Customizing a Model with Attributes and Expressions, beginning on page 213.

The Document function is used the same way it is for Activities, to store descriptive text about the resource.

Comment is a brief sentence about the resource. This field is optional.

The Add Template command lets you save the resource you have defined for re-use. Resource templates are discussed in in Chapter 9–Reusable Templates and Libraries. This topic begins on page 199.

The Downtime command lets you define the periods when the resource will not be available in the model. Resource downtimes are described in Chapter 11–More Advanced Model Building. This topic begins on page 263.

SIMPROCESS User’s Manual 141

CHAPTER 5–Resource Modeling Constructs

Defining Resource Requirements for Activities

Most processing tasks require one or more resources. For example, completing an application for a patent claim may require a full-time researcher, a part-time lawyer, and a part-time clerk. In this case, the activity needs more than one resource, with some resources used at less than their maximum capacity.

In some situations, one set of resources may be interchangeable with another set. For example, shipping furniture from a factory to a warehouse may require either three medium-size trucks or two large trailers.

This activity requires a truck to transport the merchandise, and diesel fuel to power the truck.

To define the resource requirements for the activity, start by double-clicking on the activity’s icon to display the Activity Properties dialog box. On the dialog box, click on the Resources button:

142 SIMPROCESS User’s Manual

Defining Resource Requirements for Activities

On the Resource Usage dialog box:

Add Resource adds an individual resource requirement for the activity.

Use Edit to modify an existing requirement definition.

Any existing requirements will be listed under the Requirements heading. Highlight the requirement you want to modify, and then press Edit. Resource requirements can be variable by using User-defined Attributes. See “Variable Resource Usage” on page 232.

Remove deletes the requirement highlighted in the Requirements box.

Once you have chosen a list of resources for the activity, you can specify the combination of these resources in the Requires radio box.

Requires defines the combination of resources required to perform this activity:• Any One Member — any one of the resources listed is

sufficient to perform the task.

SIMPROCESS User’s Manual 143

CHAPTER 5–Resource Modeling Constructs

• All Members — all members in the Requirements list are needed in order for this activity to process an entity.

SIMPROCESS does not obtain any member until all the required resources are available.

• Reserve As Available — all listed resources are required and will be reserved as they become available.

• Any __ Members — Any number or members of the list are needed to process an entity. Enter the value of number in the box.

Defining Individual Resource RequirementsOn the Resource Usage dialog box, click on the down arrow of the combo box next to the Add Resource button to display the list of available resources. Select Truck from the pull-down list and click on the Add Resource button to add one Truck to the Requirements list. In this case we only need a single truck, so we are not going to edit its Usage Rate.

Reserve As Available may pose a risk of deadlock.

For example, say activities A and B are both defined as requiring resources 1 & 2, using Reserve As Available logic. An entity arrives at activity A, which obtains resource 1. Resource 2 is not available, so A waits for it.

Now an entity with higher priority arrives at Activity B. Activity B waits for resources 1 and 2. Then resource 2 becomes available. Although Activity A has been waiting for Resource 2 longer than Activity B has, B gets the resource because the entity it is processing has a higher priority than Activity A’s entity. A deadlock develops since neither activity will release the reserved resource. If you decide to use Reserve As Available logic, make sure this situation cannot develop.

144 SIMPROCESS User’s Manual

Defining Resource Requirements for Activities

Repeat the same steps for Diesel Fuel, but edit its Usage Rate once it has been added to the Requirements list. Specify a Usage Rate of 100.

For this activity, we need to define two resource requirements: a truck, and fuel to power the truck.

SIMPROCESS User’s Manual 145

CHAPTER 5–Resource Modeling Constructs

Explicitly Getting and Freeing Resources

During a simulation, allocation of resources is handled by SIMPROCESS according to the requirements and priorities you have defined.

When an entity arrives at an activity, if a resource is listed in the resource requirements list for the activity, SIMPROCESS attempts to obtain the resource required to process the entity. If the required resource or resources are not available, the entity waits until the resources become available. When processing is completed, the activity releases the entity and frees the resources.This is an implicit way to get and free a resource.

Sometimes, you want to hold on to a resource over the course of several activities or processes. For example, Figure 3 represents some of the steps performed in a mail order fulfillment process when a customer order is received:

This processing is performed by a clerk. In the model, clerk is defined as a resource, and each activity is defined as requiring a clerk.

In a SIMPROCESS simulation, each activity obtains the specified quantity of resources when it receives an entity, and then releases the resources when it finishes processing the entity. So it is possible that

Figure 3. Tasks Handled by the Same Clerk

146 SIMPROCESS User’s Manual

Explicitly Getting and Freeing Resources

between Identify Customer and Create Customer Profile, for example, some other activity in the model could grab the clerk and delay this entity’s processing.

In the real world, one clerk actually takes the order from the customer and handles it through much of the distribution process.

To model this in SIMPROCESS, use a Get Resource activity to obtain the resource, and a Free Resource activity to free the resource when it is no longer needed. Figure 5 is an example of explicitly obtaining a resource.

Figure 4. Order Distribution Process Overview

SIMPROCESS User’s Manual 147

CHAPTER 5–Resource Modeling Constructs

Get Resource ActivityUse the Get Resource activity to obtain a resource and hold on to it across multiple processes and activities.

Be sure to assign a unique Tag to each Get Resource activity. Although it is possible to use the same Tag twice at different levels of the model hierarchy, it can lead to confusion when it comes time to release allocated resources.

In the Get Resource Activity Properties dialog box, click on Resources to specify the resources to be allocated. Fill out the Resources Usage dialog box as specified in “Defining Resource Requirements for Activities” on page 142.

Here is the process shown in Figure 3 on page 146 with a Get Resource activity added:

148 SIMPROCESS User’s Manual

Explicitly Getting and Freeing Resources

Keep in mind that you are using Get Resource to obtain resources that you would otherwise obtain in each of the ensuing activities. This means that you do not define the same resource requirement in those activities as well.

For example, you need a clerk to process the entity in the Identify Customer, Create Customer Profile and Access Customer Profile activities. You account for this resource requirement in the Get Resource activity. Do not define the same requirement in the Properties dialog box of each activity.

Free Resource ActivityUse the Free Resource activity to free resources obtained at a Get Resource activity. In the order distribution model represented by Figure 4 on page 147, the last task handled by a clerk is arranging for payment of the ordered merchandise. When that process is complete, the order is passed to the shipping department to be filled.

SIMPROCESS User’s Manual 149

CHAPTER 5–Resource Modeling Constructs

Add a Free Resource activity after the activity labeled Create Bill. Double-click on the activity to view its properties dialog box:

You can free all resources that have been allocated for this entity by clicking on the Release all Allocated Resources box. Often, though, you will want to specify exactly which resources are to be released.

Figure 5. Processing Payment for an Order

150 SIMPROCESS User’s Manual

Explicitly Getting and Freeing Resources

To define the set of resources to be freed, click on the Add button in the Free Resource Activity Properties dialog box.

Assign a Name to the action you are defining. This name will be displayed in the List of actions field of the Release Activity Properties dialog box when you finish defining the action.

The Tag and Resource fields work together in defining free resource actions:

1. Tag indicates the Get Resource activities whose resources will be released. The pull-down list for this field lists all the Get Resource activities’ tags in your model.

You can select a tag from the listbox, or specify any tag!, in which case SIMPROCESS may free resources obtained in any activity the entity has visited.

SIMPROCESS User’s Manual 151

CHAPTER 5–Resource Modeling Constructs

If you want to free resources allocated at two or more activities, but not all of the listed activities, you need to define a separate free action for each activity.

2. Use the Resource pull-down list to specify the resource you are freeing, or select all resource! to free all resources allocated for the entity. Resources are only freed if they were obtained in the activities you specified in the Tag field.

If you want to release more than one resource, but not all the listed resources, create a separate action for each resource.

3. Click on OK to accept your definition. The action now appears in the List of Actions schedule.

You can add additional actions to the list by clicking on Add and defining the action.

To modify the definition for an action item, highlight it in the listbox and click on Edit. To remove the action, click on Remove.

SIMPROCESS provides you with the option of whether or not to deduct the amount acquired from consumable resources when those resources are freed. Click on the Consumable resources will be consumed check box in order to decrement consumable resources.

For example, you define a Get Resource activity that obtains 50 gallons of Diesel Fuel in anticipation of shipping merchandise to a customer. Before reaching the shipping activity, the entity enters a branch node in which the merchandise order is canceled. In this situation, one branch of the path leads to a Free Resource activity where the consumable resource is not consumed, since it was not used. The other path continues on to the shipping activity, and then to a Free Resource activity in which the fuel resource is consumed.

152 SIMPROCESS User’s Manual

Replenishing Consumable Resources

Replenishing Consumable ResourcesUse the Replenish Resource activity to replenish a consumable resource during a simulation.

For example, diesel fuel powers the trucks your company uses to ship merchandise. When you define the activity in which merchandise is shipped to customers, you define both a truck and some quantity of diesel fuel as resource requirements.

Every morning, fuel is delivered to the truck depot by a fuel distributor. To reflect this in a model, define a Replenish Resource activity to add units to the diesel fuel resource. Double-click on the Replenish Resource icon to define the resource you are replenishing:

SIMPROCESS User’s Manual 153

CHAPTER 5–Resource Modeling Constructs

On the Replenish Resource Activity Properties dialog box, click on Add to define a replenish action:

The Resource field identifies the resource to be replenished. The pull-down list shows all the resources defined in the model. In this example, Diesel Fuel is the resource we want to replenish.

Note that only consumable resources can be allocated in a Replenish Resource activity. Specifying a non-consumable resource results in an error message.

154 SIMPROCESS User’s Manual

Replenishing Consumable Resources

Units indicates the amount of the resource to be added. You can specify either a real number or a statistical distribution. The distribution can be selected from the pull-down list of the Units field.

• The Replenish to Capacity box indicates that a resource should be replenished up to the value specified in its Units field when the resource was defined.

In this example, the number 1000.0 was entered.

After you press OK, the resource definition appears on the list of Replenishment Actions.

SIMPROCESS User’s Manual 155

CHAPTER 5–Resource Modeling Constructs

156 SIMPROCESS User’s Manual

CHAPTER 6

Graphical Modeling Constructs

SIMPROCESS User’s Manual 157

CHAPTER 6–Graphical Modeling Constructs

Background TextThere are two types of background text in SIMPROCESS: static text and dynamic labels. Static text is used for annotating the model layout and does not change during simulation. Dynamic labels, as their name implies, are updated during simulation and are used to display information about changing properties of model elements.

Dynamic labels are an advanced feature found in SIMPROCESS Professional. They are covered in Chapter 10–Customizing a Model with Attributes and Expressions. This topic begins on page 213.

Properties of both kinds of text are specified in the Background Text dialog. The dialog is invoked by selecting a text tool from the palette (marked by a capital T) and clicking on the background in the location where text is to be placed. Text can be moved afterwards by clicking and dragging just like any icon.

Below the Static Label field, the dialog is divided into two sections: the top group of controls, designated as Dynamic Label Properties is only applicable to dynamic text, the bottom group — Font Attributes — is used to specify properties of both kinds of text.

158 SIMPROCESS User’s Manual

Background Text

SIMPROCESS provides two types of fonts: native and system. Native fonts are supplied by the operating system on which you are running. In order to choose a native font, select Native in the Font combo box and click on the Set… button. Native font properties are specified in an operating system’s Fonts dialog. For example, in Microsoft Windows you can choose font name, style and point size. The preview of the text will appear in the Sample box to help you quickly choose the desired attributes. Once the font is chosen and the Fonts dialog is closed, you can specify text color and angle in the Background Text dialog. For native fonts, only 90 degree rotations of the text are allowed. Note that once the text is placed on the layout, the selection box around it has no handles. You can move the text, edit its properties and group it with other objects on the layout, but you cannot resize the text by dragging its selection box. The only way to resize native font text is to change its point size in the Fonts dialog.

SIMPROCESS system fonts are vector fonts, which means they can be scaled on the layout by dragging the handles that appear on the selection box around the text. Vector fonts are created by choosing anything other than Native in the Font combo box. The Set… button will become disabled, but you can still set the color and angle of the text. Note that vector fonts can be rotated by all angles defined in the combo box.

Several text labels can be grouped together on the layout and their horizontal and vertical alignment can be set in the H. Align andV. Align combo boxes.

SIMPROCESS User’s Manual 159

CHAPTER 6–Graphical Modeling Constructs

Background GraphicsTo place a background graphic on the model layout, select the Background Graphic icon from the palette and move it to the layout. The Select background dialog will open. Select the icon you wish to use and select OK to close the dialog. Once the graphic is on the layout, it can be resized the same as any other icon on the SIMPROCESS layout.

When you edit the properties of the Background Graphic, you find two options on the properties dialog, Locked and On Top.

Turning the Locked option on locks the Background Graphic to its current position on the layout. This will prevent you from inadvertently moving the Background Graphic when you are intending to edit some other SIMPROCESS construct, or navigate a model hierarchy.

Turning the On Top option on, brings the Background Graphic to the front of the layout display. In other words, any other SIMPROCESS constructs you place on the Background Graphic will be hidden behind it. Typically this option is left off, so that the Process, Activities and Connectors that you place on the screen will appear on top of the Background Graphic.

160 SIMPROCESS User’s Manual

Importing Bitmap Graphics

Importing Bitmap GraphicsYou can import a bitmap graphic into SIMPROCESS for a number of different uses on the layout of your model. A bitmap can be used as a Background Graphic, as an icon representing a Process or Activity, or as an icon representing an Entity. Regardless of which you wish to use the bitmap for, the process of importing a bitmap is the same.

From the File menu, select Import Bitmap File. This will open the Import Bitmap dialog box.

From the Type field, choose which SIMPROCESS construct: processes, activities, entities or background that the graphic will be used for. SIMPROCESS will look for the bitmap file in the SIMPROCESS working directory (by default, the C:\SPUSER directory). If your bitmap file is not stored there, select the Browse button. This will allow you to direct SIMPROCESS to the location of your bitmap file. SIMPROCESS will fill in the Icon Name field with the name of the bitmap file, or you can type in any name you wish. Select OK to import the bitmap file for use in SIMPROCESS.

If you imported the bitmap file for use as a Process, Activity, or Background Graphic, when you open the properties dialog of that type of construct, the icon name will be in the list of the Icon field. Select the icon name from the list, select the OK button to close the properties dialog, and your icon will be displayed. The icon can be resized in the same manner as any SIMPROCESS icon.

If the bitmap file was imported for use as an entity icon, it will be on the list for the Icon field in the Entity Type Properties dialog box. As

SIMPROCESS User’s Manual 161

CHAPTER 6–Graphical Modeling Constructs

with other SIMPROCESS entity icons, you will not be able to resize the graphic once you have imported it.

Note

When you import a bitmap graphic into SIMPROCESS, a copy of the bitmap file is placed by SIMPROCESS in the SG2LIBS directory under the SIMPROCESS working directory (by default, C:\SPUSER\SG2LIBS). Do not delete this bitmap file as SIMPROCESS will refer to it whenever the graphic is used.

162 SIMPROCESS User’s Manual

CHAPTER 7

Activity-Based Costing

SIMPROCESS User’s Manual 163

CHAPTER 7–Activity-Based Costing

Introduction to Activity-Based CostingThe purpose of this introduction to Activity-Based Costing is to summarize the basic principles of ABC and describe the benefits of the integration provided with SIMPROCESS. If you are not familiar with ABC, a list of references is provided in the back of the chapter for further reading.

164 SIMPROCESS User’s Manual

Why ABC?

Why ABC? The goal of ABC is to mimic the causal relationships among resources, activities, and entities in assigning overhead costs. “The fundamental belief behind this costing approach is that cost is caused and causes of cost can be managed. The closer you can come to relating the costs to their causes, the more helpful your accounting information will be in guiding the management decisions of your business.” states the Ernst & Young Guide to Total Cost Management (Ernst & Young, 1992).

Enterprises use resources to conduct activities. Resources perform activities to add value to products and services. The key to understanding cost dynamics in any enterprise is modeling the relationship between activities and their causes; and the relationship between activities and costs. If cost dynamics are not modeled (which is usually the case with traditional management accounting information systems), the performance information provided is incomplete or misleading.

SIMPROCESS User’s Manual 165

CHAPTER 7–Activity-Based Costing

What is ABC?Activity Based Costing is a technique for accumulating cost for a given cost object (i.e. product, service, customer) that represents the total and true economic resources required or consumed by the object.

Activity Based Costing occurs in two phases. First, cost data is organized into activity cost pools. In other words, the costs of significant activities are determined. This first phase is sometimes referred to as activity based process costing. Then, the amounts in the cost pools are assigned to products, services or other cost objects. The second phase is referred to as activity based object costing.

166 SIMPROCESS User’s Manual

How Does SIMPROCESS Implement ABC?

How Does SIMPROCESS Implement ABC?

The architecture of SIMPROCESS provides an integrating framework for ABC. The building blocks of SIMPROCESS are processes, resources, and entities, bridge ABC and dynamic process analysis. ABC embodies the concept that a business is a series of inter-related processes, and that these processes consist of activities that convert inputs to outputs. The modeling approach in SIMPROCESS manifests this concept, and builds on it by organizing and analyzing cost information on an activity basis.

One of the major challenges in successful implementation of ABC is finding the appropriate level of detail for the business process analysis. The organization of business processes is critical to reorganizing the cost data into activity pools. The hierarchical modeling approach of SIMPROCESS facilitates this organization and accommodates varying levels of detail for ABC analysis.

Another significant value of the ABC analysis in SIMPROCESS comes from the dynamic analysis of costs based on the event-driven simulation. Because SIMPROCESS keeps track of resource interdependencies and captures the random nature of processes, the cost statistics provided by SIMPROCESS are far more accurate than results obtained from static analysis.

SIMPROCESS User’s Manual 167

CHAPTER 7–Activity-Based Costing

Benefits of ABC with SIMPROCESS

Focus on Cost DriversOne of the most important benefits of ABC is the focus it provides for estimating the key causes of costs. Executives can use these estimates to prioritize and monitor improvement efforts. For example, understanding the cost of poor quality can justify the investment in a quality program. Likewise, understanding the cost of complex or diverse products and services can help streamline the product and service offerings.

Strategic PricingLife cycles of product and services are becoming shorter and shorter. The up-front costs of developing, testing, and marketing are not recouped until revenue is generated. Understanding the cost trade-off between life cycle stages is critical to strategically pricing the products. That is, understanding when the total investment in product development can be recouped is valuable information for strategic pricing. ABC with SIMPROCESS allows simulation of the process changes during the life cycle of a product/service for strategic or time-based pricing.

Evaluation of Capital InvestmentsReengineering business processes requires a trade-off between the benefits and costs of making process improvement changes. Without the trade-off, executives and managers are faced with making large investment decisions based on gut feel.

168 SIMPROCESS User’s Manual

How to Use ABC in SIMPROCESS

How to Use ABC in SIMPROCESS To get process cost information from a SIMPROCESS model, you need first to define the costs of the model's resources and the cost periods to be analyzed. SIMPROCESS will distribute these costs to activities and to entities as the simulation proceeds and provide extensive reporting of the results based on user specified cost reporting periods.

In order to provide you with a comprehensive cost analysis, SIMPROCESS differentiates between fixed costs and several types of variable costs that can be assigned to a resource. SIMPROCESS allows multiple cost periods to be analyzed simultaneously and allows model level definition of costing periods. These features help to bridge the gap between an accountant's view and a manager's view of a business process, provide an effective communication vehicle for the participants in a process reengineering project and make SIMPROCESS a complete business process analysis tool.

SIMPROCESS' costing facility is very simple to use. Prior to running a simulation, you may define the cost periods for cost calculation purposes or accept SIMPROCESS' default cost periods, which are based on calendar quarters (3 months each). You must also define costs for at least some of the resources in your model, presumably those that represent the most significant costs in your business process (hourly payroll, salaries, capital equipment depreciation, etc.). The following describes how to complete these two steps.

SIMPROCESS User’s Manual 169

CHAPTER 7–Activity-Based Costing

Setting Up Cost PeriodsYou should pick the cost periods that are most suitable for the system under study. SIMPROCESS selects quarterly cost periods as the default but allows weekly, monthly, half yearly, and yearly cost periods, too. For example, let us assume that you have a simulation that will run for one year. That is, the simulation start date is 1/1/96 at 00:00:00 (12:00 o'clock midnight) and the end date 1/1/97 at 00:00:00. Let us further suppose that you wish the simulation to generate cost reports for each calendar quarter during the simulated year 1996.

To define Cost Periods, select Simulation/Run Settings from the main menu.

Then, click on the Cost Periods button. This will display the Cost Periods definition dialog as shown below.

170 SIMPROCESS User’s Manual

Setting Up Cost Periods

The list in the upper left of this dialog shows the currently defined cost periods. The default periods are Quarter1, Quarter2, Quarter3, and Quarter4. At the bottom of the dialog, is the Period Frequency selection list with the default Quarterly selected. Click the down arrow button to see all of the Period Frequencies that SIMPROCESS offers: Weekly, Monthly, Quarterly, Half Yearly, and Yearly. Notice that if you select a new Period Frequency, SIMPROCESS will create a new set of periods in the period list and assign each a default name (Week1, Week2, ..., or Quarter1, Quarter2, ...). Notice also that SIMPROCESS will automatically create and name enough cost periods to span the currently specified run length. (The simulation Start Time and End Time are set from the Simulate/Run Parameters option on the menu bar.)

This dialog also allows you to set the name of the Currency used on the cost reports. This is a simple label used in the reports. SIMPROCESS provides no currency conversion facilities and assumes that all cost amounts are in the same currency (dollars, pounds, deutschemarks, lire, etc.).

If you select a particular cost period and click the View... button, SIMPROCESS will display the Cost Period detail dialog which shows the start and end dates and times for the cost period and the name of the period. You can change the name of each cost period to be more descriptive in the context of your cost report. For example, you may wish the cost periods to be called Spring, Summer, Fall, and Winter rather than Quarter1, Quarter2, etc. Click the OK button to alter the cost period name or the Cancel button to discard your changes.

SIMPROCESS User’s Manual 171

CHAPTER 7–Activity-Based Costing

Setting Up Resource Costs SIMPROCESS allows you to specify the costs of each resource in the model. You do not have to specify costs for all resources; SIMPROCESS will generate cost reports only for those resources that have costs specified. You can specify both fixed and variable costs for non-consumable resources and variable costs for consumable resources. These costs are specified as part of defining each resource.

To see the Resource Costs definition dialog, first select the Define/Resource option from the menu bar. Then pick a previously defined resource from the list for editing or add a new one using the Edit or Add buttons. This will display the Resource Properties dialog as shown below:

Click the Cost... button to display the Resource Costs dialog for this resource. It looks like the following:

172 SIMPROCESS User’s Manual

Setting Up Resource Costs

The box at the top of this dialog shows the Variable Costs and the box below shows the Fixed Costs.

The check box at the bottom left-hand corner of the dialog, Collect cost statistics, is turned on by default whenever cost information is entered. It is important that you leave this checked on. Otherwise, cost statistics used in the ABC Reports will not be gathered.

Variable CostThree types of variable costs can be specified for non-consumable resources:

Usage Cost per Entity

This cost is applied to each entity that is processed by the resource. It is used to represent "flat fee" type charging schemes. The same cost is assigned regardless of the amount of the resource's units that is used or the duration of the activity. Example: Often administrative charges or service call charges are based on this kind of charging scheme.

Cost Per Unit

This cost is applied to each entity that is processed based only on the amount of the resource's capacity that is used to process the entity. The cost is not calculated based on the time that the activity takes to complete. Example: Fuel may be defined as a consumable resource

SIMPROCESS User’s Manual 173

CHAPTER 7–Activity-Based Costing

and cost per unit may be 1.50 dollars per gallon. Every time a gallon of fuel is consumed, it will cost 1.50 dollars.

Hourly Cost per Unit

This cost is calculated based on the amount of resource capacity used and the time used. Example: Machine rental charges or hourly salary paid to employees are a common example of this type of cost.

Fixed CostsFixed Costs are defined in the box below the Variable Costs box. You enter the fixed cost amount in the Per Unit value box and select the time basis for the cost from the selection list to the right. Machine depreciation or fixed salaries are common examples of this type of cost. Let's assume that you want to specify the fully burdened cost of a set of salaried employees which are represented by this resource and the cost per employee is $50,000.00 per year. You should enter 50000 in the Per Unit box and select Yearly from the list on the right. You can see the items on the list by clicking the down arrow to the right of the list. You will notice that the list contains the same time intervals that are available for the Cost Period Frequency. These do not have to be the same in both places. SIMPROCESS will perform all the necessary conversions automatically.

For example, you can specify annual salaries and run a simulation for weekly cost periods. SIMPROCESS will convert the annual salary costs to weekly costs when generating your cost data. After a simulation is completed, you can see reports of the costs. By choosing Display ABC Reports from the Reports menu, SIMPROCESS allows you to specify that fixed costs be fully absorbed for the cost period (absorption costing) or that the idle time costs be kept out of the reported costs (capacity costing).

174 SIMPROCESS User’s Manual

Cost Calculations

Cost CalculationsWhen you run a simulation, SIMPROCESS will pause at the end of each cost period to calculate the period costs. SIMPROCESS tracks all the activities that used the resource and all of the types of entities processed in those activities. For each resource that has specified costs and that is set to calculate costs, SIMPROCESS will distribute the resource's fixed and variable costs for the period to all of the activities that made use of the resource during the period. This distribution is based on the amount of the available capacity used by the activity during the period. For example, suppose that a resource is used evenly by two activities and was busy 50% of the time for the cost period. Further, suppose that during the period each activity processed five entities, two of type A and three of type B. SIMPROCESS will calculate the costs for this period as follows:

1. Calculate the variable costs for each resource based on the number of entities processed and the processing times as described.

2. For each of the two resources, calculate the portion of fixed cost represented by idle time. Then calculate both the fully absorbed and capacity based fixed costs. (In this case, the fully absorbed costs should be twice the capacity costs since the resource was 50% idle during the period.)

3. Add the variable costs to the fully absorbed costs and the capacity based costs, creating two period costs for each resource.

4. Divide the period costs for the resource based on the usage by activities. (In this case, the period costs will be split evenly between the two activities.)

In general, these steps are completed for all resources in the model that are set to calculate costs. In this manner, each activity accumulates its period costs from all of the resources that it actually made use of during the period. Next, SIMPROCESS will calculate the entity costs based on these activity costs. After all resource costs are distributed to the activities, the activity costs are then distributed to each type of entity processed by the activity, based on the total number of entities processed. These calculations proceed as follows:

SIMPROCESS User’s Manual 175

CHAPTER 7–Activity-Based Costing

1. The activity determines the total number of entities processed for the period and the portion of this total represented by each type.

2. The activity costs are apportioned to the entities based on the number of each entity type divided by the total number of entities.

In other words, the pool of activity cost is broken out to each entity type based on the entity usage of that activity. In the cost report, the activity cost is displayed for the total number of each entity type, not for each entity instance. To calculate the entity instance cost, you can divide the cost for that entity type (the cost number displayed in the report) by the total number of entities of that type processed (available in the Standard Report).

Upon completion of these calculations, SIMPROCESS will resume the simulation for the next cost period.

176 SIMPROCESS User’s Manual

Displaying ABC Reports

Displaying ABC ReportsFrom the Reports pull-down menu, select Display ABC Reports for Entities, Resources, or Activities. The cost reports for Entities, Resources, and Activities are defined using a common dialog format. The dialogs consist of list boxes, buttons, and replication options.

List Boxes

Model Elements List

Depending on the cost reports selected from the Display ABC Reports menu, this list box will contain the list of the Entities, Resources, or Activities that are in the model.

Cost Periods List

Cost periods defined under Simulation Run Settings.

Cost Objects List

The objects for which cost reports will be displayed. For example, if you selected Display ABC Reports for Entities, then, the cost objects list will contain Resources or Activities.

SIMPROCESS User’s Manual 177

CHAPTER 7–Activity-Based Costing

Buttons

Display Reports

This button displays the reports for the selected cost objects. Reports can be displayed as “Sum” or “Detailed”.

Options

Capacity Cost vs. Absorption Cost

These options allow you to display cost reports with the fixed costs allocated using either Absorption or Capacity Costing. Capacity Cost calculation takes the unit hours used by the activity, and divides that by the total available unit hours of the resource, for the cost period. Absorption Cost calculation takes the unit hours used by the activity, and divides that amount by the unit hours of the resource used by all activities for the cost period.

Replications

This option allows you to display the cost report for the replication number selected in the For Replication field.

To Define a Cost Report:

1. Select the model elements for which you want to display reports (i.e. Entities, Resources, or Activities). Click on the desired radio button for Sum or Detail.

2. Select the cost period. Click on the radio button for Sum or Detail.

3. Select the cost objects. Click on the radio button for Sum or Detail.

4. Click on Display Reports button.

178 SIMPROCESS User’s Manual

Displaying ABC Reports

ReferencesMichael R. Ostrenga, Terrence Ozan, Robert Mc Ilhattan, Marcus Harwood, The Ernst & Young Guide to Total Cost Management, John Wiley & Sons, New York, 1992.

Douglas Webster, Activity Based Costing: A Tool for Reengineering the Enterprise, Enterprise Reengineering, April/May 1995, pp. 18-23.

SIMPROCESS User’s Manual 179

CHAPTER 7–Activity-Based Costing

180 SIMPROCESS User’s Manual

CHAPTER 8

Output Reports

SIMPROCESS defaults to collect statistics for all entities and all resources for the Standard Report. This default set of statistical measures will be gathered for every model you run unless you change the statistics selections. In addition, SIMPROCESS allows you to define custom statistics to gather more specific information about your model. The entity and resource statistics gathered for the Standard Report will usually be sufficient when you start working with your model. As you sharpen the focus of your analysis and your model becomes detailed, you will add custom statistics to narrow in on the performance measures you are most interested in.

Further, you can export a Simulation Results file containing all the statistics gathered from your model in a tab-delimited format, and in SIMPROCESS Professional you can export your results to a database.

SIMPROCESS User’s Manual 181

CHAPTER 8–Output Reports

Standard Output ReportAfter the simulation run has completed, you can display the Standard Report to view output statistics for your model. From the Report menu bar, choose Display Standard Report.

This will open the Display Standard Report dialog. In the Report Replications list box, (if your model ran for multiple replications) you can select which individual Replications, the Average of All Replications run, or the Sum of All Replications run you want to see performance measures for. Typically, you will want to look at the Average of All Replications report. Next, select whether you want to view the Standard Report with a Text Editor (Notepad by default) or with a Spread Sheet. Now, press the Display Report button to open the report.

To view the Standard Report with a spread sheet, use the Browse button to point to its executable, i.e., Excel.exe. Once you have the spread sheet open, the Standard Report data is best viewed in the left justified mode and with AutoFit checked for the columns.

182 SIMPROCESS User’s Manual

Standard Output Report

Default Performance MeasuresBy default, SIMPROCESS will collect the following performance on Entities and Resources:

• For each Entity defined in the model, Cycle Time and Count statistics are displayed.

• For each Resource defined in the model, average and maximum number of units busy is measured and shown as a percent of capacity.

• ABC (Activity-Based Costing) reports for each Entity defined in the model include: Total Cost of Processing and Average Cost per Entity using both Absorption and Capacity Costing to allocate fixed resource costs.

• ABC reports for each Resource defined in the model include; Total Cost of Use and Average Cost per Resource using both Absorption and Capacity Costing to allocate fixed resource costs. For more detail on Activity Based-Costing see, Chapter 7–Activity-Based Costing, beginning on page 163.

Attributes are handled differently for the Standard Report. For one thing, you must turn on the Post Simulation Reports check box on the Attribute Properties dialog for each attribute that you want statistics kept. The report will display either Time-weighted or Observation based statistics depending on which option you choose. Statistics can be kept for all types of attributes, except Entity Instance Attributes. Lastly, if the value of an attribute does not change during the simulation run, its statistics will not be displayed in the Standard Report, even if Post Simulation Reports is checked on.

• For each Attribute, other than Entity Instance attributes, defined in the model, either Observation or Time-weighted statistics will be displayed. You choose which one will be displayed when the attribute is defined. Statistics are not kept on Entity Instance attributes.

Additional Performance MeasuresYou can also define additional performance measures, custom statistics collection, to be gathered as well. Any additional measures

SIMPROCESS User’s Manual 183

CHAPTER 8–Output Reports

that you define will be added to the Standard Report the next time you run the model. Custom statistics are covered in the next section.

Note

Any models built with SIMPROCESS prior to Release 2.0 will not have the default performance measures defined on them. The performance measures displayed on the Standard Report will be those set through the Define Global Statistics Collection.

184 SIMPROCESS User’s Manual

Custom Statistics

Custom StatisticsSIMPROCESS provides you with the ability to add custom statistics to the Standard Report for analyzing the performance of your business processes. Such performance measures as cycle time, activity costs, and resource utilization can be calculated by SIMPROCESS. This chapter describes the types of statistics available, and how to define, display, print, and export them.

The following sections describe the types of statistics generated by SIMPROCESS and provide examples of each statistic type.

Entity StatisticsEntity statistics provide detailed information about the numbers of entities existing in the model during a simulation and the amount of simulation time (cycle time) that entities require to pass through the model. SIMPROCESS provides four types of entity statistical reports: (1) Total Count, (2) Real-time Plots, (3) Entity Count by State, (4) Entity Cycle Time by State, and (5) Attribute Value. Total Count, Entity Count by State, and Entity Cycle Time by State are selected either from the Define Global Statistics Collection dialog by choosing Collect Entity Statistics or by choosing Collect Entity Statistics when each entity is defined. If Collect Entity Statistics on the Define Global Statistics Collection dialog is selected, then the above statistics (other than Real-time Plots and Attribute Value) will be in the Standard Report for every entity defined. If only statistics for selected entities are desired, then the global Collect Entity Statistics should not be selected, and the Collect Entity Statistics on the Entity Definition dialog should be selected for the desired entities.

SIMPROCESS User’s Manual 185

CHAPTER 8–Output Reports

Total Count Statistics

These statistics show the total number of entities that have been generated during the simulation, how many remain in the system at the end of the simulation, and how many have exited the system throughout the simulation. Total Count will not be collected unless Collect Entity Statistics (either global or individual) is selected prior to running the simulation. The results are not available until the simulation is complete.

Real-time Plots

If selected, real-time plots display statistics while the simulation is running. This may slow the simulation but gives you a running view of the performance metrics during the simulation. If multiple real-time plots are selected, they will be stacked on top of each other. You may minimize, maximize, move or resize the real-time plots while the simulation is running. Real-time plots are selected under the Report menu item Define Real-Time Plots/Entities.

Cycle Times Plot — This report shows the individual cycle time measurements for each entity of a given type. One chart is generated for each entity type that is selected. The chart is updated as each entity of the given type completes its cycle time. This occurs when the entity is transformed or disposed in the model. The observation points on the chart are connected only to improve their visibility and are not meant to suggest continuity.

186 SIMPROCESS User’s Manual

Custom Statistics

Entities in System Plot — This chart shows the individual entity count measurements (that is, the number of entities that exist in the model) for each entity type. One chart is generated for each entity type that is selected. The chart is updated as each entity of the given type is created and disposed in the model.

Wait for Resource Plot — This chart shows the current number of entities that are in the waiting for resource state.

Hold for Condition Plot — This chart shows the current number of entities that are in the holding for condition state that may be associated with activities such as assemble, gate, and batch.

Entities In Process Plot — This chart shows the current number of entities that are in the process.

Entity Count By State Statistics

These statistics present the simulation generated entity count statistics for selected entity types. Statistics are time-weighted for entity counts. These statistics show the average number of entities in the system

SIMPROCESS User’s Manual 187

CHAPTER 8–Output Reports

broken down by three states, namely, waiting for resource, holding for condition, and in-process. Entity Count will not be collected unless Collect Entity Statistics (either global or individual) is selected prior to running the simulation. The results are not available until the simulation is complete.

Cycle Time By State Statistics

Cycle Time statistics present the simulation generated cycle time statistics for selected entity types. The cycle time calculations are based on the number of entities that were processed at the end of the simulation. These statistics show the breakdown of the Cycle Time by state. The three states that an entity may be in are waiting for resource, holding for condition, and in-process. Cycle Time will not be collected unless Collect Entity Statistics (either global or individual) is selected prior to running the simulation. The results are not available until the simulation is complete.

Attribute Value Statistics

The attribute value statistics must be specified in the dialogs where attributes themselves are defined. If the attributes are defined while entity types are being defined, then the statistics must be selected where those attributes are defined.

Time Weighted Average — This report shows the time-weighted statistics for entity attributes.

Observation-based Average — This report shows the observation based statistics for entity attributes.

Resource StatisticsResource statistics provide detailed information about the amount of time resources spend in possible states during a simulation. SIMPROCESS provides three types of statistics which show various summaries of the state information for a Resource: (1) Utilization by State Statistics, (2) Utilization by Activity Statistics, (3) Real-time Plots, and (4) Attribute Value Statistics. Utilization by State is selected either from the Define Global Statistics Collection dialog by choosing Collect Resource Statistics or by choosing Collect Resource Statistics

188 SIMPROCESS User’s Manual

Custom Statistics

when each resource is defined. If Collect Resource Statistics on the Define Global Statistics Collection dialog is selected, then the Utilization by State statistics will be in the Standard Report for every resource defined. If only statistics for selected resources are desired, then the global Collect Resource Statistics should not be selected, and the Collect Resource Statistics on the Resource Definition dialog should be selected for the desired resources. Similarly, Utilization by Activity is selected either from the Define Global Statistics Collection dialog by choosing Collect Resource by Activity Statistics or by choosing Collect Resource by Activity Statistics when each resource is defined.

Utilization by State Statistics

These statistics present summaries of the simulation generated statistics for the time that the number of units of the selected Resources spent in each state. The average number of units and percentages that were idle, busy, planned downtime, unplanned downtime, and reserved are shown in the Standard Report. Also included in the Standard Report are the percentages that a resource was idle, busy, or reserved given the resource was available. That is, downtime (planned or unplanned) is not included. The time available is considered to be the total time for the resource. Thus, if a resource has no downtime defined, then the percentages for idle, busy, and reserved will be the same for the calculations including downtime and the calculations not including downtime.

SIMPROCESS User’s Manual 189

CHAPTER 8–Output Reports

Utilization by Activity Statistics

These statistics show the average number of units that were busy by activity.

Real-time Plots

These reports present the simulation generated, instantaneous capacity allocations for each of the five resource states. The reports present their data while the simulation is running. This may slow the simulation but gives you a running view of the resource behavior throughout the simulation. Real-time plots are selected under the Report menu item Define Real-Time Plots/Resources.

All report data is shown on an X-Y plot where the (horizontal) X-Axis represents simulation time and the (vertical) Y-Axis shows the resource's units. One chart is produced for each selected Resource.

Units Idle Plot—This report shows the amount of a resource's units which is left idle during the simulation.

Units Busy Plot—This report shows the amount of a resource's units which is busy during the simulation.

Planned Downtime Plot—This report shows the amount of a resource's units which is not available due to planned downtime during the simulation.

Unplanned Downtime Plot—This report shows the amount of a resource's units which is not available due to unplanned downtime during the simulation.

Units Reserved Plot—This report shows the amount of a resource's units which is in reserved state during the simulation.

Attribute Value Statistics

The attribute value statistics must be specified in the dialogs where attributes themselves are defined. If the attributes are defined while resources are being defined, then the statistics must be selected where those attributes are defined.

Time Weighted Average — This report shows the time-weighted statistics for resource attributes.

190 SIMPROCESS User’s Manual

Custom Statistics

Observation-based Average — This report shows the observation based statistics for resource attributes.

Process/Activity StatisticsProcess/Activity Statistics provide detailed information about the numbers of entities entering and leaving particular Processes/Activities during a simulation. SIMPROCESS provides seven types of activity statistics: (1) Cycle Time by State, (2) Real-time Plots, (3) Total Entity Counts, (4) Entity Count by State, (5) Cycle Time by State by Entity, (6) Entity Count by State by Entity, and (7) Attribute Values. The Process/Activity statistics are limited in scope to specific Processes/Activities in contrast to entity statistics which encompass the entire model. Cycle Time by State, Total Entity Counts, and Entity Count by State are selected either from the Define Global Statistics Collection dialog by choosing Collect Activity Statistics or by choosing Collect Activity Statistics on the individual activity properties dialog. If Collect Activity Statistics on the Define Global Statistics Collection dialog is selected, then the activity statistics will be in the Standard Report for every activity defined. If only statistics for selected activities are desired, then the global Collect Activity Statistics should not be selected, and the Collect Activity Statistics on the activity properties dialog should be selected for the desired activities. Similarly, Cycle Time by State by Entity and Entity Count by State by Entity are selected either from the Define Global Statistics Collection dialog by choosing Collect Activity by Entity Statistics or by choosing Collect Activity by Entity Statistics on the appropriate activity. Collect Activity Statistics must be selected if Collect Activity by Entity Statistics is selected. If Collect Activity by Entity Statistics is selected (global or individual), then Collect Activity Statistics will be selected automatically by SIMPROCESS.

WARNING

Collect Activity Statistics and Collect Activity by Entity Statistics should NOT be selected from the Global Statistics Collection dialog for large models. This could cause memory problems, and would lead to much unneeded information. It is recommended that activity statistics always be selected at the appropriate activity.

SIMPROCESS User’s Manual 191

CHAPTER 8–Output Reports

Cycle Time by State Statistics

These statistics present the simulation generated cycle time statistics for the selected Process/Activity. These statistics are calculated based on the entity counts for the selected Processes/Activities.

Cycle Time statistics present the simulation generated cycle time statistics for entity types that processed at the selected activities or processes. The cycle time calculations are based on the number of entities that were processed at the end of the simulation. These statistics show the breakdown of the Cycle Time by state. The three states that an entity may be in are waiting for resource, holding for condition, and in-process. Cycle Time will not be collected unless Collect Activity Statistics (either global or individual) is selected prior to running the simulation. The results are not available until the simulation is complete.

Real-time Plots

Real-time Plots display statistics while the simulation is running. This may slow the simulation but shows a running view of the entity count

192 SIMPROCESS User’s Manual

Custom Statistics

throughout the simulation.

Cycle Times Plot—This chart shows the individual cycle time measurements for each Process/Activity. One chart is generated for each Process/Activity selected. The chart is updated as each entity departs the Process/Activity. The observation points on the chart are connected only to improve their visibility and are not meant to suggest continuity.

Entity Counts Plot—This chart shows the individual entity count measurements for each Process/Activity. One chart is generated for each Process/Activity that is selected. The chart is updated as each entity of the given type enters or departs the Process/Activity.

Entity Count Reports

These reports present the simulation generated entity count statistics for selected Processes/Activities. Entity Count will not be collected unless Collect Activity Statistics (either global or individual) is selected prior to running the simulation. Count by Entity Type will not be collected unless Collect Activity by Entity Statistics (either global or individual) is selected prior to running the simulation. The results are not available until the simulation is complete.

Total Entity Count—This report shows the total number of entities that (1) have arrived at the Process/Activity, (2) are remaining in the Process/Activity at the end of the simulation, and (3) have been processed by the Process/Activity.

Count By Entity Type—This report shows the average and maximum entity counts broken down by entity states, that were processed by the selected Process/Activity. That is, how many were in the Process/Activity, Wait For Resource, In Process, and Hold for Condition states.

Attribute Value Reports

The attribute value reports must be specified in the dialogs where the attributes themselves are defined. If the attributes are defined locally for a Process/Activity, then the reports must be selected where those attributes are defined.

Time Weighted Average—This report shows the time-weighted statistics for the selected Process/Activity attributes.

SIMPROCESS User’s Manual 193

CHAPTER 8–Output Reports

Observation based Average—This report shows the observation based statistics for the selected Process/Activity attributes.

194 SIMPROCESS User’s Manual

Simulation Results File

Simulation Results FileThe Simulation Results file is generated from the File menu. Select File/Export/Simulation Results to open the Save Statistics dialog box. The Simulation Results file will, by default have a .xpt file extension and be saved to the current model directory. This file is tab-delimited, and can be opened using a text editor or spreadsheet.

The file will contain the complete statistical measures corresponding to the reports selected for the current model. This file gives you raw statistical data that is displayed in the Standard and Custom Reports, in a standard format that can be opened by many different applications.

For a complete listing of the format of the Simulation Results file, see “Simulation Results File,” beginning on page 411

SIMPROCESS User’s Manual 195

CHAPTER 8–Output Reports

196 SIMPROCESS User’s Manual

Part BAdvanced SIMPROCESS Functions

and Features

The chapters in this section describe the advanced functions and features available in SIMPROCESS Professional.

SIMPROCESS User’s Manual 197

198 SIMPROCESS User’s Manual

CHAPTER 9

Reusable Templates and Libraries

One of the most powerful features of SIMPROCESS is the Reusable Template. A template is an activity, hierarchical process, or resource that is defined and reused over and over. A library is a collection of templates that can be saved as a file and loaded before starting a modeling session. The SIMPROCESS Template Library facility offers many model building and analysis support features. A standard set of Templates, such as Activities, Processes, and Resources, are provided by the system. For example, you may define in the Resource Library specialized Resources like Tellers, Loan Officers, Branch Managers, and so on for business process modeling in a financial services business. A Library could also contain templates that may represent competing models of the business processes that are under scrutiny. Templates also provide the ability for you to set default parameters for system provided items.

You can create many different Templates and load them into the system when they are needed. You can populate the Palette bar with customized Processes/Activities (for easy reuse) and/or organize them into Templates selected from the Create pull down menu.

SIMPROCESS User’s Manual 199

CHAPTER 9–Reusable Templates and Libraries

Library ConceptsThe SIMPROCESS Template and Library facilities support the reuse and organization of the various constructs used in building models. The Library is organized by category of constructs, such as Activities, Processes, and Resources.

Each category can have many elements and can be thought of as a Library on its own. For example, the Activities Library contains all the Activities templates that are found on the Palette Bar (Generate, Dispose, etc.) and others you have customized. A standard set of Templates, such as Activities, Processes, and Resources, are provided by the system.

We encourage you to develop your own objects and organize them into libraries. Over time, your libraries of objects will grow. With a large set of libraries of reusable model building blocks, you are able to build new models faster. For example, you may develop a set of Processes (Warehouse, Manufacture, Transport) and Resources (Trucks, People, etc.) relevant to the Distribution domain, save them to a library named Distribution and use them to quickly build distribution models.

The libraries that you build can be saved to disk and loaded during the modeling session as they are needed. This enables you to share templates with your colleagues and increases the building blocks available for model construction.

In addition to providing a repository for storing categories of modeling constructs, you can use the Library Management facilities to customize defaults for model elements that are built into SIMPROCESS (statistical distribution and activity parameters, connector line width, etc.) You can even reorganize the layout of your Palette bar. You can keep Processes and Activities that you use frequently at one convenient location on the Palette bar for quick access. Processes and Activities that are less frequently used can be stored at the other end of the Palette bar or accessed through the Create pull-down menu.

In summary, Templates:

• Are repositories for model building constructs you manipulate or create.

200 SIMPROCESS User’s Manual

Library Concepts

• Allow customizing of model elements through parameter settings.

• Facilitate reuse of Processes, Activities and Resources. • Allow customized placement of Processes and Activities on

the Palette bar and the Create pull-down menu. • Allow the grouping of Processes and Activities in user-

defined templates. • Facilitate saving and loading of customized model elements

onto disk for use in other models or by colleagues.

SIMPROCESS User’s Manual 201

CHAPTER 9–Reusable Templates and Libraries

Defining and Editing TemplatesThe Define/Templates pull down menu provides access to various methods for manipulating templates. The four functions available under this pull down menu are:

Add allows you to add the selected Process or Activity from the workspace to the library. It will appear in its respective category (Activities or Process.) You also can define and add the Process or Activity to a user specified template that is available under the Create menu bar option.

Edit allows you to view template elements, change default parameter settings, set up your Palette bar, and create copies of existing elements that can be customized.

Load allows you to bring a library that has been saved to disk previously into your current SIMPROCESS session and use the template elements to build models. Simply specify the file name containing the saved template in the dialog box presented. Once the OK button has been selected, the library is loaded and is available for use.

Save allows you to save a template library to disk for future use. This function saves the elements in each of the system templates (Activities, Processes, Resources, etc.) into one library file. The Load command allows you to load this library in the future.

NOTE

The Resource Properties dialog contains an Add Template command button. For more information, see “Resource Modeling Constructs,” beginning on page 135.

202 SIMPROCESS User’s Manual

Editing Templates

Editing TemplatesEdit allows you to view template elements, change default parameter settings, set up your Palette bar, and create copies of existing elements that can be customized.

Using the Edit Feature

1. Select Edit found under the Define/Templates pull down menu.2. The dialog box that appears contains a list box. Each entry

in the list box is a library. Select the Close button when finished editing the templates.

This dialog provides access to all the system templates in SIMPROCESS. If, for example, you wish to edit an Activity, select Activities in the list box and choose the Edit button.

3. A new dialog appears with a list of all the standard predefined Activities and the ones that you may have defined, as shown below. Choose the Close button when finished with this dialog box.

SIMPROCESS User’s Manual 203

CHAPTER 9–Reusable Templates and Libraries

4. The three command buttons to edit library elements are:

• Copy…

• Properties… (Edit Model Element Parameters)• Preferences… (Edit Template Parameters)

Change Default Parameter Settings (Properties)Use this facility to maintain the default settings for all model elements in the Library.

1. Select a library by following the procedures on page 203.2. Choose the Properties button. It displays the dialog used to

define the model element selected in the list box. For example, if you select Batch and choose the Properties button, the following detail dialog for Batch Activity is displayed:

The Copy command button lets you create a copy of an existing Process/Activity, modify its defaults and put it back in the library. For example, if you use a Delay with a particular delay time, you can create one with those characteristics, and put it in the library and on the Palette bar. Then you can just drag it out and use it.

204 SIMPROCESS User’s Manual

Editing Templates

3. Change any of the values in this dialog. Use the Help button for an explanation of field definitions or see page 103 in this guide.

The new value settings will appear in the dialog the next time you create another instance of that type of model element (Batch Activity). The Properties field appears on all library-editing dialogs (Activities, Connectors, Entities...).

4. Select the OK or Cancel button when you are finished with this dialog box.

5. Select the Close button when finished editing the templates.

You must save the library to disk and reload it every time you restart SIMPROCESS to retrieve the customizations you have made. SIMPROCESS loads a default library every time it is restarted.

SIMPROCESS User’s Manual 205

CHAPTER 9–Reusable Templates and Libraries

Edit Library ParametersUsing this facility you can place Activities/Processes on the Palette bar or on the Process/Activity option of the Create pull down menu.

1. Select a library by following the procedures on page 203.2. Choose the Preferences button. It displays a dialog box. The

example shown is for a Batch Activity.

3. Place an Activity/Process on the Palette bar by selecting the On/Off check box and selecting the Row and Column where you want it to appear. This lets you arrange the Palette bar in a manner you find convenient. In the default Palette, there are 13 rows and 2 columns. So, if you wish to add a new template to the current palette, you should use Row 14 and Column 1 or 2. You can change the appearance of the button on the Palette bar by making a selection in the Palette Icon combo box. You can also change the appearance of the layout icon by making a selection in the Layout Icon combo box. You can type in your own descriptive name in the Palette Label. This name appears as a tool tip when the cursor is on top of the button.

206 SIMPROCESS User’s Manual

Editing Templates

4. The Menu Owner text box allows you to place this Process/Activity under the Create pull down menu. The On/Off check box must be selected for this Process/Activity to appear in that menu.

5. Choose the OK or Cancel button when you are finished with this dialog box.

6. Select the Close button when finished editing the templates.

SIMPROCESS User’s Manual 207

CHAPTER 9–Reusable Templates and Libraries

Saving a Resource for ReuseThe Add Template command on the Resource Properties dialog stores a copy of your resource definition as a re-usable template in SIMPROCESS’s Resource Library.

Add Template allows you to create a new resource template using parameters you specify. Once you have created a resource template, a combo box will appear at the top of the Resource dialog box. Your template can be selected from this list in the current model.

The default resource template (aptly named Resource) sets properties of a new resource as follows:

Name is the template name, plus a number.Comment is blank.Units is 1.Fractional Usage and Consumable check boxes are unchecked.

Suppose you define a resource named Diesel Fuel. If you then need to define other resources with attributes similar to Diesel Fuel, you could use the Copy function to copy the definition. But this only works within the same model. If you think you will need the same or a similar resource in other models, you can define a template modeled after Diesel Fuel:

1. Start by adding a resource using the Resource Properties dialog. Modify the dialog box as shown below:

208 SIMPROCESS User’s Manual

Saving a Resource for Reuse

The resource named Diesel Fuel is defined as a consumable resource with an initial Units of 1000. It can be allocated in fractional quantities.

2. Click on Add Template:

3. Enter a name for the template in the Template Name field. For this example, call it Fuel Oil.

4. Click on OK to save the template definition.5. Click on OK to accept the resource definition for Diesel Fuel.

If you click on Cancel instead of OK, the resource definition is not accepted, but the template is.

After the first resource template is created, there will be a Type field near the top of the Resource dialog box whenever this dialog box is reopened. The Type field identifies the template defining default parameters for the resource you are creating. If you click on the down arrow of the Type combo box, you will see the templates you have created.

SIMPROCESS User’s Manual 209

CHAPTER 9–Reusable Templates and Libraries

Now close the Resource dialog box and select Define Resources again. The template you just created is included in the list:

Select Fuel Oil from the Type list box, and then click on Add. Notice the initial settings of the Resource Properties dialog box are displayed:

210 SIMPROCESS User’s Manual

Saving a Resource for Reuse

Note that at this point, the template only exists in the current SIMPROCESS session. If you exit SIMPROCESS and then start it again, the template is gone. To save the template for future sessions, you must use the Save option under Templates.

SIMPROCESS User’s Manual 211

CHAPTER 9–Reusable Templates and Libraries

Importing Bitmap Graphics For Use As Palette Icons

The Palette Icon field lets you customize the look of the SIMPROCESS palette.

If you have a bitmap file that you wish to use on the Palette, place the file in the SIMPROCESS working directory (by default, c:\SPUSER\). Your bitmap graphic should be 16 by 16 pixels. The name of the bitmap graphic file should be <icon name>_s.bmp. When you add your Activity or Process template, the icon name will be in the Palette Icon field.

212 SIMPROCESS User’s Manual

CHAPTER 10

Customizing a Model with Attributes and Expressions

SIMPROCESS provides a wide range of predefined model elements and statistical options, but every business process is unique in some way. There will be times when you need flexibility to model complex situations and the built-in functions of SIMPROCESS may be inadequate. In those cases, you may define your own attributes and expressions.

For example, a typical SIMPROCESS model for an appliance manufacturer’s distribution process might include a batch activity where customer orders are collected for shipment. Products may be shipped on a predetermined schedule, or when the total number of pending orders reaches a certain number. The SIMPROCESS Batch activity readily handles these scenarios with the Quantity to Batch and Release Threshold options.

But suppose you need to model a process where the dispatching of a shipment depends on the total weight of the appliances that have been accumulated. How would you model this situation?

SIMPROCESS User’s Manual 213

CHAPTER 10–Customizing a Model with Attributes and Expressions

Another area where you might need flexibility is in customizing reports. SIMPROCESS provides you with several reports that track the flow of entities through a model. You can see how many entities of a particular type (each customer order, for example) are processed during simulation, or the average amount of time each type of entity takes to make its way through the simulation.

But suppose you want to determine the percentage of orders that are shipped by a promised delivery date (service level), so that you can measure your success in attaining service goals.

Two advanced SIMPROCESS features, Attributes and Expressions, provide you with the ability to handle these and many other situations.

Add weight of currentorder item to totalweight of all ordersreceived.

Is total weight overthe max allowed?

Release ShipmentYes

No

214 SIMPROCESS User’s Manual

Introduction to Attributes and Expressions

Introduction to Attributes and Expressions

AttributesAttributes are user-defined and built-in variables of model elements whose values can change during the course of a simulation run. For example, in the case of a Batch process where entity release depends on the weight of entities received, an attribute is the total weight of the items accumulated in the batch activity.

To determine the percentage of orders processed within a specified period of time, the attributes you need to track include the processing time for each order, the number of orders that meet the promised delivery date, and the total number of orders processed.

Attributes may be used to:

• Alter the behavior of a process by changing the value of an attribute during a simulation.

• Communicate information (such as attribute values) between two processes in a model.

• Store data collected during a simulation run.

There are two categories of SIMPROCESS attributes: Built-in System Attributes, which SIMPROCESS automatically creates and updates, and User Defined Attributes, which you create. For example, the number of entities generated for each entity type (e.g., number of orders) is automatically tracked and stored in a built-in system attribute named NumberCreated. To track an attribute such as weight, which SIMPROCESS does not know about, you would create an attribute called applianceWeight.

Some system attributes can be modified by users. These are called "Get-Set" type System Attributes. Generally, these are variables that control process parameters such as the number of entities to batch or amount of time of the next delay. By modifying these system attributes, you can affect the behavior of your simulation.

SIMPROCESS User’s Manual 215

CHAPTER 10–Customizing a Model with Attributes and Expressions

System Attributes that you cannot change include those that monitor statistics, such as the number of entities generated during the simulation. These are called "Get-only" type system attributes. Information on the status of a simulation, such as which activity is processing an entity or what type of entity is being processed, is also available through get-only system attributes.

For a complete list of system attributes, see “SIMPROCESS System Methods and Examples,” beginning on page 393.

ExpressionsThe ability to create and set attributes is a powerful simulation feature when used in conjunction with SIMPROCESS Expressions. Expressions are user-written statements that SIMPROCESS executes during a simulation run. When you define an Expression, you select the point at which you want the Expression to be evaluated; for example, at the beginning of the simulation, or at the moment an entity (e.g., a customer order) is received by an Activity (e.g., order distribution).

In the case of the model where releasing of shipments depends on the total weight of orders such as appliances, you could do the following:

1. Define an Attribute called applianceWeight and set its value whenever an appliance-order entity is generated by SIMPROCESS. You determine what value to assign applianceWeight by checking the name of the entity type (e.g., dishwasher-order, television-order). This information is available from a system Attribute, Name.

2. When an entity is received at the Batch Activity, add the entity’s applianceWeight value to the total weight of all orders waiting to be shipped (another User Attribute). Then check the total weight, and if it exceeds a certain value, do something to cause the Batch Activity to release a shipment.

One way to force a shipment to be released is to change the batch size to a value equal to the current number of entities in the Batch Activity. These values are available in System Attributes.

You will see actual code for this later in the chapter.

216 SIMPROCESS User’s Manual

Introduction to Attributes and Expressions

This chapter describes:

• Built-in System Attributes.• User Defined Attributes.• How to write an Expression which uses User Defined

Attributes and System Attributes.

The examples in this chapter refer to a Batch Activity, so familiarity with this Activity will help you follow the examples.

SIMPROCESS User’s Manual 217

CHAPTER 10–Customizing a Model with Attributes and Expressions

Using Attributes in SIMPROCESSThis section contains a closer look at attributes and how they can be used in SIMPROCESS. It starts with a look at the system Attributes built into SIMPROCESS, and then goes on to a detailed discussion of User Defined Attributes and how to define them.

System AttributesSIMPROCESS provides access to the state of a simulation through a set of built-in variables. These System Attributes provide information such as:

• The type of entity currently in an activity.• The number of entities of a particular type that have been

allocated thus far in the simulation.• The name of the activity holding a particular entity.• The type of entity being generated by a Generate activity.

A complete list of System Attributes is given in “SIMPROCESS System Methods and Examples,” beginning on page 393. Let us look at the table entries below for the attributes accessible from Batch Activities:

218 SIMPROCESS User’s Manual

Using Attributes in SIMPROCESS

1. The MaxBatchSize attribute is an integer value representing the maximum number of entities to batch at a Batch activity. You can get the current value of the attribute and change it, if you wish.

2. The MinBatchSize attribute is an integer value containing the minimum number of entities a Batch activity must hold before it can release a batched entity.

3. The attribute MaxWaitTime specifies the maximum amount of time to wait before releasing the batched entity which have met the Activity’s MinBatchSize. The value is a real number (e.g., 1.0, 7.5, etc.) representing hours. You can get and set the value of this attribute.

An object type attribute has a special purpose. Unlike other attributes, you are not interested in the value of the object itself. Rather, you use the object to direct SIMPROCESS’s attention to the model element you are interested in. The best way to understand this is by examining an object attribute in use. See “Using Object Attributes in Expressions” on page 252.

Object Name Type Get/Set

Description

BatchActivities

MaxBatchSize INTEGER Both Number of entities to batch.

MinBatchSize INTEGER Both Number of entities must be in a batch before it can be released.

MaxWaitTime REAL Both Time to wait before releasing an under-sized batch.

SIMPROCESS User’s Manual 219

CHAPTER 10–Customizing a Model with Attributes and Expressions

User Defined AttributesBy defining your own set of attributes, you can begin customizing your model. These attributes can represent model element attributes that are not built into SIMPROCESS, such as entity weight or size, skill level of a resource, or service level.

You define attributes in association with:

• Entity types, or Entity instances• Processes or Activities.• Resources.• The Model.

When you define an attribute, you either tell SIMPROCESS to create an instance of that attribute for every model element of the same type (e.g.,Entities, Resources), or to just create the attribute for a particular type of model element (Customer Order entities, Truck resources). In SIMPROCESS terminology, we say that attributes are either globally-defined or locally-defined. Model attributes are only globally-defined.

When you define an attribute globally, an instance of that attribute is automatically created for each model element of that class. For example, if your model contains entities for different types of appliances (refrigerators, televisions, toasters, etc.) and you want to assign a weight value to each entity, you could globally define an entity attribute called applianceWeight. SIMPROCESS creates an instance of that attribute for every entity in your model, so every entity has an appliance weight attribute which you can reference.

On the other hand, the only Activity in which you are interested in weight is the Activity where entities are batched. In this case, it makes sense to locally define an attribute for that particular Activity. When that’s done, no other activity will have a weight attribute automatically created for it.

Note that you can define attributes with the same name for different model elements. For example, you could also define a global attribute called applianceWeight for Resources. It can have a completely different meaning and data type. You cannot define a global and a local attribute with the same name for the same model element.

220 SIMPROCESS User’s Manual

User Defined Attributes

Creating a User Defined AttributeGlobal attributes can be defined from the SIMPROCESS menu bar, or from the dialog box of a model element. Local attributes can only be defined from the dialog box of a model element.

A couple of examples will illustrate this. Let us look at two activities of an appliance manufacturer’s distribution model. There is a Generate Activity named RECEIVE-ORDERS, in which customer orders are generated, and a Batch Activity named DISTRIBUTE-ORDERS, in which the ordered appliances are shipped to customers.

The model contains entity definitions for each type of appliance that a customer can order. They are named refrigerator-order, television-order, toaster-order, etc. To track the weight of each appliance, you need to define an attribute in which to store the weight. You can globally define the attribute, that is, create an attribute for every entity in the model.

You also need to keep track of the weight of all orders received at the DISTRIBUTE-ORDERS Batch Activity. But you do not need to track weight at any other Activity. You can define a local attribute for the DISTRIBUTE-ORDERS Activity.

Globally Defining an Attribute from the Menu BarTo globally define an attribute from the SIMPROCESS menu:

1. From the Define pull-down menu, select Attributes.2. Select Entities.

SIMPROCESS User’s Manual 221

CHAPTER 10–Customizing a Model with Attributes and Expressions

If you select Entity Types instead, you will only define one weight attribute for all refrigerator-order entities, one attribute for all television-order entities, etc. You want an attribute for each order, i.e., each entity instance.1

The following dialog box appears:

The Global Attribute Definitions dialog box is used to add a new attribute or to change, copy, or delete attributes.

The list box shows the names of all attributes previously defined. If you have not created any attributes yet, the list box will be empty and the Edit, Copy, and Remove buttons will be inactive.

1. You can make this model work by defining the attribute for entity categories instead of entity instances. See “An Alternative Method Using Entity Types” on page 256.

222 SIMPROCESS User’s Manual

User Defined Attributes

3. Click on Add to create a new attribute.

In the Attribute Properties dialog box:

Name can be anything you want (except as noted below), as long as you have not previously used it for another attribute of the same class of model element. Although not a system attribute, Size may not be used as an attribute name. Size is a reserved word in SIMPROCESS.

If you are creating a new attribute, SIMPROCESS initializes the field with a default name that you should highlight and change.

For this example, type applianceWeight.

Value is the default initial value of this attribute. The value must correspond to the data type you specify in the Mode field. For instance, you cannot enter 1.0 if Mode is Integer.

If the Mode is Object, the Default value is undefined. An Object attribute’s value can only be set during a simulation run. Anything you enter in the Default field is ignored.

Mode is the data type of the User Attribute. Click on the arrow button to select either Integer, Real, String, Boolean, or Object:

SIMPROCESS User’s Manual 223

CHAPTER 10–Customizing a Model with Attributes and Expressions

Integer values are numbers without fractional or decimal parts.Real values can contain a fractional part.A String is any series of alphanumeric characters.Boolean values can be either TRUE or FALSE.An Object is a reference to another model element in your model. For example, during a simulation run you might use an Object Attribute to point to the Generate Activity that generated an entity.

Model Parameter when checked, means that every time the model is run, a dialog box will open, prompting you to either accept the default value of the attribute, or enter a new initial value of the attribute. Only Global, User-defined attributes can be set as Model Parameters. If a Comment is entered for the attribute, this will appear in the Description field of the Model Parameters dialog box when the model is run. If nothing is entered in the Comment field, the Name of the attribute will appear instead.

Statistics Properties refer to statistics collected for attributes during a simulation run. These statistics are used in SIMPROCESS reports. Note that no statistics can be collected for entity instance attributes.

Observation Based, Time-Weighted, and None refer to the way statistics are collected:

Observation Based tells SIMPROCESS to collect statistical data without considering the amount of time an attribute maintains a particular level. Each time the value of an attribute changes, the new value is added to a running total.Time-Weighted provides time-weighted statistics. That is, the length of time an attribute remains at a particular value is factored into the statistical data when the average value is calculated.None tells SIMPROCESS not to collect statistics for the attribute.

224 SIMPROCESS User’s Manual

User Defined Attributes

Real Time Plot and Post Simulation tell SIMPROCESS whether to plot the attribute value changes as they occur dur-ing the simulation run (Real Time Plot) or to save the statistics in a file and summarize the data at the end of the simulation run.

For this example, accept the defaults for all options except Name.

4. Click on OK to accept the options you selected, or click on Cancel to exit without setting/resetting any options.

As a result, an attribute named applianceWeight is created for each entity generated during a simulation run. Any time you refer to that entity in your model, you can reference or update its applianceWeight attribute.

Any attribute defined from the SIMPROCESS menu bar is globally-defined. Because applianceWeight was defined globally, any new entities generated in your model will automatically have an attribute of applianceWeight created for it.

You can copy an existing User Attribute by selecting the attribute in the list box, and then clicking on the Copy button. The User Attribute dialog box is displayed with the options and Default set to the values of the attribute you copied. Give the new attribute a name and change any options that you want to change.

To remove an existing User Attribute, select the attribute from the list box, and then click on the Remove button.

When you are finished defining or modifying User Attributes, click on Close.

Before you delete an attribute, be sure that the attribute is not used by activities. Once you click on Remove, you will not have a chance to change your mind.

SIMPROCESS User’s Manual 225

CHAPTER 10–Customizing a Model with Attributes and Expressions

Globally Defining Attributes from Dialog BoxesWe noted earlier that you can globally define a User Attribute from either the menu bar or from a model element’s properties dialog box. They both accomplish the same thing. Here is how you do it from a dialog box.

Begin by editing the definition for any model element of the class you are interested in. In the example on page 221 defining the attribute applianceWeight, the model element was an entity. To create the same attribute from a dialog box, do the following:

1. From the Entity pull-down menu, select Define Entities...

2. Select any of the entities listed. It does not matter which one, since the attribute you are going to define will apply to all entities.

Click on Edit and the Entity Type Properties dialog box will appear.

3. In the Define Attributes or Expressions For section, select Entity Instance and click on the Attribute button. By default, the Local Attribute Definition dialog will appear.

226 SIMPROCESS User’s Manual

User Defined Attributes

4. Click on the Globals… button.

If you click on Add instead of Globals…, you end up defining a local attribute, as you will see in the next section.

5. The User Attribute Definitions dialog box already contains the name of an attribute in its list box. This is the global attribute that was defined earlier using the SIMPROCESS menu bar.

From this point on, follow the instructions beginning with step 3 on page 221.

SIMPROCESS User’s Manual 227

CHAPTER 10–Customizing a Model with Attributes and Expressions

Defining a Local Attribute for a Model ElementA local attribute is defined for a single model element. In the model described here, the model element is a Batch Activity named DISTRIBUTE-ORDERS:

1. Double-click on the DISTRIBUTE-ORDERS Activity.

2. In the Batch Activity Properties detail dialog, change the Quantity to Batch to 100000 (we will discuss why later). Then click on the Attributes… button.

The Properties dialog box of every SIMPROCESS model element (Activity, Entity, etc.) contains an Attributes… button.

228 SIMPROCESS User’s Manual

User Defined Attributes

3. The Attribute Definitions dialog box for locally defined attributes is almost the same as the one for globally defined attributes. The only difference is that the dialog box for locally defined attributes contains a Globals button.

Click on Add.4. The Attribute Properties dialog box is identical to the one used

for defining global attributes.

For name, type batchWeight.5. Click on OK, and then Close when you are finished defining

your local attributes.

Now that you have seen how to define User Attributes, let us see how you can put them to use.

SIMPROCESS User’s Manual 229

CHAPTER 10–Customizing a Model with Attributes and Expressions

Assign ActivityThe Assign activity is one method you can use to provide values to globally defined attributes. You can also use Assign to change the priority of an entity.

Changing an Attribute Value with the Assign ActivityUsing the Set Attribute list box of the Assign Activity, you can change the value of any Global Attribute (except globally-defined Resource attributes) and Local Activity Attributes of that Assign activity. Clicking on the Add button will open up the Assign Attribute Properties dialog box.

The combo box in the Set Attribute field contains the names of all the Global Attributes that the Assign Activity can access.

The Operation field contains the operators that can the used to change the value of the selected attribute. The supported operators are; =, +, -, *, and /.

230 SIMPROCESS User’s Manual

Assign Activity

The Value field is where you enter the value you want the attribute to become. This can take the form of a constant, a Statistical Distribution, a User-defined Function, or an Evaluate (Evl) Function. User-defined Functions can be found on page 257 of this chapter. The Evaluate Function is covered on page 240.

Each time an entity enters the Assign Activity, the Set Attribute command you have entered will be performed.

SIMPROCESS User’s Manual 231

CHAPTER 10–Customizing a Model with Attributes and Expressions

Variable Resource UsageUser-defined attributes can be used to request units of resources. Using an attribute allows you to vary the units of resource required by each entity. For instance, in the example from Chapter 5 (page 142) an entity needed 1 unit of the Service Rep resource to process in that activity.

Thus, every entity will get 1 and only one unit of the resource. However, there may be instances where the amount of resource needed would be different for each entity. This is true many times when using consumable resources (such as fuel). Any type of attribute may be used: Entity, Entity.Type, Resource, Activity, or Model. Use Edit to modify the existing requirement definition. Enter the attribute that will have the unit information. The attribute must be of type real or integer. During the simulation run, if the units of resource requested is larger than the resource capacity, an error will occur that will stop the simulation. This error will not occur when using consumable resources. If the resource is consumable, the entity will wait until more resource units are available. Also, if a fractional number of units are requested and fractional usage was not selected for the resource, an error will occur.

232 SIMPROCESS User’s Manual

Variable Resource Usage

SIMPROCESS User’s Manual 233

CHAPTER 10–Customizing a Model with Attributes and Expressions

Writing ExpressionsIn the previous section, you learned how to define User Attributes and what you might use them for. In this section, you learn how to use them.

For attributes to be useful, you must be able to refer to them and change them during a simulation run. SIMPROCESS provides opportunities to do this at many points during a simulation. The instructions that you write to process attributes and SIMPROCESS model elements are called Expressions.

An Expression is a user-defined routine that runs within the larger SIMPROCESS program. In effect, SIMPROCESS checks at various points during a simulation run to see if you have written any special instructions for it. If you have, it runs the code you have written. Expressions accomplish simulation and modeling requirements that standard SIMPROCESS processing does not provide for.

At the beginning of this chapter, we mentioned two examples of modeling logic you can accomplish by using attributes and writing Expressions. Then we defined attributes needed to accomplish these modeling tasks. Next, we will look at how to use these attributes in Expressions.

We will begin by introducing you to elements of the SIMPROCESS Expression language needed to fulfill the examples in this section. Then we will explain how Expressions are implemented, and show you some examples.

SIMPROCESS Expression Language BasicsThe SIMPROCESS Expression language is a subset of the MODSIM programming language. You can write complex Expressions in this language, but the coding required for the examples in this section require just a few language elements.

In the definitions that follow, the word expression with a lower case "e" refers to a mathematical expression. Expression with a capital "E" refers to the SIMPROCESS Expressions feature.

234 SIMPROCESS User’s Manual

Writing Expressions

Operators

• Assignment Operator

The assignment operator is used to assign a value to an attribute:

:=

For example:

x := 15;

assignWeight := 1000;

The colon (:) preceding the equal sign (=) is required. You receive an error message if you omit it.

Note that an equal sign without a preceding colon is used when comparing two values. Thus, the statement beginning:

IF assignWeight = 1000...

compares the value of attribute assignWeight to the number 1000.

• Arithmetic Operators used in the SIMPROCESS Expression language are +, -, * (multiplication), /, DIV (integer division), and MOD (modulus).

• Relational Operators include: =, <> (not equal), <, <=, >, >=.

Literals• A string of printable characters on a single line is enclosed

in quotation marks:

"The plain in Spain looks lovely in the rain.";

System Methods

• System methods are commands which result in a system action or return a value from the underlying system. One commonly-used function is SimTime, which returns a Real number containing the current simulation time.

SIMPROCESS User’s Manual 235

CHAPTER 10–Customizing a Model with Attributes and Expressions

• For a list of System Methods available in SIMPROCESS, refer to page 393.

Expression Language Statements:

• IF condition

{ELSIF condition}

ELSE condition

END IF;

• WHILE condition

END WHILE;

• FOR expression TO|DOWNTO expression [BY expression]

END FOR;

• RETURN (possible return value)

• EXIT (with WHILE or FOR loops)

• OUTPUT

In order to put a SIMPROCESS Expression together, you need to know the following about the language’s syntax:

1. The SIMPROCESS Expression language is case sensitive. An attribute named Applianceweight is not the same entity as the attribute referred to as applianceWeight.

2. All built-in language elements are in capital letters (IF, END, WHILE, etc.).

3. Each Expression language statement ends with a semicolon (;).

4. You can include comments in your Expressions by enclosing them in curly brackets ({ }). For example:

{This is a comment}

Do not end a comment line with a semicolon.

5. Basic conditional logic has the form:

236 SIMPROCESS User’s Manual

Writing Expressions

IF a < b

x := c;

ELSIF a < c

x := d;

END IF;

For example:

IF batchweight > 2000

maxBatchSize := 100;

batchWeight := 0;

ELSIF batchweight > 1800

maxBatchSize := 110;

END IF;

You can display messages in the SIMPROCESS message window with the OUTPUT statement. This is useful for tracking the value of attributes as a simulation proceeds. The OUTPUT statement has the form:

OUTPUT(expression);

For example:

OUTPUT("Just assigned a weight to entity");

OUTPUT("Current batch weight ", batchWeight);

In the second example, the value of attribute batchWeight is displayed following the text "Current batch weight ". The literal string and attribute name are separated by a comma.

Using Attributes in ExpressionsThe value of a attribute may be useful in the calculation of an expression on a construct of a different type than the attribute was defined for. For instance, you may want the duration of a Delay Activity to take the value of an attribute on the Entity currently at the Delay Activity. To do so, the

SIMPROCESS User’s Manual 237

CHAPTER 10–Customizing a Model with Attributes and Expressions

expression on the activity must access the value of the attribute on the entity. This is accomplished by referring to the entity attribute with the prefix "Entity." followed by the name of the entity attribute.

Using the duration example above, for an entity attribute called "TimeFactor", we can set the duration that each entity (that carries the TimeFactor attribute) will spend at a Delay Activity with the following statement:

NextDelay := Entity.TimeFactor;

By placing the above statement in the "Accept Entity" activation event (for a listing of activation events, see “Expression Activation Events,” beginning on page 241) on the Delay Activity, the value of the system attribute, NextDelay, will take the value of the TimeFactor attribute. The result is, for each instance of an entity reaching this activity, its processing time at that activity is determined by the value of the entity attribute, TimeFactor, that each instance of the entity carries.

Similarly, you could use the Evaluate function in the Duration Value field on the Delay Activity to return the value of the attribute TimeFactor. This method is preferable, as the fact that the Duration of each Entity at the Delay Activity is calculated from the TimeFactor attribute is visible on the Properties dialog of the Delay rather than in an expression. For more detail, see the “Evaluate (Evl) Function” on page 240.

If you are referencing an Entity Type Attribute, the format would be similar. If the attribute to be referenced was named "TypeTime", it would be used in the expression of a construct other than an entity as:

Entity.Type.TypeTime

The same holds true for attributes of other SIMPROCESS constructs as well. An Activity Attribute called "ActivAttr" that is referenced in an expression on a construct other than an activity, would be referred as:

238 SIMPROCESS User’s Manual

Writing Expressions

Activity.ActivAttr

A Model Attribute called ModAttr would be referred to as:

Model.ModAttr

User-defined Resource Attributes are accessed by an expression from any other construct in SIMPROCESS. You can, however, in the expression on a Resource, assign values to attributes of other SIMPROCESS constructs using the syntax described above. You also have access to Resource System Attributes using the Resource System Method. This can be used to access the Resource System Attributes from the expression of another SIMPROCESS construct.

For instance, to reference the number of units currently busy of a resource called, Resource1, use:

Resource("Resource1").UnitsBusy

These are just some basics of the SIMPROCESS Expression language. For more detail, see “SIMPROCESS System Methods and Examples” on page 393.

SIMPROCESS User’s Manual 239

CHAPTER 10–Customizing a Model with Attributes and Expressions

Evaluate (Evl) FunctionThe simplest use of an expression is with the Evl function. This function supports a single line expression. That expression can contain any of the System Methods, System Attributes, User-defined Attributes and Operators that are supported at the Activation Events level described in the next section. The Evl function can be found on any of the combo boxes where you find the standard distributions and User-defined Functions.

An example of where you would use the Evaluate function, is a system with a processing time (Delay) that is a function of an Entity Attribute. From the Delay activity’s Properties dialog, select the Evl(1.0) function on the Hours field. Clicking the Detail button will open an Evaluate dialog where you enter the expression describing the processing time

240 SIMPROCESS User’s Manual

Expression Activation Events

Expression Activation EventsSIMPROCESS has a set of activation points at which it checks for the existence of Expressions and runs those that it finds. You assign your Expression to an activation point at the time you define the Expression.

Each activation point corresponds to a simulation event, and has a name identifying it to SIMPROCESS. For example, the start of a simulation run is referred to as the Start Experiment event. The Start Trial event marks the beginning of a single trial within a simulation.

Some events can occur many times during a simulation. The Start Trial and End Trial events occur once during each trial of a multi-trial simulation. If the simulation contains only a single trial, these events occur just once. The Start Simulation and End Simulation events occur once during each replication of a multi-replication simulation if Reset System is selected in the Simulation Run Setting dialog box. Otherwise, the Start Simulation event occurs just once at the beginning of the first replication. The End Simulation event occurs at the end of the last replication. You specify these in the User Expressions dialog box.

Replication 1 Replication 2 Replication 3

InitSim TermSim

Warm-up Period Steady State Period

StartSim InitTrial TermTrialStopSim

Total Simulation Time

SIMPROCESS User’s Manual 241

CHAPTER 10–Customizing a Model with Attributes and Expressions

Events related to entities and resources can occur numerous times throughout a simulation trial. For example, an entity’s arrival at an Activity is a simulation event called Accept Entity (so-called because the entity is being accepted into the Activity). This can occur thousands of times during a long simulation, once for each entity that arrives at the Activity.

Every Expression is associated with a specific SIMPROCESS model element. You select the model element that requires customized processing, specify the event at which you want this processing to occur, and then write the Expression to do the processing. “Example: Batching Entities Based on Weight” on page 247, describes this process in detail.

Not every event is available as an activation point for every model element. For example, if you need to set the initial value of an attribute for an entity, you can do this when the entity is first generated

Activity Process Time

Accept Entity GrabResource ReleaseResourceReleaseEntity

242 SIMPROCESS User’s Manual

Expression Activation Events

(Initialize Entity) or when the entity is released from a Generate Activity (Release Entity). But you cannot set an entity attribute when the simulation first begins to run (Start Experiment), because no entities have been generated at that point.

Table 2, “Expression Activation Events,” on page 244, contains a complete list of activation events.

SIMPROCESS User’s Manual 243

CHAPTER 10–Customizing a Model with Attributes and Expressions

Table 2: Expression Activation Events

Event Name Activation Point (and Comments)Model Elements Active

For

Start Simulation The beginning of the first replication, before the warm-up period (if any). If Reset System is selected, it occurs at the begin-ning of each replication.

All Activities.Resources.Entity Types.

Start Trial Beginning of a trial within the simulation, after the warm-up period (if any).

All Activities.Entity Types.

Initialize Entity Creation (allocation) of an entity.

This typically occurs in a Generate Activity, but may also occur in the Batch, Transform, Copy, Split, and Assemble Activities.

Entity Types.Entity Instances.

Accept Entity Arrival of an entity at an Activity. All Activities except Generate. Entity Instances.

Get Resource Obtainment of a Resource by an Activity. All Activities except Generate & Dispose.Resources.

Free Resource Release of a Resource by an Activity. All Activities except Gener-ate & Dispose.Resources.

Release Entity Release of an entity from an Activity. All Activities except Dis-pose.Entity Instances.

Dispose of Entity

Dispose of an entity. Entity Types.Entity Instances.

End Trial End of a simulation trial. All Activities.Entity Types.

244 SIMPROCESS User’s Manual

Expression Activation Events

End Simulation The end of a simulation trial.

Statistic collection for the trial ends at this point.

All Activities.Resources.Entity Types.

Table 2: Expression Activation Events

Event Name Activation Point (and Comments)Model Elements Active

For

SIMPROCESS User’s Manual 245

CHAPTER 10–Customizing a Model with Attributes and Expressions

Attribute Value InitializationUser-defined Attributes can be initialized at several places in a SIMPROCESS model. The following procedure shows how SIMPROCESS sets attribute values along the simulation timeline.

When the simulation is started, SIMPROCESS will :

1. Initialize attributes to the values that are specified in the Attribute Definition dialog box;

2. Execute any Start Experiment expressions (attributes can be set to different values in these expressions if the Reset System option is not selected);

3. Execute the reset system mechanism if the Reset System option is selected (reset attribute to the values specified in the Attribute Definition dialog box);

4. Execute any Start Simulation expressions (attributes can be set to different values in these expressions);

After a replication is complete, SIMPROCESS may reset attribute values for the next replication. If the Reset System option is selected in Run Settings, SIMPROCESS will continue on the next replication starting from item 3, as listed above. Otherwise, it will start from item 4.

246 SIMPROCESS User’s Manual

Example: Batching Entities Based on Weight

Example: Batching Entities Based on Weight

This example describes a method of releasing entities based on weight, an attribute that SIMPROCESS is not inherently aware of. The model depicts the product distribution process of an appliance manufacturer. Here is a simplified view of the model:

1. Appliance orders are received from customers.

This is the Generate activity. Each appliance order is an entity.

2. The orders are processed, and eventually make their way to a distribution center in the form of appliances.

This takes place within a subprocess. The details are irrelevant for this example.

3. Appliances are shipped to customers from the distribution center, a Batch Activity.

Shipments are released when the total weight of all appliances awaiting delivery reaches 5000 kilograms.

In order to accomplish the objective of releasing the batch when a certain weight is accumulated, you perform the following in your model:

1. Define attributes to represent the weight attribute of entities.2. Assign values to the weight attributes.3. Accumulate and track the weight of entities received at the

Batch Activity.

SIMPROCESS User’s Manual 247

CHAPTER 10–Customizing a Model with Attributes and Expressions

4. Trigger the release of entities if a specified weight is reached, and prevent the release of entities otherwise.

Earlier in this chapter, we listed the steps required to define two attributes that can be used in this model:

• applianceWeight contains the weight of an entity (see page 221).

• batchWeight holds the accumulated weight of the entities received at the Batch activity (page 228).

With these attributes defined, you can start writing the Expressions you need.

Initializing Entity AttributesFirst, you need to assign a value to the applianceWeight of each entity generated during a simulation. This can be done as soon as the entity is created. Then, when the entity reaches the Batch Activity, you add its weight to a running total and compare this total to the maximum allowable weight. The points at which you need to activate your Expressions are:

• Entity initialization• Receipt of the entity by an Activity

Entities are initialized by SIMPROCESS at the Initialize Entity event. Entities are received by an Activity at the Accept Entity event.

Initialize Entity Accept Entity

248 SIMPROCESS User’s Manual

Example: Batching Entities Based on Weight

Defining the Expression at Entity Initialization

To assign an initial value to an entity’s applianceWeight, you can define an Expression for each type of entity in your model. The Expression is a single assignment statement (e.g., applianceWeight := 1000) to be executed when the entity is first generated (the Initialize Entity event):

1. From the Define pull-down menu, select Entities.

2. This model contains three entity types. You must define an Expression for each entity. Start by selecting the first entity on the list, and then press Edit.

SIMPROCESS User’s Manual 249

CHAPTER 10–Customizing a Model with Attributes and Expressions

3. You need to initialize every refrigerator-order entity that is generated, so under Define Attributes or Expressions For select Entity Instance. Then click on Expressions.

4. Four simulation events are listed in the User Expressions list box. These are the points during the simulation at which SIMPROCESS checks for Expressions which apply to entity instances.

The event for which you’re defining an Expression is Initialize Entity, which is the point at which an entity is first generated (initialized). Highlight Initialize Entity and click on Edit.

5. SIMPROCESS invokes your editor and opens a new file. You need to add just one line to the file:

applianceWeight := 1000;

This assigns a value of 1000 to applianceWeight.6. Close the editor. SIMPROCESS assigns a name to the file

when it saves it.7. Follow the same procedure for each of the entities in your

model, but assign them different weights. Assign a weight of 100 to television-order and 10 to toaster-order.

8. When you are finished, click on Close, and then OK.

250 SIMPROCESS User’s Manual

Example: Batching Entities Based on Weight

Defining the Expression When an Entity Is Released

The method described above works fine to initialize the applianceWeight attribute of entities. It’s fairly simple, too; it requires only a single statement in each Expression. But it is redundant. You need to define Expressions for each type of entity. You could have many different types of entities, and defining an Expression for each is tedious and time-consuming.

There are other options. You do not need to assign a weight to your entities as soon as they are created. You just have to make sure a weight is assigned before the entity reaches the Batch Activity where appliances are distributed (DISTRIBUTE-ORDERS).

In this model, all entities are generated by a single Generate Activity. So you can define an Expression in the Generate Activity, activating it whenever an entity is released (Release Entity event). This is the most efficient way to proceed. One Expression handles the initialization of any entity’s applianceWeight.

1. Double-click on the RECEIVE-ORDERS Activity.2. In the Generate Activity Properties dialog box, click on

Expressions.

Seven simulation events are listed in the User Expressions list box. The first three, Start Experiment, Start Simulation, and

SIMPROCESS User’s Manual 251

CHAPTER 10–Customizing a Model with Attributes and Expressions

Start Trial all occur before any entities are generated. Release Entity serves our purpose, so highlight it and click on Edit.

3. Enter the following lines in your text file:

IF Entity.Name = "refrigerator-order"

Entity.applianceWeight := 5000;

ELSIF Entity.Name = "television-order"

Entity.applianceWeight := 100;

ELSE

Entity.applianceWeight := 10;

END IF;

These instructions check the name of the entity being released at the activity. The name identifies the type of entity. A value is assigned to applianceWeight based on the entity type.

4. Close the editor. SIMPROCESS names the file before saving it.

5. Click on Close, and then OK.

Using Object Attributes in ExpressionsThe code in the previous example uses an Expression language construct we refer to as a qualified reference. For instance:

Entity.Name

refers to an object, named Entity, and an attribute, Name.

An object attribute leads SIMPROCESS to the model element whose attributes you are interested in. Unlike other attributes, you are not interested in the value of the object, you only use it to obtain the value of its system or user attributes.

In step 3, you needed to identify the type of entity being released by the Generate activity. The System Attribute Name identifies the entity type. But a Name attribute also identifies resources and activities. So

252 SIMPROCESS User’s Manual

Example: Batching Entities Based on Weight

referring to Name alone is ambiguous. In fact, SIMPROCESS assumes you are referring to the model element that called the Expression (the RECEIVE-ORDERS Activity).

That is where object attributes come in. They identify the model element you are interested in.

• The Entity object attribute tells SIMPROCESS to look at the entity being processed in the current activity.

• An attribute called Self points at the current model element; that is, the model element the expression has been invoked from.

So Entity.Name returns the type name of the entity instance being processed at the RECEIVE-ORDERS activity, while Self.Name returns the name "RECEIVE-ORDERS."

A qualified reference is also employed to set the User Defined Attribute applianceWeight:

Entity.applianceWeight := 5000;

Now, applianceWeight was specifically defined as an attribute of entities. So you might think that any reference to this attribute would be unmistakable; that it can only refer to one thing.

But in fact, you must use an object attribute to qualify your reference to applianceWeight. That is because without specifying a qualifier, SIMPROCESS assumes you are referring to an attribute of the current model element. In this case, the current model element is the Generate Activity, RECEIVE-ORDERS: it is the model element which invoked the expression. There is no attribute named applianceWeight associated with this activity, and an unqualified reference to applianceWeight results in an error.

Note that an unqualified reference to the attribute Name refers to the name of the current model element, RECEIVE-ORDERS. If that is the attribute you are interested in, you do not have to qualify the attribute.

SIMPROCESS User’s Manual 253

CHAPTER 10–Customizing a Model with Attributes and Expressions

Releasing Entities Based on WeightYou need to write two more Expressions to complete the model. In the first Expression, you check the weight of the entities received at the batch activity, and trigger their release if the weight reaches a certain number:

1. Double-click on the DISTRIBUTE-ORDERS Activity.2. In the Batch Activity Properties dialog box, click on

Expressions.

3. There are ten activation events listed in the User Expressions list box for a Batch Activity. Accept Entity occurs when an entity arrives at the activity, so highlight this event and click on Edit.

4. Insert the following code:batchWeight:=batchWeight+

Entity.applianceWeight;

IF batchWeight>=5000

MaxBatchSize := NumberIn;

OUTPUT("Batch weight is ", batchWeight);

batchWeight := 0;

END IF;

254 SIMPROCESS User’s Manual

Example: Batching Entities Based on Weight

In this Expression, the weight of the just-received entity is added to the total weight of all entities received. If the total weight exceeds 5000, a batch release is triggered by resetting MaxBatchSize, the attribute that sets the maximum number of entities that can be held in the batch. With the Activity about to be emptied of entities, the batchWeight attribute is reset to zero.

The OUTPUT statement in the Expression is there as an example of displaying information in the message dialog. It is not needed by the model. You can intersperse OUTPUT statements in your Expressions in order to trace events during a simulation. By displaying the value of batchWeight, for instance, you can verify that the batch is really released when the weight exceeds 5000.

5. Close your editor.

There is one more thing this model needs. The maximum batch size must be reset again after the entities are released. You do not want entities to be released when the DISTRIBUTE-ORDER batch reaches a certain number. Only accumulating 5000 kilos of weight should trigger release.

As it stands now, MaxBatchSize is set to the size of the previous batch accumulated at the activity. This was done to force a release of entities when batchWeight reached 5000 kilos. You could easily reach the current MaxBatchSize again, so to prevent that, reset this attribute to a number you can not possibly reach before accumulating 5000 kilos of weight:

1. In the User Expressions dialog box, select Release Entity. This is the event where the entities are released from the batch activity.

Press Edit.2. Enter the following statement:

MaxBatchSize := 100000;

3. Close the editor.

The model should now be ready to run.

SIMPROCESS User’s Manual 255

CHAPTER 10–Customizing a Model with Attributes and Expressions

An Alternative Method Using Entity TypesThis example works fine, but there are alternative approaches you can take, as there often are when building models in SIMPROCESS.

You already saw a couple of alternatives described for initializing the value of the applianceWeight attribute (“Defining the Expression at Entity Initialization” on page 249 versus “Defining the Expression When an Entity Is Released” on page 251). Another alternative involves defining the applianceWeight attribute for entity types instead of entity instances.

In this example, we defined a weight attribute for every entity instance in the model. Every refrigerator-order was assigned a weight of 5000, every television-order, 100, etc. The assigned weights remained unchanged during the course of the simulation.

We could have just as easily defined an applianceWeight attribute for each entity type, and initialized it at the Start Experiment event. Then, in the Expression defined at Accept Entity for the DISTRIBUTE-ORDERS Activity, the entity’s weight would be referenced as:

Entity.Type.applianceWeight

This would have worked fine in the model we built. But suppose that the weight of an order could be affected by some step in the process being modeled, and you needed to reflect this. For example, a customer order could include accessories for an appliance (e.g., cables and remote control for a television), adding to the weight of the order. In that case, attaching the applianceWeight attribute to each entity instance allows you to vary the weight of each television-order, which you cannot do if the attribute belongs to the entity’s type.

256 SIMPROCESS User’s Manual

User-Defined Functions

User-Defined FunctionsA User-defined Function will return the value of an expression each time it is called from within the model. This lets you re-use a single function in multiple places in your model.

To create a User-defined Function, go to the Define menu, and select Functions. This opens a list box displaying any previously defined functions. If you Add a new function, or Edit an existing one, the Function Definition dialog box will open. Here you can type in a meaningful Name for the function. The Expression button will open up Notepad as you would for any SIMPROCESS Expression. Type in your expression here. The final line of the expression should be a RETURN statement such as:

RETURN (Entity.Time * Activity.Factor);

where Entity.Time and Activity.Factor are attributes. Each time this function is called, it will return the value of the multiple of the two attributes.

The Name that you chose for the User-defined Function will appear in every combo box of every activity in your model that a statistical distribution can be entered.

SIMPROCESS User’s Manual 257

CHAPTER 10–Customizing a Model with Attributes and Expressions

Dynamic LabelsThere are two types of background text in SIMPROCESS: static text and dynamic labels. Static text is used for annotating the model layout and does not change during simulation. Dynamic labels, as their name implies, are updated during simulation and are used to display information about changing properties of model elements. The way to update dynamic labels is through an UpdateDynamicLabel method in the expression builder.

Properties of both kinds of text are specified in the Background Text dialog. The dialog is invoked by selecting a text tool from the Palette (marked by a capital T) and then clicking on the background in the location where text is to be placed (text can be moved afterwards by clicking and dragging just like any icon).

The dialog is divided into two sections: the top group of controls, designated as Dynamic Label Properties is only applicable to dynamic text, the bottom group — Font Attributes — is used to specify properties of both kinds of text.

258 SIMPROCESS User’s Manual

Dynamic Labels

SIMPROCESS provides two types of fonts: native and system. Native fonts are supplied by the operating system on which you are running. In order to choose a native font, select Native in the Font combo box and click on the Set… button. Native font properties are specified in an operating system’s Fonts dialog. For example, in Microsoft Windows you can choose font name, style and point size. The preview of the text will appear in the Sample box to help you quickly choose the desired attributes. Once the font is chosen and the Fonts dialog is closed, you can specify text color and angle in the Background Text dialog. For native fonts, only 90 degree rotations of the text are allowed. Note that once the text is placed on the layout, the selection box around it has no handles. You can move the text, edit its properties and group it with other objects on the layout, but you cannot resize the text by dragging its selection box. The only way to resize native font text is to change its point size in the Fonts dialog.

SIMPROCESS system fonts are vector fonts, which means they can be scaled on the layout by dragging the handles that appear on the selection box around the text. Vector fonts are created by choosing anything other than Native in the Font combo box. The Set… button will become disabled, but you can still set the color and angle of the text. Note that vector fonts can be rotated by all angles defined in the combo box.

Several text labels can be grouped together on the layout and their horizontal and vertical alignment can be set in the H. Align and V. Align combo boxes.

If you are placing a dynamic label on the layout, in addition to its font attributes, appropriate information needs to be entered in the Dynamic Label Properties group. Each dynamic label must have a unique combination of Name and Id number. Usually, Id number will be 0, unless two dynamic labels have the same name. The name typed into the Name text box will not appear on the layout. It will only be used to reference the label from the expression builder. You also need to choose the type of value with which the dynamic label will be updated. The choice between string, integer and real is made in the Mode combo box. If the value of the dynamic label is real, you also need to specify Width and Precision in the corresponding value boxes. Width is the total number of digits that will be shown for the displayed value (including the decimal point), Precision specifies the number of digits after the decimal point that will be displayed. If the Width is greater than the valued being displayed, it will be padded with spaces on the left side.

SIMPROCESS User’s Manual 259

CHAPTER 10–Customizing a Model with Attributes and Expressions

Although it is not necessary, we suggest that you add a static label to the dynamic label definition. If you do not, there will be no place holder for the dynamic label on the layout after you close the dialog. You can still find this label by dragging a rubber band box in the selection mode around the area where you placed it. A very small selection box may appear at the location of the label. You can then edit its properties by choosing Edit/Properties off the menu. Static label makes it simpler to find the dynamic label location and provides a description of the value being updated. The static label is not replaced when dynamic value is updated: dynamic label appears to the right of the static.

Once the dynamic label is defined, it can be updated by making a function call to UpdateDynamicLabelMethod in the expression builder. This method requires the following five arguments in this order:

MasterEditor — (typed as shown), reference to the main layout window.

name — a string (in quotes) you used to designate the dynamic label in the Name text box of Background Text dialog. Make sure letter case is the same in both places.

ID number — an integer you designated in the Id box of the Background Text dialog.

text color — a string (in quotes) of the color in which you want the text to appear. A list of color names is found in “SIMPROCESS System Methods and Examples,” beginning on page 393. As with name, letter case must be as shown in the table.

value — integer, real or string value that you want to display; type must correspond to what you chose in the Mode combo box of the Background Text dialog.

For example, if you would like to display a string showing the name of the entity leaving a delay activity, as well as a real value showing the amount of time this instance of an entity spent at the activity and an integer showing number of entities currently at that activity, you can enter the following three commands in the expression builder of the delay activity at the Release Entity entry point:

260 SIMPROCESS User’s Manual

Dynamic Labels

UpdateDynamicLabel

(MasterEditor,"num",0,"Orange",

NumberIn);

UpdateDynamicLabel(MasterEditor,"name",0,

"Aquamarine",Entity.Name);

UpdateDynamicLabel(MasterEditor,

"lastdelay",0,"IndianRed",LastDelay);

For more information on expression builder terminology and syntax, see “SIMPROCESS System Methods and Examples,” beginning on page 393.

Note that both dynamic and static text font attributes can be changed during simulation by selecting the text and editing its properties. The change will take effect immediately after the Background Text dialog is closed and the simulation is resumed.

SIMPROCESS User’s Manual 261

CHAPTER 10–Customizing a Model with Attributes and Expressions

SummaryThis chapter described how attributes are used in SIMPROCESS, and introduced Expression processing with a step-by-step example. You learned the following:

• Attributes are variables of model elements whose value can change during a simulation run.

• System attributes are those built-in to SIMPROCESS. User Defined Attributes are custom-defined by users.

• Object attributes identify the model element whose attribute you are referencing.

• Globally-defined user attributes are created for every model element of the same class (activities, resources, etc.). Locally-defined attributes apply only to a single type of an model element.

• Expressions are user-written procedures which are invoked by SIMPROCESS at various events during a simulation run. The language used to code Expressions is a subset of the MODSIM simulation language. An introduction to the basics of this language begin on page 234.

• Object attributes are used in Expressions to qualify attribute references.

• Numerous System Methods are available to add functions to your Expressions.

262 SIMPROCESS User’s Manual

CHAPTER 11

More Advanced Model Building

SIMPROCESS User’s Manual 263

CHAPTER 11–More Advanced Model Building

Defining a More Complex Generate Activity

A Generate activity generates different types of entities, or it can vary the schedule of entity generation for a single entity type.

Specifying the Active Period of Entity Release

You can limit the period that your entity release schedule is in effect by specifying Release Start and End dates. To do this, click on the Start/End button and specify the Start and End dates in the dialog.

If you specify Start and End dates, the Generate activity will not produce entities outside of that time period.

The Start and End dates work in conjunction with the Start Date and End Date of a simulation run. So keep in mind that, if the simulation run dates are entirely outside of the period defined for the Generate release schedule, no entities are generated during that simulation.

If you do not specify a Generation Start date, SIMPROCESS sets the Start time to correspond to simulation start time. Similarly, if Generation End date is blank, it defaults to the simulation end time. So leaving the Generation Start/End fields blank insures that the schedule is in effect for the entire simulation run.

264 SIMPROCESS User’s Manual

Defining a More Complex Generate Activity

Defining Schedules for a Generate ActivityThe Generate schedule identifies the entity-generation pattern defined for an activity. When you define a new schedule item, it is added to the Schedule list box:

Each Schedule identifies an entity generation pattern of a specific type:

• Periodic: A periodic schedule generates a specified quantity of entities at the end of a specified time period.

• Calendar: Generates entities according to a calendar schedule; weekly, monthly, etc.

• Cyclical: A detailed pattern of when entities are generated.• File: A schedule defined in an external file.

The basic Generate Activity that we saw earlier was just a simple case of a periodic schedule. For such simple cases, the Interval, Quantity, and Entity Type can be specified on the main dialog. The Interval field on the main dialog is not available if you have more than one schedule or a schedule that is not periodic.

Schedules are processed in parallel. If you define two schedules that overlap in time, SIMPROCESS processes both simultaneously.

Click on Add to define a new schedule, or Edit to change the definition of the item highlighted in the schedules list box. When adding a new schedule, first identify the type of entity generation pattern by selecting from the Schedule Type combo box.

SIMPROCESS User’s Manual 265

CHAPTER 11–More Advanced Model Building

Copy duplicates the definition of the item highlighted in the Schedule list box. Use this when you need to define two or more similar schedules.

Remove deletes the highlighted schedule.

Adding a Periodic Schedule

The periodic schedule defines a constant or statistical distribution of entity generation events per period:

The Periodic Schedule dialog box contains the following items:

Schedule Assign a meaningful name to the entity generation schedule you are defining. The default name assigned by SIMPROCESS is the same as the schedule type; in this case, Periodic1. For this example, we will define a generation schedule based on an exponential distribution of entities and name the item Exponential.

Entity specifies the type of entity to be generated by this schedule. Use default tells SIMPROCESS to generate the type of entity indicated in the Generate Activity Properties dialog box. To specify a different type, click on the pull-down arrow for a list of entity types to choose from.

Quantity is the number of entities to be produced at each entity generation by this schedule. Again, use default refers back to the value in the Generate Activity Properties dialog box. See page 62

266 SIMPROCESS User’s Manual

Defining a More Complex Generate Activity

of the SIMPROCESS User’s Manual for additional details on this field.

Interval defines the time between entity-generation events for this schedule. Use default refers back to the value in the Generate Activity Properties dialog box.

Schedule Start and End define the effective period for this schedule.

The times in the Start and End fields apply just to this schedule and supersede the Start and End dates specified on the Generate Activity Properties dialog box. If you do not enter a date for either Start or End, the corresponding value in the Generate Activity Properties applies.

Count Limit sets the maximum number of entities that can be generated by this schedule. A Count Limit value of 0 indicates that there is no limit.

If the Count Limit is reached, the Generate activity may stop generating entities for this schedule. This depends on the setting of the Both must be reached and Generation End fields.

Both must be reached, if marked, specifies that both the Count Limit and Release End date must be attained in order to terminate entity generation for this schedule. If the Both must be reached field is not marked, then reaching either Generation End or Count Limit terminates the schedule.

Adding a Calendar ScheduleTo add a schedule that generates entities based on the calendar, select Calendar under Schedule Type on the Generate Activity Properties dialog box, and then click on Add:

SIMPROCESS User’s Manual 267

CHAPTER 11–More Advanced Model Building

You can specify the following types of entity-generation schedules in the Calendar Schedule dialog box:

• Yearly - Entities are generated once every year, on a particular date.

• Monthly - Entities are generated on a specific day in each month (e.g., 1st of the month).

• Weekly - A certain time of day, on the specified day of the week (e.g., Monday, Tuesday...)

• Daily - Every day, generated at the specified time.• Date - A specific date and time.

The Calendar Schedule dialog box changes in appearance depending on the Type of schedule selected:

• If Calendar Type is Weekly, a list of the days of the week is activated to let you select a day from the list.

• The heading above the Date and Time field changes to prompt you for the information required for the Type schedule you selected.

268 SIMPROCESS User’s Manual

Defining a More Complex Generate Activity

For example, if you specify a Daily entity generation schedule, you must enter a time of day in the Date and Time field.

Any information that does not apply to a Daily schedule, such as the date and year, is ignored.

As with all schedules, you can use the Generation Start and Generation End dates to further define the effective period for a Calendar generation schedule.

Defining Cyclical SchedulesUse the cyclical schedule to define a detailed pattern of entity generation cycles. For example, you might describe a week, day by day, or a year, month by month. You can define a unique period such as the holiday rush leading up to Christmas, where entity generation behavior differs markedly from the rest of the year.

A cyclical schedule is defined as a series of cycles. Each cycle describes a different entity generation pattern. In a sense, the cycle series is like an a schedule of its own. But unlike the schedules defined for the Generate Activity as a whole, cycle events are processed sequentially, not in parallel. It is up to you to schedule the cycles so that one follows another. You can elect to have SIMPROCESS repeat cycles as often as you want.

You can define the following types of cycles:

• Periodic. A constant or statistical distribution defining the time interval between events.

• Calendar. Entity generation events scheduled at intervals based on the calendar, i.e., weekly, monthly, etc.

• Single Event. A one-time entity generation event.• No Event. A period where no entities are generated.• Cyclical. A cycle within a cycle; that is, a more detailed

breakdown within a schedule (e.g., the various periods within a single day — breakfast, meeting, coffee break, lunch — within a workweek described day-by-day).

SIMPROCESS User’s Manual 269

CHAPTER 11–More Advanced Model Building

Cycles are added to and modified from the Cyclical Schedule dialog box.

The Sequence of Events dialog box lists the cycle events defined for this cyclical schedule. The events are listed in the order in which SIMPROCESS will execute them. When you add a cycle, SIMPROCESS places it at the end of the list. But you can rearrange the pattern using the Move command.

270 SIMPROCESS User’s Manual

Defining a More Complex Generate Activity

For example, here is a list of cycles defined out of sequence:

To move the April cycle to the end of the list, highlight April and click on the Move button three times. Each click of Move shifts the item down a row.

You can also move cycles up in the list by checking off the Upwards option before clicking the Move button.

Repeat Sequence tells SIMPROCESS how many times to repeat execution of the Pattern of cycles. If you check the box labeled Infinite, SIMPROCESS will keep repeating the cycle pattern until Generation End is reached.

Note about Repeat Sequence

A value of 0 in the Repeat Sequence field tells SIMPROCESS to run through the list a single time, without repeating it. A value of 1 results in two passes through the Sequence of Events: the initial run-through and one repetition.

Do not confuse the number of repetitions with the number of passes through the list.

SIMPROCESS User’s Manual 271

CHAPTER 11–More Advanced Model Building

Refer to page 267 for descriptions of the Generation Start and Release End, Count Limit, and Both must be reached options.

Defining a Periodic Cycle

A periodic cycle defines a constant or statistical distribution of entity generation events. To define a periodic cycle in a cyclical schedule, select Periodic from the list of Schedule types, and then click on Add:

Defining a periodic cycle is similar to defining a periodic schedule (see page 266). The major difference is that you do not define the duration of the cycle in terms of start and end dates. That is because the start time is under the control of the cyclical schedule of which the cycle is a part:

Duration is how long this cycle is in effect. You can enter the number of hours or select a value from the pull-down list for this field.

The starting time of the event is determined by the following factors:

• The Generation Start date of the cyclical schedule.• The position of this cycle in the Schedule of Events in the

Cyclical Schedule detail dialog box.• The Duration of the cycles that precede this one.

272 SIMPROCESS User’s Manual

Defining a More Complex Generate Activity

Count Limit sets a maximum number of entities that may be generated during this cycle. A value of 0 indicates no limit.

The Both must be reached checkbox, if marked, specifies that both the Duration and Count Limit must be reached before the cycle completes.

Note that selecting Both must be reached can result in a cycle of unknown duration. This happens if the Count Limit is not reached before the end of the Duration period. In that event, the cycle continues until either the Count Limit is attained, or the Generate Activity Generation End is reached.

Repeat Event tells SIMPROCESS how many times to repeat execution of this cycle. If you check off the box labeled Infinite, SIMPROCESS will keep repeating the cycle until the schedule’s Generation End date is reached.

To reiterate a point made earlier about a Repeat field: do not confuse the number of repetitions with the number of passes through this item. A Repeat Event value of 0 results in one pass through the cycle and zero repetitions of that pass. A value of 1 indicates two passes (one repetition in addition to the initial execution of the cycle).

• The Entity, Quantity, and Interval fields are used the same way they are in the Periodic Schedule detail dialog (see page 266).

Defining a Calendar Cycle

A calendar cycle defines entity generation events that repeat on either a daily, weekly, monthly, or yearly basis:

SIMPROCESS User’s Manual 273

CHAPTER 11–More Advanced Model Building

The dialog box above shows a calendar cycle representing four days leading up to a festive holiday, when people are rushing to buy gifts for their loved ones. It’s a daily schedule, beginning at 9 a.m. and each iteration will last 24 hours.

As with the periodic cycle, the start time of a calendrical event is determined by the cyclical schedule in which the cycle is defined. However, entity generation is not triggered until the time you indicate in the Date and Time field. If the trigger point is not reached while the cycle is in effect, no entities are generated. For a further explanation, see “SIMPROCESS’ Scheduling of Event Cycles” on page 275.

The Date and Time value you need to supply depends on the Calendar Type schedule selected:

• Yearly. Enter a date and time of day, but do not specify a year. Entity generation begins if the simulation reaches the specified date and time during this cycle.

• Monthly. Specify a day of the month and time of day, e.g., the first of the month, at noon. Entity generation begins if the simulation reaches the specified day and time while the cycle is in effect.

274 SIMPROCESS User’s Manual

Defining a More Complex Generate Activity

• Weekly. Select a day of the week (from a list that appears when Weekly is checked off), and a time of day. Entity generation begins if the simulation reaches that day and time during the cycle.

• Daily. Specify a time of day. Entities are released if the simulation reaches this time of day while the cycle is in effect.

SIMPROCESS’ Scheduling of Event Cycles

Calendar cycles must be carefully placed within the Sequence of Events. If the trigger time you specify in the Date and Time field has already passed when SIMPROCESS invokes a cycle, entity generation may not occur.

For example, say you define a cyclical schedule, with a Generation Start date of January 1, 1995, and a Generation End date of March 31, 1995. The schedule contains the following Schedule of Events cycles:

• A periodic cycle event beginning on January 1, with a duration of 48 hours.

• A calendar cycle which is triggered monthly, on the 2nd of the month, for a duration of one week.

Then you run a simulation which begins at midnight, January 1. The periodic cycle starts right away and lasts for 48 hours. At this point it is midnight, January 3rd, and the calendar cycle is implemented. What happens during this period?

No entities are generated during the calendrical event. Here is why:

1. On January 3rd of simulation time, SIMPROCESS acts on the calendrical cycle. It checks the Date and Time value (which is set to the 2nd of the month, at midnight) and compares it to the current date. SIMPROCESS determines that the trigger date has already passed, and bypasses entity generation. The next possible trigger point is on February 2nd.

2. The calendar cycle lasts for a week, ending on January 10th. Since the next possible trigger point is not reached during this period, no entities are generated by this cycle.

3. SIMPROCESS invokes the next item in the Schedule of Events cycles.

SIMPROCESS User’s Manual 275

CHAPTER 11–More Advanced Model Building

If the duration of the calendar cycle were set to one month, the event would still be in effect on February 2nd and entities would be released at that point.

Defining a Single Event cycle

A Single Event cycle describes a one-time entity generation event:

You specify the same parameters for a single event as you do for a calendar cycle, except that you cannot specify when the event begins. A single event’s starting date and time is dependent on the cycles that precede it in the Pattern of cycles.

Defining Inactive Time Periods

The No Event cycle defines a period of time during which no entities are generated (for example, a holiday or weekend). The period of inactivity begins at whatever time SIMPROCESS invokes the No Event cycle.

Defining Specific Entity Generation Events in a FileYou can tell SIMPROCESS to release entities by defining specific entity generation events in an event file. An event file is one that you create with a text editor or some other means independent of SIMPROCESS (such as a program that you or someone else has written). With an event file, you can run a simulation using data that you have captured outside of SIMPROCESS.

276 SIMPROCESS User’s Manual

Defining a More Complex Generate Activity

For example, most mail order businesses use computer systems to track customer sales information. This information is stored in some kind of data base. You can extract the information from the database and define a series of entity generation events that precisely matches customer activity for an actual day, week, month, etc.

Each record in an event file defines one entity generation event. To learn how to define entity generation events, see Appendix G–External Event Files, on page 419.

Use the External File schedule to identify an event input file to SIMPROCESS:

To identify the event file, click on the Browse button to the right of the Event File box. Use the resulting dialog box to find and select your file.

The Read Event File button causes SIMPROCESS to read the event file, checking for syntax errors and building a list of the entity types referred to in the file. You must click on the Read Event File button to complete the definition of the event file.

Identifying Entity Types to be Generated

An event file can contain records referring to many different entity types. An event record can even refer to a type of entity that has not

SIMPROCESS User’s Manual 277

CHAPTER 11–More Advanced Model Building

yet been defined in the model. Using the External File Schedule Properties dialog, you can specify precisely which entity types you want SIMPROCESS to generate during simulation.

Select the Generate Entities option that indicates which of the entity types referenced in the event file are to be generated:

• Defined in the model tells SIMPROCESS to generate entities for every event record that specifies an entity type already defined in the model.

• Selected in the list tells SIMPROCESS to generate entities only for the types highlighted in the entity type list.

• If the event file refers to an entity type that is not defined in the model, it flags the type name. For example:

New Entity (add: type)

• If you select this type, SIMPROCESS will add the entity type to your model when you run a simulation.

To select the entity types to be used:

• Highlight the listed type name. To highlight several types, press and hold the Ctrl key while you click on each item.

• To deselect a type, click on it again while pressing the Ctrl key.

Generate Activity SummaryThe Generate activity generates the entities that are processed in a SIMPROCESS simulation:

The number of entities generated at each generation event, and the frequency of entity generation events, may be expressed as either constant numbers or statistical distributions.

You can define a schedule of discrete entity generation events.

278 SIMPROCESS User’s Manual

Defining a More Complex Generate Activity

Schedules are classified as:

• Periodic: A constant or statistical distribution of generation events per hour.

• Calendar: Weekly, monthly, etc. events.• Cyclical: A detailed pattern of generation events.• File: A schedule defined in an external file.

Cyclical schedules are further broken down into cycles, each of which describes a different entity generation event. Cycle events are processed sequentially. This differs from other Generate schedules, which are processed in parallel.

SIMPROCESS User’s Manual 279

CHAPTER 11–More Advanced Model Building

Downtime Schedule of ResourcesThe Downtime option manages a resource’s schedule of unavailability.

All schedules in the Schedule list box are active only between the times specified in the Start and End fields.

Dialog Box Field Definitions• Start specifies the earliest time that the resource’s downtime

schedules are in effect. This field uses a MM/DD/YY HH:MM:SS format.

• End is the time beyond which the downtime schedules are not applicable. The MM/DD/YY HH:MM:SS format is used. After this time, the resource is available.

• The Schedules list box identifies the downtime periods defined for this resource. When you define a new downtime period, it is added to this list.

Next to the Add button for the Schedule list box is a combo box containing the available downtime schedule types.

• Schedule Type. A Periodic schedule of downtime is one that occurs at intervals of time, specified in hours. The interval may be fixed (every n hours) or random (sampled from a statistical distribution).

280 SIMPROCESS User’s Manual

Downtime Schedule of Resources

The remaining Schedule Types are calendar-based, with downtime occurring on particular dates or days of the week, time of day, etc. Types are:

Yearly - Every year, on a particular date and time.Monthly - A specific day in each month (e.g., 1st of the month).Weekly - A certain time of day, on the specified day of the week (e.g., Monday, Tuesday...)Daily - Every day, beginning at the specified time.Hourly - Every hour, beginning at n minutes past the hour.Dates - A specific date, in a specific year.

When you add a new downtime schedule or edit an existing one, you will enter a dialog that contains the parameters for that downtime schedule type.

The Downtime Schedule dialog box changes in appearance depending on the Schedule Type selected:

• If Schedule Type is periodic, the downtime occurs at intervals of time indicated in the Time Between Downtimes field.

• The field labeled Time Between Downtimes changes to Downtime Start for all schedule types other than Periodic. For Time Between Downtimes, you specify a statistical distribution or constant. For Downtime Start, you specify a date and/or time.

• If Schedule Type is Weekly, a list of the days of the week appears. You select a day from this list.

SIMPROCESS User’s Manual 281

CHAPTER 11–More Advanced Model Building

• Schedule Name is the name assigned to the downtime period. This name appears in the Downtime list box.

• Downtime Start or Time Between Downtimes defines the time at which the resource becomes unavailable.

For Periodic schedules, this field is labeled Time Between Downtimes and contains either a statistical distribution or a constant. If you specify a distribution, the resource will be unavailable at random intervals based on the distribution sampling. If you specify a constant, the resource enters a period of Downtime every n hours. For example, if you want to model a dayshift that works from 9 am to 5 pm and is off the rest of the day, you would specify 24 in this field. This means that every 24 hours (i.e., every day at 5 pm) the resource becomes unavailable.

For all other schedules this field is labeled Downtime Start and contains a date and/or time. Date is specified as a 2-digit month, 2-digit day, and 4-digit year. Time-of-day ranges from 0 to 2400 hours. Downtime of the resource begins at the time specified.

• Number of Units Down is the amount of capacity units to be made unavailable.

• Downtime Duration is the length of time, expressed in hours, that the resource is unavailable. In the above daytime shift example you would specify 16 in this field.

282 SIMPROCESS User’s Manual

Downtime Schedule of Resources

• Planned specifies that the period of unavailability is planned. For example, a vacation may be planned, whereas sick time is not planned.

Creating a Downtime ScheduleTo demonstrate the creation of a downtime schedule, we will define some of the periods during which a sales clerk is not available for work. We will account for:

• Daily off-hours (the 16 hours of each 24-hour day that a person is not scheduled to work).

• Weekends.• Sick days.

In a complete model, you would also account for lunch hours, vacation time and unplanned time off (jury duty, personal days, acts of nature, etc.).

For this example, assume that sales clerks operate in two shifts. The first shift, composed of 3 clerks, works from 9 to 5. The second shift, consisting of 2 clerks, works from 2 to 10.

1. If you do not already have a Resource dialog box displayed, click on the Define menu bar item, and then select Resources... Select Clerks from the list of resources, and then click on Edit.

Click on Downtime.

SIMPROCESS User’s Manual 283

CHAPTER 11–More Advanced Model Building

2. Set the Start and End dates. These dates indicate the period during which the Downtime schedule applies. We will define the period to include the entire month of January in 1995:

The Start and End dates are used in conjunction with the Start Date and End Date of a simulation run (see “Run Settings” on page 77). In this example:

If the Start and End dates are the same as the Start and End simulation run dates, the downtime schedule will be in effect for the entire duration of the simulation run.

If the Start date for the simulation run is January 1, 1995, and the End date is February 28, 1995, the downtime schedule is only in effect for part of the simulation (January 1 through January 31).

Keep in mind that, if the simulation run dates are entirely outside of the period defined for the downtime schedule, the downtime schedule will not apply to that simulation.

284 SIMPROCESS User’s Manual

Downtime Schedule of Resources

3. Define the daily hours during which Shift 1 workers do not work. Their weekday work shift is from 9 to 5, so they are unavailable from 5:00 p.m. to 9:00 a.m. the following day:

Schedule Name can be anything you want to call this period of time. We will call it OffShift1.For Schedule Type, select Daily and then select Add.For Downtime Starts (the starting time of the downtime period), enter 17 under HH (1700 hours; 5 p.m.), and 0 under MM and SS.In the Number of Units Down field, enter the number 3. This is the number of clerks on Shift 1.

Remember that the resource Units of Clerks is 5, so 3 of the 5 will be unavailable during the period we are identifying.

Downtime Duration is 16.0, the number of hours between the end of one work day and the beginning of the next.Unavailability occurs at regularly scheduled times, so select Planned.

Click on OK when you complete this definition; OffShift1 is added to the Schedule list.

SIMPROCESS User’s Manual 285

CHAPTER 11–More Advanced Model Building

4. Define the off-shift period for the two Shift 2 workers. Add another daily downtime schedule. Change Downtime Starts to 22:00, Number of Units Down to 2, and name the schedule OffShift2. Then click on OK.

5. Define downtime periods to account for the weekend. Begin with Shift 1:

For Schedule Name, call it WeekendShift1.Schedule Type is Weekly. A weekend occurs once every week.When you add a Weekly schedule, a list box with the days of the week is on the Weekly Downtime Schedule dialog box.Day of Week is Saturday.For Downtime Starts, enter 9 under HH and 0 under MM and SS.

If you are thinking that a typical weekend begins after work on Friday, remember that you have already accounted for the time between 5 p.m. Friday and 9 a.m. Saturday in the OffShift1 period.

In the Number of Units Down, enter the number 3. This is the number of clerks on Shift 1.

Downtime Duration is 48.0.

286 SIMPROCESS User’s Manual

Downtime Schedule of Resources

Select the Planned check box.

Click on OK when you complete the definition.6. Add the weekend Downtime period for Shift 2. Change

Downtime to 14:00, Number of Units Down to 2, and name the schedule WeekendShift2.

7. Finally, we will define time unavailable due to illness. Illness is more complex to model than weekends or overnights, because it occurs randomly. Random downtime is handled by specifying a frequency distribution instead of a fixed interval of time. We will introduce frequency distributions here to complete our example.

Defining a Random DowntimeIllness is unplanned. You know that employees are going to get sick, but you do not know when it will happen, who it will happen to, or how long they will be out. You can, however, make reasonable estimates based on past experience.

To define the Downtime schedule for sick days:

1. Add a Periodic Schedule Type.

Figure 6. Weekend Downtime Period for Shift 1 Clerks

SIMPROCESS User’s Manual 287

CHAPTER 11–More Advanced Model Building

A Periodic schedule is used to describe events that occur at varying intervals of time.

2. Time between Downtimes describes the interval period.

Let us assume that, in a typical month, one of the five employees comprising the Clerks group will be out sick for a period of time. Moreover, we will assume that while a month is typical, the time between bouts of illness can be as little as three days or as much as a year. To reflect this, specify a triangular distribution:

Click on the arrow next to the Time Between Downtimes field to display a list of statistical distributions.

Scroll through the list until you find the default definition for Triangular distributions. It reads:

Tri(0.0,5.0,10,0)

There are three parameters in this definition: Minimum value, most frequent value (Mode), and Maximum value. Values are in units of hours (e.g., 24.0 represents 24 hours, or one day).

Select Tri... from the list.

Click on the box to the right of the arrowhead next to the Time Between Downtimes field.

This displays a dialog box for defining the parameters of your distribution:

We’ve made the following assumptions:

288 SIMPROCESS User’s Manual

Downtime Schedule of Resources

Typically, there is a clerk out sick every 28 days. We will use this as our most likely estimate.

The minimum period between illnesses is 3 days.

The maximum period between illnesses is 1 year (365 days).

Convert days to hours by multiplying by 24; enter the results in the dialog box:

Click on OK.

3. Set Units Down to 1.

The Units (number of clerks) of this resource is 5. The frequency of downtime applies to one clerk at a time, not all five.

4. Downtime Duration is another variable, random event.

For this model, assume that a clerk is unavailable for at least 24 hours (one sick day), and no more than 10 days at a time, with most absences lasting two days. Following the procedure described in step 2, define a triangular distribution with these parameters:

5. Set the Schedule Name to SickTime.

SIMPROCESS User’s Manual 289

CHAPTER 11–More Advanced Model Building

6. The downtime is not planned, so leave the Planned check box blank.

7. Click on Add to add the definition to the Schedule list.

Click on OK to accept the entire Downtime Schedule.

Modifying a Downtime ScheduleRemoving existing Schedule items from a Downtime Schedule is simple: open the Downtime Schedule for the resource, highlight the Schedule item you want to delete, and click on Remove.

To change an Schedule item, select it from the Schedule list, click on Edit and then modify the parameters you want to change on the Downtime Schedule dialog box. Click on OK to accept the changes.

The Add button updates the Schedule list box to include the schedule you have just defined.

The OK button finalizes the changes you have made to the Downtime Schedule.

The Cancel button exits the Downtime Schedule dialog box without accepting any schedule changes you have made.

290 SIMPROCESS User’s Manual

Event Logs

Event LogsTime Stamps and Recorders are Event logs supported in SIMPROCESS.

Time Stamping is a facility that SIMPROCESS offers for monitoring times between any two events. For example, start to finish time. The three steps for using Time Stamps are:

• Defining Time Stamps• Adding Entry/Exit Event Logs to Processes/Activities• Viewing Time Stamp Reports

Defining Time StampsA Time Stamp can be thought of as a label or key that contains the current simulation time. This key is added to an entity by an Event Log when it either enters or leaves a Process or Activity. Pairs of keys can be specified and Entity cycle times can be computed between them.

Time Stamping can be performed upon entry (and/or) exit from an Activity. Time Stamp specifications can be defined between two stamp keys enabling the monitoring of cycle time & counts between two Time Stamps.

1. Select Time Stamps… from the Define pull-down menu.2. Select Add to define Time Stamp requirements.3. Define Start and Stop keys and press the OK button.4. Define as many Start and End keys as you desire reporting

on. Press the Close button when finished.

Entry and Exit Event Logs to Processes/Activities Once Time Stamps have been defined you must specify the Process or Activity where they will be attached to the Entity. The Time Stamp can be added to the Entity upon entry into and/or exit from the Process/Activity. Time stamps are then added to Entities that traverse this process during simulation execution. To add a time stamp:

SIMPROCESS User’s Manual 291

CHAPTER 11–More Advanced Model Building

1. A Time Stamp must first be defined using the procedures starting on page 291.

2. Using an Activities/Process Properties dialog box, select the Event Logs command button.

3. Using the Type combo box, select Time Stamp and press the Add button. The Time Stamp Properties dialog box appears, as shown below.

4. Select either one or more individual Entities or a range of Entities from the list box. If you want to stamp every entity in your model, check the All Entities box.

5. Choose either the On Entry or On Exit check boxes for the Time Stamp.

6. Select a Time Stamp Key in the combo box which contains your predefined time stamp labels.

7. Press the OK command button and notice the Time Stamp report name in the Event Logs list box.

Collecting Statistics on Time StampsThe Statistic Requests dialog box specifies whether or not the collection of statistics is activated by the words (ON) or (OFF) at the end of the request type.

1. Select Time Stamps… from the Define pull-down menu.2. Select the key pair you wish to collect statistics on from

the list box.

292 SIMPROCESS User’s Manual

Event Logs

3. Click on the Edit button.

4. Click on the Statistics… button found on the Time Stamp Definition dialog. This opens a Statistics Requests dialog.

5. Select either real-time delay for a real-time plot during simulation execution or delay for post simulation reports.

6. Choose Edit.7. If you selected real-time delay for an entity time stamp, a real-

time plot will be shown during simulation. The real-time delay dialog appears as shown below:

8. Complete the real-time delay dialog to define the X and Y Axis Minimum and Maximums for real-time plotting.

9. To activate the collection of this statistic, choose the Collect Statistics check box.

SIMPROCESS User’s Manual 293

CHAPTER 11–More Advanced Model Building

10. Once you are finished entering the data, choose OK.11. The word (On) appears after real-time delay on the Statistics

Request dialog box. 12. If you selected delay from the list box, post-simulation Entity

Delay reports can be enabled. Complete the delay dialog which appears.

13. Choose the Collect Statistics check box for Mean, Standard Deviation, Min, Max and Count data collection.

14. Once you are finished entering the data, choose OK.15. Select the Close button when you have completed

Statistics Requests.

Viewing Time Stamp Reports After SimulationIf you selected Real-Time Delay Reports you will get a trace plot that shows the cycle time values of key pairs during simulation execution. If you asked for Delay statistics you can view these reports following simulation. To view these reports:

1. Select Time Stamps… from the Define pull-down menu.2. Select the key pair you wish to view from the list box.3. Click on the Edit button. 4. Click on the Statistics... button. 5. Select the type of delay from the list box. 6. Click on the View Button. This will present the summary

statistics in tabular form.

294 SIMPROCESS User’s Manual

Event Logs

Passing Time Stamps Between EntitiesWhen an entity enters a Copy, Split, or Transform activity, a new instance of an entity type leaves that activity. The Original entity, when it leaves a Copy or Split activity, will continue to carry Time Stamps that were defined on the entity, upstream. The Copy or Clone entities will not, by default, carry those Time Stamps defined on the Original entity. You can specify that the Copy or Clone entities will also inherit the Time Stamps of the Original entity.

On the Properties dialog of the Copy activity, simply click on the Copy Time Stamps check box. This will cause each instance of the Copy entities to carry the Time Stamp information inherited from the Original entity.

To specify that the Clone entities resulting from a Split activity inherit Time Stamp information from the Original entity, edit the Properties of the connector(s) emanating from the Clone pad. Now, click on the Copy Attributes button. This will open the Copy Entity Fields and Attributes dialog. This dialog contains the same Copy Time Stamps check box described above.

The Properties dialog of the Transform activity also carries a Copy Attributes button, which opens the Copy Entity Fields and Attributes dialog box. To specify that the Output entities inherit the Time Stamps of the Input entity, turn on the Copy Time Stamps check box.

SIMPROCESS User’s Manual 295

CHAPTER 11–More Advanced Model Building

When an entity, carrying a Time Stamp, is Batched or Assembled, the output entity will not be aware of the Time Stamp. You must Unbatch the output entity in order to register the endpoint of the Time Stamp (to do this for an Assembled entity, you must turn on the Batch Component Entities check box on the Properties dialog of the Assemble activity).

Differences Between Time Stamps and Recorder Objects

Time Stamps measure time delays during a simulation. How much time an entity spends at one or more Processes/Activities is captured using Time Stamp keys.

Recorder Objects measure arrival/departure rates at Processes/Activities by recording how many Entities arrive/depart a Process/Activity over time. The time between arrivals and departures can also be calculated using Recorders.

RecordersIn addition to Time Stamps, Recorders will write the arrival or departure time of an entity at a Process/Activity into a file called recorder.msg. You can then examine the file after simulation and observe the actual times a specific Entity arrived or departed from specific Processes/Activities.

1. Using an Activities/Process Properties dialog box, press the Event Logs command button. The Event Logs dialog box lists the currently defined Time Stamps and Recorder objects (either On Entry or On Exit).

296 SIMPROCESS User’s Manual

Event Logs

2. Using the Type combo box, select Recorder and choose the Add button. The Recorder Properties dialog box appears, as shown below.

3. Choose whether you want to record arrival times (On Entry) or departing times (On Exit) of the Entities in this Process/Activity.

4. Select the entities you want recorded. If you use the All Entities check box above the list box, all entities in the list box will be selected and highlighted.

5. Once you are finished entering data, choose OK to leave the dialog box confirming your current selections. The Cancel button rejects the current dialog selections.

SIMPROCESS User’s Manual 297

CHAPTER 11–More Advanced Model Building

6. The Event Logs list box shows the defined Recorders (either On Entry or On Exit) along with current Time Stamps. Choose the Close button to exit this dialog box.

298 SIMPROCESS User’s Manual

Part CAdvanced SIMPROCESS Tools

The chapters in this section describe the advanced tools and the database included with SIMPROCESS Professional.

SIMPROCESS User’s Manual 299

300 SIMPROCESS User’s Manual

CHAPTER 12

Advanced Data Analysis

SIMPROCESS comes with a data analysis tool that extends your ability to conduct statistical data analysis: Stat::Fit. The Stat::Fit tool:

• Increases the accuracy of your experiment• Decreases the time to find the solution to your problem • Provides a statistical software tool tailored to the statistical

simulation environment• Interacts with you through a unique graphical user interface • Performs data analysis• Models random processes

SIMPROCESS User’s Manual 301

CHAPTER 12–Advanced Data Analysis

Figure 5. Statistical Simulation Experiment Process

Stat::Fit is used to analyze data and construct a data model of the random process that generated the data. An introduction to the statistical background for data analysis and data modeling is provided in the following paragraph, “An Introduction to Data Analysis and Modeling.”

ModelDevelopment

Verification &Validation

StatisticalExperimentation &

Analysis

Results

302 SIMPROCESS User’s Manual

An Introduction to Data Analysis and Modeling

An Introduction to Data Analysis and Modeling

IntroductionProbability distributions are a way of describing the random variations that occur in the real world. Although we call the variations random, there are different degrees of randomness, and the different distributions correspond to how the variations occur. Consequently, different distributions are used for different purposes.

Probability distributions are represented by probability density functions. Probability density functions show how likely a certain value is. The more likely the value, the larger the probability density function at that point. The total probability at all points should sum to 100%, so the area under a probability density function is equal to one.

Cumulative density functions give the probability of a selecting a number at or below that value. For example, if the cumulative density function value at 1.7 was equal to .75, then 75% of the time, selecting from that distribution would give a number less than 1.7. The value of a cumulative density function at a point is the area under the corresponding probability density curve to the left of that value. Since the total area under the probability density function curve is equal to one, cumulative density functions approach one as you move toward more positive values.

You do not need to know all these details to effectively model your situation. You just need to know which distribution best fits your data. The curve fitting capabilities of Stat::Fit make it easy to find the correct distribution for your data.

In addition, you can see what the standard distributions look like for your combination of input parameters.

SIMPROCESS User’s Manual 303

CHAPTER 12–Advanced Data Analysis

Standard Statistical IndicatorsThere are several statistical indicators that can tell a lot about the distribution of random values. If you are not familiar with these you should probably consult an introductory statistics textbook. Here we just remind you of their meanings and some of their implications. More definitions can be found in the “Statistical Tools Glossary,” beginning on page 385 at the end of this manual.

The mean is the most important characteristic of a data sample. If you are representing a time to complete some task or the number of arrivals in a certain time period, always try to get a good value for the mean (from actual data, if possible).

The mode is the most likely value in a set of data. Consider the following list of numbers:

2, 3, 3, 3, 9, 10

The mode for this set of data is 3, since it occurs most frequently. The mean for this set of data is 5. If a distribution is symmetric about the mean, and singly-peaked, then the mode and the mean will be equal. In this case, the distribution contains a couple of large values which shift the mean away from the mode.

As we will see later, the mode is an important parameter for specifying a triangular distribution.

The standard deviation is a simple measure of the spread in the data. It is calculated by finding the mean, summing the squares of all the differences between the mean and the data points, taking the square root of this value, and then dividing by the square root of the number of data points. Loosely, it is the average difference from the mean. You might wonder why the square and square root are taken, why not just sum all the differences? If you do that, they will sum to zero!

The standard deviation is a measure of how much spread there is in the data. If the standard deviation is large, there is a wide variation in the data. If it is small, the data are tightly clustered around the mean.

The standard deviation is a necessary piece of information for many standard distributions.

304 SIMPROCESS User’s Manual

An Introduction to Data Analysis and Modeling

The variance is the standard deviation squared.

A probability density function is a representation of a statistical distribution. The probability density function is large for likely values sampled from a distribution, and is small for unlikely values. The maximum value for the probability density function is equal to the mode for that distribution. The area under the probability density function curve within a certain range of values gives the probability of sampling from that distribution and getting a number within that range. Of course, the total area under the curve must be equal to one, since you must get some number from the distribution.

A confidence interval is the range of values you would expect a certain percentage of the population to fall into if the sample were drawn from a normal distribution. Plus or minus one standard deviation corresponds to about a 68% confidence interval; plus or minus two standard deviations corresponds to about a 95% confidence interval; and plus or minus three standard deviations corresponds to about a 99.7% confidence interval.

SIMPROCESS User’s Manual 305

CHAPTER 12–Advanced Data Analysis

Why Statistical Simulation Experiments?

Mean-Value AnalysisMean-value analysis is a simple, although often quite useful, approach to modeling. The basic philosophy is to model processes by their average output.

For example, suppose you have a station that can process five parts per hour, and on average four parts arrive every hour. Mean-value analysis tells you that the station should be able to handle the expected load.

However, in the real world you might find that some hours the station may process only three parts, and other hours it may process seven. Likewise, there may not be a perfectly steady flow of four parts into the station every hour. Sometimes there may be more and sometimes less.

This statistical nature of the real world will lead to a diminished throughput, for there will be times when the station is idle, and other times when it is backed up, disrupting the flow to and from it in the rest of the factory. This is the limitation of mean-value analysis, and the reason that simulation is necessary for accurate predictions.

The Importance of Experimental DataIt is very important to have experimental data as the basis of your model. This may seem like a paradox: If I am modeling something that does not exist, where will I get the experimental data?

This is not as big a problem as it sounds. The individual components of a similar existing system will probably be close enough to ones in the proposed system to be useful in your model. The data do not have to be exhaustive, any data is much better than no data.

306 SIMPROCESS User’s Manual

Why Statistical Simulation Experiments?

In fact, a good test of the model building process is to build a model of an existing system and check how closely the model and the system match up. This can often be a key to convincing others of the validity of the simulation modeling approach.

SIMPROCESS User’s Manual 307

CHAPTER 12–Advanced Data Analysis

SIMPROCESS Statistical DistributionsThe following table contains the statistical distributions available in SIMPROCESS. Other distributions can be created from these using the Define Distributions function.

308 SIMPROCESS User’s Manual

SIMPROCESS Statistical Distributions

Beta Distribution BET(shape1, shape2, minimum, maximum, stream)

Erlang Distribution ERL(mean, shape, stream)

Exponential Distribution EXP(mean, stream)

Gamma Distribution GAM(mean, shape, stream)

Geometric Distribution GEO(minimum, mean, stream)

Hyper Exponential Distribution HEX(mean1, mean2, probability of mean1, stream)

Hyperbolic Distribution HYP(position, shape, offset, stream)

Uniform Integer INT(minimum, maximum, stream)

Lognormal Distribution LOG(mean, standard deviation, stream)

Normal Distribution NOR(mean, standard deviation, stream)

Poisson Distribution POI(mean, stream)

Triangular Distribution TRI(minimum, mode, maximum)

Uniform Distribution UNI(minimum, maximum, stream)

Weibull Distribution WEI(shape, scale, stream)

SIMPROCESS User’s Manual 309

CHAPTER 12–Advanced Data Analysis

310 SIMPROCESS User’s Manual

CHAPTER 13

SIMPROCESS Database

SIMPROCESS Professional comes with a MS Access database (SimProcDB.mdb) designed to hold simulation results from simulation runs. The database comes with predefined queries, graphs (forms), and reports. Each can be modified to tailor the database for your output analysis. The procedures for connecting the database to SIMPROCESS using ODBC are explained in the Getting Started Manual.

SIMPROCESS User’s Manual 311

CHAPTER 13–SIMPROCESS Database

Commiting Results To The DatabaseTo commit simulation results to the database, select Commit to Database from the Report menu. The menu item will not be active until a simulation run is complete, or if stopped early, the option to save the data was selected. If the database is not found an error dialog will appear. If this occurs recheck your database connection through the ODBC control panel. Normally, the Commit To Database dialog will appear. You must enter a design name and scenario name. The design and scenario comments are optional. What constitutes a design will be discussed in the next section.

Once you have entered the information click on Commit. At this point SIMPROCESS verifys that the design name and scenario name you have are allowable. If so, the results are sent to the database. When finished, the status bar shows Commit Complete. Once a successful commit has been completed, the menu item Commit to Database is inactive until another successful run has been accomplished. This is to preclude commiting the same results more than once.

312 SIMPROCESS User’s Manual

System, Design, And Scenario

System, Design, And ScenarioThree tables in SimProcDB.mdb control the results you have placed in the database: System, Design, and Scenario. The System table is the highest level table and contains the model name. Therefore, the database is designed to allow you to hold results from more than one model. If a record is deleted from the System table, all records releated to that model are deleted from the database. The Design table allows you to hold data from different versions of the same model. A model design consists of the following:• Number of entities• Entity names• Number of resources• Resource names• Resoure costs• Number of activities, processes, and process alternatives• Names of activities, processes, and process alternatives• Activity/Process structure• Start and End date• Start and End time• Number of replications• Output time units.

If any of the above change, then a new design name is required. For instance, assume you have commited results to the database with a design name of Design 1. Following that you add a process alternative to your model and run the model again. If you attempt to use the same design name as before, SIMPROCESS will prompt you for a new design name because the number and names of process alternatives have changed.

SIMPROCESS User’s Manual 313

CHAPTER 13–SIMPROCESS Database

Note that you will not be prompted for a new design name if you simply run a different alternative that was already in the model. If you run another alternative you may change design names if you wish or simply use a different scenario name. When a design is deleted from the Design table, all records associated with that design are removed from the database. Therefore, if you would like to reuse a design name for the same model name (and there has been a design change), you must delete the design.

A scenario is used to track various runs of the same system (model) and design. For example, one run might have a certain resource level at 3 while another run has the same resource level at 4. Differentiating those runs in the database is done through the scenario name. The scenario comment field is a good place to document the important settings for that scenario. Again, if you delete a scenario, all records associated with that scenario will be deleted from the database.

The Manage Results form should be used to delete results for a Model (System), Design, or Scenario. DO NOT modify the tables directly. Using the Manage Results form ensures the tables do not become corrupted. This form can be run from the Forms tab in Access. Also, when using Launch Database Application from the Report menu, the Manage Results form launches automatically. If the form is blank, then there are no run results in the database.

314 SIMPROCESS User’s Manual

System, Design, And Scenario

IMPORTANT: It is good practice to regularly compact the database, particularly after deleting records. This can be done from the Tools menu of Access by choosing Database Utilities.

SIMPROCESS User’s Manual 315

CHAPTER 13–SIMPROCESS Database

Database Table RelationshipsIf you need to view all the tables and the relationships between them, select Relationships... from the Tools menu in Access.This is helpful in understanding how the queries were constructed. The Experiment, Model Setup, Design Setup, Scenario Setup, Parameter, and Process tables are used in the Experiment Manager. These tables are not used to store run results.

316 SIMPROCESS User’s Manual

Database Queries

Database QueriesThe predefined queries in the SIMPROCESS database are designed to offer the same information provided in the Standard Report. The queries can be used as-is or copied and modified. The queries are not restricted by system, design, or scenario. So if you run the Entity Cycle Time query all entity cycle times without restriction will be displayed. Copying a query and restricting its search is one example of tailoring a query for your analysis.

All of the queries were created in Access’ Design View rather than SQL. Show below is the Design View of the Entity Count query.

SIMPROCESS User’s Manual 317

CHAPTER 13–SIMPROCESS Database

Even though you cannot see the whole criteria, note that the StatType field from the Statistics Table is restricted by "Total entities generated" Or "Entities remaining in system" Or "Total entities disposed". These are the statistics types that make up Entity Count. Other fields could be restricted as well. For instance, you could restrict the SystemName field from the System table so only one model’s results would be available. In the example below we restrict the query to the demonstration model CallCtr by placing "CallCtr" in the Criteria row of the query under SystemName.

The queries that generate results across replications were developed using the queries that give results by replication. So if you restrict the Entity Count query to CallCtr, then the Entity Count Across Replications query will also be restricted to CallCtr. Looking at the Design View for Entity Count Across Replications the only data source for the query is the Entity Count query.

The average, standard deviation, minimum, and maximum were determined by selecting the appropriate statistic in the Total row for the field from the Entity Count query that was to be summarized across replications. This was accomplished by not including the Replication field from the Entity Count query.

318 SIMPROCESS User’s Manual

Forms (Graphs) And Reports

Forms (Graphs) And ReportsThe Forms tab contains the predefined graphs plus the Manage Results and Experiment Setup forms. These graphs are based on the predefined queries. Therefore, the Entity Count Across Replications form (or graph) is based on the Entity Count Across Replications query. In order to restrict the graph to only certain records you would go to the original query (in this case Entity Count since Entity Count Across Replications is based on it) and restrict it.

The Reports tab contains the predefined reports. Like the graphs, the reports are based on the predefined queries. Therefore, the Entity

SIMPROCESS User’s Manual 319

CHAPTER 13–SIMPROCESS Database

Count report is based on the Entity Count query. In order to restrict the report to only certain records you would go to the original query (in this case Entity Count) and restrict it.

320 SIMPROCESS User’s Manual

Launch Database Application

Launch Database ApplicationThis menu item on the Report menu brings up a dialog that allows you to select the database and database application you wish to use. SimProcDB.mdb and MS Access are the default. (The remaining portion of these instructions assume MS Access is the database application.) If the database field is blank, then Access will start and prompt you to open a database. If only a database is in the field (with no path), SIMPROCESS assumes the database is in C:\SIMPROCESS\Spuser. If this is not the case, Access will start and prompt for a database. When the database desired is not in Spuser, enter the full path and Access will open with that database.

If SimProcDB.mdb is entered in the database name field, the Manage Results form will launch automatically when the database opens. If other actions are desired, simply close the form and continue. Always use the Manage Results form to delete records from SimProcDB. If you edit the tables directly, they could become corrupted and you would lose the run results you have placed in the database. The Manage Results form can be launched from the Forms tab. Copies of SimProcDB.mdb may be used for your results. However, the Manage Results form will not launch automatically.

SIMPROCESS User’s Manual 321

CHAPTER 13–SIMPROCESS Database

322 SIMPROCESS User’s Manual

CHAPTER 14

Graphics Editor Tool

SIMDRAW is an interactive menu based program for creating and editing SIMGRAPHICS II objects. These objects are used in SIMPROCESS for creating the layout and animation of your model. These objects are saved to and loaded from SIMGRAPHICS II ".sg2" files that are accessed by SIMPROCESS.

Icons, or graphic images can are built by drawing lines, circles, polygons, arcs, sectors, bitmaps, and text. These primitives can be grouped together to form more complex images containing parts that can be manipulated independently by the application program. You can also edit the existing images (icons) supplied with SIMPROCESS.

SIMPROCESS User’s Manual 323

CHAPTER 14–Graphics Editor Tool

Running SIMDRAW SIMDRAW is started from the Tools menu bar of SIMPROCESS. Once started, a window containing a Palette and tool bar is dis-played. The window will contain a listing in the currently loaded SIMGRAPHICS II library. The Palette on the left is used to add new objects to the library.

Graphic Libraries in SIMPROCESSThere are two set of graphics libraries (*.SG2) distributed with SIMPROCESS. The libraries in the SG2LIBS sub-directory under the User directory are for you to store the images (icons) that you create with SIMDRAW. By default, you will find these in the C:\SIMPROCESS\SPUSER\SG2LIBS directory. The following is a listing of the User graphics libraries:

Library ContentsUsr.sg2 BackgroundUsrnode.sg2 Activities

324 SIMPROCESS User’s Manual

Running SIMDRAW

Usrproc.sg2 ProcessesUsrtokn.sg2 Entities

Those in the SG2LIBS sub-directory under the System directory (by default C:\SIMPROCESS\SPSYSTEM\SG2LIBS) are read-only and should never be changed. You can open these libraries, make changes to an image and then save the new image to the appropriate library in the User directory. The system libraries contain the images (icons) supplied with SIMPROCESS. The fol-lowing is a listing of the system graphics libraries that contain the icons you can copy:

Library ContentsUser.sg2 BackgroundSpnode.sg2 ActivitiesSpproc.sg2 ProcessesSimtoken.sg2 EntitiesThe other SIMGRAPHICS II libraries in this directory are system libraries that you cannot edit.

Loading and Saving SIMGRAPHICS II Files.

The File/Open... menu option will load an existing SIMGRAPHICS II library file and show its objects in the list window. By default, it will look to the SG2LIBS sub-directory under your user directory (by default C:\SPUSER\SG2LIBS). Use the File/Save or File/Save As menu option to save all objects shown in the list window, (including objects being edited).

Editing an Existing Object

To edit one of these images, load the appropriate library. Click on the Image icon to get a listing of the images in that library. Select the name of the image you want to edit in the listing, and then use the Edit/Properties menu option or the Properties tool bar option to open it. At this time, a new window containing the Image Editor will appear showing its graphical representation. After moving, resiz-ing, or changing attributes of the object and its sub-components, select the File/Save or File/Save As menu option to write this object to its SIMGRAPHICS II library file. To end the editing of this object, close its editor's window using the "go away" button in the

SIMPROCESS User’s Manual 325

CHAPTER 14–Graphics Editor Tool

top left corner of the window's header bar.

Adding an Image to the Library

Images can be added to this library file by clicking on one of the "create" buttons on the left palette, or by using the File/InsertCreate menu option. Creating an object will automatically invoke the editor for that object.

Removing an Object from the Library

To remove an unwanted object from the current library, select the object's name in the listing, and then use the Edit/Clear menu option. The library must be saved using File/Save before this change is per-manent.

Making a Duplicate of an Object

Any graphical object in the library can be duplicated by selecting its name in the main list and then using the Edit/Duplicate menu option. The library must be saved using File/Save before this change is permanent.

Changing the Name of an Object

To change the name of an object shown in the main list, select it and use the Edit/Properties menu option to bring up its editor. Use the Edit/Properties menu option of this editor to obtain a dialog box showing the object's attributes. Change the Library Name text field to the new name, and then save the object with the File/Save menu option.

Adding an Object from Another Library

If you want to add object(s) contained in a different SIMGRAPHICS II file, use the File/Merge... menu option. Once a file is selected, a list box containing the names of all objects in this source library will be displayed. Choose the objects you wish to copy to your library. (The Shift and Ctrl keys can be used in conjunction with the mouse to select multiple objects.)

326 SIMPROCESS User’s Manual

Using the Image Editor

Using the Image Editor The Image Editor is used to create and edit primitives such as lines, polygons, circular objects, and bitmaps. Primitives can be grouped hierarchically into images. The editor window contains three pal-ettes: Mode, Style, and Color. The Mode palette on the left side of the window is used for adding primitives.

Mode, Style, and Color Palettes The Style palette contains the set of dash styles, hatch styles, line widths, and text fonts that can be applied to the primitives. The Color palette contains 64 colors that can also be applied to the prim-itives. When a primitive is selected, the Style palette and Color pal-ettes will be updated to reflect the style and color of that primitive. At this time, Style and Color palette changes will also be applied to the selected primitive.

The Mode palette is shown on the left hand side of the Image Editor window. Use it to add primitives to your drawing.

SIMPROCESS User’s Manual 327

CHAPTER 14–Graphics Editor Tool

Selecting, Moving, and Resizing Shapes are selected by clicking the mouse button over the desired shape. (For example, polylines must be selected by clicking on the line itself, NOT in the line's bounding box.) Multiple shapes are selected by holding down the Shift key and clicking on several shapes. Multiple shapes may also be selected by clicking in the background of the window and dragging the mouse over the shapes you want to select.

A group of shapes (or images) is selected by clicking on one of the objects in the group. Subsequent clicks over the group will select shapes within that group. Primitives inside a group can be selected directly by holding down the Ctrl key and clicking on the shape. Using the Ctrl key, subsequent clicks will select the groups contain-ing the currently selected shape.

Selected shapes are marked by a bordering green or cyan box. Sides and corners of this box contain eight small square resize handles. Resizing is performed by clicking down and dragging a resize han-dle.

To move a shape, click down on it and drag the shape to move it to the desired position. Be careful not to click on the resize handles.

Using the Clipboard (Cut, Copy, Paste Commands)

The Image Editor supports the standard Cut, Copy, and Paste opera-tions found under the Edit menu. The Cut option command deletes selected shapes and places them in the clipboard. The deleted item remains on the clipboard until the next time a Cut or Copy is per-formed. You can use the Paste option to paste as many copies as desired from the clipboard into the image. Shapes can be deleted without changing the clipboard by using the Delete option.

The clipboard is shared among all active Image Editor sessions. You

328 SIMPROCESS User’s Manual

Using the Image Editor

can copy graphics from one image into another by activating the source edit window, using the Copy command, and then activating the destination editor and using the Paste command.

Creating Primitives The Image Editor supports creating and editing seven different prim-itive types. The primitives are polygons, polylines, circles, arcs, sectors, text, and bitmaps.

Polylines

Polylines are created by clicking either the freehand or polyline buttons on the Mode palette. To create a polyline, select the polyline button on the Mode palette. Then point to where you want to start the line and drag to draw a line segment. Continue pointing and clicking until all but the last line segment has been defined. Double click to create the last vertex and return to Select mode.

To create a freehand polyline press the freehand line button on the Mode palette. Drag the mouse around the canvas area to draw the line. Releasing the mouse button will return you to Select mode.

Use the Style palette to define dash style and line width. There are eight dash styles and six line widths to choose from.

Another attribute of the polyline is rounding. Corners defined by intersecting line segments can be given a rounded edge by selecting the polyline, and using the Edit/Properties... menu option. The Round Corners By value box contains the length of segment adja-cent to each vertex to be replaced by a rounded corner. This value is specified with respect to the real world coordinate space or dimen-sion of the editor (the default dimension is [0, 0, 32767, 32767]). A value of 1000.0 is reasonable for rounding corners.

SIMPROCESS User’s Manual 329

CHAPTER 14–Graphics Editor Tool

Polygons

Polygons are created by clicking either the freehand, polygon, or rectangle buttons on the Mode palette. To create a polygon, select the Polygon button on the Mode palette. Point and click in the win-dow to define vertices. Double click to create the last vertex and return to Select mode.

To create a freehand polygon press the Freehand fill button on the Mode palette. Drag the mouse around the canvas area to draw the shape. Releasing the mouse button will return to Select mode.

To create a simple rectangle press the Rectangle button on the Mode palette. Point to where you want the lower left-hand corner of the rectangle to start, and drag the mouse to the desired top-right cor-ner. Release the mouse button to return to Select mode.

Use the Style palette to define a hatch pattern. There are eight pat-terns to choose from.

Circles

Circles are added by pressing the Circle button on the Mode palette. In Circle mode, point to where you want the center of the circle to go and drag the mouse to define the radius. Release the mouse but-ton to draw the circle and return to the Select mode.

Use the Style palette to give the circle a hatch pattern. There are eight patterns to choose from.

330 SIMPROCESS User’s Manual

Using the Image Editor

Sectors

A Sector is a filled semicircular shape similar to a pie slice. Sectors are composed of a center point, a starting point and an ending point, and are drawn counter clock-wise from the starting point to the end-ing point. To draw a sector, first press the Sector button on the Mode palette. Point to where you want the center point of the sector to go, and drag the mouse. Release the mouse over where you want the starting point of the arc to go. Drag the mouse to where you want the sector to end and release to return to Select mode.

Use the Style palette to give the sector a hatch pattern. There are eight patterns to choose from.

Arcs

An Arc is a curved line contained on the circumference of a circle. Arcs are composed by a center point, a starting point and an ending point, and are drawn counter clock-wise from the starting point to the ending point. To draw an arc, first press the Arc button on the Mode palette. Point to where you want the center point of the arc to go, and drag the mouse. Release the mouse over where you want the starting point of the arc to go. Drag the mouse to where you want the arc to end and release to return to Select mode.

Use the Style palette to define dash style and line width. There are eight dash styles and six line widths to choose from.

Text

Single line text primitives can be created and added to your image.

SIMPROCESS User’s Manual 331

CHAPTER 14–Graphics Editor Tool

To create a text primitive, press the Text button on the Mode palette. Point to where you want the center of the text to go and click the mouse button. Use the Edit/Properties... menu option to define the text string to be displayed.

There are two different types of text, vector text and system text. Vector text fonts are fully scalable in any dimension and are porta-ble between MS Windows and X Windows platforms. A vector text font can be assigned to a primitive by pressing any of the eight Style palette buttons showing Ab.

System text fonts are "built -in" to the tool kit on which your server is running. Text defined using a system font is non-scalable and can only be resized by changing the font. A system font is defined by font name, point size, and whether or not its uses italic and/or bold-face calligraphy. To assign a system font to a text primitive select the primitive, and then press the Dialog Box button on the lower right-hand corner of the Style palette. The resulting Font box will display all fonts, point sizes, and calligraphy styles loaded on your server. The font you select will be applied to the selected text prim-itive. This same font can now be applied to other primitives using the ST button at the lower-left corner of the Style palette.

Text alignment with respect to the image can also be defined. For example, if you wanted a text primitive defined with a system font to remain centered as an image is scaled, its alignment should be centered horizontally and vertically using the Edit/Properties... menu option.

Bitmaps

Bitmaps (or "snap shots") are not created directly by the Image Editor, but can be created using another drawing tool and can then be imported. On MS Windows systems, "Windows Bitmap" files with the ".bmp" extension can be imported and added to your image. On X Windows systems, "X Windows dump" file formats ending in ".xwd" can be imported.

332 SIMPROCESS User’s Manual

Using the Image Editor

To add a raster file, import your image using the Edit/Import... menu option. Select a ".bmp" or ".xwd" file from the dialog box and press the OK button to import the bitmap.

Once in the Image Editor, bitmaps can be resizeable or non-resize-able. To change the scalability, select the bitmap and use the Edit/Properties... menu option. (Remember that resizeable bitmaps may take longer to render the first time, and can loose meaningful picto-rial information if made smaller.)

Alignment can be applied to bitmaps as well as text primitives. For example, if you wanted a non-scalable bitmap to remain centered as an image is scaled, its alignment should be centered horizontally and vertically from the Properties dialog.

Creating Images

An image represents a grouping of primitives and/or other images. Images can contain other images forming a hierarchy. To create an image, select the shapes to be grouped using the Shift key, and then select the Layout/Group menu option. The resulting group will be shown bounded by the green selection box. Use the Layout/Ungroup menu option to destroy an image.

An image is selected by clicking on one of the primitives within it. Repeated selections of an image will select the shapes within it. You can select primitives directly by clicking on them while hold-ing down the Ctrl key.

Shapes can be removed from an image by selecting the shape and using the Layout/Remove from Group menu option. You can also add shapes to an existing image by selecting first the shapes, then an image, and then using the Layout/Add to Group menu option.

SIMPROCESS User’s Manual 333

CHAPTER 14–Graphics Editor Tool

Editing the Root Image

The editor's window shows all objects contained by the image being edited or the root image. To change properties of this image (such as its name), de-select all shapes and use the Edit/Properties menu option.

To resize the root image, use Edit/Select All to select all of its shapes, and then use Layout/Group to make a group. The image can be resized by dragging the square resize handles on the green selection box. When the root image is appropriately sized, use Layout/Ungroup to eliminate the grouping.

To reset the center point of the root image, deselect all shapes by clicking in the background, and use the Edit/Recenter menu option. Select a new center point for the image and then select the OK but-ton on the Recenter dialog.

Editing Points on a Primitive

The vertices defining a primitive can be moved, added and deleted using the Image Editor. Clicking on a selected primitive will enable point editing for that primitive. A primitive in point edit contains a green skeleton which connects its vertices. Representing each ver-tex point is a hollow green square or point handle. The currently selected point is shown by a blue point handle.

To move a point, select and drag the appropriate point handle. To delete a point, select its point handle and use the Edit/Delete menu option (or press the Delete key). To add a new point to the primitive, click on the green skeleton and drag the mouse. When the mouse button is released, a new point is inserted between the indicated vertices.

To leave Point Edit mode, click on the background or another shape.

334 SIMPROCESS User’s Manual

Using the Image Editor

Defining Stacking Order or Priority

You can specify how shapes are stacked when they overlap and can specify their stacking order. To move shapes in front of or behind other shapes, use the Bring to Front or Send to Back options from the Layout menu.

Stacking order is with respect only to other shapes in the same group or image. In other words, the Bring to Front menu option will bring the selected shape to the front of all other shapes in that group, but not necessarily to the front of all shapes in the window.

Defining the Center Point of a Shape

The center point, of any image or primitive can be changed by selecting the shape, and then using the Edit/Recenter menu option. A set of green cross-hairs will appear showing the current center point. Point to where you want the center point of the object to be, and click. To leave the Recenter mode, press either the OK or Cancel buttons on the dialog box.

You can reset the center point of the entire drawing (root image) by de-selecting all shapes and then using the Edit/Recenter menu option.

Using the Flip and Rotate Tools

Any selected shape can be rotated about its center point by any amount. To do this, select the shape(s) and then use the Edit/Rotation/Clockwise or the Edit/Rotation/Counter-Clockwise menu option. If you want to set the angle by which an object is rotated,

SIMPROCESS User’s Manual 335

CHAPTER 14–Graphics Editor Tool

use to Edit/Rotation/Set Angle menu option.

To flip an object about its x-axis use the Edit/Flip/Horizontal menu option. To flip an object about the y-axis use Edit/Flip/Vertical menu option. Remember that the intersection of the x-axis and y-axis of a shape is its center point (defined using the Edit/Recenter menu option). Before flipping or rotating a shape, first make sure that its center point is defined appropriately.

Align and Distribute

Multiple shapes can be aligned and distributed, either vertically or horizontally to the primary selection (shown enclosed by green selection handles). They can be aligned vertically with respect to either their left edge, right edge or center. Shapes can be aligned horizontally with respect to their top edge, bottom edge, or center. To align, first select multiple objects using the Shift key, and then use the Layout/Align menu option. Select an alignment scheme from the resulting dialog box.

The Layout/Distribute menu option allows you to distribute three or more shapes in relation to each other. Shapes can be distributed horizontally so that the same space exists between left and right edges of adjacent shapes. Distributing vertically will reposition the shapes so that the same space exists between bottom and top edges of adjacent shapes. Shapes can be distributed uniformly along the circumference of a circle.

Using Grid Lines

A grid can be used to perform precise positioning and sizing of shapes by breaking the editor window up into divisions. You can show (or hide) grid lines by toggling the View/Grid menu option.

You can change the color of the grid by selecting a color from the Color palette and then using the View/Grid Color menu option. The granularity of the grid can be adjusted using the View/Grid Spacing menu option. Granularity can be Fine, Medium, or Coarse. The dis-

336 SIMPROCESS User’s Manual

Using the Image Editor

tance between grid lines for Fine graduation is 500.0, for Medium is 1500.0, and for Coarse is 4500.0.

By toggling the View/Snap menu option, you can restrain position-ing and resizing of shapes to the intersections of the grid.

If the Snap mode is active, the View/Snap From menu option allows you to specify which corner of a shape's bounding box will be aligned to the grid intersections during repositioning. If View/Snap from/Center is selected, a repositioned shape's center point will be glued to the grid intersections.

Changing Views (Panning and Zooming)

If working on a highly detailed portion of the image, you may want to magnify a portion of the window. To zoom in to some area of the window, first select the View/Zoom In menu option. Then, drag out a rectangle with the mouse over the area of detail. When the mouse button is released, the area inside the rectangle will be expanded to encompass the entire window. To zoom back out, use the View/Zoom Out menu option.

When zoomed in, you can pan to other areas of the window using the horizontal and vertical scroll bars.

You can return to the default view by using the View/View [1:1] or Fit to window menu options. Unless the window is square, the top or bottom portion of the view may not be visible. To see the entire coordinate space, use the View/Fit in Window or View [1:1] menu option. This viewing mode will leave dead space off to the right of the window, but guarantee the entire coordinate space will be seen.

Changing the Layout Size and Color To change the editor window's background color, select the desired

SIMPROCESS User’s Manual 337

CHAPTER 14–Graphics Editor Tool

color from the Color palette and then use the Layout/Layout Color menu option.

If you want to increase the size of the editing area beyond what is defined by the boundaries of the world coordinate system, use the Layout/Layout Size menu option. A dialog will be displayed allow-ing you to increase the number of "screens" thereby adding space to the right and bottom sides of the editing area. This new space can be "scrolled to" using the right and bottom scroll bars.

338 SIMPROCESS User’s Manual

CHAPTER 15

Experiment Manager

The Experiment Manager allows you to set up model runs that SIMPROCESS will run automatically, and after each run, place the results in the database. This is accomplished by defining experiments in the database (SimProcDB.mdb). SIMPROCESS reads the information from the database, loads the appropriate model, runs the model, then commits the results to the database.

The four items on the Experiment menu control the operation of the Experiment Manager.

• Define Experiments• Run All Experiments• Run Selected Experiments• Run Specific Experiment

SIMPROCESS User’s Manual 339

CHAPTER 15–Experiment Manager

Defining Experiments Selecting Define Experiments brings up a dialog that allows you to select the database and database application to use. Sim-ProcDB.mdb and MS Access are the default. (The remaining por-tions of these instructions assume MS Access is the database application.) When defining experiments you must use Sim-ProcDB.mdb or a copy of SimProcDB.mdb. If the database name you enter is in C:\SIMPROCESS\Spuser, then no path is required. If this is not the case, you must enter the full path for Access to start and open the database. If you desire to open Access from SIMPROCESS with a database that is not SimProcDB.mdb or is not a copy of SimProcDB.mdb, use Launch Database Application under the Report menu.

If SimProcDB.mdb is entered in the database name field, the Experiment Setup form will launch automatically when the database opens. The Experiment Setup form will not launch automatically if a copy of SimProcDB is used. However, the form is located on the Forms tab and can be launched from there once the database has been opened.

Experiment Manager Database TablesSix database tables are used to define experiments.

• Experiment• Model Setup• Design Setup• Scenario Setup

340 SIMPROCESS User’s Manual

Defining Experiments

• Parameter• Process

The relationship diagram shows the relationships between the database tables, and the table below gives a description of the fields in each of the database tables. An experiment can have multiple models, a model can have multiple designs, a design can have mul-tiple scenarios and a scenario can (optionally) have multiple Model Parameters and Process Alternatives.

Table Field Description RequiredExperiment ExperimentID ID number for each record Automatic

ExperimentName User entered Experiment name YesSelected Selects Experiment for running (default is selected) YesDisplayErrorAlerts Option to display error alert dialogs (default is No) Yes

Model Setup ModelSetupID ID number for each record AutomaticExperimentID ID of Experiment this model is associated with AutomaticModelName Name of Model to run (with full path) Yes

Design Setup DesignSetupID ID number for each record AutomaticModelSetupID ID of Model this Design is associated with AutomaticDesign Name of Design YesDesignComment Comment concerning Design No

Scenario Setup ScenarioSetupID ID number for each record AutomaticDesignSetupID ID of Design this Scenario is associated with AutomaticScenario Name of Scenario YesScenarioComment Comment concerning Scenario No

Parameter ParameterID ID number for each record AutomaticScenarioSetupID ID of Scenario this Parameter is associated with AutomaticAttributeType Entity, Entity.Type, Activity, Resource, Model NoAttributeName Name of Attribute NoAttributeValue Value of Attribute for Model run No

Process ProcessAlternativeID ID number for each record AutomaticScenarioSetupID ID of Scenario this Parameter is associated with AutomaticProcess Process name for Alternative NoAlternative Alternative of Process to run No

SIMPROCESS User’s Manual 341

CHAPTER 15–Experiment Manager

The Parameter and Process tables are optional. The Parameter table allows you to change values for attributes you have declared to be Model Parameters. The Process table allows you to change Process Alternatives for a scenario.

Experiment Setup Form

The Experiment Setup form is used to enter experiments into and delete experiments from the Experiment Manager. The six database tables should not be edited directly. The form has the Experiment table fields listed on top with five tabs containing forms for each of the other tables.

Entering Experiment Information

There are three fields that require entries for each experiment: Experiment Name, Selected, and Display Error Alerts. This shows an example experiment called Purchasing.

342 SIMPROCESS User’s Manual

Defining Experiments

Once you’ve given your experiment a name, then you check or uncheck Selected. The default is checked. This allows you the option of having experiments defined that you may not wish to run. Display Error Alerts defaults to No. If No is chosen, then SIMPRO-CESS will run the experiment without stopping to notify of errors. This means SIMPROCESS will run every combination of model, design, and scenario that it can. Those with errors will be skipped over. If Yes is entered, then when SIMPROCESS encounters an error when running the experiment, an error dialog will display that will stop the experiment until the error has been acknowledged by the user.

Entering Model Information

The Experiment Setup form has five tabs. The first is Model Setup. This tab has the sub form to enter and delete models from experiments.

The complete path and model name with extension must be entered. In this example one model is entered for the experiment Purchasing. Although multiple models can be entered before

SIMPROCESS User’s Manual 343

CHAPTER 15–Experiment Manager

entering design and scenario information, it is recommended that you enter all the design and scenario information (along with parameter and process information if needed) before entering the next model.

Entering Design Information

The Design Setup tab contains the form for entering information into and deleting information from the Design Setup table. One design called “5 Reps” is entered for the model “C:\SIMPRO-CESS\Spuser\Purchasing.spm”.

At least one design name is required on this sub form. The Design Comment and Reps fields are optional. If no value is entered for Reps, the last saved model value will be used for each scenario in this design unless there was a previous design for the same model. As with the Model Parameters and Process Alternatives, if there was a previous design for the same model with a different number of replications, the previous design’s number of replications will be the number for the current design if Reps is left blank.

344 SIMPROCESS User’s Manual

Defining Experiments

Entering Scenario Information

The Scenario Setup tab contains the sub form for entering scenar-ios. At least one scenario must be entered for each design. In this example there are five scenarios for the design “5 Reps”.

The Scenario Comment field is optional. At this point no more information is required to run a scenario. As stated earlier, entering Model Parameters and Process Alternatives is optional. Scenarios may have no Model Parameters or Process Alternatives, may have just Model Parameters or just Process Alternatives, or may have both.

Entering Model Parameter Information

The next tab is Parameter Setup. This sub form enters information into and deletes information from the Parameter table. You must declare the type of the attribute, the name of the attribute, and the value for the attribute. The Attribute Type field corresponds to the types of attributes that can be defined in SIMPROCESS.

• Entity• Entity Type• Resource• Activity• Model

SIMPROCESS User’s Manual 345

CHAPTER 15–Experiment Manager

The attribute name is case sensitive, so it must match exactly the attribute name in your SIMPROCESS model. Also the value must be of the appropriate type for the attribute. For example, if the attribute is an integer attribute, then the value entered must of type integer. In this example there are three Model attributes to be changed for a scenario.

NOTE

Entering Process Alternative Information

The final tab is the Process Setup tab. The sub form on this tab enters information into and deletes information from the Process table. You enter the process name and the alternative that you wish to be active for the scenario. Do not enter the process hierarchy, only the process name. Thus, if you have duplicate process names in various parts of your model, this will cause problems. SIMPROCESS will stop searching for the process entered with the first process in the model that matches. Again, process names and alternative names are case sensitive. Process names and alternative

If no Model Parameter information is entered for a scenario, then the model will run with the last saved values for the Model Parameters. If a parameter has been changed for a scenario, and the next scenario uses the same model (that is, a new model is not loaded), then the Model Parameter will have the same value as the previous scenario. It will not reset to its default value.

346 SIMPROCESS User’s Manual

Defining Experiments

names entered in the Experiment Manger must match those in the model exactly.

In this example the Centralized, Functional alternative for the Purchasing process will be active for the current scenario.

NOTE

If no process/alternative information is entered for a scenario, then the model will run with the last saved active alternative for each process. If an alternative has been changed for a scenario, and the next scenario uses the same model (that is, a new model is not loaded), then the active alternative for a process will be the same as the previous scenario unless a different alternative is specified in the Experiment Manager.

SIMPROCESS User’s Manual 347

CHAPTER 15–Experiment Manager

Running Experiments Once the experiments have been defined using the Experiment Setup form, you ready to run your experiments. We will discuss starting experiments, the operation of experiments, how to interact with experiments, and how to generate standard reports from experiments.

Starting ExperimentsThere are three options for running your experiments.

• Run All Experiments• Run Selected Experiments• Run Specific Experiment

Run All Experiments

The menu item Run All Experiments causes SIMPROCESS to attempt to run every experiment defined. This option ignores the Selected field in the Experiment table.

Run Selected Experiments

When this menu item is selected, SIMPROCESS attempts to run the experiments in which the Selected field is checked.

Run Specific Experiment

This menu item allows you to specify one experiment to run. When selected, a dialog appears that allows you to enter an experiment name.

The experiment name’s spelling must match the spelling of the name in the database. However, since MS Access is not case sensitive, if

348 SIMPROCESS User’s Manual

Running Experiments

“purchasing” was entered, MS Access would match that entry with the “Purchasing” experiment in the database. If no match occurs, an error message appears stating the experiment could not be found in the database.

Experiment OperationThe Experiment Manager operates as follows when running experiments:

Once you choose to begin an experiment, SIMPROCESS begins a sequence of steps. Each step occurs if the previous completes successfully. The steps to running experiments are

1. Contact the database.2. Prompt to save current work if necessary.3. Enter a loop with sub loops.

Query Experiment table.Query Model Setup table.

Query Design Setup table.Query Scenario Setup table.Query Parameter table.Query Process table.Load Model.Verify Design.Run Model.Commit results to database. End loop.

End loop. End loop.

End loop.4. Display status message on success of experiments.

Experiment Trace

During experiment execution, the Experiment Manager displays a

SIMPROCESS User’s Manual 349

CHAPTER 15–Experiment Manager

trace showing the steps that have been completed and the current step. The trace includes the date, time, and a message. The trace is displayed using the SIMPROCESS Messages window.

It is important to examine the Experiment Manager trace, since it will give the complete status of your experiments. The trace can be saved by selecting the Save button. The above example shows you the experiment, alert dialog status (see below), model, design, and scenario. Also, it shows the Process Alternative that was active and the values of the Model Parameters for the scenario. Note that the Process Alternative message appears before the “running scenario” message, and the Model Parameter updates are shown after the “running scenario” message. This is because Process Alternatives must be set before the run begins, and Model Parameters are set when the run begins.

Experiment Errors

As explained in the instructions for defining experiments, when the Display Error Alerts field is set to No, interactive error messages are suppressed. However, error messages will appear in the Experiment Manager trace. This allows you to know which experiments completed successfully and which encountered errors. Especially important are the messages that show errors with your Process Alternatives and Model Parameters.

350 SIMPROCESS User’s Manual

Running Experiments

When the Display Error Alerts field is set to Yes, error dialogs will appear that pause the Experiment until you acknowledge the error.

Also, after the error displays, if there are more experiments to be run a dialog appears with the option to stop all experiment runs.

SIMPROCESS User’s Manual 351

CHAPTER 15–Experiment Manager

If you want to run experiments over night, we recommend setting the Display Error Alerts field to No for every experiment you wish to run. That way SIMPROCESS will run every combination of Experiment, Model, Design, and Scenario that it can. Otherwise, if an error occurs, processing stops until you acknowledge the error.

Interacting With Experiments

When the Experiment Manager starts a model run, you have the same ability to interact with the model as you do when starting a model run yourself. This means you can turn animation on or off, change the animation settings, descend into processes, change duration values for delays, etc.

NOTE

Experiments can be stopped early by stopping a model run. An experiment cannot be stopped while querying the database, loading a model, or committing results to the database. If the Display Error Alerts field is set to Yes, you will have the option to stop completely. Otherwise you must stop every run to stop all experiment, model, design, and scenario combinations.

When the Experiment Manager loads a model, it will run with the last saved settings for animation. Therefore, if you do not want to have to turn the animation off after the experiment has started, make sure the model has been saved with animation disabled.

352 SIMPROCESS User’s Manual

Running Experiments

Generating Standard Reports From Experiments

The Experiment Manager automatically commits your run results to the database. If you would also like the ASCII version of the Standard Report, go to Define Global Statistics Collection on the Report menu. Select Generate Standard Report after batch runs. This will create a file in your model directory that will contain the report for every replication, the sum of the replications, and the average of the replications. The Standard Report files are named Std.txt, Std1.txt, and so on.

SIMPROCESS User’s Manual 353

CHAPTER 15–Experiment Manager

354 SIMPROCESS User’s Manual

Appendices

SIMPROCESS User’s Manual 355

356 SIMPROCESS User’s Manual

APPENDIX A

Activity Summary Table

Required Parameters Non-standard Options

Assemble Receives 2 or more entities and assembles them into a single entity for release.

Component EntityAssembled Entity

ResourcesDelayBatch Components

Assign Assigns values to entity attributes.

Entity Attributes ResourcesDelaySet Entity Priority

Batch Stores entities until a condi-tion is met, then releases them as one, while retaining their individual identity.

Quantity to BatchMin Batch SizeMax Hold TimeBatch Entity Type

ResourcesDelay

Branch Routes entities to different paths in the model network.

Branch Type ResourcesDelay

Copy Copies entities. Number of Entities ResourcesDelay

SIMPROCESS User’s Manual 357

Appendix A - SIMPROCESS Activity Summary

Delay General-purpose activity. Hours of Delay Time Resources

Dispose Disposes of entities. Maximum entity Count

Free Resource

Releases resources obtained by Get Resource activities.

Release actions Release all allocated resources

Gate Accumulates entities until a condition is met, then releases a specified number of them.

Threshold Release ON/OFFThreshold Release Quantity (if Threshold Release ON)Trigger Release Quantity (if Trigger Release on)

ResourcesDelay

Generate Generates entities. Entity typeQuantityInterval

Start and End dates)Schedule TypeSchedule Items

Get Resource

Obtains resources to be held during several activities.

ResourcesTag attached to allocation

Join Reunites entities divided at a Split activity.

Family Name Batch family membersResourcesDelay

Merge Merges entities and routes them in a single stream.

Replenish Resource

Adds units to consumable resources.

Replenish actions (Resource and Units)

Split Divides one entity into sev-eral to model the division of processing among several activities.

Family name Copy PriorityResourcesDelay

Synchronize Coordinates the release of various entities.

Number of Pads ResourcesDelay

Required Parameters Non-standard Options

358 SIMPROCESS User’s Manual

Appendix A - SIMPROCESS Activity Summary

Transform Transforms arriving entities from one type to another, and releases one or more of the new type.

Number of Output EntitiesOutput Entity type

Copy AttributesResourceDelay

Unbatch Separates a batched entity into its constituent parts.

ResourceDelay

Required Parameters Non-standard Options

SIMPROCESS User’s Manual 359

Appendix A - SIMPROCESS Activity Summary

360 SIMPROCESS User’s Manual

APPENDIX B

SIMPROCESS File Structure

The SIMPROCESS installation program creates a directory under the system Root Directory. This directory is called SIMPROCESS. Under the SIMPROCESS directory are two subdirectories. One is the SIMPROCESS System Directory, by default it is named as SPSYSTEM, and the other is the User Working Directory, named SPUSER. This appendix briefly describes the structures and contents of these two directories. Here is the basic directory structure:

SIMPROCESS SPSYSTEM SG2LIBS

OBJLIBS SIMDRAW

TEMPLATESHELPWIN32_LICENSEDRIVERS

SPUSER DEFAULTDEMOSOBJLIBSSG2LIBS

SIMPROCESS User’s Manual 361

Appendix B-SIMPROCESS File Structure

[ModelName]DATA PS

Under the SPSYSTEM directory, there are:

basic.edi ( READ ONLY; image editor configuration file )caci32-6.dll ( READ ONLY; SIMPROCESS dynamic link library )caci32.dll ( READ ONLY; SIMPROCESS dynamic link library )cacilm32.dll ( READ ONLY; SIMPROCESS dynamic link library )cacilmd.dll ( READ ONLY; SIMPROCESS dynamic link library )cacia-6.dll ( READ ONLY; SIMPROCESS dynamic link library )caciu-6.dll ( READ ONLY; SIMPROCESS dynamic link library )caciuser.dll ( READ ONLY; SIMPROCESS dynamic link library )cfg.edi ( READ ONLY; experiment manager tool configuration file )control.edi ( READ ONLY; experiment manager tool configuration file )data.edi ( READ ONLY; data analysis tool editor configuration file )domain.edi ( READ ONLY; domain editor configuration file )domain.txt ( READ ONLY; SIMPROCESS specific domain definition )editor.dat ( READ ONLY; default editor configuration and preferences )elmid32.dll ( READ ONLY; SIMPROCESS dynamic link library )getstart.pdf ( READ ONLY; on-line documentation file )mspole.dll ( READ ONLY; SIMPROCESS dynamic link library )mulstats.edi ( READ ONLY; statistics editor configuration file )readme.txt ( SIMPROCESS last minute documentation )reports.cfg ( READ ONLY; report manager configuration file )sample.edi ( READ ONLY; distributions plot configuration file )seeds.dat ( READ ONLY; default random stream seeds values ) simdrw32.exe ( READ ONLY; SIMDRAW graphic editor executable )simproc.cfg ( READ ONLY; SIMPROCESS configuration file )simproc.cnt ( READ ONLY; SIMPROCESS on-line help file contents )simproc.exe ( READ ONLY; SIMPROCESS executable )simproc.hlp ( READ ONLY; SIMPROCESS on-line help file )spuser.pdf ( READ ONLY; on-line documentation file )stats.edi ( READ ONLY; statistics editor configuration file )

OBJLIBS subdirectoryThis directory contains all the distributed model template libraries. Users can load any of these libraries and use the pre-defined model-element templates to build models.

simproc.lib ( SIMPROCESS standard modeling template library )

SG2LIBS subdirectoryThis directory contains all the distributed graphic files, i.e. *.SG2 and *.BMP. They are dialog boxes definitions, menu options, and icon graphics. All of these files are set to read only.

362 SIMPROCESS User’s Manual

APPENDIX B-SIMPROCESS File Structure

allocate.bmp release.bmp

allocn.sg2 releasen.sg2

assemble.bmp repgrfmn.sg2

assembn.sg2 simdlg.sg2

assign.bmp simplot.sg2

assignn.sg2 simsys.sg2

batch.bmp simtoken.sg2

batchn.sg2 sink.bmp

branch.bmp sinkn.sg2

branchn.sg2 source.bmp

clone.bmp sourcen.sg2

clonen.sg2 splash.bmp

colorpal.sg2 split.bmp

create.bmp splitn.sg2

createn.sg2 spnode.sg2

delay.bmp spproc.sg2

delayn.sg2 spsappl.sg2

expmgr.sg2 ssnsrc.bmp

gate.bmp syncro.bmp

gaten.sg2 syncron.sg2

ibmplot.sg2 system.sg2

join.bmp unbatch.bmp

joinn.sg2 unbatchn.sg2

merge.bmp user.sg2

mergen.sg2 userpal.sg2

pndetail.sg2 xform.bmp

process.bmp xformn.sg2

processn.sg2

SIMPROCESS User’s Manual 363

Appendix B-SIMPROCESS File Structure

SIMDRAW sub-directoryThis directory contains all the configuration files and on-line help file required by the Graphics Editor - SIMDRAW.

colorpal.sg2 ( SIMDRAW graphics file )simdraw.cfg ( SIMDRAW configuration file )simdraw.cnt ( SIMDRAW configuration file )simdraw.fnt ( SIMDRAW text fonts file )simdraw.hlp ( SIMDRAW on-line help file )simdraw.ini ( SIMDRAW configuration file )simdraw.sg2 ( SIMDRAW grahphics file )system.sg2 ( SIMDRAW graphics file )

TEMPLATES subdirectoryThis directory contains all the distributed documentation template files. They are default forms and templates used in documenting models and model elements. All of these files are set to read only.

token ( Entity description form )resr ( Resource description form )nod ( Activity/Process description form )pad ( Pad description form )arc ( Connector description form )mod ( Model description form )

token.tpl ( Entity documentation template )res.tpl ( Resource documentation template )node.tpl ( Activity/Process documentation

template )model.tpl ( model documentation template )

HELP subdirectoryThis directory contains the SIMPROCESS help files.

simproc.hlp ( SIMPROCESS help file )simproc.cnt ( help configuration file )

Win32_License subdirectoryThis directory contains the license manger files.

364 SIMPROCESS User’s Manual

APPENDIX B-SIMPROCESS File Structure

lic_w32.exe ( license manager application )Odbctrac.dll ( odbc dll )

Drivers subdirectoryThis directory contains the dongle drivers for DOS, 95 & 98, and NT. Each are in their own subdirectories. The driver in the Win_95 directory is used for Windows 98.

Under the SPUSER directory, there are:simproc.ini (editor configuration from the last session)simprocdb.mdb(MS Access database)mnymny.bmp (bitmap file for project.lib palette icon)mnyone.bmp (bitmap file for project.lib palette icon)oneone.bmp (bitmap file for project.lib palette icon)onemny.bmp (bitmap file for project.lib palette icon)*.spm (SIMPROCESS model file)*.bck (the previously saved model file of the current *.spm )*.bmp (exported bitmap file of the working area; the file exten-

sion is fixed to bmp and will overwrite whatever user specified)

*.eps ( encapsulated postscript file of the working area )

DEFAULT subdirectoryThis directory is created by SIMPROCESS to temporarily collect the model’s documentation and output files. When building a model, SIMPROCESS will call this model default.spm before the user explicitly assigns a name to it. Any file (e.g. documentation files) that needs to be saved to the disk in this period, will be saved under this directory temporarily. Once a name is assigned, SIMPROCESS will then create a directory using the assigned name and move all its related files to the newly created directory.

DEMOS subdirectoryThis directory contains demonstration and reference models, as well as their supplemental directories. Initially, all these supple-mental directories, except EXPMGR, contain only a model docu-mentation file, i.e. mod.doc. The EXPMGR subdirectory contains the examples of experiment designs.

SIMPROCESS User’s Manual 365

Appendix B-SIMPROCESS File Structure

as-is.spm ( tutorial’s reference model )assemble.spm ( reference model describes Assemble

activity )assign.spm ( reference model describes Assign

activity )batch.spm ( reference model describes Batch/

Unbatch activities )callctr.spm ( demonstration model )cashier.spm ( demonstration model )cnfgmgmt.spm ( demonstration model )credit.spm ( demonstration model )fullfill.spm ( demonstration model )helpdesk.spm ( demonstration model )invntory.spm ( demonstration model )newacct.spm ( demonstration model )project.spm ( demonstration model )purchas.spm ( demonstration model )spltjoin.spm ( reference model describes Split and

Join activities ) supply.spm ( demonstration model )to-be.spm ( tutorial’s reference model )wafer.spm ( demonstration model )

OBJLIBS subdirectoryThis directory contains user created libraries that collect user defined model-element templates. Users can load any of these libraries and reuse the templates to build models. Currently, there is one library created for demonstration purposes.

project.lib ( Reusable template library for the demo model - project.spm )

SG2LIBS subdirectoryThis directory contains the graphic files that users have imported or created with SIMDRAW for future usage.

usr.sg2 ( User created background images )usrnode.sg2 ( User created activity icons )usrproc.sg2 ( User created process icons )usrtokn.sg2 ( User created entity icons )

366 SIMPROCESS User’s Manual

APPENDIX B-SIMPROCESS File Structure

[ModelName] subdirectoryFor each model, there will be a supplemental directory named as the model’s name and created by SIMPROCESS. This supplemen-tal directory is to collect the model’s documentation and output files. It will contain:

Arc[n].doc ( Connector documentation files )Model.doc ( model’s full documentation )Node.doc ( full documentation of a selected

Process/Activity )Nod[n].doc ( Activity documentation files )Resr[n].doc ( Resource documentation files )Token[n].doc ( Entity documentation files )dbdata ( database design and scenario info)recorder.msg ( recorder output messages file )resource.nod ( simulation output data file )otherwise.nod ( simulation output data file )costdata ( simulation output data file )costdata.idx ( simulation output data file )stat1.mon ( simulation statistical results )stat1.ndx ( simulation statistical results )stat1.trc ( simulation statistical results )

Under this supplemental directory, there may be other files com-posed of database system and design names. These contain design information for design verification. Also, there may be two subdi-rectories. They contain exported text format data files and post-script files from the model.

DATAExported report data in text format which can be space delimited file(*.TXT) and comma delimited file(*.CSV).

PSExported postscript files from report graphics, i.e. *.PS.

SIMPROCESS User’s Manual 367

Appendix B-SIMPROCESS File Structure

368 SIMPROCESS User’s Manual

APPENDIX C

Statistical Distributions

The following pages give a brief description of the standard statistical distributions available in SIMPROCESS, as well as their required parameters.

SIMPROCESS User’s Manual 369

Appendix C - Statistical Distributions

Uniform Distribution

Probability density function for a uniform distribution

Syntax: UNI (minimum, maximum, stream)

A uniform distribution is one where the probability is constant over some range, and zero outside that range. You use a uniform distribution function when all values in the range are equally likely.

To specify a uniform distribution you give the minimum and maximum values of its range.

Uniform(3, 7, x)

0

0.05

0.1

0.15

0.2

0.25

0 1 2 3 4 5 6 7 8

370 SIMPROCESS User’s Manual

Appendix C - Statistical Distributions

Normal Distribution

Probability density function for several normal distribution functions with means = 1.

Syntax: NOR (mean, standard deviation, stream)

A normal distribution (sometimes called a Gaussian distribution) produces the bell-shaped curve that is so commonly found in the real world. You would not want to use a normal distribution if you are modeling a distribution with a large standard deviation and a peak close to the origin. The problem then is that normal distributions usually do not have any restriction that keeps them from ranging to negative values. This would be a problem if you were modeling something that was always positive, such as time to complete a task. SIMPROCESS truncates the distribution so this problem does not occur. Two parameters characterize a normal distribution: the mean and standard deviation. The standard deviation tells how much things vary around the mean: if the standard deviation is large, the variation is large, if the standard deviation is small, the variation is small.

Normal(1, standard deviation, x

0.00

0.20

0.40

0.60

0.80

1.00

1.20

1.40

1.60

1.80

2.00

0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00

std. dev. = 0.2

std. dev. = 0.4

std. dev. = 0.6

SIMPROCESS User’s Manual 371

Appendix C - Statistical Distributions

Triangular Distribution

Probability density function for a triangular distribution function

Syntax: TRI(minimum, mode, maximum, stream)

A triangular distribution is very simple: it is peaked somewhere in the middle and has a finite range. To specify a triangular distribution, you give its minimum, maximum, and mode. The mode is where the peak of the distribution occurs—it is the most likely value in the range. It is not usually equal to the mean unless the distribution is symmetric. A triangular distribution is useful when you have only a vague idea about the shape of the distribution, perhaps you only know the range and where the peak occurs.

0.00

0.05

0.10

0.15

0.20

0.25

0.30

0.35

0 1 2 3 4 5 6 7 8 9 10

p

Triangular(2.0, 6.0, 8.0)

372 SIMPROCESS User’s Manual

Appendix C - Statistical Distributions

Exponential Distribution

Probability density function for an exponential distribution function

Syntax: EXP(mean, stream)

The exponential distribution function is commonly used to model interarrival times. It is related to the Poisson distribution function—if the number of arrivals in a given time are represented by the Poisson distribution, then the distribution of interarrival times is an exponential distribution function. The only number needed to characterize the exponential distribution function is the mean. The standard deviation is the same as the mean for an exponential distribution.

Exponential(1, x)

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

SIMPROCESS User’s Manual 373

Appendix C - Statistical Distributions

Gamma Distribution

Probability density curves for a gamma distribution function with mean = 1

Syntax: GAM(mean, shape, stream)

Gamma distributions are based on the gamma function, which is sometimes known as the generalized factorial function. Like exponential distributions, they are often used for times to complete a task, such as service time. Gamma functions have a smaller variance than exponential functions and they also have two shape parameters, which gives more control over their shape than exponential distributions.

You can see from the graph above that when shape = 1 the Gamma distribution is peaked at 0 (like the exponential distribution), and when shape > 1 the distribution becomes peaked away from the origin.

X

0 0.5 1 1.5 2 2.5 3

shape = 1

shape = 0.5

shape = 3

shape = 9

shape = 15

374 SIMPROCESS User’s Manual

Appendix C - Statistical Distributions

Beta Distribution

Probability density curves for various beta distribution functions

Syntax: BET(shape1, shape2, minimum, maximum, stream)

Beta distributions are similar to triangular distributions—they are singly peaked with a finite range. Their range is from minimum to maximum. They are also often used when there is not much data available. Beta distributions are characterized by two shape parameters: shape1 and shape2. As beta distributions are normally used, both shape parameters are greater than one.

If the first parameter is larger, the peak falls toward the right side of the range, if the second parameter is larger, the peak falls toward the left side of the range.

X

Beta(shape1, shape2, m

max)

0

0.5

1

1.5

2

2.5

3

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

shape1 =1.5, shape2

shape1 = 1.5, shape2

shape1 = 5, shape2 =

shape1 = 3, shape2 =

shape1 = 5, shape2

SIMPROCESS User’s Manual 375

Appendix C - Statistical Distributions

Erlang Distribution

Probability density function for an Erlang distribution function

Syntax: ERL(mean, shape, stream)

The Erlang distribution is a special case of the gamma distribution. It is sometimes used for modeling a time to do a certain task, when that time depends upon the sum of the times for a number of independent tasks.

Erlang(1, shape, x)

0

0.2

0.4

0.6

0.8

1

1.2

1.4

0 0.5 1 1.5 2 2.5 3

X

shape = 1

shape = 2

shape = 4

shape = 10

(Mean = 1 for all curves)

376 SIMPROCESS User’s Manual

Appendix C - Statistical Distributions

Weibull Distribution

Probability density function for two Weibull distribution functions

Syntax: WEI(shape, scale, stream)

Weibull distributions are nice smooth distributions whose shapes can be varied widely depending on the shape and scale parameters. For this reason it may be a good distribution to use if you are using it in code, where you wish to change the shape of the distribution appropriately for different situations, but you do not want to switch distributions.

Weibull (shape, 1, x)

0

0.5

1

1.5

2

2.5

3

0 0.5 1 1.5 2 2.5 3

shape = 2

shape = 8

SIMPROCESS User’s Manual 377

Appendix C - Statistical Distributions

Lognormal Distribution

Probability density functions for a lognormal distribution function

Syntax: LOG(mean, stream)

The lognormal distribution is similar to a normal distribution skewed toward zero. It is useful for modeling skewed data sets.

Lognormal (1, standard deviation, x)

0.00

0.50

1.00

1.50

2.00

2.50

3.00

3.50

4.00

4.50

0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00 4.50 5.00

s.d. = 0.1

s.d. = 0.5s.d. = 1

s.d. = 3

s.d. = 4

(Mean = 1 for all curves)

378 SIMPROCESS User’s Manual

Appendix C - Statistical Distributions

Poisson Distribution

Poisson distribution for various mean values

Syntax: POI(mean, stream)

If we know on average how many statistically independent events occur in a certain time period, the Poisson Distribution tells you what the probability is for a number occurring. Poisson distributions are very good for modeling arrivals, for example, the arrival of phone calls to a switchboard. We may have a very good idea how many occur on average, but have no way to predict exactly when each call will arrive.

Poisson(Mean, Number)

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0 1 2 3 4 5 6 7 8 9 10

Number of Occurrences

Mean = 0.5Mean = 1Mean = 2 Mean = 6

SIMPROCESS User’s Manual 379

Appendix C - Statistical Distributions

Hyper Exponential Distribution

Syntax: HEX(mean1, mean2, probability of mean, stream)

The Hyper Exponential distribution function takes three positive real numbers: mean1, mean2 and probability of mean. It returns a positive, real number. The stream parameter specifies which random number stream will be used to provide the sample.

X

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 1 2 3 4 5 6 7 8 9 10

p = 0

p = 0.

p = 1.

p = 0.

p = 0.

p = 0.

Hyperexponential(1, 5, p)

380 SIMPROCESS User’s Manual

Appendix C - Statistical Distributions

Uniform Integer Distribution

Syntax: INT(minimum, maximum, stream)

The Uniform Integer distribution function takes two positive, real numbers: lower bound & upper bound. It returns a positive, real integer between these bounds inclusive. The stream parameter specifies which random number stream will be used to provide the sample.

0

0.05

0.1

0.15

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Integer(7, 16)

SIMPROCESS User’s Manual 381

Appendix C - Statistical Distributions

Geometric Distribution

Syntax: GEO(minimum, mean, stream)

The Geometric Distribution takes two parameters: minimum and mean. This distribution returns a positive real integer. The stream parameter specifies which random number stream will be used to provide the sample.

382 SIMPROCESS User’s Manual

Appendix C - Statistical Distributions

Hyperbolic Distribution

Syntax: HYP(position, shape, offset, stream)

The Hyperbolic Distribution is a simple power law type distribution that is useful for modeling bursty sources. The distribution is heavily peaked but the tail falls off relatively slowly. It takes three parameters: position, shape, and offset. The position specifies where the distribution starts, the shape specifies how quickly the tail falls off, and the offset shifts the distribution. Because of the heavy tail, the Hyperbolic distribution can have infinite mean and variance. It the shape parameter is greater than 2, both the mean and variance are finite. If the shape parameter is greater than 1 but less than or equal to 2, the mean is finite but then variance is infinite. If the shape parameter is less than or equal to 1, both the mean and variance are infinite.

Hyperbolic Distribution(offset = 0)

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

0 2 4 6 8 10 12 14

X

Hyp

erbo

lic(p

ositi

on, s

hape

, offs

et, x

)

position=1, shape=1.5

position=1, shape=0.95

position=5, shape=0.95

SIMPROCESS User’s Manual 383

Appendix C - Statistical Distributions

384 SIMPROCESS User’s Manual

APPENDIX D

Statistical Tools Glossary

Absolute DeviationThe average deviation of the data set from the mean. It is computed using the absolute value of the difference between a data point and the mean rather than squared differences used in computing the variance.

AlphaThe probability that an estimate of a parameter does not contain the true value. In statistics, this is referred to as Type I error.

Alternate HypothesisThe complement of the null hypothesis.

CdfCumulative distribution function.

SIMPROCESS User’s Manual 385

Appendix D-Statistical Tools Glossary

χ2 goodness of fit test

A goodness of fit test that uses a χ2 statistic to evaluate the goodness of fit. The χ2 goodness of fit test creates an empirical distribution for the data. The empirical distribution used is a histogram. The height of each bin of the histogram is equal to the number of points in the data set that fall between the lower and upper bounds of the bin. The χ2 statistic is computed as the sum of squared differences of the values observed for each bin of the histogram to the number of observations expected from the probability distribution over the same range as the bin.

Confidence IntervalAn interval that contains the true value of a parameter with a given probability.

Continuous DomainA domain whose variables can take on any value in an interval real numbers. Integer domains are sometimes interpreted as continuous domains with the implicit assumption that the integers represent an underlying continuous domain.

Data SetA vector (or equivalently an array or column) of data points that are the realization of a random process.

Degrees of Freedom The number of independent elements in a statistical computation. The degrees of freedom must be known to compute the probability of a test statistic such as the χ2 statistic.

386 SIMPROCESS User’s Manual

Appendix D-Statistical Tools Glossary

DofAcronym for degrees of freedom.

Enumeration DomainA domain whose range is the set of elements in the enumeration.

Goodness of fit test A statistical test used to determine the probability that an observed data set came from a probability distribution. The null hypothesis is that the data set is drawn from the probability distribution. The alternate hypothesis is that the data set is not drawn from the probability distribution. A test statistic is computed to evaluate the hypothesis. If the probability of observing the test statistic is small (less than alpha), the fit is rejected.

IIDIdentically and independently distributed. In simulation, identical means that observations are made from a hypothesized distribution of values that does not change over simulated time. Independent means that observations of one replication are not correlated with other observations, i.e. if one observation has a value of x, then the next observation is probably close to x.

Image EditorAn editor that contains graphs, tables, or text for viewing the results of a statistical analysis.

Integer-valued DomainA domain whose range is the set of integer numbers.

SIMPROCESS User’s Manual 387

Appendix D-Statistical Tools Glossary

KSAcronym for Kolmogorov-Smirnov.

KS goodness of fit testA goodness of fit test that uses the D statistic to evaluate the goodness of fit. The KS goodness of fit test creates an empirical distribution for the data. The empirical distribution assigns a probability of 1/N to each data point where N is number of data points in the data set. The D statistic is computed as the maximum difference between the cumulative distribution function of the empirical distribution and the cumulative distribution function of the probability distribution being tested.

KurtosisCharacterizes the relative peakedness or flatness of a distribution relative to the normal distribution. A data set with positive kurtosis has a sharper peak than a normal distribution while a data set with negative kurtosis has a flatter peak than the normal distribution.

Maximum Likelihood EstimateA statistical technique for estimating the parameters of a hypothesized distribution of a data set.

MeanAverage value of a data set.

MLEAcronym for maximum likelihood estimate.

388 SIMPROCESS User’s Manual

Appendix D-Statistical Tools Glossary

ModeThe mode of a probability distribution is the value of x where it takes on its maximum value. If the distribution is multiply-peaked, there may not be a unique mode.

Model Element. A named object in the simulation model that has one or more simulation input variables that can be designated as factors for an experiment. The model elements include activities, resources, and entity types.

PdfProbability distribution function.

Performance Measure. An output statistic that quantifies some behavior of the model.

PercentilesIn a data set ranked by value of the data points, a percentile refers to the data point at the relative position by rank of the data point in the data set. For example, in a data set of a hundred points, the 75th percentile (75%) point is the data point that is in the 75th position when ranked by value.

Quartile Range

Difference between the 25th percentile value and 75th percentile value of the data set.

SIMPROCESS User’s Manual 389

Appendix D-Statistical Tools Glossary

RangeDifference between the minimum and maximum values of a data set.

Real-valued DomainA domain whose range is the set of real numbers.

ResidualsThe differences between the actual values observed and the expected values as computed by a statistical test.

Sample DomainA domain whose range is the set of probability distributions supported by SIMPROCESS.

SkewnessCharacterizes the degree of asymmetry of a distribution around its mean. A data set with positive skewness has a long tail to the right of its mean. A data set with negative skewness has a long tail to the left of its mean.

Standard DeviationSquare root of the variance.

Standard ErrorA measure of the spread of the data set about the mean. Typically, standard error is the one sigma error about the mean of the data set computed as the standard deviation divided by the square root of the number of data points.

390 SIMPROCESS User’s Manual

Appendix D-Statistical Tools Glossary

VarianceVariability of data set about the mean.

SIMPROCESS User’s Manual 391

Appendix D-Statistical Tools Glossary

392 SIMPROCESS User’s Manual

APPENDIX E

SIMPROCESS System Methods and Examples

System AttributesThis section lists all the SIMPROCESS system attributes in a table and provides examples of system methods.

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/Set

Attribute Type

Description

System Levelb Model Get OBJECT Reference of the Model being simu-lated.

Self Get OBJECT Reference of the Model Element itself.

Replication Get INTEGER Current replication number.

Entity Type Name Get STRING Name of the entity.

Priority Both INTEGER Default priority for entity instances of this type.

SIMPROCESS User’s Manual 393

Appendix E-System Methods and Examples

NumberIn Get INTEGER Number of entity instances of this type currently in the system.

NumberCreated Get INTEGER Number of entities instances gener-ated for this type.

NumberDisposed Get INTEGER Number of disposed entities instances of this type.

Entity (instance) Name Get STRING Name of this entity.

Activity Get OBJECT Reference of Activity this entity instance resides in.

CreateTime Get REAL Time the entity instance was created.

EndWait Both BOOLEAN TRUE if entity wait for resources was interrupted by MaxWait time

EnterTime Get REAL Time the entity instance entered the current activity.

MaxWait Both REAL Maximum time entity will wait for resource allocation. Default is 0.0 (unlimited).

NumberIn Get INTEGER Number of entity instances of the same type currently in the system.

NumberCreated Get INTEGER Number of entity instances of the same type has generated.

NumberDisposed Get INTEGER Number of entity instances of the same type has disposed.

Priority Both INTEGER Priority of this entity instance.

SequenceNum Get INTEGER A number given sequentially to each entity as it is created.

Type Get OBJECT Reference of Entity Type of this entity instance.

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/Set

Attribute Type

Description

394 SIMPROCESS User’s Manual

System Attributes

Resource Name Get STRING Name of the resource.

Activity Get OBJECT Reference of Activity currently hold-ing this resource (if any).

Capacity Get REAL Resource capacity.

Entity Get OBJECT Reference of Entity instance currently using this resource (if any).

UnitsBusy Get REAL Number of units of the resource in busy state.

UnitsDown Get REAL Number of units of the resource not available because of the application of a downtime.

UnitsIdle Get REAL Number of units of the resource in idle state.

Activity’s Group I

Name Get STRING Name of this activity.

Parent Get OBJECT Reference of this activity’s parent process.

Entity Get OBJECT Reference of the current Entity.

Sibling(name : STRING)

Get OBJECT It returns the reference to the activity or process with the specified name in the same hierarchical level.

Activity’s Group II

NumberAccepted Get INTEGER Number of entities so far entered this activity.

NumberReleased Get INTEGER Number of entities so far exited this activity.

NumberIn Get INTEGER Number of entities currently at this activity.

Activity’s Group III

LastDelay Get REAL The value of the last delay.

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/Set

Attribute Type

Description

SIMPROCESS User’s Manual 395

Appendix E-System Methods and Examples

NextDelay Set REAL Change the value of the next delay ONLY.

AllFutureDelays Set REAL, INTEGER, STRING

Change the value of all future delays henceforth.

Assemble Group I, II, & III

Activated-ByNoMatch

Get BOOLEAN Checks if the expression is activated by an entity exiting through the NoMatch pad.

ActivatedByTrig-ger

Get BOOLEAN Checks if the expression is activated by an entity entering from the Trigger pad.

Assign Group I, II, & III

Batch Group I, II, & III

MaxBatchSize Both INTEGER Number of entities to batch.

MinBatchSize Both INTEGER Number of entities must be in a batch before it can be released.

MaxWaitTime Both REAL Time to wait before releasing under-size batch.

Branch Group I, II, & III

BranchName Set STRING Name of the connector to be taken by the next entity.

Copy Group I, II, & III

NumOutEntities Both INTEGER Number of entities to output per con-nector.

Delay Group I, II, & III

Dispose Group I

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/Set

Attribute Type

Description

396 SIMPROCESS User’s Manual

System Attributes

MaxCount Both INTEGER Number of entities disposed to signal End Simulation event.

NumberDisposed Get INTEGER Number of entities so far disposed at this activity.

Free Resource Group I & II

Gate Group I, II, & III

ActivatedByTrig-ger

Get BOOLEAN Checks if the expression is activated by an entity entering from the Trigger pad.

AutoRelCount Both INTEGER Number of entities for threshold release.

AutoRelease Both BOOLEAN Whether threshold release is on or not.

LastRelCount Get INTEGER Number of entities released in the previous threshold/trigger release.

TrigNextRel-Count

Both INTEGER Value of the trigger release quantity at the next trigger.

TrigFutureRel-Count

Set REAL, INTEGER, STRING

Change the trigger release quantity for all future triggered release hence-forth.

Generate Group I

NumberGener-ated

Get INTEGER Number of entities so far generated at this activity.

Get Resource Group I & II

Join Group I, II, & III

Merge Group I & II

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/Set

Attribute Type

Description

SIMPROCESS User’s Manual 397

Appendix E-System Methods and Examples

Process Group I & II

Child Get OBJECT For hierarchical processes ONLY. It returns the reference to the child activity or process with the specified name.

Replenish Resource

Group I & II

Split Group I, II, & III

Synchronize Group I, II, & III

Transform Group I, II, & III

NumOutEntities Both INTEGER Number of output entities.

OutEntityType Get OBJECT Reference of output Entity Type.

Unbatch Group I, II, & III

a. System attributes’ names must be input as shown. They are case sensitive.b. Attributes in this category can be referenced in any expression.

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/Set

Attribute Type

Description

398 SIMPROCESS User’s Manual

SIMPROCESS System Methods

SIMPROCESS System Methods

SIMPROCESS System Methods

Method Namea Arguments Return Description

Alert MasterEditorb,Message : STRING

NONE Display a message in the Alert di-alog box and wait for the user to close this dialog box.

Beep MasterEditorb NONE Make a beep sound.

ChangeColor ActOrEnt : OBJECT,Color : STRING

NONE Change the color of the specified activity or entity.

CloseFile File stream: OBJECT NONE Close the specified file.

Confirm MasterEditorb,Message: STRING

BOOL-EAN

Display a message in the Confirm dialog box and wait for the user to respond; OK returns TRUE, CANCEL returns FALSE.

DrawIntegerSample Statistical Distribution:STRING

INTE-GER

Draw a sample of type integer from the specified statistical dis-tribution.

DrawRealSample Statistical Distribution:STRING

REAL Draw a sample of type real from the specified statistical distribu-tion.

FLOAT number: INTEGER REAL convert the argument to REAL type.

INTTOSTR number: INTEGER STRING Convert an integer number to a string.

SIMPROCESS User’s Manual 399

Appendix E-System Methods and Examples

MAXOF list of numbers: REAL/INTE-GER(all the numbers in list mustbe of the same type)

REAL orINTE-GER

Return the maximum number in the given list, return type is the same as the input list.

MINOF list of numbers: REAL/INTE-GER(all the numbers in list mustbe of the same type)

REAL orINTE-GER

Return the minimum number inthe given list, return type is thesame as the input list.

OpenFile Mode: STRINGFile Name: STRING

OBJECT Open the specified file and return the file stream object. Mode can be “input“ or “output”.

OUTPUT Takes zero or more arguments.Type can be REAL, INTE-GER, CHAR, STRING

NONE Display the specified arguments in the Output dialog.

POSITION String1 : STRINGString2 : STRING

INTE-GER

This method returns the starting position of String2 in String1. If String2 is not completely con-tained in String1, it returns 0.

ReadFromFile File stream: OBJECTlist of variables

NONE Read values for the listed vari-ables from the specified input file.

REALTOSTR number: REAL STRING Convert a real number to a string.

REPLACE String1 : STRINGposition1, position2 : INTE-GERString2 : STRING

STRING Returns a string that is in String1 with part of String1 from position 1 to position 2 replaced with String2.

Resource resourceName : STRING OBJECT Returns the reference to the spec-ified Resource.

ROUND number: REAL INTE-GER

Round the argument and return the closest integer value.

SIMPROCESS System Methods

Method Namea Arguments Return Description

400 SIMPROCESS User’s Manual

SIMPROCESS System Methods

ShowSystemAt-tributesc

None NONE Display all the System Defined Attributes of the calling element in the Output dialog .

ShowUserAttributesc None NONE Display all the User Defined At-tributes evaluated for the calling element since start.

SimTimec None REAL Return current simulation time in hours.

STATUS Same as OUTPUT NONE Display the specified arguments in status bar.

STRLEN inString : STRING INTE-GER

Retuns the length of the string, in-String.

SUBSTR position1, position2 : INTE-GERString : STRING

STRING Returns the substring of String from position1 to position2, in-clusive.

TRUNC number: REAL INTE-GER

Return the integer part of the number

UpdateDynamicLa-bel

MasterEditorb,Label Name: STRING,Label ID: INTEGER,Font Color: STRING,Value: Same as Label’s Mode

NONE Update the specified dynamic la-bel with the given value.

WriteToFile File stream: OBJECTlist of variables

NONE Write the values of the listed vari-ables to the specified output file.

a. System methods’ names must be input as shown. They are case sensitive.b. This argument (i.e. MasterEditor) must be the first argument inside the parentheses of this method. It is required by

the method and must be input as shown. It is case sensitive.c. Since this method does not require any argument, do not include empty parentheses when using this method.

SIMPROCESS System Methods

Method Namea Arguments Return Description

SIMPROCESS User’s Manual 401

Appendix E-System Methods and Examples

402 SIMPROCESS User’s Manual

System Method Examples

System Method Examples

Method Alert and Beep:For example, to display a message and sound alarm when an entity enter an activity, put the following lines in the activity’s Accept Entity event:

Beep(MasterEditor);

Alert(MasterEditor, “Press OK to continue!”);

Method Confirm, DrawRealSample, MINOF, MAXOF, and REALTOSTR:

This example demonstrates the syntax and usage of the listed methods. It draws a number from an Uniform distribution whose minimum and maximum parameters are results from an Exponential distribution with a mean of 30. The result is displayed in a message box with OK and Cancel buttons. Pressing OK will continue this process again, while Cancel will end the process.

fContinue : BOOLEAN;value1, value2, maxval, minval : REAL;

fContinue := TRUE;WHILE fContinuevalue1 := DrawRealSample(“Exp(30.0)”);value2 := DrawRealSample(“Exp(30.0)”);maxval := MAXOF(value1, value2);minval := MINOF(value1, value2);value1 := DrawRealSample(“Uni(“+REAL-

TOSTR(minval)+”,” +REALTOSTR(max-val)+”)”);

Beep(MasterEditor);fContinue := Confirm(MasterEditor, “The

value is “+ REALTOSTR(value1));END WHILE;

SIMPROCESS User’s Manual 403

Appendix E-System Methods and Examples

Method ChangeColor:This method changes the color of a non-bitmap icon. Currently, activity icon “RectangleIcon”, process icon “Process”, and all the provided entity icons can use this method to change their color. The Table , “SIMPROCESS Color Table,” contains the 64 colors available in SIMPROCESS.

For example, to change an activity to red whenever an entity enters, in the activity’s Accept Entity event add:

ChangeColor(Self, “Red”);

To change the color of all entities that leave the activity to brown, and change the activity icon to green if there is no entity in it, in the activity’s Release Entity event add:

IF (NumberIn = 0)

ChangeColor(Self, “Green”);

END IF;

ChangeColor(Entity, “Brown”);

Method ShowSystemAttributes and ShowUserAttributes:

These methods display all the system defined and user defined attributes with their current values of the calling element in the standard output window. For example, to display the system defined attributes of an activity when an entity enters, in the activity’s Accept Entity event put:

ShowSystemAttributes;

All the system defined attributes and values are listed in the standard output window.

404 SIMPROCESS User’s Manual

System Method Examples

Method SimTime:This method returns the current simulation time in hours. The return value is REAL type. For example:

Entity.StartTime := SimTime; { StartTime is a REAL global entity instance attribute. }

Method OUTPUT and STATUS:To display a message in the standard output window:

OUTPUT(“Number of orders currently held in Gate10 is : “, NumberIn);

Or, to display it in the status bar:

STATUS(“Number of orders currently held in Gate10 is : “, NumberIn);

where the expressions above are placed on the activity, Gate10.

Method UpdateDynamicLabel:To use this method, you need to define a dynamic label in the work area first. To define a dynamic label, refer to Chapter 10–Customizing a Model with Attributes and Expressions, beginning on page 213.

Five arguments are required for this method. The first one is MasterEditor. This is the key word that must be there and input as shown. The next two arguments are the Name and ID of the dynamic label defined in the Background Text Properties dialog box. The forth argument is the color to be used in displaying this label. The last argument is the value to be displayed. It can be a constant or an attribute, but the data type must match the Mode defined in Background Text Properties.

For example, you want to display the number of entities generated at a Generate activity. Assume you have already defined a dynamic label

SIMPROCESS User’s Manual 405

Appendix E-System Methods and Examples

with the name ”total”, ID of 0, and data type of INTEGER. In the Release Entity event of the Generate activity add the following line:

UpdateDynamicLabel(MasterEditor, “total”, 0, “DarkBlue”, NumberGenerated);

The first parameter of this method must be MasterEditor and input as shown.

Method OpenFile, CloseFile, ReadFromFile, and WriteToFile:

OpenFile opens the file specified in the Filename field for either input or output. The mode must be either “input” or “output” (not case-sensitive). “Input” opens a file to read, while “output” opens a file to write. Any other specifications will lead to an error message. Both arguments are STRING type, i.e. they must be surrounded by “ “. OpenFile returns an Object type value which is required in CloseFile, ReadFromFile, and WriteToFile methods.

OpenFile(Mode, Filename) : OBJECT;

By default, SIMPROCESS will look for either input or output files in the directory of the active model. Either file can be placed elsewhere as long as the path is specified in the OpenFile statement.

The following example opens a file (myoutput.dat) for output. First, define a Model Attribute MyOutStream that is type Object. Then, type the following statement in one of the expressions. It is the best to put the statement in the Start Trial expression, so the file will not be opened more than once.

Model.MyOutStream := OpenFile(“Output”, “myoutput.dat”);

The next example opens a file (myinput.dat) for input and keeps the return value in the model attribute MyInStream.

Model.MyInStream := OpenFile(“input”, “myinput.dat”);

406 SIMPROCESS User’s Manual

System Method Examples

ReadFromFile reads the specified numbers of values from a file that is open for input. The first argument is the input stream, from a previous OpenFile call (the file must be open for input). From the previous example, the model attribute, Model.MyInStream would be the input stream. Following the stream argument is a list of variables whose values are going to be read in from the file.

ReadFromFile(Input Stream, List of variables);

In the input file, values should be separated by one or more white spaces (i.e. space, tab, or new line characters). There is also a pre-defined special delimiter “|” in SIMPROCESS. You can use “|” to separate values. This delimiter is very useful to separate values (strings) that contain any white space. You can surround the whole string with a pair of “|” and ReadFromFile will read in whatever is inbetween as one value.

The type of value to be read in is dependent on the specified variable type. A mismatch will cause an error. The following table shows the valid types for different value types. Integer and real are any valid numerical values. ReadFromFile will either truncate a real value to integer for an Integer type variable, or float an integer value to real for a Real type variable. String is a sequence of characters. If spaces are included, surround the whole string with “|”. Boolean can only be either TRUE or FALSE. Any other value will cause an error. Boolean values are not case sensitive.

Value Types in FileVariable Types Integer Real String Boolean

Integer OK Truncated Error ErrorReal FLOATed OK Error ErrorString OK OK OK OKBoolean Error Error Error OKObject Error Error Error Error

SIMPROCESS User’s Manual 407

Appendix E-System Methods and Examples

Example:

The input file contains:

|This is a test for ReadFromFile.|

123 67.89 TRUE

The expression reads as:

StrVal : STRING;

IntVal : INTEGER;

RealVal : REAL;

BoolVal : BOOLEAN;

ReadFromFile(Model.MyInStream, StrVal, IntVal);

ReadFromFile(Model.MyInStream, RealVal, BoolVal);

The expression will read in the following:

StrVal has the value “This is a test for ReadFromFile.”.

IntVal has the value 123.

RealVal has the value 67.89.

BoolVal has the value TRUE.

WriteToFile writes the values of the specified variables to a file that is open for output. The first argument is the output stream, that is the returned value from a previously OpenFile call (must be open for output). Following the stream argument is a list of variables whose values are going to be written to a file.

WriteToFile(Output Stream, List of variables);

The output values will be written to the file consecutively. Any kind of format or spacing has to be output explicitly by the user. There are two special characters that can be used in formatting outputs: “^” will write a tab to the file, while “/” will advance to a new line. For these to work correctly, they must be written individually and be surrounded by “”.

408 SIMPROCESS User’s Manual

System Method Examples

For example:

Following the prior example of ReadFromFile, an expression has:

WriteToFile(Model.MyOutStream, StrVal, “/”, IntVal, “^”);

WriteToFile(Model.MyOutStream, RealVal, “^”, BoolVal);

Write to the file as:

This is a test for ReadFromFile.

123 67.89 TRUE

CloseFile closes the file the IOStream pointed to.

CloseFile(IOStream);

For example:

CloseFile(Model.MyOutStream);

CloseFile(Model.MyInStream);

Close the files myoutput.dat and myinput.dat, respectively.

Typically, you will place CloseFile in the End Trial Expression, especially if you put OpenFile in the Start Trial Expression.

SIMPROCESS User’s Manual 409

Appendix E-System Methods and Examples

SIMPROCESS Color Table

0 Black (Default) 33 SandyBrown1 White 34 Gold2 Red 35 Goldenrod3 Green 36 LightGrey4 Blue 37 MediumGoldenrod5 Yellow 38 DarkOliveGreen6 Cyan 39 ForestGreen7 Magenta 40 LimeGreen8 DarkGrey 41 MediumForestGreen9 Grey 42 MediumSpringGreen10 DarkRed 43 PaleGreen11 DarkGreen 44 SeaGreen12 DarkBlue 45 YellowGreen13 DarkYellow 46 DarkSlateGrey14 DarkCyan 47 DimGrey15 DarkMagenta 48 Khaki16 Aquamarine 49 Maroon17 MediumAquamarine 50 Orange18 CadetBlue 51 Orchid19 CornflowerBlue 52 DarkOrchid20 DarkSlateBlue 53 Pink21 LightBlue 54 Plum22 LightSteelBlue 55 IndianRed23 MediumBlue 56 OrangeRed24 MediumSlateBlue 57 VioletRed25 MidnightBlue 58 Sienna26 NavyBlue 59 Tan27 SkyBlue 60 Turquoise28 SlateBlue 61 DarkTurquoise29 SteelBlue 62 Violet30 Coral 63 Wheat31 Firebrick 64 GreenYellow32 Brown

410 SIMPROCESS User’s Manual

APPENDIX F

Simulation Results File

The Simulation Results file is generated from the File menu. Select File/Export/Simulation Results to open the Save Statistics dialog box. The Simulation Results file will, by default have a .xpt file extension and be saved to the current model directory. This file is tab-delimited, and can be opened using a text editor or spreadsheet.

The file will contain the complete statistical measures corresponding to the reports selected for the current model. This file give you raw statistical data that is displayed in the Standard and Custom Reports, in a standard format that can be opened by many different applications.

SIMPROCESS User’s Manual 411

Appendix G- External Event Files

Format of the Simulation Results FileEach line of the exported simulation results file is a statistic recorded for objects such as Entity Types, Activities, or Resources. Each record contains the following fields or columns:

Owner TypeThis is the type of the object that owns this statistic record. The four types are:

• Entity: representing an Entity Type• Activity: representing an Activity• Resource: representing a Resource• TimeStamp: representing a Time Stamp• Attribute: representing an Attribute

Owner NameThis is the full hierarchical name of the specific object that owns this statistic record.

NameThis is the name of the specific object that owns this statistic record.

Stat TypeThis is the type of statistic displayed. Contained in the third column from the left, the Stat Type is an abbreviation for the name of the performance measure whose parameters follow to the right. See Table 5, “Simulation Results - Stat Types,” on page 414 for a complete description of the types of statistics.

412 SIMPROCESS User’s Manual

Appendix G-External Event Files

ReplicationThis number is the replication that the statistic was collected from. Any number, 1 or greater, refers to a specific replication.

If the replication number is 0, the statistics are sum of all replications. An -1 means that this statistic is the average of all replications.

MinimumThis is the smallest value that has been recorded for this statistic.

MaximumThis is the largest value that has been recorded for this statistic.

SumIt is the total of all observed values for the statistic (i.e. Xi), if this is observation based.

For time weighted, it is the total of each observed value multiplied by the time that this value has persisted in (i.e. Xi * ∆T).

Sum of Squares

It is the summation of the square of each observed values (i.e. ∑(Xi2)),

if this is observation based.

For time weighted, it is the summation of the square of each observed value multiplied by the time that this value has persisted in (i.e. ∑(Xi*∆T)2).

SIMPROCESS User’s Manual 413

Appendix G- External Event Files

Count

This is the number of observations recorded when the statistic was collected.

Average

This is the average of the statistic.

Std DeviationThis is the standard deviation of the statistic.

TABLE 5. Simulation Results - Stat Types

LabelsType of

Statistics Descriptions

Entities :

tokendelay Observation based

Total cycle time (i.e. sum of wait, hold, and pro-cess)

tokenwaitdelay Observation based

Time waiting for avail-able resource

tokenholddelay Observation based

Time waiting for condi-tion to be reached

tokenprocessdelay Observation based

Time processing (i.e. at specified duration)

tokenlevel Time-weighted Number of entities in system

tokenwaitlevel Time-weighted Number of entities wait-ing for available resource

tokenholdlevel Time-weighted Number of entities wait-ing for condition to be reached

414 SIMPROCESS User’s Manual

Appendix G-External Event Files

tokenprocesslevel Time-weighted Number of entities in process (i.e. at duration)

tokentotalborn Only the last value is recorded

Number of entities being generated

tokentotalalive Only the last value is recorded

Number of entities still residing in the system

tokentotalkilled Only the last value is recorded

Number of entities detroyed

UDV.delay Observation based

Statistic of the specified attribute

UDV.level Time-weighted Statistic of the specified attribute

Resources :

resrccap Time-weighted Units of resources (i.e. capacity)

resrcidle Time-weighted Units of idle resources

resrcbusy Time-weighted Units of busy resources

resrcmaintenance Time-weighted Units of resources not available (Unplanned Downtime)

resrcdown Time-weighted Units of resources not available (Planned Downtime)

resrcreserved Time-weighted Units of resevered resources

TABLE 5. Simulation Results - Stat Types

LabelsType of

Statistics Descriptions

SIMPROCESS User’s Manual 415

Appendix G- External Event Files

byactivitybusy.level Time-weighted Units of busy resources at the specified activity

Activities :

tokentotalin Only the last value is recorded

Number of entities entered this activity

tokentotalhere Only the last value is recorded

Number of entities still residing in this activity

tokentotalout Only the last value is recorded

Number of entities that have left this activity

tokendelay Observation based

Total cycle time (i.e. sum of wait, hold, and pro-cess) at this activity

tokenwaitdelay Observation based

Time waiting for avail-able resource at this activity

tokenholddelay Observation based

Time waiting for condi-tion to be reached at this activity

tokenprocessdelay Observation based

Time processing entities (i.e. in the specified dura-tions) at this activity

bytoken.delay Observation based

Total cycle time (i.e. sum of wait, hold, and pro-cess) for the specified entity type at this activity

TABLE 5. Simulation Results - Stat Types

LabelsType of

Statistics Descriptions

416 SIMPROCESS User’s Manual

Appendix G-External Event Files

bytokenwait.delay Observation based

Time waiting for avail-able resource for the specified entity type at this activity

bytokenhold.delay Observation based

Time waiting for condi-tion to be reached for the specified entity type at this activity

bytokenprocess.delay Observation based

Time processing entities (i.e. in the specified dura-tions) for the specified entity type at this activity

tokenlevel Time-weighted Number of entities at this activity

tokenwaitlevel Time-weighted Number of entities wait-ing for available resource at this activity

tokenholdlevel Time-weighted Number of entities wait-ing for condition to be reached at this activity

tokenprocesslevel Time-weighted Number of entities in process (i.e.at duration) at this activity

bytoken.level Time-weighted Number of entities of the specified type at this activity

bytokenwait.level Time-weighted Number of entities of the specified type waiting for available resource at this activity

TABLE 5. Simulation Results - Stat Types

LabelsType of

Statistics Descriptions

SIMPROCESS User’s Manual 417

Appendix G- External Event Files

bytokenhold.level Time-weighted Number of entities of specified type waiting for condition to be reached at this activity

bytokenprocess.level Time-weighted Number of entities of the specified type in process (i.e.at duration) at this activity

UDV.delay Observation based

Statistic of the specified attribute

UDV.level Time-weighted Statistic of the specified attribute

Time Stamps :

tokendelay Observation based

Time elapsed between Time Stamps

TABLE 5. Simulation Results - Stat Types

LabelsType of

Statistics Descriptions

418 SIMPROCESS User’s Manual

APPENDIX G

External Event Files

General Rules for Event FilesExternal event files define entity generation events. If event files are referred to in a Generate activity, SIMPROCESS reads the file at the beginning of a simulation run and schedules the generation of Entities as defined in the file.

Each record (line) in an event file must adhere to certain syntax rules, which are defined in the following section. Records must also adhere to these general rules:

• Each record in the file defines one generation event. There is no way to continue a record on the following line.

• Records must be ordered by entity create time. SIMPROCESS will not generate entities for any event record whose entity create time is earlier than that of the previously processed event. For example, in the following sequence of creation dates:

1. 01/02/19952. 01/04/19953. 09/11/1994

SIMPROCESS User’s Manual 419

Appendix F- External Event Files

4. 10/30/19945. 01/12/1995

Records 1 and 2 are processed. Record 3 is bypassed, because its creation date is earlier than that of record 2. Record 4 is also bypassed, because its date is earlier than that of record 2, the last record for which entities were generated.

• Entity create time must be the first field in the event record. The remaining keyword parameters may be entered in any order.

• The entity type you specify in an event record must be defined to the model before it can be generated.

However, you can refer to a new type in the event file and select the Selected in the list option in the External File Schedule dialog box. SIMPROCESS will automatically add it to the model.

• Any literal values with imbedded blanks must be enclosed in quotation marks (" ") when included in event records.

• Real numbers must include a decimal point.• Records beginning with an asterisk (*) are considered

comments and are ignored by SIMPROCESS.

420 SIMPROCESS User’s Manual

Appendix F-External Event Files

Event Record DescriptionIn the following syntax diagram:

• Items in BOLD face must be entered exactly as shown.• Items in italic face represent variables for which you must

substitute a value.• Items enclosed in brackets ([]) are optional.

Syntax

[+]time [QUANTITY:value] [ENTITY: type] [ATTR: name=value...]

Parameters

+Indicates that the ensuing value is to be added to the time of the last event processed.

timeThe time at which entities are to be created for this event record. Specify either a specific date and time or a relative value. Use the following format for a specific date and time:

mm/dd/yyyy hh:mm:ss

Where, for example, January 15, 1997, at noon is represented as:

01/15/1997 12:00:00

You can enter either real numbers or integers to indicate relative values: real numbers are assumed to refer to hours, while integers refer to days. Forty-eight hours after the start of simulation is shown as:

48.0

SIMPROCESS User’s Manual 421

Appendix F- External Event Files

Which is the same as two days after the start of the simulation:

2

Forty-eight hours after the previous entity generation event:

+48.0 or +48:00 or +2

Notes on specifying event time:

• You can omit seconds when specifying the time. SIMPROCESS assumes a zero for the omitted parameter.

• Do not specify a time in hh:mm without a date, unless you precede it with a plus sign (+). Although SIMPROCESS will accept this value, its interpretation is unpredictable. For example, acceptable formats are:

48.0 48 hours after the start of simulation+48:00 48 hours after previous generation event

• SIMPROCESS will accept a 2-digit value for the year, It assumes that values over 49 refer to years in the 20th century, and values under 50 refer to the 21st century.

QUANTITY:valueThe number of entities to generate at the entity generation event. Enter a number in place of value.

If QUANTITY is omitted, SIMPROCESS uses the default Quantity value in the Generate Activity Properties dialog box.

ENTITY: typeThe type of entity to generate.

For Type, enter an entity type name. If the name includes blanks, enclose the entire string in quotes.

422 SIMPROCESS User’s Manual

Appendix F-External Event Files

If ENTITY is not specified, SIMPROCESS uses the default Entity value in the Generate Activity Properties dialog box.

ATTR: name=value...Assigns values to globally defined attributes for entity instances.

You can assign values to any number of attributes in the VARS argument.

The value you specify must be consistent with the data type defined for the attribute.

Note that if you specify an attribute name that has not been defined in your model, you can select the Selected in the list option in the External File Schedule dialog box. SIMPROCESS will add it to the model.

If a record contains any syntax error or undefined model element (without using Selected in the list option), the entire event record is considered invalid and is bypassed.

SIMPROCESS User’s Manual 423

Appendix F- External Event Files

Examples1. Generate GreenDot entities at 3 a.m. on January 1, 1995. Generate the

number of entities defined in the Generate Activity Properties dialog box.

01/01/1995 03:00:00 ENTITY:GreenDot

2. Generate six RedDot entities 7 hours after the simulation begins.

7.0 QUANTITY:6 ENTITY:RedDot

3. Generate four RedDot entities 7 hours after the previous entity generation.

+7:00 QUANTITY:4 ENTITY:RedDot

4. Generate a Truck entity at 2 a.m. on January 3, 1995. Assign a value of 50,000 to user attribute Weight, and the string "Yo, Heavy" to user attribute Tag:

01/03/1995 2:00 ENTITY:Truck ATTR:Weight=50000 Tag="Yo, Heavy"

5. Generate more Truck entities 4 hours after the previous event. Generate the number of entities defined in the Generate Activity Properties dialog box:

+4.0 ENTITY:Truck

6. Generate two RedDot entities at 4 a.m. on January 3, 1995:

01/03/1995 04:00:00 ENTITY:RedDot QUANTITY:2

Notes on the Examples

If the examples are processed during a simulation which begins at midnight, January 1, 1995, the events occur at the following times:

1. January 1, 1995, 3:00 a.m.2. January 1, 1995, 7:00 a.m.3. January 1, 1995, 2:00 p.m. (14:00)4. January 3, 1995, 2:00 a.m.5. January 3, 1995, 6:00 a.m.6. Never. The specified time is earlier than the time of the previous

event, so the record is discarded.

424 SIMPROCESS User’s Manual

Index

Symbols.doc extension 16, 17

Aactivities

adding to model 55–56Assemble 100–102Assign 111–112, 230Batch 103–104

See also Batch ActivityBatch, system attributes of 218Branch 116–119Comment (dialog field) 58commenting 58connecting 52definition of 9, 50, 51Delay 51delay time, defining 57, 65–67displaying name under icon 58Document command 59documenting 59entity processing time 57Gate 106–108

entity release policies 106gating policies 106

Generate 264–279Generate. See Generate Activityicons, choosing 58icons, labeling 59icons, showing name under 58icons, types 58linking 52Local Attributes 228Name field 58Properties dialog 56–60removing from model 56resources needed by, defining 57Synchronize 109Text Block 60time required to perform 65Transform 113–115

Unbatch 105using activity attributes in an expression 239

Activity Properties dialog fields 56–60Activity-Based Costing 164–176

Cost Calculations 175Cost Periods 170Reports 177–179Resource Costs 172–174

adding objects to a model 55–56animation

changing during simulation 82settings 82

ApplicationDefault Parameter Setting 204

Assemble Activity 100–102batch component entities 101

Assemble component entities pad 100Assign Activity 111–112, 230

Entity Priority 111User Defined Attributes 111

Attribute Value Initialization 246Attributes

Model Parameter 224Model Paramters 81System 218User Defined 220

Automatic saving 22B

Background Graphics 160Batch Activity 103–104

Batched Entity 104Maximum Batch Size 104maximum number of entities 104Maximum Wait Time 104Minimum Batch Size 104parent entity 104

Batched Entity, of Batch activity 104Both must be reached, Generate schedule field 267bottlenecks

sources of 52

SIMPROCESS User’s Manual 425

Index

Branch Activity 116–119Branch Connectors 119

Ccalendar dates

effect on simulation 78calendar event. See events, calendarcalendar schedule 267changing entity type 113Clipboard 328Color palette 327Comment field 57, 58Commit to Database 312Connectors

and Branch Activities 120definition of 9

connectorsAuto Label 120Branch Activities and 116, 120changing attributes 119defined 52definition of 9names, displaying 119Properties dialog box 119

converting entities from one type to another 113Copy Activity 99Copy Attributes, option of Transform activity 114–115Count Limit, of entity release 267Create Process/Activity From Menu 206cycle time

definition of 9Dispose activity and 68ending 68reports 188, 192

cyclical schedules 269–272defining 269–272See also sequence of eventstypes 269

DDatabase

Commit to Database 45database graphs 319Database Queries 317database reports 319Date field in calendar events 274Delay Activity 51, 65, 65–67Delay Duration

for Assemble activities 102for Batch activities 104for Unbatch activities 105

Delay Time field 65delay time, specifying 65–67deleting objects 56Display Error Alerts 350Display Error Alerts Field 343Displaying ABC Reports 177Dispose Activity 68Distribution

Beta 375Erlang 376Exponential 373Gamma 374Geometric 382Hyper Exponential 380Hyperbolic 383Lognormal 378Normal 371Poisson 379Triangular 372Uniform 370Uniform Integer 381Weibull 377

distributionsviewing graphically 63

Document commandtemplate for 59text editor for 59

Downtime Schedule 280Duration

for Assemble activities 102for Batch activities 104

426 SIMPROCESS User’s Manual

Index

Duration field 272E

Edit Element Parameters (Edit Ele Parm) 204Edit Library Parameters (Edit Lib Parms) 206editor, specifying 59Entities

adding 69–72assembling 100–102branching on priority 117branching on type of 117changing type of (Transform Activity) 113combining 100–102coordinating release of 109copying 71creation of 51cycle time 68defined 51defining 62, 69–72deleting 72destruction of 68, 105disposal of 68, 105duplicate (Copy Activity) 124Generate activity and 62icon, selecting 69, 70, 71input to Gate Activity 106instance (defined) 69origination of 51parent entities 103, 104priority 70, 117, 121

changing 111in Assign Activity 111of transformed entity 115

released by Gate Activity 106removing 72reports 185Transform Activity and 113type (defined) 69

entitiescyclical generation 269generation 264

generation schedule in event file 276none generated, reasons for 264Recorder 296Time Stamps vs. Recorder Objects 292tracking arrival and departure times 296using entity attributes in an expresssion 238

Entities, accumulating 106Entities, batching. See Batch ActivityEntities, limiting number in Dispose 68entity count 186event cycles

Repeat Sequence 271repeating 271scheduling of 275–276types 269–270

event files 276all defined option 278checking syntax of 277entity types, selecting 278identifying to SIMPROCESS 277new entities specified in 278

Event Logs 291, 292, 296Recorders 296Time Stamps 291

eventscalendar 267–276

Date field 274trigger point 274

changing sequence of 270–271Count Limit 273Duration 272duration of 272–273inactive periods 276Move 270moving 270No event 276number of times executed 271Repeat Event 273repeating 271scheduling of 276sequence of 270

SIMPROCESS User’s Manual 427

Index

single event 276upwards option 271

Experiment Manager 339Database Tables 340Define Experiments 45, 340Experiment Errors 350Experiment Operation 349Experiment Setup Form 342Experiment Trace 349Generating Standard Reports 353Interacting With Experiments 352Run All Experiments 46, 348Run Selected Experiments 46, 348Run Specific Experiment 46, 348

ExperimentsDefining Experiments 340Entering Design Information 344Entering Experiment Information 342Entering Model Information 343Entering Model Parameter Information 345Entering Process Alternative Information 346Entering Scenario Information 345Running Experiments 348Starting Experiments 348

Expressions 234–256Language Basics 234Using Attributes in 237

external data, using 276external files 276

Ffile, input to Generate activity

See event filesG

Gate Activity 106–108entity release policies 106gating policies 106Threshold Release 107Trigger Release Quantity 108used as a buffer 106

Generate Activity 55, 61–64, 264–279

active period of entity release 264Both must be reached 267calendar schedule, defining 267complex, defining 264–279Count Limit 267cyclical schedule, defining 269–272Daily schedule 268Date schedule 268Define Entity 62defining 61–64defining complex 264–279entities generated 61–63, 266entity release begin and end dates 264events. See sequence of eventsexternal event file 276inactive periods 276Interval 62–64, 267limiting number of entities generated 267Monthly schedule item 268periodic schedule, defining 266Quantity 62Release Begin 264release dates and simulation dates 264Release End 264schedule

calendar 268Daily 268Date 268defaults 266file input 276number of entities at each release 266Use default 266Weekly 268

schedule itemsadding 265Both must be reached 267copying 266Count 266Count Limit 267defining 265–269deleting 266

428 SIMPROCESS User’s Manual

Index

editing 265entity categories 266Interval 267limiting number of entities 267modifying 265Monthly 268periodic 266removing 266Yearly 268

Summary 278time between entity generation events 62–64,

267Weekly schdedule 268Yearly schedule item 268

Global Attributesdefining 221

Hhelp, getting

help topics 47online help 60

hierarchical models 50–51hierarchy, ascending 82historical data

See also event fileshistorical data, using 276Hold pad, of Gate activity 106Hyperexponential Distribution 380

IIcon dialog field 58icons

activity icons 58adding text to 59–60entities, listing 71labeling 59–60showing object name under 58

Image Editor 328, 329Initializing attribute values 246Integer Distribution 381interval between entity generations 62Interval dialog field 62

LLaunch Database Application 45, 314, 321, 340Library

Concepts 200Default Parameter Settings 204Management 202

limiting entities in Dispose activity 68Local Attributes

defining 228M

Manage Results form 314, 321Maximum Batch Size, of Batch activity 104Maximum Entity Count, Dispose activityparameter 68Maximum Wait Time, of Batch activity 104Minimum Batch Size, of Batch activity 104model

adding objects to 55–56checking for errors 81components 50–52hierarchical structure 50–51, 52removing objects from 56selecting objects in 56using Model Attributes in an expression 239Verify Model 81verifying 81

Model Attributesdefined 220using in an expression 239

model design 313Model Parameter 224Model Parameters 81Move command, events 270–271moving up a level in hierarchy 82

NName (dialog field) 58naming

activities 58no entities generated, reasons 264No Event schedule 276

SIMPROCESS User’s Manual 429

Index

Nod file 59Number of Pads, in Synchronize activity 109

Oobjects

adding to draw space 55–56deleting 56removing from draw space 56selecting several 56

Output Entity, Assemble activity 101P

padsAssemble and Release (Assemble Activity) 100connecting input and output 76connecting levels in model hierarchy 75defined 52definition of 12Hold and Trigger pads (Gate Activity) 106input pads 109number of in Synchronize activity 109Synchronize Activity 109

Palette barcontents 55using 55–56

palette icons 212Parameter Setting in Library 204parent entities 103parent entity 104PDF manuals 47periodic schedule 266priority

of transformed entity 115priority, of entities 70, 111

branching on 117probability

branching on 117Probability distributions 303processes

and model hierarchy 50–51connecting sub-processes 76defining 74–76

definition of 10, 50modifying 74sub-processes 74–76

activating 75active 75alternatives 75connecting to higher levels 76copying 75deleting 75modifying 75moving up a level 76

QQueue

Gate activity 106hold for condition 99wait for resource 52, 99

Rrandom distributions

specifying 62–64random number stream 64Recorder Objects

output file (recorder.msg) 296Recorders

Definition of 296Release Begin 264, 267Release End 264, 267Release pad (of Assemble) 100removing objects 56Repeat Sequence, events 271Reports

ABC 177activities 191–194attributes 190Costs 177default 182entities 185–188resources 188–190Standard 182

Resourcesactivities and 51

430 SIMPROCESS User’s Manual

Index

adding 73allocation policy 137availability of 52defining 73definition of 11Downtime Schedule 280–290entities and 51variable usage 232

root image 334Run Settings 40, 77running a simulation 81Running a Simulation with Model Parameters 81

Sscenario 314Schedule of events 270schedule, of Generate activity 265Selected Field 343sequence of events

Both must be reached 273calendar 273

entity generation start time 274entity generation, start of 275start time 274

definitionperiodic 272–273

Both must be reached 273start time 272

Set Entity Priority To, on Assign activity 111Set Entity User Attributes, on Assign activity 112Show Name checkbox 58Show Text checkbox 60SimDraw 46Simluation Output

Display ABC Reports 174simulation

animationoptions 82settings 82showing entities 70slowing 41

changing animation options 82duration of 68, 77End Date 77ending 68length of, in calendar time 77Max Count and 68options, run time 42, 77Pause 82pausing 82ratio of real time to simulation time 41restart after pause 82resuming after pause 82run dates 77run time settings 42, 77running 77–83slowing down 41Start Date 77starting 81stopping 68stopping temporarily 82

Simulation (menu item) 82Simulation Output

Display ABC Reports 177Display Standard Report 182

single event 276Standard Output Report 182StatFit 46, 301Statistical Distributions 369statistical distributions 308

specifying 62–64Statistical Output

Define Global Statistics Collection 44Define Real-Time Plots 44Display ABC Reports 45Display Standard Report 45, 83Entity Statistics 185Process/Activity Statistics 191Resource Statisitcs 188Simlation Results File 195Time Stamps 294using spreadsheet 83

SIMPROCESS User’s Manual 431

Index

Statistical Simulation Experiment 306–307Experimental Data 306Mean-Value Analysis 306

Stream 64Style palette 327Sub-Processes 74–76

definition of 11See also processes, sub-processes

Synchronize Activity 109System Attributes 218

TTabular Distributions

Procedures 92Template

Under Definepull down menu 206Template file directory 59template, for Document file 59Templates

Defining and Editing Templates 202Editing 202

Text Block 60Show Text 60

Threshold Quantity, of Gate activity 107Threshold Release, option of Gate activity 107Time Series Report 186Time Stamps

Assembled Entities 295Batched 295Definition of 291passing to an output entity 295Transformed Entities 295Viewing Reports 294

Transform Activity 113–115Copy Attributes 114–115Number of Entities Output 113Output Entity Type 113

Trigger Assemble, option of Assembleactivity 100, 101Trigger pad, of Gate activity 106trigger point, of calendar event 274, 275–276

Trigger Release Quantity, of Gate activity 108Triggered Release, Gate activity policy 106, 108

UUnbatch Activity 105, 105Use default 266User Defined Attributes 220

and Assign Activity 111, 230assigning values to 111, 230Branch On 117copying in Transform activity 115globally defining 221–227initializing values 246locally defining 228–229

User Defined DistributionsProcedures 90Two methods of creation 90

User Defined Functions 257V

Verify Model command 81View function 63viewing higher levels 82

432 SIMPROCESS User’s Manual