13. Límites y comportamiento operativo
| Límite | Valor |
|---|---|
| Filas por página | 1000 por defecto; configurable por entidad y reducible con Prefer: odata.maxpagesize. |
Hijos por padre en un $expand de colección | 1000, salvo que uses $top anidado. |
Profundidad de $expand y de navegación en la URL | 2 niveles. |
| Versión del protocolo | OData 4.0. Un OData-MaxVersion que no empiece con 4 da 501. |
Cosas que conviene saber antes de que te sorprendan
- Los cambios de configuración tardan hasta un minuto — El catálogo de entidades y el
$metadatase cachean 60 segundos por cliente. Si el administrador habilita una entidad o cambia un campo, esperá un minuto antes de concluir que no funcionó. - Los nombres de propiedad son las columnas de la base — No las etiquetas. La etiqueta en español está en
Core.Descriptiondentro del$metadata, para mostrar en una interfaz. - Se lee de la vista de listado, no siempre de la tabla — Por defecto el servicio lee de la vista que el ERP usa para los listados. En general coincide con la tabla, pero puede tener menos columnas o filtrar filas. Si notás una diferencia con lo que ves en el ERP, es por acá y el administrador puede cambiarlo por entidad.
- Los nombres de entity set no distinguen mayúsculas —
/O_CUSTOMERSfunciona igual que/o_customers. Las respuestas siempre usan la forma canónica. OPTIONSpide credenciales — UnOPTIONSmanual sin header devuelve401. El preflight CORS del navegador no se ve afectado: lo contesta el servidor web antes de llegar a la API.Accept-Languagesolo afecta las etiquetas — Cambia losCore.Descriptiondel$metadatay los títulos del documento de servicio, si el ERP tiene traducciones cargadas. Nunca cambia los datos.- Las lecturas no ejecutan reglas de negocio — Los
GETcorren en una sesión de solo lectura. Solo las escrituras disparan las reglas y los scripts del maestro.