As flowitems move through your model, they enter and exit Fixed Resource objects. Each flowitem will follow a path similar to the one displayed above. This path is for a Processor object.
Example
Consider a flowitem entering a Processor. The following images show where each trigger and picklist can be accessed through the Processor's Properties window. Some of these can also be accessed through the Quick Properties.
Step 1: OnEntry
When the Entry Trigger fires, the flowitem has already been moved into the Processor object, so the content of the Processor increases by one. Code can be added to the OnEntry trigger to customize what occurs when the flowitem enters.
Step 2: Setup Time
The next segment of code to fire is the Setup Time. This picklist gives you the option to define the number of model time units it takes for the flowitem to be "setup" in the Processor.
Step 3: Pick Operator
If the "Use Operator(s) for Setup box is checked, the Pick Operator code will fire, calling to a TaskExecuter object. There is a delay associated with calling an operator as the operator must move from their current location to the Processor. The delay may lengthen if there are no available operators when the Pick Operator code is fired.
Step 4: OnSetupFinish
Once setup is complete, the Setup Finish Trigger will fire.
Step 5: Process Time
Similar to the Setup Time, this picklist allows you to define a Process Time for the flowitem.
Step 6: Pick Operator
If the "Use Operator(s) for Process" is checked, the Pick Operator will fire. If operators were used for the Setup and Process, and "Use Setup Operator(s) for both Setup and Process" is unchecked, then this picklist will fire twice, once to call a setup operator and then again to call a process operator. Otherwise, this picklist will only be called once.
Step 7: OnProcessFinish
Once setup is complete, the Process Finish Trigger will fire.
Step 8: Send to Port
At this point, the flowitem is ready to leave the Processor, or FixedResource object. The Send To Port will fire and attempt to find a destination for the flowitem. The possible delay happens if the object is unable to find an available destination for the flowitem. This typically happens when downstream objects are full and have no available space to accept the flowitem. It may also be because downstream FixedResource objects are stopped, or their inputs are closed.
Step 9: Use Transport
If "Use Transport" is checked, and once a destination has been founding using the Send to Port, the Use Transport picklist with fire to call a Task Executer to the Processor to transport the item from the Processor to its destination. Again, this will result in a delay as an available operator is found and moves to the Processor.
Step 10: OnExit
Finally, the Exit Trigger fires. When this trigger fires, the flowitem has not yet exited the Processor, so the content of the processor remains unchanged. Once this trigger is complete, the flowitem will be moved from the processor (decreasing its content by 1) and into the Task Executer or downstream Fixed Resource object. If you need code to be executed when an item leaves a FixedResource, but it needs to be fired immediately following the item actually be moved from the object, call senddelayedmessage() with a delay time of 0.