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:  501
  • Content Per Day:  0.20
  • Reputation:   139
  • Achievement Points:  3,321
  • Solved Content:  0
  • Days Won:  65
  • Status:  Offline
  • Age:  35
  • 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 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

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:  501
  • Content Per Day:  0.20
  • Reputation:   139
  • Achievement Points:  3,321
  • Solved Content:  0
  • Days Won:  65
  • Status:  Offline
  • Age:  35
  • 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:  11
  • Topics Per Day:  0.00
  • Content Count:  158
  • Content Per Day:  0.06
  • Reputation:   54
  • Achievement Points:  1,024
  • Solved Content:  0
  • Days Won:  24
  • Status:  Offline
  • Age:  27
  • 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!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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


×
×
  • Create New...

Important Information

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