¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Erros ao criar um novo Relatório em um aplicativo CAP em Node.js: Solução para TypeError indefinido

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Boa tarde,
Estou desenvolvendo um aplicativo CAP em Node.js que expõe um serviço (TicketsService) composto por duas entidades:

  1. Tickets : entidade principal, projeção de uma entidade remota.
  2. Reports : entidade local, associada a Tickets onde a relação Tickets:Reports é 1:*.

Reports utiliza o aspecto cuid , assim o campo de ID é gerado automaticamente ao criar um novo Relatório.

Sem implementar manipuladores personalizados, consigo executar com sucesso operações CRUD na entidade Reports aproveitando os provedores genéricos fornecidos pelo CAP.

Depois implementei manipuladores personalizados do TicketsService para lidar com as leituras de Tickets (que funcionam bem), assim como o manipulador READ na entidade Reports .

Depois, chegou a hora do manipulador CREATE, que simplesmente defini da seguinte forma:

this.on("CREATE", Reports, async (req, next) => {
    return await cds.run(req.query);
})<br>

já que não preciso lidar com lógica personalizada para a criação de Reports .

O problema ocorre quando tento enviar uma solicitação POST para criar um novo Relatório:

[cds] - ?TypeError não capturado: Não é possível ler propriedades de indefinido (lendo 'ID')
    em 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)
    em 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)
    em 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)
    em 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)
    em /home/user/projects/reg-reports/node_modules/@sap/cds/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-    
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

Consegui resolver o problema. A instrução problemática era:

return await super.init();

que não estava sendo chamada no método on.init() dentro do controlador.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?