Raphael Gomes Posted July 5, 2023 Topic Count: 11 Topics Per Day: 0.01 Content Count: 40 Content Per Day: 0.05 Reputation: 4 Achievement Points: 276 Solved Content: 0 Days Won: 0 Status: Offline Device: Windows Report Posted July 5, 2023 (edited) Bom dia, Estou desenvolvendo uma fórmula visual para envio de cobranças para fornecedores e esbarrei com um erro. Preciso enviar para mais de um e-mail do fornecedor, sendo que o campo está aceitando somente um. Sei que se digitar manualmente pulando linhas obedece para ser enviado para mais de um e-mail, mas não sei a maneira de fazer isso via SQL ou na fórmula visual. SQL utilizada: SELECT EMAIL FROM FCFOCONTATO (NOLOCK) WHERE FCFOCONTATO.CODCFO = :CODCFO 'EMAIL' Como está na Fórmula Visual: O erro que aparece devido à utilização de mais de um e-mail: Edited July 5, 2023 by Raphael Gomes Quote
Fórum RM Posted July 5, 2023 Topic Count: 47 Topics Per Day: 0.01 Content Count: 353 Content Per Day: 0.06 Reputation: 8 Achievement Points: 2,152 Solved Content: 0 Days Won: 4 Status: Offline Age: 18 Report Posted July 5, 2023 Seu tópico foi movido para outra área no ForumRM Mudamos o mesmo de: Sistemas RM > [RM] Fórmulas dos Aplicativos Para o fórum: Sistemas RM > [RM] Framework Quote
luisgustavogomes Posted July 6, 2023 Topic Count: 5 Topics Per Day: 0.00 Content Count: 501 Content Per Day: 0.20 Reputation: 139 Achievement Points: 3,321 Solved Content: 0 Days Won: 65 Status: Offline Age: 35 Device: Windows Report Posted July 6, 2023 @Raphael Gomes, bom dia! Altera, por favor, sua query para : SELECT STRING_AGG(EMAIL, ';') AS 'EMAIL' FROM DBO.FCFOCONTATO (NOLOCK) WHERE FCFOCONTATO.CODCFO = :CODCFO 'EMAIL' Abraços. Quote
Raphael Gomes Posted July 6, 2023 Topic Count: 11 Topics Per Day: 0.01 Content Count: 40 Content Per Day: 0.05 Reputation: 4 Achievement Points: 276 Solved Content: 0 Days Won: 0 Status: Offline Device: Windows Author Report Posted July 6, 2023 @luisgustavogomes, bom dia. Já tentei algo parecido, mas retorna o seguinte erro na hora de rodar a FV: Quote
Solution luisgustavogomes Posted July 6, 2023 Topic Count: 5 Topics Per Day: 0.00 Content Count: 501 Content Per Day: 0.20 Reputation: 139 Achievement Points: 3,321 Solved Content: 0 Days Won: 65 Status: Offline Age: 35 Device: Windows Solution Report Posted July 6, 2023 @Raphael Gomes, testa assim... por favor SELECT STRING_AGG(EMAIL, ',') AS 'EMAIL' FROM DBO.FCFOCONTATO (NOLOCK) WHERE FCFOCONTATO.CODCFO = :CODCFO 'EMAIL' 1 Quote
Raphael Gomes Posted July 6, 2023 Topic Count: 11 Topics Per Day: 0.01 Content Count: 40 Content Per Day: 0.05 Reputation: 4 Achievement Points: 276 Solved Content: 0 Days Won: 0 Status: Offline Device: Windows Author Report Posted July 6, 2023 Deu certo irmão. Muito obrigado pela ajuda! 2 Quote
seva Posted July 10, 2023 Topic Count: 1 Topics Per Day: 0.00 Content Count: 8 Content Per Day: 0.00 Reputation: 7 Achievement Points: 64 Solved Content: 0 Days Won: 3 Status: Offline Age: 35 Device: Windows Report Posted July 10, 2023 Bom dia, Vi que já foi solucionado e resolvido, mas complementando com outra possível solução (pensando que em futuros casos parecidos possa ser resolvido assim)... Digamos que o RM tivesse limitação e não aceitasse mais de um email de uma vez só.. a solução nesses casos seria alterar a lógica da tua formula visual para que envie só para um email só por vez. Exemplo: se até então tu tinha um loop pelas cobranças, e para cada cobrança buscava e enviada os emails... Teria que mudar para um loop pelos emails dos fornecedores que tem cobranças (aí aquele fornecedor que tem 2 emails, iria trazer 2 registros) e consequentemente iria enviar o email 1 a 1 corretamente. 1 Quote
Jair - Fórmula Posted July 10, 2023 Topic Count: 966 Topics Per Day: 0.14 Content Count: 9,054 Content Per Day: 1.33 Reputation: 339 Achievement Points: 108,799 Solved Content: 0 Days Won: 214 Status: Offline Age: 52 Device: Windows Report Posted July 10, 2023 51 minutos atrás, seva disse: Bom dia, Vi que já foi solucionado e resolvido, mas complementando com outra possível solução (pensando que em futuros casos parecidos possa ser resolvido assim)... Digamos que o RM tivesse limitação e não aceitasse mais de um email de uma vez só.. a solução nesses casos seria alterar a lógica da tua formula visual para que envie só para um email só por vez. Exemplo: se até então tu tinha um loop pelas cobranças, e para cada cobrança buscava e enviada os emails... Teria que mudar para um loop pelos emails dos fornecedores que tem cobranças (aí aquele fornecedor que tem 2 emails, iria trazer 2 registros) e consequentemente iria enviar o email 1 a 1 corretamente. Sim é uma ideia também mesmo... até porque, a função STRING_AGG que o Luis sugeriu acima não está disponível para qualquer versão do SQL Server. Em versões mais antigas não há essa funcionalidade, ai teria que usar outro recurso, correto @luisgustavogomes? Quote
luisgustavogomes Posted July 10, 2023 Topic Count: 5 Topics Per Day: 0.00 Content Count: 501 Content Per Day: 0.20 Reputation: 139 Achievement Points: 3,321 Solved Content: 0 Days Won: 65 Status: Offline Age: 35 Device: Windows Report Posted July 10, 2023 @Jair - Fórmula, boa noite! Existem algumas formas sim de fazer essa estratégia de concatenação de valores, sem assim, ao falar de SQLServer tenho a referência do Dirceu Resende no seu artigo "SQL Server – Como concatenar linhas agrupando os dados por uma coluna (Grouped concatenation)" mas a mais simples é a STRING_AGG! @seva, boa noite, sobre seu questionamento é simplesmente trocar a lógica de estrutura da FV, porém, certamente em seu exemplo teríamos loop's encadeados, questão de uma boa discussão, pois a aplicação, informa que pode acontecer erros, contudo utilizo frequentemente. Espero ajudar! Abraços. 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.