Logré resolver el problema. La instrucción problemática era:
return await super.init();
que no estaba siendo llamada en el método on.init() dentro del controlador.
Avalados por :
Buenas tardes,
Estoy desarrollando una aplicación CAP en Node.js que expone un servicio (TicketsService) compuesto por dos entidades:
Reports utiliza el aspecto cuid , por lo que el campo de ID se genera automáticamente al crear un nuevo Reporte.
Sin implementar manejadores personalizados, puedo ejecutar con éxito operaciones CRUD en la entidad Reports aprovechando los proveedores genéricos proporcionados por CAP.
Luego implementé los manejadores personalizados de TicketsService para gestionar las lecturas de Tickets (que funcionan bien), así como el manejador READ en la entidad Reports .
Luego, llegó el momento del manejador CREATE, que simplemente definí de la siguiente manera:
this.on("CREATE", Reports, async (req, next) => {
return await cds.run(req.query);
})<br>
ya que no tengo que manejar lógica personalizada para la creación de Reports .
El problema ocurre cuando intento enviar una solicitud POST para crear un nuevo Reporte:
[cds] - ❗️TypeError no capturado: No se pueden leer propiedades de indefinido (leyendo 'ID')
en UriHelper.buildEntityKeys (/home/user/projects/reg-reports/node_modules/@sap/cds/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/UriHelper.js:85:22)
en ResponseHeaderSetter.setLocationHeader (/home/user/projects/reg-reports/node_modules/@sap/cds/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ResponseHeaderSetter.js:102:17)
en SetResponseHeadersCommand.execute (/home/user/projects/reg-reports/node_modules/@sap/cds/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SetResponseHeadersCommand.js:66:30)
en CommandExecutor._execute (/home/user/projects/reg-reports/node_modules/@sap/cds/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/CommandExecutor.js:71:17)
en /home/user/projects/reg-reports/node_modules/@sap/cds/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-
Logré resolver el problema. La instrucción problemática era:
return await super.init();
que no estaba siendo llamada en el método on.init() dentro del controlador.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute