top of page
  • Foto del escritorAndres Biarge

¿Cómo encontrar el Set Name de una Tabla (de intersección) - Dominando la Dataverse Web API

Estoy trabajando en un artículo algo más interesante, pero igualmente me he tomado el tiempo para compartir contigo un tip de esos que encuentras con sudor (y sangre) acerca de cómo usar la Dataverse Web API. Si sigues leyendo, te mostraré cómo obtener la URL para hacer una query sobre cualquier tabla en Dataverse (¡incluidas las tablas de intersección!).


¡Espero que te guste!


Introducción

Para usar con fluidez la Dataverse Web API, necesitarás un poco de mano con el estándar OData. Lo usamos con muchas tecnologías, como por ejemplo el SharePoint Online Connector. Y tú, ¿has tenido problema intentnado encontrar cómo componer la URL para hacer una query a una tabla? Yo sí, así que voy a compartir contigo lo que aprendí en un proyecto donde tuve que migrar datos de un producto legacy hacia Dataverse.


Para ahorrarte algo de tiempo, sigue la lógica de esta tabla de ejemplos para componer una URL:

Entity

​Logical Name

How it ends

What you need to add

Dataverse Web API query example (using the "set name")

Table

ab_projects

With an 's'

'es'

Table

ab_employee

Without an 's'

's'

Many to Many Relationship table name

ab_projects_ab_employee

N/A

'set'


Cómo encontrar el "Set Name" de una Tabla Custom / Standard


Para trabajar programáticamente con Dataverse usando la Web API o Power Automate en escenarios complejos, necesitarás el "Set Name" de las tablas con las que trabajes. Éste lo puedes encontrar directamente desde el editor:


Echemos el freno un momento y apreciemos los links que nos proporciona Microsoft (no hace mucho que están ahí los accesos rápidos):


¿Qué es la definición de una Tabla (sus Metadatos)?

Cuando modificas columnas y relaciones entre tablas - entre otros- desde el editor, estás modificando los metadatos de la tabla que configuran ese comportamiento. Puedes informarte más aquí:

Si haces clic sobre el link "API link to table definition", accederás a esos metadatos (y otra información relevante, como la definición de los privilegios sobre la tabla):



Encontrar el "Set Name" de una Tabla de Intersección (Many-to-Many relationship)


Encontrar ese "Set Name" para una tabla de intersección va a ser un poco más difícil:

¿Qué es una tabla de intersección?

Cuando configuras una relación Many-to-Many (N:N), Dataverse creará - internamente- una tabla poder registrar la relación entre las tablas relacionadas:

Esto no ocurrirá para una relación Many-to-One (N:1) o One-to-Many (1:N), ya que Dataverse registrará el ID del lado del "One" en las filas del lado del "Many" y con eso ya es suficiente.


Opción 1: Desde el portal + un truco


Desde el portal, sigue estos pasos

  1. Abre el panel de la relación Many-to-Many

  2. Copia el prefijo + nombre donde pone "Relationship table name"

  3. Añade un "set" al final



Opción 2: Echando mano de la Entity Definition (metadata)

Si has reproducido el ejemplo por tu lado, te habrás dado cuenta de algo interesante cuando hemos accedido a los metadatos de la tabla:


… habrás saltado a una pestaña con una URL parecida a esta:

Pues ahora sólo sustituye tu equivalente a "ab_projects" por "ab_projects_ab_employee" (el prefijo + nombre del paso anterior):

Cuando cargue, podrás ver el atributo EntitySetName:


Resumiendo


Hemos visto cómo obtener el "Set Name" de cualquier tabla en Dataverse (incluida una tabla de intersección). Esto te será útil cuando uses la Dataverse Web API o el Power Automate Connector.


Bueno, espero que este artículo te haya servido. Si es así, agradeceré tu feedback en los comentarios y si estás interesad@ en que escriba sobre algo concreto, ¡házmelo saber!


Nos vemos,


Andres

16 visualizaciones0 comentarios
bottom of page