Lucas Manoel Postado 12 de Abril de 2021 Tópicos Que Criei: 2 Tópicos/Dia: 0.00 Meu Conteúdo: 6 Conteúdo/Dia: 0.00 Reputação: 1 Pontos/Conquistas: 55 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Denunciar Compartilhar Postado 12 de Abril de 2021 Olá pessoal. Estou tentando desenvolver uma fórmula visual que valide o cancelamento de um movimento do RM Nucleos. A ideia é que o usuário consiga cancelar somente os movimentos que ele próprio criou. Consegui desenvolver a FV e ela está funcionando. Porém, só funciona corretamente quando seleciono um único movimento para cancelar. Se eu selecionar dois movimentos, sendo que no primeiro sou o usuário criador, e no segundo, não sou o usuário criador, o sistema não aplica a validação corretamente, e acaba cancelando ambos movimentos. É como se no processo de cancelamento o sistema estivesse ignorando o meu ForEach da FV. Já viram algo parecido? Segue em anexo a FV que desenvolvi. Nos meus testes, vinculei a FV no evento "Antes da Execução" do MovCancelMovProc. Obrigado! ValidaCancelamento.TotvsWF Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 13 de Abril de 2021 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 485 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.231 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Windows Denunciar Compartilhar Postado 13 de Abril de 2021 @Lucas Manoel, bom dia! Por favor, efetue o teste com as seguintes alterações. Eu não efetuei o teste, mas acredito que o erro esteja o local que está fazendo o loop, por que o JOB de cancelamento não é um dataset... <MovimentosACancelar> <MovimentosCancelar z:Id="i3"> <ApagarMovRelac>false</ApagarMovRelac> <CancelarMovimentosGeradosSimultFaturamento>false</CancelarMovimentosGeradosSimultFaturamento> <CancelarMovimentosGeradosSimultReabriCotacao>false</CancelarMovimentosGeradosSimultReabriCotacao> <CodColigada>1</CodColigada> <CodSistemaLogado>T</CodSistemaLogado> <CodUsuarioLogado>x.x</CodUsuarioLogado> <DataCancelamento>2021-04-12T00:00:00-03:00</DataCancelamento> <ExcluirItensDaCotacao>false</ExcluirItensDaCotacao> <IdExercicioFiscal>1</IdExercicioFiscal> <IdMov>6568669</IdMov> <MotivoCancelamento>CC INCORRETO</MotivoCancelamento> <NumeroMov>112842</NumeroMov> </MovimentosCancelar> <MovimentosCancelar z:Id="i4"> <ApagarMovRelac>false</ApagarMovRelac> <CancelarMovimentosGeradosSimultFaturamento>false</CancelarMovimentosGeradosSimultFaturamento> <CancelarMovimentosGeradosSimultReabriCotacao>false</CancelarMovimentosGeradosSimultReabriCotacao> <CodColigada>1</CodColigada> <CodSistemaLogado>T</CodSistemaLogado> <CodUsuarioLogado>x.x</CodUsuarioLogado> <DataCancelamento>2021-04-12T00:00:00-03:00</DataCancelamento> <ExcluirItensDaCotacao>false</ExcluirItensDaCotacao> <IdExercicioFiscal>1</IdExercicioFiscal> <IdMov>6580204</IdMov> <MotivoCancelamento>CC INCORRETO</MotivoCancelamento> <NumeroMov>113044</NumeroMov> </MovimentosCancelar> </MovimentosACancelar> Terias que descobrir como efetuar um loop nessa estrutura... Porém, eu, Luis, iria efetuar outro teste, caso essa chamada efetua em tela e não via WS... iria criar uma FV na TMOV fazendo o loop no dataset e verificando o status do registro e posteriormente efetuando essa validação (antes de salvar o registro). Espero que consigas efetuar essa consistencia. Abraços. 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Lucas Manoel Postado 13 de Abril de 2021 Tópicos Que Criei: 2 Tópicos/Dia: 0.00 Meu Conteúdo: 6 Conteúdo/Dia: 0.00 Reputação: 1 Pontos/Conquistas: 55 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Autor Denunciar Compartilhar Postado 13 de Abril de 2021 Bom dia @luisgustavogomes! Obrigado pelo comentário e orientações. Tentei deixar o fluxo da forma conforme seu print, porém não sei se estou usando corretamente o rmsExpressionActivity. Fiz um teste parametrizando ele dessa forma (imagem). Está correto? Se sim, infelizmente não resolveu. O comportamento continua o mesmo, funcionando na validação de somente um movimento, e falhando quando uso multiseleção. Vou tentar montar a FV da outra forma que você sugeriu, validando antes de salvar o registro na TMOV. Abraço! Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 14 de Abril de 2021 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 485 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.231 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Windows Denunciar Compartilhar Postado 14 de Abril de 2021 Sim, a expressão está correta e aconteceu juntamente o erro do FOREACH, assim sendo, abri um chamado com a TOTVS e o pessoal do framework ajudou.... Logo, em anexo, o seu exemplo com loop na tabela dos parâmetros da execução do JOB... p/s nesse exemplo, efetuei o teste efetuando o envio do IDMOV via e-Mail. Agora é só alterar para a sua regra de negócio e testar, eu testei via formulário - ok , vou testar via WS e depois lhe informo abraços Resposta da TOTVS FV.CMP.08.TotvsWF 1 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Lucas Manoel Postado 14 de Abril de 2021 Tópicos Que Criei: 2 Tópicos/Dia: 0.00 Meu Conteúdo: 6 Conteúdo/Dia: 0.00 Reputação: 1 Pontos/Conquistas: 55 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Autor Denunciar Compartilhar Postado 14 de Abril de 2021 @luisgustavogomes, muito obrigado! Realmente o ponto chave pra resolução foi a forma de parametrizar o ForEach. Ajustei de acordo com minha regra de negócio e funcionou perfeitamente!! Muito obrigado. Abraço Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Bruno Italo Postado 12 de Outubro de 2023 Tópicos Que Criei: 0 Tópicos/Dia: 0 Meu Conteúdo: 2 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 10 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Dispositivo: Windows Denunciar Compartilhar Postado 12 de Outubro de 2023 Boa noite Lucas, estou com o mesmo problema, exatamente com o mesmo tipo de fórmula, quando seleciono vários registros para cancelamento na visão de dados, somente o primeiro que foi selecionado é validado. Já tentei vincular vários campos no meu ForEach, até o campo que o suporte de framework me passou, mas mesmo assim não funciona... Ficaria grato se você compartilhasse como parametrizou o seu... Segue minha FV. FV CANCELAMENTO MOV.TotvsWF Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
caiiomonteiro Postado 13 de Outubro de 2023 Tópicos Que Criei: 10 Tópicos/Dia: 0.00 Meu Conteúdo: 119 Conteúdo/Dia: 0.05 Reputação: 41 Pontos/Conquistas: 811 Conteúdo Resolvido: 0 Dias Ganho: 20 Status: Offline Idade: 26 Dispositivo: Windows Denunciar Compartilhar Postado 13 de Outubro de 2023 @Bruno Italo bom dia O problema está na sua ligação dos parâmetros da consulta SQL, no caso o próprio IDMOV que está sendo passado O correto é você pegar ele do ForEach e não da atividade que faz a leitura dos parâmetros, pois dessa forma o ForEach está lendo cada movimento selecionado, porém a consulta SQL só está pegando como parâmetro o 1º IDMOV Já o CODCOLIGADA, como é o mesmo valor para todas as linhas não tem problema você deixar dessa forma, mas também pode pegar ele do ForEach ou até mesmo do contexto O correto seria dessa forma 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Bruno Italo Postado 13 de Outubro de 2023 Tópicos Que Criei: 0 Tópicos/Dia: 0 Meu Conteúdo: 2 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 10 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Dispositivo: Windows Denunciar Compartilhar Postado 13 de Outubro de 2023 @caiiomonteiro Bom dia! Era exatamente isso. Coloquei uma expressão no ForEach pegando o idmov de cada loop, e apontei o parâmetro do SQL para a expressão. Funcionou perfeitamente. Obrigado! Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Participe da conversa
Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.