Obtención de $ metadatos para una colección o entidad específica con los servicios web de Odata en Microsoft Dynamics NAV 2016

El entorno

Como parte de un proyecto de integración, necesito un sitio web PHP para poder leer y escribir en los servicios Odata de Microsoft Dynamics NAV 2016.

Usos de Microsoft Dynamics NAV 2016el estándar Odata v3.

El contexto

Ahora tomemos micustomer servicio como ejemplo.

Obteniendo una colección de entidades

Obteniendo una visión general de mi colección decustomer entidades funciona bien, utilizando un enlace con el siguiente formato:

https://<Server>:<WebServicePort>/<ServerInstance>/OData/Company(\'<CompanyName>\')/customer
Obteniendo una sola entidad

Obteniendo un solocustomer entidad basada enid funciona bien, usando un enlace con el siguiente formato:

https://<Server>:<WebServicePort>/<ServerInstance>/OData/Company(\'<CompanyName>\')/customer(\'<Id>\')
Obteniendo los metadatos globales

Obteniendo una visión general de la$metadata para todos mis servicios funciona bien (aunque carece de soporte de Json), usando un enlace con el siguiente formato:

https://<Server>:<WebServicePort>/<ServerInstance>/OData/$metadata
Obteniendo metadatos específicos de la colección

Ahora, basado en amboslas especificaciones de Odata v3 y el valor de laodata.metadata propiedad de mi servicio de descripción general de clientes, espero poder obtener una descripción general de$metadata delcustomer entidad, utilizando un enlace con el siguiente formato:

https://<Server>:<WebServicePort>/<ServerInstance>/OData/$metadata#customer

Esto no funciona como se esperaba. Ver subsecciónThe issue abajo.

Obteniendo metadatos específicos de la entidad

Del mismo modo, basado en amboslas especificaciones de Odata v3 y el valor de laodata.metadata propiedad de mi conjunto de datos al recuperar un solo cliente, espero poder obtener una visión general de la$metadata de un solo campo de lacustomer entidad, utilizando un enlace con este formato:

https://<Server>:<WebServicePort>/<ServerInstance>/OData/$metadata#customer/@<FieldName>

Esto no funciona como se esperaba. Ver subsecciónThe issue abajo.

La cuestión

Por alguna razón, todo lo que sigue$metadata Parece ser ignorado. Esto significa que las últimas tres URL me dan exactamente la misma salida, que no es lo que esperaba.

La (s) pregunta (s) real (es)¿Es posible obtener los metadatos de una sola colección o entidad, como estoy intentando en las subseccionesFetching collection-specific metadata yFetching entity-specific metadata de miThe context sección anterior?Si es así, ¿qué estoy haciendo mal aquí? ¿Qué me estoy perdiendo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta