Jump to content
Rubem Ohana Neto

Trigger Com Vários Updates e Prioridades

Recommended Posts

Bom dia..

Estou com a seguinte sentença abaixo:

UPDATE FLAN

SET SEGUNDONUMERO = RIGHT('000000' + CAST(CAST(A.NUMEROMOV AS INTEGER) AS VARCHAR(10)), 6) + '/' + RIGHT('00' + CAST(A.NUMEROLCTGERADO AS VARCHAR(10)), 2) + '-' + RIGHT('00' + CAST(B.NUMERODOCUMENTO AS VARCHAR(10)), 2)

FROM TMOV A, FLAN B

WHERE A.CODCOLIGADA = B.CODCOLIGADA

AND A.IDMOV = B.IDMOV

AND B.CODCOLIGADA = 1

AND B.CODAPLICACAO = 'T'

GO

UPDATE FLAN

SET NUMERODOCUMENTO = SEGUNDONUMERO

FROM FLAN

WHERE IDLAN = IDLAN

AND CODCOLIGADA = 1

AND CODAPLICACAO = 'T'

GO

UPDATE FLAN

SET SEGUNDONUMERO = B.DESCRICAO

FROM FLAN A, FTB5 B

WHERE A.CODTB5FLX = B.CODTB5FLX

AND A.CODCOLIGADA = 1

AND A.CODAPLICACAO = 'T'

GO

Essa Sentença faz o seguinte:

- Primeiro Update

Atualiza o campos SEGUNDONUMERO da TMOV (Número do movimento / Quantidade total de Parcelas - Parcela Corrente)

- Segundo Update

Iguala o campo NUMERODOCUMENTO com o campo SEGUNDONUMERO

- Terceiro Update

Atualiza o campo SEGUNDONUMERO igualando com o campo DESCRICAO da tabela opcional do RM Fluxus FTB5.

Segue Print de tela com o ANTES e DEPOIS do update

Portanto o que eu quero é que esse processo fique automático, preciso que esse processo seja executado assim que eu salvar um Movimento no RM Nucleus que gere financeiro. Onde pra isso seria necessário criar uma trigger, só que como criar uma trigger com 3 updates? sendo que pelo que vocês podem observar tenho que primeiro rodar o primeiro update por completo pra depois começar a rodar o segundo e assim sucessivamente. Ou seja dando prioridades para os updates. Desde já muito obrigado e espero que possam me ajudar.

Obs: Já tentei criar 3 trigger, mais como eu não sei como colocar prioridades nas mesmas, não deu certo.

post-4223-1287586081_thumb.jpg

post-4223-1287586111_thumb.jpg

Edited by Rubem Ohana Neto

Share this post


Link to post
Share on other sites

Cria uma variavel recebendo a informação do segundonumero.

A partir dai você consegue fazer quantos updates forem necessário na mesma trigger.

Se for o caso dê refresh na tabela após cada passo para que a tabela fique atualizada.

NIK

Share this post


Link to post
Share on other sites

Utilizei essa trigger para atualizar o segundo numero para ser da Nfe do Classis para Nucleus quando ainda não estava totalmente integrado

CREATE TRIGGER ZFNFFISCAL

ON FLAN

AFTER UPDATE /* só executa depois que o lançamento sofrer alteração*/

AS

DECLARE @COLIGADA INT, @ULTIMANF VARCHAR(6), @IDLAN INT, @STATUS INT, @SEGNUM INT

SELECT

@ULTIMANF = (SELECT CONVERT(VARCHAR(9),MAX(SEGUNDONUMERO)) FROM FLAN WHERE SEGUNDONUMERO IS NOT NULL)+1,

@COLIGADA = CODCOLIGADA, @IDLAN = IDLAN, @STATUS = STATUSLAN, @SEGNUM = SEGUNDONUMERO /* recebe as variaves do lançamento que está sendo alterado*/ FROM INSERTED

IF @STATUS = 1 AND @SEGNUM IS NULL /* só vai fazer update do títulos nessas condições*/

BEGIN

UPDATE FLAN SET SEGUNDONUMERO = @ULTIMANF WHERE CODCOLIGADA = @COLIGADA AND IDLAN = @IDLAN

END

Ai é só fazer os ajustes de acordo com a sua necessidade, espero que ajude.

[]'s

Edited by Frederico

Share this post


Link to post
Share on other sites

E ai pessoal, estou com um caso simular a esse.

Fiquei com uma dúvida quanto a solução ? 
Entendo que o tópico é bem antigo, mas talvez tenham algo para me acrescentar.

 

Abraço!

Share this post


Link to post
Share on other sites

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.