para fazer o resumo da execução eu vou colar uma sequência de componentes na plataforma e vou explicar Qual é a funcionalidade desses componentes então aqui Ups devo colar aqui na plataforma esses componentes e aqui vamos fazer o seguinte nesse caso de resumo da execução nós vamos utilizar o banco de dados Cassandra e para poder fazer inserção nesse banco de dados nós temos que criar uma tabela anteriormente que no meu caso já está criada aqui aqui PR para poder inserir de maneira adequada nessa tabela eu tenho aqui todos os registros que eu que eu vou inserir
na tabela com seus devidos nomes por fim vamos passar um por um e entender melhor o que tá acontecendo Então anteriormente fizemos eh a configuração do on process do nosso faite e porém pode haver casos de erro dentro desse on process e quando isso acontecer nós seremos redirecionados para o One Exception que é o fluxo que estamos construindo aqui nós precisamos arranjar um jeito de armazenar essa esse erro que foi disparado na plataforma para que no futuro ou no de alguma forma automatizada a gente consiga reprocessar ou entender o por que aconteceu esse erro para
fazer isso eu vou fazer o seguinte quando acontecer algum erro esse erro vai ser capturado pelo um Exception vai passar pelo log pra gente ver o que que tá acontecendo e eu vou criar aqui um objeto de erro nesse objeto de erro vou fazer o seguinte eh eu vou fazer com que o status poss que possui esse padrão específico que estamos vendo aqui em mensagem menagem nós vamos passar aqui por default o objeto message objeto mensagem que está chegando então nut TR error eu defini um objeto mensagem e Caso ele chegue aqui a gente vai
capturar esse valor caso ele não chegue a gente vai colocar um valor de un error ou seja erro desconhecido o pad é a mesma coisa a gente já existe um pad pel outro erro e aí ele vai buscar essa informação caso ele não encontre ele vai buscar tudo que o forit capturou que ocep capturou por meio m de ponto cifrão por fim nós vamos colocar aqui uma uma data que foi a data que aconteceu esse problema então no momento que aconteceu tipo de erro que vai disparar um Exception ele vai passar por esse atributo date
e vai armazenar o momento que aconteceu esse erro dentro desse atributo então criamos eh um objeto de erro aqui ó criamos criar objeto de erro Nós criamos esse objeto de erro porque vamos utilizar ele para poder inserir na no nosso Cassandra aqui então assim que eu faço essa criação do seu objeto de erro eh de maneira genérica né ele pega tantos os casos que eu estou planejando control quanto os casos que eu não estou planejando problema de componente ou o que seja faz esse objeto e aqui nós vamos começar a preparar para inserir eh na
pilha de erros né então vamos preparar o Jon de entrada ou o message enfim para inserir no na banco de dados E aí temos o seguinte temos message ponto error pon mensagem que a gente mudou eu vou fazer essas alterações que eu acabei de mudar mas basicamente o que está acontecendo é o que eu que eu já falei anteriormente Eh esses atributos serão inseridos no Cassandra Então eu estou programando eu estou planejando esses atributos anteriormente para quando chegar no Cassandra em si eu não tiver que fazer não vou ter que fazer nenhuma transformação só vou
enviar todos esses dados Então vou pausar o vídeo aqui e a gente vai ver essas transformações pequenas que eu fiz no componente anterior a única alteração que foi feita foi no atributo mensagem que eu mudei aqui no objeto de erro para ficar em português então assim que eu já preparei todos esses elementos eu vou confirmar e esses elementos eu vou inserir no Cassandra então aqui eu vou inserir em uma tabela chamada enablement contr execução todos esses valores que vimos anteriormente eu passo dinamicamente esses valores que eu criei por isso que eu criei um um objeto
logo anteriormente aqui account foi definido operação é insert e eu tenho uma Connection string para poder acessar esse banco de dados que é enablement DB URL assim posso confirmar logo depois de fazer essa inserção eu vou ter na minha pilha de erros os erros que aconteceram nessa execução E aí eu tenho um assert aqui que é a mesma lógica do como como já vimos anteriormente em todas as chamadas externas nós validamos aqui uma das chamadas externas é justamente inserção em banco de dados então eu coloco um assert V2 só para garantir que eu inseri ou
não eu faço essa verificação se eu inseri ou não caso eu tenha inserido eu sigo em frente senão eu acabo parando a execução do pipeline Então vou mudar esse nome para confere inserção no banco de dados vou confirmar fail Onor ativado e dessa forma se houve algum problema nós vamos parar o fluxo eh visto que não não armazenamos o erro por fim já configuramos o nosso on Exception esse tratamento de erro Centralizado e aqui Vamos criar um resumo da execução o resumo da execução Como dito em aulas anteriores é uma forma de você fazer com
que o desenvolvedor tem informações sobre sucessos e falhas diretamente no monitoramento e aí para fazer isso a gente utiliza uma série de componentes para manipular esses registros e vamos construir esse resumo da execução agora Mas antes a gente tem que só conferir aqui Quais eram a as nossas as pendências no checklist Então vamos verificar temos aqui o checklist já estamos centralizando o erro no Exception então vou fazer esse corte e aqui a gente já está criando o resumo de execução então vamos fazer o seguinte uma vez que ao executar Eu tenho esse resultado de sumarizados
aqui Total sucessos e falhas se eu executar novamente eu vou Tend esses humanizadores eu vou utilizar isso para criar o meu resumo de execução então eu vou salvar esses registros utilizando session Management para colocar esses registros na sessão então eu vou buscar na P de componente pelo session e aqui eu vou salvar esses três atributos inst nas configurações eu venem dados V ser total success e eu vou colocar de maneira descritiva ente eu estou salvando Então vou colocar salvar total success e failed assim assim que eu bato o olho eu consigo entender o que está
acontecendo Então vou confirmar configuração do session temos aqui e eu vou buscar no meu Cassandra foi o Object foi o banco de dados que eu estou utilizando para armazenar a pilha de erros eu vou buscar esses registros para poder criar o resumo da execução então aqui Cassandra vou comear as configurações Primeiro passo é o account vai ser esse account aqui a operação vai ser a operação de select Porque queremos buscar os dados como vimos anteriormente a Connection string enablement DB URL vou mudar o step name para buscar pilha de erros pod até aumentar colocando da
execução caso não fique muito grande e aqui a gente cria a string de a skl Statement no caso cql Statement que po Z Cassandra para buscar esses registros como estamos utilizando uma tabela específica nós vamos fazer isso daqui ó o select vai ser em cima dessa tabela aqui selecionar todos os registros da tabela que definimos anteriormente mas nós fazemos aqui um filtro e esse filtro é onde a execution Key Ou seja a execução do pipeline ela possui uma uma Key uma chave única e a gente quer buscar pro resumo da execução apenas os erros relacionados
a essa execução então quando fizemos a inserção do erro nós inserimos dentro da tabela um um elemento chamado execution Key informando a execution pipeline então para isso nós vamos buscar em todos esses elementos que foram inseridos no nosso Exception somente aqueles que possuem a execution Key que é a execution Key desse pipeline por fim nós colocamos esse atributo de permitir o filtro caso contrário nós não conseguiríamos utilizar esse campo de weare eu vou confirmar e eu vou testar essa aplicação eu quero saber se o meu Cassandra está funcionando e caso ele retorne em resultados vazios
por exemplo é é um indício de que está funcionando Visto que temos zero erros nesse momento e aqui ele veio vazio Então tá tudo funcionando normalmente próximo passo aqui é usar o session novamente para salvar esses dados no momento aqui não estamos recuperando nenhum porque e está vazio mas nós precisamos salvar excluir e depois fazer o resumo da execução então session novamente vou buscar Vou salvar esses registros antes de mudar novamente o meu meu message então Dea e aqui o que eu vou salvar é justamente o campo deira salvar deira erros do da execução bandeira
que está sendo retornado pelo Cassandra equivale aos erros da execução agora que eu fiz isso eu posso fazer o seguinte Preciso excluir da meu banco de dados temporário todos os registros que eu inseri visto que isso não será excluído sozinho então nós precisamos tomar cuidado em utilizar bancos temporários eh temos que verificar se estamos excluindo ou temos uma rotina de limpeza nesse caso como eu tô querendo apenas o eh informar na no resumo de execução os registros que deram erro eu posso buscar esses registros e imediatamente excluir para fazer isso eu vou utilizar um florite
porque eu vou pegar cada registro retornado pelo araya e eu vou excluir ele então novamente vou utilizar um forit para fazer isso nas configurações do forit eu vou colocar delete ou melhor Excluir todos os erros da pilha de erros e Aqui nós temos diretamente na raiz o Array del coloquei uma vírgula um ponto Vou confirmar e aqui dentro do meu on process eu vou fazer a exclusão de cada registro Então vou buscar o Cassandro novamente e aqui dentro para cada registro e que está sendo retornado Naira eu vou fazer essa exclusão então configurando o componente
vou excluir erro por ID aqui o account novamente aws candra operação delete Connection string enablement DB URL e aqui na cy eu tenho na Carry eu tenho justamente essa Carry aqui que é eu quero deletar da tabela que estamos utilizando para controle de execução quando o ID foi igual o ID que já está chegando né que a gente tá dentro de um forit eu vou excluir um registro específico quando eu confirmo posso aqui por ser uma e já excluindo esses erros Agora posso voltar para o meu fluxo principal vou aqui no meu colocar um log
por boa prática então aqui novamente log mesmo não fazendo nenhum tipo de tratamento eu preciso ter esse log para encontrar possíveis erros tá então novamente é log vai ser erro na exclusão de registros da execução aqui eu vou conferir vou copiar e vou colar no meu campo de baixo confirmar Então faço uma boa prática que é sempre colocar um log no Exception nós sempre devemos tomar essa atitude e aqui já fizemos o seguinte então estamos salvando o sumarizado estamos salvando osos erros de execução já excluímos os erros e finalmente estamos na hora de construir todos
esses eh todo o resumo da execução né criar a mensagem final em si para fazer isso eu vou recuperar os os dados que eu salvei mas antes disso eu preciso apagar a mensagem que tá chegando aqui para que meus sumarizados não se confundam acredito que na verdade eles vão se sobrescrever então eu posso fazer direto sim então esse aqui esse componente que eu estou salvando esses registros eu vou copiar e colar vou arrastar pro final eu vou mudar a operação de salvar para recuperar aqui aqui antes eu estava salvando vou colocar recuperar Total suced fail
a operação agora é get e aqui a gente vai manter os mesmos Campos A diferença é que também vamos recuperar deira que sv na execução que é justamente os erros da execução confirmar temos todos os registros prontos para criar o resumo de execução e agora Finalmente utiliz um Jon generator por exemplo para pegar todos esses registros e fazer com que eles tenham um padrão então aqui eu vou fazer o seguinte eu vou criar o resumo da execução diria resumo da execução com todos aqueles valores que estão no nosso na nossa mensagem por conta do session
Então vou colocar dentro de sumário os valores Opa aqui é uma aspas duplas dentro de sumário eu vou ter total referente ao message pon Total vou ter também success referente ao aqui tem dois CS message ponto success também vamos ter o fail que faz referencia o message PF que buscamos na nossa requisição na nossa noss session O que vai ter de diferente aqui é que além do sumário vamos ter um atributo chamado detalhes erro detalhes erros e aqui dentro desses detalhes erros nós vamos fazer referência a deira que buscamos do Cassandro message pira então recapitulando
criamos o resumo da execução da seguinte forma nós informamos que nessa execução tiveram um total de tantos registros informados pelo forit o tal de falhas e sucessos também pelo forit e temos os detalhes de de erro para quando acontecerem erros nós sabermos o que que aconteceu aqui dentro do do resumo da execução Então vou confirmar e vou testar vamos ver se configuramos corretamente o componente a executar nós configuramos corretamente temos aqui um resumo da execução demonstrando o que que aconteceu na execução em si caso eu provoque algum erro no meu onpro por exemplo colocando um
troll justamente no caso de sucesso a gente vai ver que todos esses sumarizados vão para zero para eh de sucesso vai para zero e vamos ter diversos casos de erro armazenados Então isso é o resumo da execução a partir do momento que eh acontece algum erro no meu One process eu tenho no na de monitoramento informações de que pipeline que deu problema foi test mode execution deu problema qual que foi o status qual que foi o id e os motivos para que isso aconteceu ou não então assim a gente testou o resumo de execução vamos
olhar o nosso checklist e o último ponto que falta é utilizar globos e accounts isso nós veremos no próximo vídeo E fechamos a nossa integração sincroniz os dois sistemas utilizando as melhores práticas de desenvolvimento com exceção de accounts que vamos criar e fazer alteração nos vemos nos próximos vídeos