🟢 Introducción
En Dataverse, cada registro tiene un GUID único que lo identifica internamente. Sin embargo, a veces necesitamos que nuestros datos también puedan identificarse con atributos significativos, como un número de cliente, un código de producto o un identificador externo de un ERP/CRM.
Para eso existen las Alternate Keys, una funcionalidad poderosa para garantizar integridad, evitar duplicados y facilitar integraciones con sistemas externos.
🧠 Qué tal es / para qué sirve
Una Clave Alterna (Alternate Key) es un campo o combinación de campos que el sistema usa para identificar un registro de forma única, además del GUID.
Sirve para:
🔗 Integraciones: permitir que APIs externas creen/actualicen registros basándose en un código único conocido. 🧹 Evitar duplicados: impide que varios registros tengan el mismo valor clave. 📦 Migración de datos: facilita “upsert” (crear si no existe, actualizar si ya existe). ⚙️ Sincronización con sistemas externos que no manejan GUID.
🧩 Cómo se configuran (sintaxis / pasos)
No es una función de Power Fx: se configuran desde Dataverse dentro de una solución.
📌 Pasos para crear una Alternate Key
Abre Power Apps → Solutions. Abre tu solución o crea una nueva. Selecciona la tabla donde deseas agregar la clave alterna. Ve a Keys. Selecciona + New key. Elige uno o varios campos de tipo texto, entero, opción, fecha, etc. Guarda y publica.
💡 Dataverse creará un índice interno que garantiza unicidad (esto puede tardar algunos segundos/minutos según tamaño de la tabla).
💻 Ejemplos prácticos
🔹 Ejemplo 1 — Código de cliente como llave
Tabla: Clientes
Campos: CodigoCliente
Alternate Key:
Clientes.CodigoCliente
➡ Permite que integraciones externas usen /clientes(CodigoCliente=’ABC123′).
🔹 Ejemplo 2 — Llave compuesta (más de un campo)
Tabla: Inventario
Campos:
Almacen SKU
Alternate Key:
Inventario.Almacen + Inventario.SKU
➡ Evita que existan dos registros del mismo SKU en el mismo almacén.
🔹 Ejemplo 3 — Sincronización con ERP
ERP envía un lote de productos.
Cada producto tiene un ProductCode.
Gracias a la clave alterna:
Si ProductCode existe → se actualiza el registro. Si no existe → se crea uno nuevo.
(No necesitas buscar manualmente ni usar global option sets.)
🧱 Buenas prácticas
✅ Usa claves alternas cuando integras Dataverse con otro sistema que tiene su propio identificador único.
✅ Prefiere campos tipo texto para claves externas.
✅ Si usas claves compuestas, asegúrate de que ningún campo pueda quedar en blanco.
✅ Documenta la clave dentro de la solución (otros desarrolladores lo agradecerán).
✅ Revisa la longitud de los campos clave (los índices tienen límites).
✅ Úsalas en combinación con Flujos de integración, Power Automate o Azure Data Factory.
⚠️ Errores comunes
🚫 Intentar crear claves alternas sobre campos que no cumplen unicidad → fallará la publicación.
🚫 Usar campos que pueden cambiar frecuentemente (como un nombre).
🚫 Crear demasiadas claves alternas en la misma tabla → afecta rendimiento.
🚫 Eliminar o modificar campos que forman parte de la clave → Dataverse bloqueará la acción.
🚫 Asumir que una clave alterna reemplaza reglas de negocio — solo garantiza unicidad.
🔄 Variantes o alternativas
Primary Key (GUID): siempre presente, interno. Business Rules: para validaciones complejas (pero no garantizan unicidad). Duplicate Detection Rules: útil para interacciones manuales, pero menos potente que claves alternas. Flujos con lógica personalizada: en casos donde la unicidad depende de muchas condiciones.
📚 Recursos oficiales (verificados)
- https://learn.microsoft.com/en-us/power-apps/developer/data-platform/create-alternate-key
- https://learn.microsoft.com/en-us/power-apps/developer/data-platform/define-alternate-keys
- https://learn.microsoft.com/en-us/power-apps/developer/data-platform/upsert-entity-web-api
🧩 Mini práctica
Abre una solución y selecciona la tabla Productos. Crea un campo nuevo llamado CodigoProducto (Texto). Ve a Keys → New Key. Selecciona CodigoProducto como clave alterna. Publica. Prueba crear dos productos con el mismo código y observa cómo Dataverse bloquea el duplicado. Desde Power Automate, crea un flujo que haga un “Upsert” usando el campo CodigoProducto. Comprueba que: Si el código existe → actualiza Si no existe → crea


Deja un comentario