♥ 0 | Como posso consultar a rastreabilidade do workflow de documento de Vendas a partir de uma query SQL? O objectivo é mostrar todos os documentos que foram convertidos desde a Fatura pro-forma até a fatura final.
Obrigado. Marked as spam |
Private answer Boa tarde, Existe a função VND_RastreioLinha que ao passar como parâmetro o ID da linha, devolve todas as linhas anteriores que deram origem a essa linha por transformação. Criei a função VND_RastreioLinhaReverse (código abaixo) que faz o oposto, ou seja, devolve todas as linhas posteriores que tiveram como base a linha passada como parâmetro. Para seguir o sentido FA para FP utilizar a função VND_RastreioLinha (do fim do processo para o inicio) O resultado destas funções pode ser utilizado como uma tabela ligada á tabela LinhasDoc e CabecDoc (exemplo abaixo) FUNCAO VND_RastreioLinhaReverse CREATE FUNCTION [dbo].[VND_RastreioLinhaReverse] ( @IdLinha uniqueidentifier = NULL ) RETURNS @tblLinhasTransf TABLE ( [IdLinha] uniqueidentifier ) AS BEGIN DECLARE @IdLinhasDocDestino uniqueidentifier INSERT @tblLinhasTransf ([IdLinha]) VALUES (@IdLinha) WHILE EXISTS(SELECT IdLinhasDoc FROM LinhasDocTrans (NOLOCK) WHERE IdLinhasDocOrigem = @IdLinha) BEGIN SELECT @IdLinhasDocDestino = IdLinhasDoc FROM LinhasDocTrans (NOLOCK) WHERE IdLinhasDocOrigem = @IdLinha INSERT @tblLinhasTransf ([IdLinha]) VALUES (@IdLinhasDocDestino) SET @IdLinha = @IdLinhasDocDestino END RETURN END
EXEMPLO DE VIEW COM RASTREABILIDADE SELECT dbo.CabecDoc.Serie, VND_RastreioLinhaReverse_1.IdLinha, dbo.LinhasDoc.NumLinha, dbo.LinhasDoc.Artigo, dbo.CabecDoc.TipoDoc, dbo.CabecDoc.NumDoc, dbo.CabecDoc.Data, dbo.CabecDoc.Entidade FROM dbo.CabecDoc INNER JOIN dbo.LinhasDoc ON dbo.CabecDoc.Id = dbo.LinhasDoc.IdCabecDoc INNER JOIN dbo.VND_RastreioLinhaReverse('758C74DA-9256-11ED-99F9-F8633FD11027') AS VND_RastreioLinhaReverse_1 ON dbo.LinhasDoc.Id = VND_RastreioLinhaReverse_1.IdLinha
Marked as spam |