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.
Avalados por :
Boa tarde,
Estou desenvolvendo um aplicativo CAP em Node.js que expõe um serviço (TicketsService) composto por duas entidades:
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-
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.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute