none
Problema com Retorno de Procedure RRS feed

  • Pergunta

  • Pessoal, tenho uma procedure(Proc 1) principal que dentro dela existe um cursor e dentro desse cursor ele chama outra procedure(Proc 2), que retorna o conteudo da Proc2 para uma tabela temporaria e no final eu retorno o select dessa temp para quem chamou a minha Proc1 e armazeno em outra temporaria.

    Ai que está o problema, quando acontece isso, não retorna nada, aparece apena a msg de que foi executado com sucesso

    Chamada da proc1 eh essa:

    Create table #TmpRetDT(
    				cd_produto			CHAR(13),
    				nr_item_produto	int,
    				qt_receb int,
    				qt_dt int,
    				qt_saldo_receb int,
    				qt_pedido_dt int,				
    				nr_nf_origem varchar(6),
    				ds_serie_origem varchar(3),
    				dt_emissao datetime,
    				cd_origem_dt int,
    				cd_destino_dt int
    			)
    
    
    insert into #TmpRetDT
    EXEC sgf_fat.dbo.p_mfat_retorno_dt_item123123 @TT_ITENS_DT



            

    E segue a proc 2

    CREATE PROC dbo.p_mfat_retorno_dt_item
    
    (
    	@TT_ITENS_DT as DBO.TT_MFAT_DT_ITENS READONLY
    	)
    As
     
    
    	-- RETORNO DA PROC
    	create table #tmpRetItemSaldo
    	(		
    		cd_produto char(13),
    		nr_item int,
    		qt_receb int, 
    		qt_dt int,
    		qt_saldo_receb int, 
    		qt_pedido_dt int,
    		dt_emissao datetime,
    		nr_nf_origem varchar(6),
    		ds_serie_origem varchar(3),
    		cd_origem_dt	int,
    		cd_destino_dt int		
    	)
    
    	--–1. Declara CURSOR (DECLARE)
    	declare item_cursor cursor
    		for select cd_origem_dt, cd_destino_dt, cd_produto, qt_pedido from @TT_ITENS_DT
    	--–2. Abre o CURSOR (OPEN)
    	open item_cursor
    	--–3. Alimenta variáveis com os dados do CURSOR (FETCH)
    	declare @cd_origem_dt	smallint,
    			@cd_destino_dt smallint,
    			@cd_produto char(13),
    			@qt_pedido	int
    	fetch next from item_cursor	into @cd_origem_dt, @cd_destino_dt, @cd_produto, @qt_pedido
    	
    	WHILE @@FETCH_STATUS = 0
    	begin				
    		insert into #tmpRetItemSaldo exec sgf_rec.dbo.p_mrec_consistir_saldo_dev_produto @cd_destino_dt,@cd_origem_dt,@cd_produto,@qt_pedido
    		
    		-- Pega proximo item do loop
    		fetch next from item_cursor	into @cd_origem_dt, @cd_destino_dt, @cd_produto, @qt_pedido
    
    	end
    	
    	--–4. Fecha e desaloca o CURSOR (CLOSE e DEALLOCATE)
    	close item_cursor
    	deallocate item_cursor;
    
    
    	select 
    		cd_produto 
    		,nr_item_produto
    		,qt_receb 
    		,qt_dt
    		,qt_saldo_receb
    		,qt_pedido_dt		
    		,nr_nf_origem 
    		,ds_serie_origem 
    		,dt_emissao 
    		,cd_origem_dt 
    		,cd_destino_dt 
    
    	from  #tmpRetItemSaldo
    
    
    	drop table #tmpRetItemSaldo

    Preciso que insira na minha #TmpRetDT
    Alguém pode me ajudar a resolver esse problema?

    quarta-feira, 25 de novembro de 2015 12:36

Respostas

  • Bom consegui resolver retirando a proc 2.

    segue como ficou:

    USE SGF_FAT
    GO
    
    IF EXISTS (select * from sysobjects where id = object_id('p_mfat_retorno_dt_item'))
    	drop proc dbo.p_mfat_retorno_dt_item
    GO
    CREATE PROC dbo.p_mfat_retorno_dt_item
    
    (
    	@TT_ITENS_DT as DBO.TT_MFAT_DT_ITENS READONLY
    	,@fl_erro_ret   BIT    OUTPUT   -- 1 ==> OK ; 0 ==> ERRO  
    	,@ds_msg_ret   VARCHAR(5000) OUTPUT   -- Em caso de erro, retorno a mensagem.  
    )
    As
      
    BEGIN TRY  
    
    	-- RETORNO DA PROC
    	create table #tmpRetItemSaldo
    	(		
    		cd_produto char(13),
    		nr_item int,
    		qt_receb int, 
    		qt_dt int,
    		qt_saldo_receb int, 
    		qt_pedido_dt int,
    		dt_emissao datetime,
    		nr_nf_origem varchar(6),
    		ds_serie_origem varchar(3),
    		cd_origem_dt	int,
    		cd_destino_dt int		
    	)
    	
    
    	--–1. Declara CURSOR (DECLARE)
    	declare item_cursor cursor
    		for select cd_origem_dt, cd_destino_dt, cd_produto, qt_pedido from @TT_ITENS_DT
    	--–2. Abre o CURSOR (OPEN)
    	open item_cursor
    	--–3. Alimenta variáveis com os dados do CURSOR (FETCH)
    	declare @cd_origem_dt	smallint,
    			@cd_destino_dt smallint,
    			@cd_produto char(13),
    			@qt_pedido	int
    	fetch next from item_cursor	into @cd_origem_dt, @cd_destino_dt, @cd_produto, @qt_pedido
    	
    	WHILE @@FETCH_STATUS = 0
    	begin						
    		--insert into #tmpRetItemSaldo 
    		--exec sgf_rec.dbo.p_mrec_consistir_saldo_dev_produto @cd_destino_dt,@cd_origem_dt,@cd_produto,@qt_pedido
    		---- INICIO  LOOP SALDO ---
    		DECLARE @Inicio INT,
    	        @final  INT,
    	        @qt_saldo_nf INT,
    	        @qt_saldo_total INT,
    	        @qt_dif INT
    	
    		-------------------------------------------------------------------------------------------
    		--1.0 : Iniciando dados do Loop para aplicação da regra FIFO.
    		-------------------------------------------------------------------------------------------    
    		   
    		   CREATE TABLE #tbTmpRetDev
    			( nr_identity  int not null identity(1,1),		 
    			  --nr_pednf     varchar(6),
    			  cd_produto   char(13), 
    			  qt_receb     int,
    			  qt_dt		   int,
    			  qt_saldo	   int,
    			  qt_pedido	   int,
    			  dt_emissao     datetime,
    			  nr_nf_origem varchar(6), 
    			  ds_serie_origem     varchar(3),  		  
    			  cd_origem    smallint,
    			  cd_destino   smallint
    			 )	 
    		-------------------------------------------------------------------------------------------
    		--2.0 : Criação de temporaria para auxilio na validação de saldos e aplicação da regra FIFO
    		-------------------------------------------------------------------------------------------
    		CREATE TABLE #Tb_receb_fifo
    		( nr_identity  int not null identity(1,1),
    		  cd_origem    smallint,
    		  cd_destino   smallint,
    		  nr_nf        varchar(6), 
    		  ds_serie     varchar(3), 
    		  dt_emissao     datetime, 
    		  cd_produto   char(13), 
    		  qt_receb     int, 	  
    		  qt_saldo     int,
    		 )
    
    		-------------------------------------------------------------------------------------------
    		--3.0 : Alimentando a TEMP com os dados de Recebimento do Produto com Saldo.
    		-------------------------------------------------------------------------------------------
    		INSERT INTO #Tb_receb_fifo
    		SELECT rec.cd_origem,
    			   rec.cd_destino,
    			   rec.nr_nf,
    			   rec.ds_serie,
    			   rec.dt_emissao,
    			   rec.cd_produto,
    			   rec.qt_receb,
    			   saldo = ISNULL(rec.qt_receb,0) - ISNULL(SUM(dev.qt_reserva_dev),0)		   
    		  FROM sgf_rec.dbo.vw_mrec_receb_transf rec (NOLOCK)
    		  LEFT 
    		  JOIN sgf_fat.dbo.vw_mfat_dev_transf dev (nolock)
    			ON rec.cd_origem = dev.cd_filial_ref
    		   AND rec.nr_nf = dev.nr_nf_ref
    		   AND rec.ds_serie = dev.ds_serie_ref
    		   AND rec.cd_produto = dev.cd_produto
    
    		 WHERE rec.cd_origem = @cd_destino_dt
    		   AND rec.cd_destino = @cd_origem_dt
     		   AND rec.cd_produto = @cd_produto
    	 	   
    
    		 GROUP 
    			BY rec.cd_origem,
    			   rec.cd_destino,
    			   rec.nr_nf,
    			   rec.ds_serie,
    			   rec.dt_emissao,
    			   rec.cd_produto,
    			   rec.qt_receb 	   
    		HAVING rec.qt_receb - ISNULL(SUM(dev.qt_reserva_dev),0) > 0
    		 ORDER 
    			BY rec.dt_emissao
    	        
    	   
    
    		-------------------------------------------------------------------------------------------
    		--4.0 : Iniciando dados do Loop para aplicação da regra FIFO.
    		-------------------------------------------------------------------------------------------
    		SELECT @final = @@ROWCOUNT
    		SELECT @Inicio = 1	
    		
    		SELECT @qt_saldo_total =  0
    		
    		WHILE (@Inicio <= @final)
    			
    			BEGIN
    				
    				SELECT @qt_saldo_nf = qt_saldo
    				  FROM #Tb_receb_fifo 
    				 WHERE nr_identity = @Inicio
    				 
    				
    					--------------------------------
    					--3.1 : Verifica o Saldo
    					--------------------------------
    								
    					IF (@qt_saldo_nf + @qt_saldo_total) >= @qt_pedido
    				       
    					   BEGIN 
    				           
    						   ------------------------------------------------------------------------------------
    						   --3.2 : Pegando total da diferenca para alimentar a tabela auxiliar de DEV.
    						   --      Alimenta a tabela de Devolução com as informações de Referência da Devolução
    						   --      Quando mais de uma NF referenciada ou NFs sem Saldos Totais.
    						   ------------------------------------------------------------------------------------		
    							SELECT @qt_dif = @qt_pedido - @qt_saldo_total	           
    							insert into #tbTmpRetDev
    							SELECT 							   
    								   cd_produto,
    								   qt_receb,
    								   @qt_dif,
    								   qt_receb - @qt_dif,
    								   @qt_pedido,
    								   GETDATE(),
    								   nr_nf,
    								   ds_serie,
    								   @cd_origem_dt,
    								   cd_origem				 
    							  FROM #Tb_receb_fifo
    							 WHERE nr_identity = @Inicio
    				           
    						   BREAK
    				           
    					   END
    				  ELSE
    					   BEGIN 
    							---------------------------------------------------
    							--3.3 : Alimenta contador e soma valores de saldo.
    							---------------------------------------------------
    						    
    					    		INSERT INTO #tbTmpRetDev
    								SELECT 							       
    									   cd_produto,
    									   qt_receb,
    									   qt_saldo,							       
    									   0,
    									   @qt_pedido,								  
    									   GETDATE(),
    									   nr_nf,
    									   ds_serie,
    									   @cd_origem_dt,
    									   cd_origem								   						   
    								  FROM #Tb_receb_fifo
    								 WHERE nr_identity = @Inicio
    						    
    							SET @qt_saldo_total = @qt_saldo_total + @qt_saldo_nf
    					   END			       
    				 SET @Inicio = @Inicio + 1		
    			END		
    			
    			insert into #tmpRetItemSaldo
    			Select  			  
    			  cd_produto  ,
    			  nr_identity  ,
    			  qt_receb    ,
    			  qt_dt		  ,
    			  qt_saldo	  ,
    			  qt_pedido	  ,
    			  dt_emissao    ,
    			  nr_nf_origem,
    			  ds_serie_origem,
    			  cd_origem    ,
    			  cd_destino   from #tbTmpRetDev
    			  drop table #tbTmpRetDev
    			  drop table #Tb_receb_fifo
    		---FIM---	
    		
    		-- Pega proximo item do loop
    		fetch next from item_cursor	into @cd_origem_dt, @cd_destino_dt, @cd_produto, @qt_pedido
    
    	end
    	
    	--–4. Fecha e desaloca o CURSOR (CLOSE e DEALLOCATE)
    	close item_cursor
    	deallocate item_cursor;
    		
    	select 
    		cd_produto 
    		,nr_item 
    		,qt_receb 
    		,qt_dt 
    		,qt_saldo_receb
    		,qt_pedido_dt		
    		,nr_nf_origem 
    		,ds_serie_origem 
    		,dt_emissao 
    		,cd_origem_dt 
    		,cd_destino_dt 	
    	from  #tmpRetItemSaldo
    	
    	
    	--select * from @TT_MFAT_DT_ITENS_RET_NF
    	
    	IF @@ROWCOUNT = 0  
    	  BEGIN  
    	   SET @ds_msg_ret = 'Inconsistência na Pesquisa do Saldo de Devolução de Transf.'  +  
    	                      ' ==> PROC: p_mfat_retorno_dt_item ==>'              	          
    	   GOTO ERROR  
    	END  
    
    	drop table #tmpRetItemSaldo
    
    SET @fl_erro_ret = 1  
    Return
    END TRY
    
    BEGIN CATCH  
      
     SET @ds_msg_ret =  ' Inconsistência na Consulta de Saldo de Dev. de Transferência. ' +  
           ' --> Procedure..: ' + ISNULL(ERROR_PROCEDURE(), '' )      +  
           ' --> Linha Erro.: ' + CAST( ISNULL(ERROR_LINE(), '' )    AS VARCHAR)  +  
           ' --> Mensagem...: ' + ISNULL(ERROR_MESSAGE(), '' )                     
                         
     GOTO ERROR  
       
    END CATCH  
    
    ERROR:  
        
      SET @fl_erro_ret = 0  
      RETURN  
    
    go

    • Marcado como Resposta Rafael Mitsunaka quarta-feira, 25 de novembro de 2015 18:44
    quarta-feira, 25 de novembro de 2015 17:36

Todas as Respostas

  • Bom dia Rafael, Verifique se a tabela @TT_ITENS_DT que foi passada como parâmetro de entrada da SP realmente contém registros. Verifique também se a SP sfg_rec.dbo.p_mrec_consistir_saldo_dev_produto recebe corretamente os valores nos parâmetros. Se sim, veja se ela retorna os dados de acordo com o esperado. Abraço, Antonio Cesar
    quarta-feira, 25 de novembro de 2015 13:02
  • Estão corretos.

    A table type contem 1 linha de registros e a proc p_mrec_consistir_saldo_dev_produto  retorna 1 linha também nesse caso.

    O estranho eh não conseguir devolver esse resultado para a procedure principal.

    Mesmo, se eu fizer isso, select 'testando' as ds_serie_origem

    e tentar inserir essa unica String em uma outra temporaria de 1 coluna, não funciona.

    Agora se eu executar a procedure sem insert em temporaria aparece o resultado.

    EXEC sgf_fat.dbo.p_mfat_retorno_dt_item123123 @TT_ITENS_DT

    o problema é que eu preciso que o resultado seja incluído em uma temporária.

    quarta-feira, 25 de novembro de 2015 13:34
  • Retirei tudo q podia dar erro e mesmo assim não sei o que acontece. 

    Apaguei SET NOCOUNT ON   de todas procs, coloquei Try Catch e nada

    quarta-feira, 25 de novembro de 2015 15:11
  • Rafael, Percebi que na chamada da proc1 você usa o schema sgf_fat, mas na criação da SP, foi criada no schema dbo. Você está chamando a procedure no schema correto? Antonio Cesar
    quarta-feira, 25 de novembro de 2015 15:26
  • Eu chamo de outro schema, mas especifico qual, no caso SGF_REC

    exec sgf_rec.dbo.p_mrec_consistir_saldo_dev_produto @cd_destino_dt,@cd_origem_dt,@cd_produto,@qt_pedido

    quarta-feira, 25 de novembro de 2015 16:52
  • Rafael, Coloque o texto completo da proc1 para tentar entender melhor o que está acontecendo. Antonio Cesar
    quarta-feira, 25 de novembro de 2015 17:21
  • Bom consegui resolver retirando a proc 2.

    segue como ficou:

    USE SGF_FAT
    GO
    
    IF EXISTS (select * from sysobjects where id = object_id('p_mfat_retorno_dt_item'))
    	drop proc dbo.p_mfat_retorno_dt_item
    GO
    CREATE PROC dbo.p_mfat_retorno_dt_item
    
    (
    	@TT_ITENS_DT as DBO.TT_MFAT_DT_ITENS READONLY
    	,@fl_erro_ret   BIT    OUTPUT   -- 1 ==> OK ; 0 ==> ERRO  
    	,@ds_msg_ret   VARCHAR(5000) OUTPUT   -- Em caso de erro, retorno a mensagem.  
    )
    As
      
    BEGIN TRY  
    
    	-- RETORNO DA PROC
    	create table #tmpRetItemSaldo
    	(		
    		cd_produto char(13),
    		nr_item int,
    		qt_receb int, 
    		qt_dt int,
    		qt_saldo_receb int, 
    		qt_pedido_dt int,
    		dt_emissao datetime,
    		nr_nf_origem varchar(6),
    		ds_serie_origem varchar(3),
    		cd_origem_dt	int,
    		cd_destino_dt int		
    	)
    	
    
    	--–1. Declara CURSOR (DECLARE)
    	declare item_cursor cursor
    		for select cd_origem_dt, cd_destino_dt, cd_produto, qt_pedido from @TT_ITENS_DT
    	--–2. Abre o CURSOR (OPEN)
    	open item_cursor
    	--–3. Alimenta variáveis com os dados do CURSOR (FETCH)
    	declare @cd_origem_dt	smallint,
    			@cd_destino_dt smallint,
    			@cd_produto char(13),
    			@qt_pedido	int
    	fetch next from item_cursor	into @cd_origem_dt, @cd_destino_dt, @cd_produto, @qt_pedido
    	
    	WHILE @@FETCH_STATUS = 0
    	begin						
    		--insert into #tmpRetItemSaldo 
    		--exec sgf_rec.dbo.p_mrec_consistir_saldo_dev_produto @cd_destino_dt,@cd_origem_dt,@cd_produto,@qt_pedido
    		---- INICIO  LOOP SALDO ---
    		DECLARE @Inicio INT,
    	        @final  INT,
    	        @qt_saldo_nf INT,
    	        @qt_saldo_total INT,
    	        @qt_dif INT
    	
    		-------------------------------------------------------------------------------------------
    		--1.0 : Iniciando dados do Loop para aplicação da regra FIFO.
    		-------------------------------------------------------------------------------------------    
    		   
    		   CREATE TABLE #tbTmpRetDev
    			( nr_identity  int not null identity(1,1),		 
    			  --nr_pednf     varchar(6),
    			  cd_produto   char(13), 
    			  qt_receb     int,
    			  qt_dt		   int,
    			  qt_saldo	   int,
    			  qt_pedido	   int,
    			  dt_emissao     datetime,
    			  nr_nf_origem varchar(6), 
    			  ds_serie_origem     varchar(3),  		  
    			  cd_origem    smallint,
    			  cd_destino   smallint
    			 )	 
    		-------------------------------------------------------------------------------------------
    		--2.0 : Criação de temporaria para auxilio na validação de saldos e aplicação da regra FIFO
    		-------------------------------------------------------------------------------------------
    		CREATE TABLE #Tb_receb_fifo
    		( nr_identity  int not null identity(1,1),
    		  cd_origem    smallint,
    		  cd_destino   smallint,
    		  nr_nf        varchar(6), 
    		  ds_serie     varchar(3), 
    		  dt_emissao     datetime, 
    		  cd_produto   char(13), 
    		  qt_receb     int, 	  
    		  qt_saldo     int,
    		 )
    
    		-------------------------------------------------------------------------------------------
    		--3.0 : Alimentando a TEMP com os dados de Recebimento do Produto com Saldo.
    		-------------------------------------------------------------------------------------------
    		INSERT INTO #Tb_receb_fifo
    		SELECT rec.cd_origem,
    			   rec.cd_destino,
    			   rec.nr_nf,
    			   rec.ds_serie,
    			   rec.dt_emissao,
    			   rec.cd_produto,
    			   rec.qt_receb,
    			   saldo = ISNULL(rec.qt_receb,0) - ISNULL(SUM(dev.qt_reserva_dev),0)		   
    		  FROM sgf_rec.dbo.vw_mrec_receb_transf rec (NOLOCK)
    		  LEFT 
    		  JOIN sgf_fat.dbo.vw_mfat_dev_transf dev (nolock)
    			ON rec.cd_origem = dev.cd_filial_ref
    		   AND rec.nr_nf = dev.nr_nf_ref
    		   AND rec.ds_serie = dev.ds_serie_ref
    		   AND rec.cd_produto = dev.cd_produto
    
    		 WHERE rec.cd_origem = @cd_destino_dt
    		   AND rec.cd_destino = @cd_origem_dt
     		   AND rec.cd_produto = @cd_produto
    	 	   
    
    		 GROUP 
    			BY rec.cd_origem,
    			   rec.cd_destino,
    			   rec.nr_nf,
    			   rec.ds_serie,
    			   rec.dt_emissao,
    			   rec.cd_produto,
    			   rec.qt_receb 	   
    		HAVING rec.qt_receb - ISNULL(SUM(dev.qt_reserva_dev),0) > 0
    		 ORDER 
    			BY rec.dt_emissao
    	        
    	   
    
    		-------------------------------------------------------------------------------------------
    		--4.0 : Iniciando dados do Loop para aplicação da regra FIFO.
    		-------------------------------------------------------------------------------------------
    		SELECT @final = @@ROWCOUNT
    		SELECT @Inicio = 1	
    		
    		SELECT @qt_saldo_total =  0
    		
    		WHILE (@Inicio <= @final)
    			
    			BEGIN
    				
    				SELECT @qt_saldo_nf = qt_saldo
    				  FROM #Tb_receb_fifo 
    				 WHERE nr_identity = @Inicio
    				 
    				
    					--------------------------------
    					--3.1 : Verifica o Saldo
    					--------------------------------
    								
    					IF (@qt_saldo_nf + @qt_saldo_total) >= @qt_pedido
    				       
    					   BEGIN 
    				           
    						   ------------------------------------------------------------------------------------
    						   --3.2 : Pegando total da diferenca para alimentar a tabela auxiliar de DEV.
    						   --      Alimenta a tabela de Devolução com as informações de Referência da Devolução
    						   --      Quando mais de uma NF referenciada ou NFs sem Saldos Totais.
    						   ------------------------------------------------------------------------------------		
    							SELECT @qt_dif = @qt_pedido - @qt_saldo_total	           
    							insert into #tbTmpRetDev
    							SELECT 							   
    								   cd_produto,
    								   qt_receb,
    								   @qt_dif,
    								   qt_receb - @qt_dif,
    								   @qt_pedido,
    								   GETDATE(),
    								   nr_nf,
    								   ds_serie,
    								   @cd_origem_dt,
    								   cd_origem				 
    							  FROM #Tb_receb_fifo
    							 WHERE nr_identity = @Inicio
    				           
    						   BREAK
    				           
    					   END
    				  ELSE
    					   BEGIN 
    							---------------------------------------------------
    							--3.3 : Alimenta contador e soma valores de saldo.
    							---------------------------------------------------
    						    
    					    		INSERT INTO #tbTmpRetDev
    								SELECT 							       
    									   cd_produto,
    									   qt_receb,
    									   qt_saldo,							       
    									   0,
    									   @qt_pedido,								  
    									   GETDATE(),
    									   nr_nf,
    									   ds_serie,
    									   @cd_origem_dt,
    									   cd_origem								   						   
    								  FROM #Tb_receb_fifo
    								 WHERE nr_identity = @Inicio
    						    
    							SET @qt_saldo_total = @qt_saldo_total + @qt_saldo_nf
    					   END			       
    				 SET @Inicio = @Inicio + 1		
    			END		
    			
    			insert into #tmpRetItemSaldo
    			Select  			  
    			  cd_produto  ,
    			  nr_identity  ,
    			  qt_receb    ,
    			  qt_dt		  ,
    			  qt_saldo	  ,
    			  qt_pedido	  ,
    			  dt_emissao    ,
    			  nr_nf_origem,
    			  ds_serie_origem,
    			  cd_origem    ,
    			  cd_destino   from #tbTmpRetDev
    			  drop table #tbTmpRetDev
    			  drop table #Tb_receb_fifo
    		---FIM---	
    		
    		-- Pega proximo item do loop
    		fetch next from item_cursor	into @cd_origem_dt, @cd_destino_dt, @cd_produto, @qt_pedido
    
    	end
    	
    	--–4. Fecha e desaloca o CURSOR (CLOSE e DEALLOCATE)
    	close item_cursor
    	deallocate item_cursor;
    		
    	select 
    		cd_produto 
    		,nr_item 
    		,qt_receb 
    		,qt_dt 
    		,qt_saldo_receb
    		,qt_pedido_dt		
    		,nr_nf_origem 
    		,ds_serie_origem 
    		,dt_emissao 
    		,cd_origem_dt 
    		,cd_destino_dt 	
    	from  #tmpRetItemSaldo
    	
    	
    	--select * from @TT_MFAT_DT_ITENS_RET_NF
    	
    	IF @@ROWCOUNT = 0  
    	  BEGIN  
    	   SET @ds_msg_ret = 'Inconsistência na Pesquisa do Saldo de Devolução de Transf.'  +  
    	                      ' ==> PROC: p_mfat_retorno_dt_item ==>'              	          
    	   GOTO ERROR  
    	END  
    
    	drop table #tmpRetItemSaldo
    
    SET @fl_erro_ret = 1  
    Return
    END TRY
    
    BEGIN CATCH  
      
     SET @ds_msg_ret =  ' Inconsistência na Consulta de Saldo de Dev. de Transferência. ' +  
           ' --> Procedure..: ' + ISNULL(ERROR_PROCEDURE(), '' )      +  
           ' --> Linha Erro.: ' + CAST( ISNULL(ERROR_LINE(), '' )    AS VARCHAR)  +  
           ' --> Mensagem...: ' + ISNULL(ERROR_MESSAGE(), '' )                     
                         
     GOTO ERROR  
       
    END CATCH  
    
    ERROR:  
        
      SET @fl_erro_ret = 0  
      RETURN  
    
    go

    • Marcado como Resposta Rafael Mitsunaka quarta-feira, 25 de novembro de 2015 18:44
    quarta-feira, 25 de novembro de 2015 17:36