> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Uso de lógica condicional en Blueprints

> Usa lógica condicional en los Blueprints de Iru Endpoint para asignar Library Items de forma dinámica según atributos del dispositivo, como la versión del sistema operativo o el tipo de modelo.

<Callout icon="earth-americas" color="#B84A7A" iconType="regular">Esta guía se aplica a todas las plataformas de dispositivos</Callout>

### Acerca de la lógica condicional en Blueprints

La lógica condicional te permite crear estrategias de implementación mediante instrucciones if/else y bloques condicionales. Puedes implementar diferentes configuraciones, apps y ajustes según los atributos del dispositivo, la información del usuario u otros criterios.

<Callout icon="triangle-exclamation" color="#EAB308" iconType="regular">A partir del 1 de abril de 2026, todos los Classic Blueprints heredados se convirtieron automáticamente en Assignment Maps, que son la versión predeterminada y mejorada de los Blueprints.</Callout>

### Cómo funciona

La lógica condicional se basa en una premisa sencilla: **si una condición es verdadera, aplica esta configuración; de lo contrario (else), aplica una configuración diferente.** El sistema evalúa las condiciones en orden; gana la primera coincidencia y no se comprueban más condiciones en ese bloque. Esto se construye mediante una interfaz visual en un lienzo infinito.

### Bloques condicionales: estructura y función

**¿Qué son los bloques condicionales?**

Los bloques condicionales son los componentes básicos de la toma de decisiones en los Assignment Maps. Cada bloque contiene un conjunto de condiciones if/else que determinan qué configuraciones se aplican según los atributos del dispositivo o del usuario.

**Flujo de evaluación:** cuando un dispositivo realiza un check-in, el sistema evalúa las condiciones en el orden en que aparecen. En cuanto una se evalúa como verdadera, se aplica esa configuración y el sistema pasa al siguiente bloque condicional. Las condiciones restantes del bloque actual se omiten.

**Componentes de los bloques condicionales**

* **Condiciones if/else:** agrupan criterios similares y se evalúan en orden; se aplica la primera condición que coincide. Si necesitas que otra condición se evalúe por separado, muévela a su propio bloque condicional. Para ver ejemplos (incluida la lógica basada en departamentos), consulta [Ejemplos de condiciones habituales de Assignment Map](#examples-of-common-assignment-map-conditions).

* **Nodos de asignación:** las condiciones lógicas (Assignment Rules) dentro de cada bloque. Definen los criterios que deben cumplirse y pueden hacer referencia a atributos del dispositivo (modelo, versión del sistema operativo, número de serie) o del usuario (departamento, ubicación, rol). Combina varias condiciones con los operadores AND/OR.

* **Línea raíz:** conecta todos los bloques condicionales con el flujo principal para que no haya callejones sin salida en tu Assignment Map.

**Entradas, operadores y valores admitidos**

La lógica condicional de Assignment Map admite las siguientes entradas, plataformas, operadores y valores:

| Entrada | Plataformas | Operadores | Valores de ejemplo |
| - | - | - | - |
| **Criterios del dispositivo** | | | |
| Familia de dispositivos | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is one of` `is not one of` | Mac, iPhone, iPad, Apple TV, Vision, Windows, Android |
| Tipo de inscripción | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` | Automated Device Enrollment, Manual Device Enrollment |
| Tipo de chip | <Icon icon="apple" size={14} /> | `is` | Apple Silicon, Intel |
| FileVault | <Icon icon="apple" size={14} /> | `is` | On, Off |
| Estado de supervisión | <Icon icon="apple" size={14} /> | `is` | Supervised, Not Supervised |
| Familia Mac | <Icon icon="apple" size={14} /> | `is one of` `is not one of` | iMac, iMac Pro, Mac Pro, MacBook, MacBook Pro, MacBook Air, Mac mini, Mac Studio |
| Etiqueta de activo | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | Honolulu, 123987, DEN-123845-MBP |
| Número de serie | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | QCM2XXXXXX |
| Versión del sistema operativo | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is greater than` `is less than` `is greater than or equal to` `is less than or equal to` `is between` | 14, 14.1, 16.2.2 |
| Etiquetas | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `are exactly` `are not exactly` `contain one of` `does not contain one of` | Test, Pilot, Production |
| Apple Beta Enrollment | <Icon icon="apple" size={14} /> | `is` `is not` `is one of` `is not one of` `is any` `is not any` | Versiones del sistema operativo que tienen una beta configurada (por ejemplo, una versión de macOS o iOS con un Token de inicialización) |
| <span style={{whiteSpace:'nowrap'}}>**Criterios del directorio de usuarios**</span> | | | |
| Departamento del usuario | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | Product |
| Correo electrónico del usuario | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | [admin@accuhive.io](mailto:admin@accuhive.io) |
| Nombre de usuario | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | jsmith |
| Cargo del usuario | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | Product Engineer |
| Grupo de usuarios | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is one of` `is not one of` | database-admins |

**Atributos específicos de plataforma y universales**

<Note>
  Algunos atributos de la tabla anterior son específicos de los dispositivos Apple (tipo de chip, FileVault, estado de supervisión, familia Mac, Apple Beta Enrollment). La familia de dispositivos se aplica a todas las plataformas y te permite seleccionar Mac, iPhone, iPad, Apple TV, Vision, Windows o Android.
</Note>

Los Assignment Maps funcionan en todas las plataformas de dispositivos (Apple, Windows y Android). Los atributos universales que funcionan en todas las plataformas incluyen: tipo de inscripción, familia de dispositivos, [etiquetas](/es/endpoint/devices/device-record-management/tags-for-devices), etiqueta de activo, número de serie, versión del sistema operativo, correo electrónico del usuario, grupo de usuarios, cargo del usuario y departamento del usuario. Puedes usar estos atributos universales para crear lógica condicional para dispositivos Windows y Android en los Assignment Maps.

### Creación y configuración de lógica condicional

<Note>
  Editar un Assignment Map en un Blueprint desencadena una reevaluación inmediata de todas las reglas.
</Note>

**Agregar lógica condicional a los Assignment Maps**

<Steps>
  <Step title="Agrega la lógica condicional inicial">
    Para Assignment Maps nuevos o sencillos sin lógica condicional existente, selecciona el botón **+ Add conditional logic** al editar tu Assignment Map.
  </Step>

  <Step title="Agrega bloques condicionales adicionales">
    Para Assignment Maps con lógica condicional existente, selecciona el botón **+** para agregar un nuevo bloque condicional en el lienzo.
  </Step>

  <Step title="Configura las Assignment Rules">
    Una vez que hayas agregado un bloque condicional, deberás configurar las Assignment Rules que se aplicarán a cada condición.
  </Step>

  <Step title="Edita la condición If">
    Selecciona el **icono de lápiz** dentro del bloque condicional para configurar las Assignment Rules que se aplicarán a la condición **If**.
  </Step>

  <Step title="Agrega Library Items">
    Sigue agregando los Library Items que quieras aplicar a las condiciones definidas en las instrucciones If, Else y Elseif de tus bloques condicionales.
  </Step>

  <Step title="Agrega más bloques condicionales">
    Puedes seguir agregando y configurando cualquier cantidad de bloques condicionales con los botones + de cada nodo de asignación.
  </Step>
</Steps>

**Configuración de las Assignment Rules**

Las Assignment Rules definen los criterios específicos que deben cumplirse para que una condición se evalúe como verdadera. Estas reglas pueden basarse en varios atributos:

* Atributos del dispositivo (modelo, versión del sistema operativo, número de serie)
* Atributos del usuario (departamento, ubicación, rol)

Al configurar las Assignment Rules, puedes combinar varios criterios con los operadores AND/OR. Por ejemplo, podrías crear una regla dirigida a "dispositivos MacBook Pro AND con macOS Sonoma AND en el departamento de Marketing" para dispositivos Apple, "versión del sistema operativo mayor o igual que 11.0 AND el departamento del usuario contiene Engineering" para computadoras Windows, o "el grupo de usuarios es uno de Sales AND las etiquetas contienen Production" para dispositivos Android.

Para agregar rutas adicionales dentro de un bloque condicional, selecciona el botón **+** para agregar una condición **else if** y configura las Assignment Rules para esa ruta. Esto te permite crear varias ramas dentro de un solo bloque condicional, cada una con su propio conjunto de configuraciones.

### Ejemplos de condiciones habituales de Assignment Map

**Implementación de software según el departamento**

```javascript Software Deployment lines theme={null}
Conditional Block: Software Deployment

if (Department equals "Marketing")
  - Install Adobe Creative Cloud
  - Install Figma
  - Install Slack

else if (Department equals "Engineering")
  - Install Visual Studio Code
  - Install GitHub Desktop
  - Install Docker

else if (Department equals "Finance")
  - Install QuickBooks
  - Install Excel Add-ins
  - Install Financial Reporting Tools

else
  - Install Basic Office Suite
```

Los dispositivos se evalúan según el departamento del usuario. Gana la primera condición que coincide y se instala el software correspondiente.

**Configuraciones de seguridad según la ubicación y el rol**

```javascript Security Configurations lines theme={null}
Conditional Block: Security Configurations

if (User Group equals "Remote" AND Role contains "Executive")
  - Apply Strict VPN Configuration
  - Enable Enhanced Security Monitoring
  - Require Biometric Authentication

else if (Location equals "Remote")
  - Apply Standard VPN Configuration
  - Enable Basic Security Monitoring

else if (Location equals "Office" AND Role contains "Executive")
  - Enable Enhanced Security Monitoring
  - Require Biometric Authentication

else
  - Apply Standard Security Configuration
```

Esta configuración aplica diferentes ajustes de seguridad según si el usuario trabaja en remoto o en la oficina, con requisitos más estrictos añadidos para los roles ejecutivos.

**Configuraciones según la versión del sistema operativo**

```javascript OS-Specific Configurations lines theme={null}
Conditional Block: OS-Specific Configurations

if (OS Version is greater than or equal to "15.0")
  - Apply macOS Sequoia Optimizations
  - Install Sequoia-Compatible Apps

else if (OS Version is greater than or equal to "14.0")
  - Apply macOS Sonoma Optimizations
  - Install Sonoma-Compatible Apps

else
  - Apply Legacy OS Configurations
  - Schedule OS Update Notification
```

Los dispositivos solo reciben configuraciones y apps compatibles con su versión actual del sistema operativo.

### Exclusión manual de dispositivos

Si quieres excluir un dispositivo de un Library Item en un Assignment Map, puedes usar la exclusión manual de dispositivos.

<Steps>
  <Step title="Selecciona el Library Item">
    Mientras editas tu Assignment Map, selecciona el Library Item del que quieres excluir un dispositivo.
  </Step>

  <Step title="Expande las exclusiones manuales">
    Expande la sección **Manual device exclusions**.
  </Step>

  <Step title="Agrega un dispositivo">
    Selecciona **+ Add device**.
  </Step>

  <Step title="Busca el dispositivo">
    Busca por nombre del dispositivo, número de serie, etiqueta de activo, nombre de usuario o correo electrónico.
  </Step>

  <Step title="Selecciona el dispositivo">
    Selecciona el dispositivo que quieres excluir del Library Item.
  </Step>

  <Step title="Agrega más dispositivos">
    Selecciona el **botón + Add device** si quieres excluir más dispositivos.
  </Step>

  <Step title="Quita dispositivos">
    Selecciona la **X** junto a un dispositivo concreto para quitarlo de la lista de exclusión.
  </Step>

  <Step title="Borra todas las exclusiones">
    Selecciona **Clear all** para quitar todos los dispositivos de la lista de exclusión de dispositivos.
  </Step>

  <Step title="Guarda los cambios">
    Cuando hayas completado todos los cambios, selecciona **Guardar**.
  </Step>
</Steps>

### Uso de la búsqueda y la consulta de dispositivos

El campo de búsqueda situado cerca de la parte superior izquierda del Assignment Map te permite buscar Library Items y reglas, o consultar un dispositivo o usuario.

**Búsqueda**

Si introduces un Library Item o una regla concretos, se localizará y resaltará el elemento en el Assignment Map. Esto puede ser útil cuando hay muchos elementos en el mapa y resulta difícil encontrarlos.

<Steps>
  <Step title="Introduce el término de búsqueda">
    Introduce el nombre del Library Item en el campo de búsqueda y selecciona **Jump to**.
  </Step>

  <Step title="Consulta el elemento resaltado">
    El Library Item seleccionado se resaltará en el Assignment Map.
  </Step>

  <Step title="Borra la búsqueda">
    Al seleccionar la **x** del campo de búsqueda, se quitará el resaltado del Library Item.
  </Step>
</Steps>

**Consulta de dispositivos y usuarios**

Consultar un dispositivo te permite ver la ruta del dispositivo a través de la lógica del mapa. Es una forma útil de solucionar problemas de la lógica y de asegurarte de que el dispositivo tiene todos los Library Items esperados en su ruta. Al buscar por usuario, puedes seleccionar cualquiera de los dispositivos asignados a ese usuario.

<Steps>
  <Step title="Accede desde el registro del dispositivo">
    Al ver un registro de dispositivo, puedes seleccionar la lupa junto al nombre del Blueprint para consultar el dispositivo en el Assignment Map.
  </Step>

  <Step title="Busca desde el Assignment Map">
    Al ver un Assignment Map, puedes introducir cualquier dato del dispositivo, como el número de serie, el nombre del dispositivo o el usuario asignado al dispositivo.
  </Step>

  <Step title="Consulta la ruta del dispositivo">
    Una vez seleccionado el dispositivo, se resaltarán los Library Items que se asignarán al dispositivo.

    <Note>
      Es un comportamiento esperado que el Library Item de Automated Device Enrollment aparezca siempre atenuado, ya que no se evalúa para la lógica condicional y siempre se aplica a los dispositivos aptos. Puedes ver el estado de las asignaciones de Automated Device Enrollment en la sección **Inscripción** de la navegación izquierda.
    </Note>

    <Note>
      Liftoff no admite Assignment Rules. Colócalo en el nodo **All Devices** al principio del Assignment Map para usarlo en ese Blueprint. Sigues pudiendo asignar un solo Library Item de Liftoff por Blueprint. Para obtener más información, consulta [Configurar el Library Item de Liftoff](/es/endpoint/library/library-items-profiles/configure-the-liftoff-library-item).
    </Note>
  </Step>

  <Step title="Sal de la consulta de dispositivos">
    Al seleccionar **Exit device lookup**, volverás a la vista predeterminada del Assignment Map.
  </Step>
</Steps>

### Prácticas recomendadas para usar la lógica condicional

**Mantén tu lógica organizada**

* Agrupa los bloques condicionales por finalidad (por ejemplo, las condiciones basadas en departamentos juntas y las basadas en ubicación juntas).
* Usa nombres significativos para los bloques y colócalos de forma lógica en el lienzo para que el flujo sea fácil de seguir.

**Prueba tu lógica condicional**

* Antes de implementar en producción, usa la función de consulta de dispositivos o usuarios para ver la ruta que sigue un dispositivo por el mapa. Esto te ayuda a detectar problemas antes de que afecten a los usuarios.
* Editar un Assignment Map desencadena una reevaluación inmediata de todas las reglas. Esto es útil para las pruebas, pero ten cuidado al cambiar mapas de producción.

**Usa la lógica más sencilla que funcione**

* Prefiere la solución más sencilla que satisfaga tus necesidades; la lógica compleja es más difícil de mantener y de solucionar.
* Para una lógica muy compleja, considera dividirla en varios Assignment Maps para que cada uno sea más claro.

**Documenta tus Assignment Maps**

* Documenta la finalidad y la lógica de tus mapas, sobre todo cuando tienen muchos bloques condicionales. Esto ayuda a todo tu equipo de IT a entender la estrategia de implementación.

### Consideraciones

En **Advanced View**, la forma en que introduces los criterios en las Assignment Rules afecta a si un dispositivo o usuario coincide. Ten en cuenta lo siguiente al configurar **User group**, **Mac family**, **User job title** y **User department**.

<CardGroup cols={2}>
  <Card title="Varios valores usan OR" icon="code-branch">
    Para **User group**, **Mac family**, **User job title** y **User department**, cada valor adicional que agregues a un criterio se combina con la lógica **OR**. El dispositivo o usuario solo necesita coincidir con uno de esos valores para que ese criterio se evalúe como verdadero.

    Por ejemplo, si **User group** es **is one of** con **Finance users** y **Engineer users**, un usuario de cualquiera de los dos grupos cumple la regla.
  </Card>

  <Card title="Autocompletado de grupos de usuarios" icon="users">
    **User group** ofrece autocompletado para los grupos que Iru ya conoce. Selecciona un grupo sugerido mientras escribes para mantener los nombres alineados con tu directorio y evitar errores tipográficos.
  </Card>

  <Card title="Cargo y departamento" icon="briefcase">
    **User job title** y **User department** no ofrecen autocompletado. Escribe cada valor completo para que coincida con la forma en que aparece el atributo en tu directorio o en los registros de RR. HH.
  </Card>

  <Card title="Chips y listas pegadas" icon="paste">
    Para agregar varios **cargos de usuario**, **departamentos de usuario**, **números de serie** o **etiquetas de activo**, pulsa **Enter** después de cada valor. La entrada actual se convierte en un chip para que puedas agregar más.

    También puedes pegar en el campo una lista separada por saltos de línea. Cada línea se convierte en su propio chip.
  </Card>
</CardGroup>

### Artículos relacionados

<CardGroup cols={3}>
  <Card title="Etiquetas para dispositivos" icon="tag" href="/es/endpoint/devices/device-record-management/tags-for-devices">
    Organiza y agrupa dispositivos mediante etiquetas
  </Card>

  <Card title="Crear un Blueprint" icon="box" href="/es/endpoint/blueprints/assignment-maps/creating-a-blueprint">
    Crea un Blueprint con Assignment Maps
  </Card>

  <Card title="Configurar Blueprints" icon="cog" href="/es/endpoint/getting-started/blueprints-and-library/configuring-blueprints">
    Crea y configura Blueprints de dispositivos para la administración de políticas
  </Card>

  <Card title="Enrutamiento de Blueprint" icon="route" href="/es/endpoint/enrollment/blueprint-routing">
    Configura la asignación dinámica de Blueprints durante la inscripción de dispositivos mediante Assignment Rules
  </Card>
</CardGroup>
