As described in the section Entities and Values in Chapter 4: Simulation Models, data values in Simulation Studio can be numbers, character strings, Boolean values, or objects. Frequently used object types include data model objects and observation objects. A data model object can be viewed as an in-memory representation of a SAS data set or JMP table during a simulation run. It contains information or values specified in rows, columns, and cells. An observation object represents one row of a data model object. It can be viewed as the simulation-time representation of a data observation from a SAS data set or a data row of a JMP table. The data model and observation objects are used in Simulation Studio blocks to represent data for various access and collection tasks. For example, you can use the Dataset Holder block from the Data and Display template as a holding facility for a data model object, making it useful both for matrix computations and also for modeling scenarios that require repeated access to a data set (look-up table) to perform a particular computation. During a simulation run, you can access through user-defined output ports the contents of a data model object (such as individual data cell values and observation objects) that is stored in a Dataset Holder block and you can pass the queried results to other blocks in the model.
Figure 12.1 is a model of a machining center where parts are processed at four different stations in a particular sequence that is based on part type. In this example, a Dataset Holder block with one user-defined output port (located at the bottom right of the Dataset Holder block) is used to hold the machining sequence data set, which is displayed by using a Table block (located at the bottom left of Figure 12.1). The data set value that is pulled from the bottom right output port is a particular cell value based on part type; it indicates the next station in the processing sequence. In this example, the Dataset Holder block holds a data set that is used repeatedly by all entities. An alternative is to store the information in the machining sequence data set as entity attributes, but that would result in the same data being stored multiple times. A complete description of this Machining Center example can be found in the section Machining Center Model in Appendix E: Examples of Simulation Studio Models.
Figure 12.1: Machining Center Model
The functionality of a Dataset Holder block can be viewed as analogous to that of a Number Holder block with the To Downstream and From Upstream propagation options turned off. Whereas the Number Holder block holds a single numeric value, the Dataset Holder block can hold a collection of related numeric or character data values in the form of a data set.