Jump to content
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×

Recommended Posts


  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  6
  • Content Per Day:  0.00
  • Reputation:   1
  • Achievement Points:  55
  • Solved Content:  0
  • Days Won:  1
  • Status:  Offline

Posted

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


  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  535
  • Content Per Day:  0.18
  • Reputation:   184
  • Achievement Points:  3,568
  • Solved Content:  0
  • Days Won:  77
  • Status:  Offline
  • Age:  37
  • Device:  Windows

Posted

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

 

  • Like 2

  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  6
  • Content Per Day:  0.00
  • Reputation:   1
  • Achievement Points:  55
  • Solved Content:  0
  • Days Won:  1
  • Status:  Offline

Posted

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


  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  535
  • Content Per Day:  0.18
  • Reputation:   184
  • Achievement Points:  3,568
  • Solved Content:  0
  • Days Won:  77
  • Status:  Offline
  • Age:  37
  • Device:  Windows

Posted

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

  • Like 1
  • Thanks 1

  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  6
  • Content Per Day:  0.00
  • Reputation:   1
  • Achievement Points:  55
  • Solved Content:  0
  • Days Won:  1
  • Status:  Offline

Posted

@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

  • 2 years later...

  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  2
  • Content Per Day:  0.00
  • Reputation:   0
  • Achievement Points:  10
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline

Posted

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


  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  184
  • Content Per Day:  0.06
  • Reputation:   92
  • Achievement Points:  1,204
  • Solved Content:  0
  • Days Won:  33
  • Status:  Offline
  • Age:  28
  • Device:  Windows

Posted

@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

  • Like 1

  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  2
  • Content Per Day:  0.00
  • Reputation:   0
  • Achievement Points:  10
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline

Posted

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

  • 2 years later...

  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  1
  • Content Per Day:  0.00
  • Reputation:   0
  • Achievement Points:  5
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  39
  • Device:  Windows

Posted

@Bruno Italo

Boa tarde!  Tudo bem?

Você poderia compartilhar como conseguiu resolver sua FV? Por favor. 

Estou selecionando mais de um movimento e a FV só busca UM idmov. Pois utilizo o IDMOV para inserir em uma API de terceiro. Ao cancelar no RM, tem que cancelar um registro no sistema terceiro. Mas quando seleciono dois, só cancela um no sistema terceiro. 


  • Topic Count:  946
  • Topics Per Day:  0.13
  • Content Count:  9,184
  • Content Per Day:  1.25
  • Reputation:   460
  • Achievement Points:  109,776
  • Solved Content:  0
  • Days Won:  267
  • Status:  Offline
  • Age:  54
  • Device:  Windows

Posted

Manda a sua FV que pode ser que com ela fique mais fácil entender a sua situação e ajudá-lo. 

  • Like 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.