Tip: Olvida la columna “primary key”

Si tienes experiencia con Dynamics 365 y sus consultas, ya estarás familiarizado con este tip. Pero no son pocas veces que bien viene recordarlo: en tus consultas sobre entidades, ¡no es necesario solicitar el primary key!

Pensemos el siguiente escenario. Se necesita el contactid y fullname de los contactos activos de sexo masculino.

Primero, hagamos una prueba de solicitud para obtener sólo el id de los contactos. El fetch sería el siguiente:

Petición base solicitando exclusivamente el contactid.

Utilizando FetchXML Builder, ejecutamos la petición. Aparentemente no hay registros obtenidos:

Aparentemente, no hay registros.

¿Cómo es posible? Un pequeño detalle: no estaba seleccionada la opción Show Record Id abajo en las opciones de visualización. Si lo activamos, nos quedamos más tranquilos:

Activamos la opción “Show Record Id”.
Entonces se muestra la columna “Id”. Apreciar que no es “contactid”

Si nos fijamos, la columna contactid no se ha mostrado por defecto cómo habíamos pensado.

Ahora partiendo de lo anterior, ampliamos la consulta para obtener el Full Name y obtener lo que necesitamos:

Obtenemos el contactid y el fullname.

Fin del asunto. Sin embargo, lo importante es ver que la columna contactid no aparece como tal sino como id. Lo mismo sucederá en otras entidades. ¿Por qué? Porque si bien pueden hacerse consultas solicitando dicha columna en concreto, por defecto, la API siempre devuelve el id de los registros obtenidos.

De tal manera, si eliminamos la columna contactid en la solicitud, obtendríamos también el mismo resultado requerido:

Petición sin solicitar contactid nos da igualmente el id del contacto.

Sabiendo esto -que aplica también en código- podemos simplificar nuestras consultas y hacerlas aún más ligeras, ajustando al máximo las peticiones.