> 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/referencing/tag-from.md).

# Tag From

Este bloque de función expone un valor bajo un nombre de etiqueta definido por el usuario para que pueda referenciarse desde otras partes del escenario. Use los bloques `Tag To` para enviar variables dentro o entre partes de su flujo y `Tag From` para exponerlas o leerlas desde la disposición visual.

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

`Generic` input\
Conecte cualquier valor o dato que desee asociar con la etiqueta (números, texto, imágenes, listas, etc.).

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

Este bloque de función no proporciona salidas directas.

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

`Tag Name`\
Un campo de texto donde escribe el identificador de la etiqueta. El campo ofrece sugerencias de autocompletar para nombres de etiquetas existentes y ayuda a evitar errores tipográficos.

* Introduzca un nombre corto y descriptivo que otros bloques usarán para referenciar este valor.
* El control valida la unicidad de la etiqueta y mostrará un error si existe una etiqueta duplicada.

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

* Entrada genérica simple para asociar cualquier dato con una etiqueta nombrada.
* Autocompletado para el nombre de la etiqueta, para acelerar la configuración y reducir errores.
* Validación integrada para prevenir definiciones de etiqueta duplicadas y escrituras conflictivas.
* Retroalimentación visual cuando el bloque es inválido para localizar rápidamente problemas de configuración.

## 📝 Cómo funciona <a href="#usage" id="usage"></a>

1. Defina la etiqueta escribiendo un nombre en el control `Tag Name`.
2. Conecte los datos que desea exponer a la entrada `Generic`.
3. El bloque validará el nombre de la etiqueta e indicará cualquier conflicto.
4. Use bloques `Tag To` y bloques de referencia (`Data Read Local`, `Data Read Global`, etc.) para intercambiar o leer el valor en otras partes de su escenario.

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

* Para enviar valores desde otras partes del flujo, use `Tag To` junto con este bloque para compartir el mismo nombre de etiqueta entre emisor y receptor.
* Mantenga o comparta el valor de la etiqueta fuera del flujo inmediato combinándolo con `Data Write Local` / `Data Read Local` o `Data Write Global` / `Data Read Global`.
* Use `Debug Input` para inspeccionar rápidamente los valores que se pasan a la entrada `Generic` durante el desarrollo.
* Congele o almacene en caché valores con `Data Memory` si quiere que el valor de la etiqueta permanezca estable hasta que lo actualice explícitamente.
* Al compartir datos estructurados, combínelo con `Data to JSON` para crear una carga JSON para registro o exportación mediante `CSV Export` o `Image Logger` cuando corresponda.

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

* Error de etiqueta duplicada\
  Si ve una advertencia de etiqueta duplicada, cambie el nombre en el campo `Tag Name` para que cada bloque `Tag From` tenga una etiqueta única.
* Escrituras en conflicto\
  El bloque señalará un error si un bloque `Tag To` intenta escribir en la misma etiqueta de manera conflictiva. Verifique los nombres de etiqueta y el flujo de datos previsto.
* No hay datos disponibles\
  Si no aparece ningún dato para la etiqueta, asegúrese de que el bloque fuente esté conectado a la entrada `Generic` y esté generando un valor. Use bloques como `Is None` o `Replace None` para proteger la lógica aguas abajo si la etiqueta puede estar vacía.
* Autocompletar no muestra los nombres esperados\
  El autocompletado sugiere nombres de etiqueta recopilados del escenario actual. Si falta un nombre, verifique que la etiqueta que espera esté definida en otra parte (por ejemplo con `Tag To`) y guardada en el escenario.

Si necesita pasar valores entre subsistemas o mantener valores entre iteraciones, prefiera combinar este bloque con los bloques de referencia y almacenamiento mencionados arriba para flujos más robustos y mantenibles.
