# 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)

<table border="1" id="bkmrk-objeto-source-funci%C3" style="border-collapse: collapse; width: 83.7037%; height: 191px;"><tbody><tr style="height: 31px;"><td style="width: 17.8772%; height: 31px;">Objeto</td><td style="width: 65.8264%; height: 31px;">**Combiner**</td></tr><tr style="height: 31px;"><td style="width: 17.8772%; height: 31px;">Función</td><td style="width: 65.8264%; height: 31px;">**Agrupación de entidades**</td></tr><tr style="height: 31px;"><td style="width: 17.8772%; height: 31px;">Clase</td><td style="width: 65.8264%; height: 31px;">**Fixed**</td></tr><tr style="height: 49px;"><td style="width: 17.8772%; height: 49px;">Process Triggers</td><td style="width: 65.8264%; height: 49px;">**Run Initialized, Run Ending, Parent Entered, Member Entered, Before Processing, Processing, After Processing, Exited, Failed, Repaired, Evaluating Seize Request, On Shift, Off Shift**</td></tr><tr style="height: 49px;"><td style="width: 17.8772%; height: 49px;">Asignación de estados</td><td style="width: 65.8264%; height: 49px;">**On Parent Entering, On Member Entering, Before Processing, After Processing, Before Exiting, On Balking, On Reneging**</td></tr></tbody></table>

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

<table border="1" class="align-left" id="bkmrk-propiedad-descripci%C3" style="border-collapse: collapse; width: 127.641%; height: 418px;"><tbody><tr style="height: 31px;"><td style="width: 13.8889%; height: 31px;">**Propiedad**</td><td style="width: 11.5124%; height: 31px;">**Tipo**</td><td style="width: 34.1049%; height: 31px;">**Descripción**</td></tr><tr style="height: 31px;"><td style="width: 13.8889%; height: 31px;">Batch Quantity</td><td style="width: 11.5124%; height: 31px;">Expression truncada a entero.</td><td style="width: 34.1049%; height: 31px;">Tamaño del batch. Corresponde al número de entidades miembro que se deben esperar antes de agruparlas y asociarlas a la entidad padre.</td></tr><tr style="height: 31px;"><td style="width: 13.8889%; height: 31px;">Initial Capacity</td><td style="width: 11.5124%; height: 31px;">Expression</td><td style="width: 34.1049%; height: 31px;">Capacidad 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.

</td></tr><tr><td style="width: 13.8889%;">Parent Transfer-In Time y Member Transfer-In Time</td><td style="width: 11.5124%;">Expression</td><td style="width: 34.1049%;">Corresponde 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.

</td></tr><tr><td style="width: 13.8889%;">Off Shift Rule</td><td style="width: 11.5124%;">List</td><td style="width: 34.1049%;">Indica 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.

</td></tr></tbody></table>

#### Add-On Process Triggers

<table border="1" id="bkmrk-trigger-descripci%C3%B3n" style="border-collapse: collapse; width: 100%; height: 403px;"><tbody><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">**Trigger**</td><td style="width: 74.6914%; height: 31px;">**Descripción**</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">Run Initialized</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando la simulación es iniciada.</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">Run Ending</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando la simulación está terminando.</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">Parent Entered</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando una entidad padre ha entrado al objeto y está por empezar el *Parent Transfer-In Time.*</td></tr><tr><td style="width: 25.3086%;">Member Entered</td><td style="width: 74.6914%;">Ocurre cuando una entidad miembro ha entrado al objeto y está por empezar el *Member Transfer-In Time.*</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">Before Processing</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando le ha sido asignada capacidad del Combiner a la entidad padre pero esta aún no ingresa a la estación de proceso.</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">Processing</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando la entidad padre ha sido transferida a la estación de proceso y está a punto de comenzar su procesamiento.</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">After Processing</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando la entidad padre ha completado su procesamiento y está por salir de la estación de proceso.</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">Exited</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando una entidad padre y su batch han salido del objeto.</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">Failed</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando este objeto ha fallado. </td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">Repaired</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando este objeto ha sido reparado.</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">Evaluating Seize Request</td><td style="width: 74.6914%; height: 31px;">Ocurre 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.</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">On Shift</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando el objeto está al inicio de un turno definido en su *Work Schedule.*</td></tr><tr style="height: 31px;"><td style="width: 25.3086%; height: 31px;">Off Shift</td><td style="width: 74.6914%; height: 31px;">Ocurre cuando el objeto está al término de un turno definido en su *Work Schedule.*</td></tr></tbody></table>

####   
  