# Combiner [![StandardLibraryMenu_Combiner.png](https://simulemos.cl/uploads/images/gallery/2019-04-Apr/scaled-840-0/nnkOpb9Skw9aqxiZ-StandardLibraryMenu_Combiner.png)](https://simulemos.cl/uploads/images/gallery/2019-04-Apr/nnkOpb9Skw9aqxiZ-StandardLibraryMenu_Combiner.png)
Objeto**Combiner**
Función**Agrupación de entidades**
Clase**Fixed**
Process Triggers**Run Initialized, Run Ending, Parent Entered, Member Entered, Before Processing, Processing, After Processing, Exited, Failed, Repaired, Evaluating Seize Request, On Shift, Off Shift**
Asignación de estados**On Parent Entering, On Member Entering, Before Processing, After Processing, Before Exiting, On Balking, On Reneging**
Este objeto permite crear grupos de entidades y asociarlos a una entidad representativa. Las entidades a agrupar se denominan **miembros** (*Member Entity*) y la entidad representativa se conoce como **entidad padre** *(Parent Entity).* Al grupo de entidades miembro se le llama *Batch.* El objeto cuenta con dos nodos de entrada y uno de salida (*Output*). El primer nodo de entrada (*ParentInput)* recibe a las entidades padre y el segundo (*MemberInput)* a las entidades miembro. Cada grupo está compuesto únicamente de una entidad padre y el número de entidades miembro está definido en la propiedad **Batch Quantity.** Las entidades, luego de ingresar, esperan en sus respectivos buffers de entrada hasta que se cumpla que existe al menos una entidad en la cola de entidades padre y un número de entidades miembro igual a lo definido en la propiedad *Batch Quantity.* Cumplido este requisito, las entidades pasan a la cola de procesamiento, el *batch* es creado y es asignado a la entidad padre. Finalmente la entidad padre abandona el objeto a través de su nodo de salida. Este objeto permite asignar un tiempo de proceso a la etapa de agrupación, este se define en la propiedad **Processing Time**. #### {{@2#bkmrk-tipos-de-capacidad-%28}} {{@2#bkmrk-la-capacidad-represe}} {{@2#bkmrk-fija-%28fixed%29%3A-la-cap}} [![StandardLibraryGIF_Combiner.gif](https://simulemos.cl/uploads/images/gallery/2019-03-Mar/8VSHAM1htZAI7HV6-StandardLibraryGIF_Combiner.gif)](https://simulemos.cl/uploads/images/gallery/2019-03-Mar/8VSHAM1htZAI7HV6-StandardLibraryGIF_Combiner.gif) [![StandardLibraryFacility_Combiner.png](https://simulemos.cl/uploads/images/gallery/2019-04-Apr/scaled-840-0/eYCW5NUEluUQg39a-StandardLibraryFacility_Combiner.png)](https://simulemos.cl/uploads/images/gallery/2019-04-Apr/eYCW5NUEluUQg39a-StandardLibraryFacility_Combiner.png) Objeto Combiner visto en vista Facility (2D) #### Algunas propiedades
**Propiedad****Tipo****Descripción**
Batch QuantityExpression truncada a entero.Tamaño del batch. Corresponde al número de entidades miembro que se deben esperar antes de agruparlas y asociarlas a la entidad padre.
Initial CapacityExpressionCapacidad inicial del Combiner. Corresponde a la cantidad de batchs que se pueden procesar de forma simultánea. Se evalúa al comenzar la simulación.
Parent Transfer-In Time y Member Transfer-In TimeExpressionCorresponde al tiempo que toma transferir una entidad al Combiner. Estos tiempos corren de forma simultánea. Por ejemplo, si los tiempos de transferencia de la entidad padre y las entidades miembro son 1 y 2 minutos respectivamente, y, suponiendo que ambas llegan al mismo tiempo, entonces en el minuto 2 ambas estarán listas para ser procesadas.
Off Shift RuleListIndica la política que utilizará el objeto para determinar qué hacer cuando se acabe el turno y exista una entidad en proceso. *Suspend Processing*: se suspende el procesamiento y continua en el siguiente turno. *Finish Work Already Started*: no procesará nuevas entidades pero terminará las que se encuentran actualmente en proceso.
#### Add-On Process Triggers
**Trigger****Descripción**
Run InitializedOcurre cuando la simulación es iniciada.
Run EndingOcurre cuando la simulación está terminando.
Parent EnteredOcurre cuando una entidad padre ha entrado al objeto y está por empezar el *Parent Transfer-In Time.*
Member EnteredOcurre cuando una entidad miembro ha entrado al objeto y está por empezar el *Member Transfer-In Time.*
Before ProcessingOcurre cuando le ha sido asignada capacidad del Combiner a la entidad padre pero esta aún no ingresa a la estación de proceso.
ProcessingOcurre cuando la entidad padre ha sido transferida a la estación de proceso y está a punto de comenzar su procesamiento.
After ProcessingOcurre cuando la entidad padre ha completado su procesamiento y está por salir de la estación de proceso.
ExitedOcurre cuando una entidad padre y su batch han salido del objeto.
FailedOcurre cuando este objeto ha fallado.
RepairedOcurre cuando este objeto ha sido reparado.
Evaluating Seize RequestOcurre cuando el objeto está determinando si aceptará o no la solicitud de capacidad por parte de la entidad. Para rechazar se debe asignar un valor negativo al *ReturnValue* del Token.
On ShiftOcurre cuando el objeto está al inicio de un turno definido en su *Work Schedule.*
Off ShiftOcurre cuando el objeto está al término de un turno definido en su *Work Schedule.*
####