Obtención de $ metadatos para una colección o entidad específica con los servicios web de Odata en Microsoft Dynamics NAV 2016
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 contextoAhora tomemos micustomer
servicio como ejemplo.
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 entidadObteniendo 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 globalesObteniendo 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ónAhora, 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.
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.
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.
Fetching 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?