> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/data-logic/data-operations/replace-none.md).

# Replace None

Este bloque de función ofrece un mecanismo sencillo de respaldo: cuando la entrada principal falta (`None`), entrega un valor de reemplazo proporcionado por el usuario para que los bloques posteriores sigan recibiendo datos válidos.

## 📥 Entradas <a href="#inputs" id="inputs"></a>

* `Input Data` (Genérico) — Datos primarios a comprobar.
* `New Data` (Genérico) — Datos de reemplazo a usar cuando la entrada principal sea `None`.

## 📤 Salidas <a href="#outputs" id="outputs"></a>

* `Replaced Data` (Genérico) — Datos resultantes: o bien el `Input Data` original si está presente, o `New Data` cuando la entrada es `None`.

## 🕹️ Controles <a href="#controls" id="controls"></a>

Este bloque no tiene controles interactivos.

## 🎯 Características <a href="#features" id="features"></a>

* Respaldo mínimo y fiable para valores faltantes, evitando interrupciones en el flujo.
* Soporta tipos de datos genéricos: imágenes, números, texto, listas u otros.
* Comportamiento ligero y determinista: siempre pasa el valor original o el de reemplazo.

## 📝 Instrucciones de uso <a href="#usage" id="usage"></a>

1. Conecta la fuente que quieras proteger a `Input Data`.
2. Proporciona un valor por defecto o de respaldo en `New Data`. Puede ser un valor estático, un valor almacenado previamente o una imagen/número/texto de marcador de posición.
3. Lee el resultado desde `Replaced Data` y continúa el pipeline como de costumbre.

Ejemplos de uso: proporcionar una imagen de marcador cuando una cámara falla momentáneamente, suministrar un número por defecto para cálculos o pasar una cadena secundaria cuando falta una respuesta de red.

## ⚙️ Cómo se ejecuta <a href="#evaluation" id="evaluation"></a>

Cuando el flujo se ejecuta, este bloque comprueba si `Input Data` está presente. Si lo está, ese valor se reenvía. Si es `None`, el bloque reenvía el valor de `New Data`. Si ambos son `None`, la salida será `None` (por lo que asegúrate de proporcionar un respaldo significativo cuando sea necesario).

## 💡 Consejos y trucos <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Combínalo con `Is None` para crear lógica condicional (por ejemplo, activar una alerta solo cuando falta la entrada original).
* Úsalo con `Data Memory` para congelar y reutilizar el último valor válido como respaldo en `New Data`.
* En flujos de imagen (p. ej., desde `Camera USB` o `Stream Reader`), alimenta una imagen estática representativa en `New Data` para que visores como `Show Image` siempre muestren algo significativo.
* Empareja con `Debug Input` o `Data to JSON` para registrar cuándo se usan los respaldos y así supervisar la calidad de los datos.
* Para guardar eventos o resultados de respaldo, enlaza `Replaced Data` a `CSV Export` o `Image Logger` según el tipo de dato.

## 🛠️ Solución de problemas <a href="#troubleshooting" id="troubleshooting"></a>

* Si sigues viendo `None` en la salida, confirma que se proporciona un valor no-`None` a `Input Data` o `New Data`.
* Para pipelines de imágenes: si el respaldo aparece pero se ve incorrecto, verifica el formato (canales de color, tamaño) de `New Data` para que coincida con lo que esperan los bloques posteriores.
