Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Fórmula visual - validar cancelamento de movimento


Posts Recomendados


  • 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

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

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  5
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  484
  • Conteúdo/Dia:  0.21
  • Reputação:   136
  • Pontos/Conquistas:  3.226
  • Conteúdo Resolvido:  0
  • Dias Ganho:  64
  • Status:  Offline
  • Idade:  35
  • Dispositivo:  Windows

@Lucas Manoel, bom dia!

Por favor, efetue o teste com as seguintes alterações.

image.thumb.png.641be75512df53eb112df93af77af2d1.png

 

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.

 

  • Gostei 1
Link para comentar
Compartilhar em outros sites


  • 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

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!

rmsActivity.PNG

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  5
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  484
  • Conteúdo/Dia:  0.21
  • Reputação:   136
  • Pontos/Conquistas:  3.226
  • Conteúdo Resolvido:  0
  • Dias Ganho:  64
  • Status:  Offline
  • Idade:  35
  • Dispositivo:  Windows

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

?name=inline292648977.png

?name=inline-1411580918.png

FV.CMP.08.TotvsWF

  • Gostei 1
  • Obrigado 1
Link para comentar
Compartilhar em outros sites


  • 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

@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

Link para comentar
Compartilhar em outros sites

  • 2 anos depois...

  • 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

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

Link para comentar
Compartilhar em outros sites


  • 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

@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

image.thumb.png.12520c8a2de83c3cb495ba9f2855a94a.png

 

O correto seria dessa forma

image.png.357133618b44fefa8e3ec1b8c524030a.png

  • Gostei 1
Link para comentar
Compartilhar em outros sites


  • 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

@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!

Link para comentar
Compartilhar em outros sites

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.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.