FAQs - Suporte técnico

Cross Segmentos - Backoffice RM - BI - Executando procedure no cadastro de Consultas SQL do RM

time.png Tempo aproximado para leitura: 00:03:37 min 

Dúvida

Como executar uma procedure pelo cadastro de consultas SQL do RM?

Ambiente
Cross Segmentos - TOTVS Backoffice (Linha RM) - A partir da versão 11.80

Solução
Para executar uma procedure no cadastro de SQL do RM, realize os seguintes passos:

  1. No exemplo criei em meu banco de dados uma tabela customizada, que irá receber dados da  procedure, conforme abaixo;
    mceclip0.png;
  2.  Após criar a tabela que será populada, criei uma stored procedure chamada SPTESTE, conforme abaixo, onde ao executá-la, serão inseridas na tabela Cliente, criada acima, os parâmetros:

    @CODCLIENTE,@NOME,@CPF,@CIDADE,@UF,@DATA;

    mceclip1.png
  3. Criadas as tabelas e também a procedure, acesse a nova MDI;
  4. Vá no menu Gestão;
  5. Opção Visões de Dados;
  6. Crie uma consulta SQL com o nome de  SPTESTE, com o conteúdo abaixo:mceclip2.png

  7. Execute a consulta e observe que como não existe registro na tabela, o resultado da consulta não retorna informações:

    mceclip3.png

  8. Salve a consulta;
  9. Na consulta, cliquei no botão Configurar;
  10. Vá na opção Stored Procedure;
  11. Clique no botão Incluir Nova Stored Porcedure.;
  12. Localize a SPTESTE criada acima.
  13. Repare que você pode executar a Procedure antes ou depois da execução da consulta SQL, nesse exemplo, optei por executar a SP antes da consulta:

    mceclip4.png
  14. Salve o processo;
  15. Após salvar a inserção da procedure, clique no botão Executar da SQL;
  16. Na tela de execução da consulta será apresentado os Parâmetros exigidos para a execução da Procedure:

    mceclip6.png

  17. Informe todos os parâmetros e logo após clique em executar;
  18. Perceba que a  Stored Procedure é executada antes da execução da Sentença, conforme configurado acima, alimentando a tabela Cliente:

    mceclip7.png

 

 

Esse artigo foi útil?
Usuários que acharam isso útil: 1 de 1

9 Comentários

  • Avatar
    Edmar Carvalhaes

    Olá... desejo fazer examente isto, mas quero que, os parâmetros da STORE PROCEDURE seja o resultado da consulta SQL. Como proceder neste caso. Eu tenho uma consulta SQL e o resultado desta consulta deverá ser o parâmetro da store procedure.

    2
    Ações de comentário Permalink
  • Avatar
    PAULO LISBOA LAZARO

    Estou procurando exatamente pela mesma informação.

     

    1
    Ações de comentário Permalink
  • Avatar
    VICTOR AUGUSTO DE JESUS SOUSA

    Utilizem assim:

    USE [DADOSADV]

    DECLARE @return_value int

    EXEC [dbo].[nome_da_stored_procedure]
    @DATA_INICIAL = :DATA_INICIAL,
    @DATA_FINAL = :DATA_FINAL

    SELECT 'Return Value' = @return_value

    -1
    Ações de comentário Permalink
  • Avatar
    Edmar Carvalhaes

    Mas Victor, deste modelo eu estou executando uma procedure direto, o que eu quero é passar os parâmetros para uma consulta SQL e o resultado desta consulta, ser os parâmetros da Store Procedure. Tem alguma saída?

    0
    Ações de comentário Permalink
  • Avatar
    Bruno Gasparetto

    Por aqui eu gostaria de simplesmente retornar o resultado da Procedure, mas o RM não permite fazer um simples EXEC. Até tentei utilizar essa técnica de executar a procedure antes, salvando o resultado em uma tabela temporária local, mas a tabela é removida antes da consulta do RM rodar (assim que a procedure finaliza). Estou pensando como fazer com uma tabela temporária global.

    0
    Ações de comentário Permalink
  • Avatar
    Edmar Carvalhaes

    Bruno Gasparetto este é mais tranquilo. O que eu costumo fazer assim:

    1) Crio uma tabela ZZNomeTabela fisicamente do DB
    2) Na primeira instrução da minha PROCEDURE eu sempre dou um TRUNCATE TABLE ZZNomeTabela, com isto ela vai sempre pegar registros novos
    3) Preencho o conteúdo a tabela novamente, com as informações da Procedore
    4) Coloco ela pra executar antes da SQL
    5) Dentro da SQL eu dou um SELECT * FROM ZZNomeTabela
    Com isto a procedure vai, excluir os registros antigos, preencher com os novos e o select que eu desejo já fica dentro da instrução SQL do próprio RM. Qualquer coisa me manda um email que a gente conversa (edmar@consultecweb.com.br

    0
    Ações de comentário Permalink
  • Avatar
    Bruno Gasparetto

    Edmar Carvalhaes, eu pensei em fazer assim, porém é uma consulta que serve para um WS e posso ter várias solicitações simultâneas, dando problema na tabela. A procedure estava salvando em uma tabela temporária, mas assim que ela termina a tabela é apagada e a consulta SQL não consegue puxar a informação.

    0
    Ações de comentário Permalink
  • Avatar
    Edmar Carvalhaes

    Então, Bruno Gasparetto, se você esta consultando pelo WS fica fácil de resolver. Basta com que, nesta tabela, você crie uma coluna com o nome do usuário tipo CODUSUARIO. Quando a pessoal fazer o login pelo WS, com certeza vai ser o usuário dele, então vc vai fazer um DELETE FROM ZZNomeTabela WHERE CODUSUARIO = 'usuario' e faz um insert com o nome deste usuário. Aí, quando for fazer a consulta SQL faz assim: SELECT * FROM ZZNomeTabela WHERE CODUSUARIO = 'usuario'
    Pronto, seu problema estará resolvido. Qualquer coisa avisa, meu email esta acima.

    0
    Ações de comentário Permalink
  • Avatar
    Ilano Caldas Frota (Editado )

    Então, eu fiz a seguinte procedure:

    CREATE

    PROCEDURE [dbo].[ICF_ATUALIZA_ETAPAS_NO_PERIODO_LETIVO]
    (
    @CODCOLIGADA AS INT,
    @CODFILIAL AS INT,
    @CODTIPOCURSO AS INT,
    @CODPERLET_S AS VARCHAR(10),
    @NOVADATA_S AS VARCHAR(10)
    ) AS

    BEGIN
    SET LANGUAGE BRAZILIAN

    DECLARE @FORMULA AS VARCHAR(20)
    DECLARE @MEDIA AS NUMERIC(15,4)

    IF @CODTIPOCURSO = 1 BEGIN
    SET @FORMULA = 'FRMO01'
    SET @MEDIA = 7
    END
    ELSE
    IF @CODTIPOCURSO = 3 BEGIN
    SET @FORMULA = 'FRM003'
    SET @MEDIA = 7
    END
    ELSE
    IF @CODTIPOCURSO = 6 BEGIN
    SET @FORMULA = 'FRMO02'
    SET @MEDIA = 6
    END

    -- ESTA PROCEDURE ESTÁ DIVIDIDA EM CINCO (5) MOMENTOS:

    -- PRIMEIRO, ATUALIZO TODAS AS FALTAS DA ETAPA EXCETO O TOTAL DE FALTAS
    UPDATE A SET A.DTLIMITEDIGITACAO = CASE WHEN A.DTINICIODIGITACAO < CAST(@NOVADATA_S AS DATETIME) THEN @NOVADATA_S ELSE NULL END,
    A.DTLIMITECONTEFETIVO = CASE WHEN A.DTINICIODIGITACAO < CAST(@NOVADATA_S AS DATETIME) THEN @NOVADATA_S ELSE NULL END,
    A.DTLIMITECONTPREVISTO = CASE WHEN A.DTINICIODIGITACAO < CAST(@NOVADATA_S AS DATETIME) THEN @NOVADATA_S ELSE NULL END,
    A.PONTDIST = CASE A.TIPOETAPA WHEN 'N' THEN 10 ELSE NULL END, A.MEDIA = CASE A.TIPOETAPA WHEN 'N' THEN @MEDIA ELSE NULL END,
    A.DIGAULASDADAS ='S', A.FREQMIN = CASE A.TIPOETAPA WHEN 'F' THEN 75 ELSE NULL END , A.PERMITEDIGITACAO = 'S', A.EXIBENAWEB = 'S', A.PERMITIRCADASTRARAVALIACAO = 'S',
    A.DTINICIODIGITACAO = ISNULL(A.DTINICIO, NULL), A.DTFIM = ISNULL(DATEADD(DD, -DAY(DATEADD(M, 1, A.DTINICIO)), DATEADD(M, 1, A.DTINICIO)), NULL)

    FROM SETAPAS A
    INNER JOIN STURMADISC B ON (B.IDTURMADISC = A.IDTURMADISC AND B.CODCOLIGADA = A.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL C ON (C.IDHABILITACAOFILIAL = B.IDHABILITACAOFILIAL AND C.CODCOLIGADA = B.CODCOLIGADA AND C.CODFILIAL = B.CODFILIAL AND C.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SGRADE D ON (D.CODGRADE = C.CODGRADE AND D.CODCURSO = C.CODCURSO AND D.CODCOLIGADA = C.CODCOLIGADA)
    INNER JOIN SPLETIVO E ON (E.IDPERLET = B.IDPERLET AND E.CODCOLIGADA = B.CODCOLIGADA AND E.CODFILIAL = B.CODFILIAL AND E.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SDISCIPLINA F ON (F.CODDISC = B.CODDISC AND F.CODCOLIGADA = B.CODCOLIGADA AND F.CODTIPOCURSO = B.CODTIPOCURSO)
    WHERE B.CODCOLIGADA = @CODCOLIGADA
    AND B.CODFILIAL = @CODFILIAL
    AND E.CODPERLET = @CODPERLET_S
    AND A.TIPOETAPA = 'F'
    AND A.ETAPAFINAL <> 'S'
    AND E.ENCERRADO = 'N'


    -- SEGUNDO, ATUALIZO TODAS AS NOTAS QUE ESTIVEREM ATIVAS EXCETO MÉDIA E MÉDIA FINAL
    UPDATE A SET A.DTLIMITEDIGITACAO = CASE WHEN A.DTINICIODIGITACAO < CAST(@NOVADATA_S AS DATETIME) THEN @NOVADATA_S ELSE NULL END,
    A.DTLIMITECONTEFETIVO = NULL, A.DTLIMITECONTPREVISTO = NULL,
    A.PONTDIST = CASE A.TIPOETAPA WHEN 'N' THEN 10 ELSE NULL END, A.MEDIA = CASE A.TIPOETAPA WHEN 'N' THEN @MEDIA ELSE NULL END,
    A.DIGAULASDADAS = NULL, A.FREQMIN = CASE A.TIPOETAPA WHEN 'F' THEN 75 ELSE NULL END, A.PERMITEDIGITACAO = 'S', A.EXIBENAWEB = 'S', A.PERMITIRCADASTRARAVALIACAO = 'S',
    A.DTINICIODIGITACAO = ISNULL(A.DTINICIO, NULL),

    A.DTINICIO = ISNULL((SELECT TOP 1 X.DTINICIO FROM SETAPAS X
    INNER JOIN STURMADISC Z ON (Z.IDTURMADISC = X.IDTURMADISC AND Z.CODCOLIGADA = X.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL Y ON (Y.IDHABILITACAOFILIAL = Z.IDHABILITACAOFILIAL AND Y.CODCOLIGADA = Z.CODCOLIGADA AND Y.CODFILIAL = Z.CODFILIAL AND Y.CODTIPOCURSO = Z.CODTIPOCURSO)
    WHERE Z.IDTURMADISC = B.IDTURMADISC AND X.CODETAPA = 1 AND X.TIPOETAPA = 'F' AND Y.CODGRADE = C.CODGRADE AND Y.CODFILIAL = C.CODFILIAL AND Y.CODTIPOCURSO = C.CODTIPOCURSO
    ORDER BY X.DTINICIO), NULL),

    A.DTFIM = ISNULL((SELECT TOP 1 X.DTFIM FROM SETAPAS X
    INNER JOIN STURMADISC Z ON (Z.IDTURMADISC = X.IDTURMADISC AND Z.CODCOLIGADA = X.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL Y ON (Y.IDHABILITACAOFILIAL = Z.IDHABILITACAOFILIAL AND Y.CODCOLIGADA = Z.CODCOLIGADA AND Y.CODFILIAL = Z.CODFILIAL AND Y.CODTIPOCURSO = Z.CODTIPOCURSO)
    WHERE Z.IDTURMADISC = B.IDTURMADISC AND X.TIPOETAPA = 'F' AND Y.CODGRADE = C.CODGRADE AND Y.CODFILIAL = C.CODFILIAL AND Y.CODTIPOCURSO = C.CODTIPOCURSO
    ORDER BY X.DTFIM DESC), NULL)

    FROM SETAPAS A
    INNER JOIN STURMADISC B ON (B.IDTURMADISC = A.IDTURMADISC AND B.CODCOLIGADA = A.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL C ON (C.IDHABILITACAOFILIAL = B.IDHABILITACAOFILIAL AND C.CODCOLIGADA = B.CODCOLIGADA AND C.CODFILIAL = B.CODFILIAL AND C.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SGRADE D ON (D.CODGRADE = C.CODGRADE AND D.CODCURSO = C.CODCURSO AND D.CODCOLIGADA = C.CODCOLIGADA)
    INNER JOIN SPLETIVO E ON (E.IDPERLET = B.IDPERLET AND E.CODCOLIGADA = B.CODCOLIGADA AND E.CODFILIAL = B.CODFILIAL AND E.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SDISCIPLINA F ON (F.CODDISC = B.CODDISC AND F.CODCOLIGADA = B.CODCOLIGADA AND F.CODTIPOCURSO = B.CODTIPOCURSO)
    WHERE B.CODCOLIGADA = @CODCOLIGADA
    AND B.CODFILIAL = @CODFILIAL
    AND E.CODPERLET = @CODPERLET_S
    AND A.TIPOETAPA = 'N'
    AND E.ENCERRADO = 'N'
    AND A.DESCRICAO IN ('AV1', 'AV2', 'AV3', 'NAF')


    -- TERCEIRO, ATUALIZO O TOTAL DE FALTAS ONDE AS DATAS SERÃO NULAS
    UPDATE A SET A.DTLIMITEDIGITACAO = NULL, A.DTLIMITECONTEFETIVO = NULL, A.DTLIMITECONTPREVISTO = NULL, A.PONTDIST = 10, A.MEDIA = @MEDIA,
    A.DIGAULASDADAS ='S', A.FREQMIN = 75, A.PERMITEDIGITACAO = 'S', A.EXIBENAWEB = 'S', A.PERMITIRCADASTRARAVALIACAO = 'S',
    A.DTINICIODIGITACAO = NULL,

    A.DTINICIO = ISNULL((SELECT TOP 1 X.DTINICIO FROM SETAPAS X
    INNER JOIN STURMADISC Z ON (Z.IDTURMADISC = X.IDTURMADISC AND Z.CODCOLIGADA = X.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL Y ON (Y.IDHABILITACAOFILIAL = Z.IDHABILITACAOFILIAL AND Y.CODCOLIGADA = Z.CODCOLIGADA AND Y.CODFILIAL = Z.CODFILIAL AND Y.CODTIPOCURSO = Z.CODTIPOCURSO)
    WHERE Z.IDTURMADISC = B.IDTURMADISC AND X.CODETAPA = 1 AND X.TIPOETAPA = 'F' AND Y.CODGRADE = C.CODGRADE AND Y.CODFILIAL = C.CODFILIAL AND Y.CODTIPOCURSO = C.CODTIPOCURSO
    ORDER BY X.DTINICIO), NULL),

    A.DTFIM = ISNULL((SELECT TOP 1 X.DTFIM FROM SETAPAS X
    INNER JOIN STURMADISC Z ON (Z.IDTURMADISC = X.IDTURMADISC AND Z.CODCOLIGADA = X.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL Y ON (Y.IDHABILITACAOFILIAL = Z.IDHABILITACAOFILIAL AND Y.CODCOLIGADA = Z.CODCOLIGADA AND Y.CODFILIAL = Z.CODFILIAL AND Y.CODTIPOCURSO = Z.CODTIPOCURSO)
    WHERE Z.IDTURMADISC = B.IDTURMADISC AND X.TIPOETAPA = 'F' AND Y.CODGRADE = C.CODGRADE AND Y.CODFILIAL = C.CODFILIAL AND Y.CODTIPOCURSO = C.CODTIPOCURSO
    ORDER BY X.DTFIM DESC), NULL)


    FROM SETAPAS A
    INNER JOIN STURMADISC B ON (B.IDTURMADISC = A.IDTURMADISC AND B.CODCOLIGADA = A.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL C ON (C.IDHABILITACAOFILIAL = B.IDHABILITACAOFILIAL AND C.CODCOLIGADA = B.CODCOLIGADA AND C.CODFILIAL = B.CODFILIAL AND C.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SGRADE D ON (D.CODGRADE = C.CODGRADE AND D.CODCURSO = C.CODCURSO AND D.CODCOLIGADA = C.CODCOLIGADA)
    INNER JOIN SPLETIVO E ON (E.IDPERLET = B.IDPERLET AND E.CODCOLIGADA = B.CODCOLIGADA AND E.CODFILIAL = B.CODFILIAL AND E.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SDISCIPLINA F ON (F.CODDISC = B.CODDISC AND F.CODCOLIGADA = B.CODCOLIGADA AND F.CODTIPOCURSO = B.CODTIPOCURSO)
    WHERE B.CODCOLIGADA = @CODCOLIGADA
    AND B.CODFILIAL = @CODFILIAL
    AND E.CODPERLET = @CODPERLET_S
    AND A.TIPOETAPA = 'F'
    AND A.ETAPAFINAL = 'S'
    AND E.ENCERRADO = 'N'

    -- QUARTO, ATUALIZO A MÉDIA E MÉDIA FINAL
    UPDATE A SET A.DTLIMITEDIGITACAO = NULL, A.DTLIMITECONTEFETIVO = NULL, A.DTLIMITECONTPREVISTO = NULL, A.PONTDIST = 10, A.MEDIA = @MEDIA,
    A.DIGAULASDADAS = NULL, A.FREQMIN = NULL, A.PERMITEDIGITACAO = 'S', A.EXIBENAWEB = 'S', A.PERMITIRCADASTRARAVALIACAO = 'S',
    A.DTINICIODIGITACAO = NULL,

    A.DTINICIO = ISNULL((SELECT TOP 1 X.DTINICIO FROM SETAPAS X
    INNER JOIN STURMADISC Z ON (Z.IDTURMADISC = X.IDTURMADISC AND Z.CODCOLIGADA = X.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL Y ON (Y.IDHABILITACAOFILIAL = Z.IDHABILITACAOFILIAL AND Y.CODCOLIGADA = Z.CODCOLIGADA AND Y.CODFILIAL = Z.CODFILIAL AND Y.CODTIPOCURSO = Z.CODTIPOCURSO)
    WHERE Z.IDTURMADISC = B.IDTURMADISC AND X.CODETAPA = 1 AND X.TIPOETAPA = 'F' AND Y.CODGRADE = C.CODGRADE AND Y.CODFILIAL = C.CODFILIAL AND Y.CODTIPOCURSO = C.CODTIPOCURSO
    ORDER BY X.DTINICIO), NULL),

    A.DTFIM = ISNULL((SELECT TOP 1 X.DTFIM FROM SETAPAS X
    INNER JOIN STURMADISC Z ON (Z.IDTURMADISC = X.IDTURMADISC AND Z.CODCOLIGADA = X.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL Y ON (Y.IDHABILITACAOFILIAL = Z.IDHABILITACAOFILIAL AND Y.CODCOLIGADA = Z.CODCOLIGADA AND Y.CODFILIAL = Z.CODFILIAL AND Y.CODTIPOCURSO = Z.CODTIPOCURSO)
    WHERE Z.IDTURMADISC = B.IDTURMADISC AND X.TIPOETAPA = 'F' AND Y.CODGRADE = C.CODGRADE AND Y.CODFILIAL = C.CODFILIAL AND Y.CODTIPOCURSO = C.CODTIPOCURSO
    ORDER BY X.DTFIM DESC), NULL)

    FROM SETAPAS A
    INNER JOIN STURMADISC B ON (B.IDTURMADISC = A.IDTURMADISC AND B.CODCOLIGADA = A.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL C ON (C.IDHABILITACAOFILIAL = B.IDHABILITACAOFILIAL AND C.CODCOLIGADA = B.CODCOLIGADA AND C.CODFILIAL = B.CODFILIAL AND C.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SGRADE D ON (D.CODGRADE = C.CODGRADE AND D.CODCURSO = C.CODCURSO AND D.CODCOLIGADA = C.CODCOLIGADA)
    INNER JOIN SPLETIVO E ON (E.IDPERLET = B.IDPERLET AND E.CODCOLIGADA = B.CODCOLIGADA AND E.CODFILIAL = B.CODFILIAL AND E.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SDISCIPLINA F ON (F.CODDISC = B.CODDISC AND F.CODCOLIGADA = B.CODCOLIGADA AND F.CODTIPOCURSO = B.CODTIPOCURSO)
    WHERE B.CODCOLIGADA = @CODCOLIGADA
    AND B.CODFILIAL = @CODFILIAL
    AND E.CODPERLET = @CODPERLET_S
    AND A.TIPOETAPA = 'N'
    AND E.ENCERRADO = 'N'
    AND A.DESCRICAO IN ('MÉDIA', 'MÉDIA FINAL')

    -- E QUINTO, FINALIZO COM UMA CONSULTA SIMPLES COM TOP 1

    SELECT TOP 1 A.CODETAPA FROM SETAPAS A
    INNER JOIN STURMADISC B ON (B.IDTURMADISC = A.IDTURMADISC AND B.CODCOLIGADA = A.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL C ON (C.IDHABILITACAOFILIAL = B.IDHABILITACAOFILIAL AND C.CODCOLIGADA = B.CODCOLIGADA AND C.CODFILIAL = B.CODFILIAL AND C.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SPLETIVO E ON (E.IDPERLET = B.IDPERLET AND E.CODCOLIGADA = B.CODCOLIGADA AND E.CODFILIAL = B.CODFILIAL AND E.CODTIPOCURSO = B.CODTIPOCURSO)
    WHERE B.CODCOLIGADA = @CODCOLIGADA
    AND B.CODFILIAL = @CODFILIAL
    AND E.CODPERLET = @CODPERLET_S
    AND A.TIPOETAPA = 'N'
    AND E.ENCERRADO = 'N'

    END

    Depois, fui no TOTVS e criei a consulta:

    DECLARE @NOVADATA VARCHAR(10)
    SET @NOVADATA = :NOVADATA_S

    SELECT A.IDTURMADISC, A.CODETAPA, C.CODGRADE, A.DESCRICAO, A.CODFORMULAFALTA, A.CODFORMULANOTA,
    A.DIGAULASDADAS, A.FREQMIN, A.PERMITEDIGITACAO, A.EXIBENAWEB, A.PERMITIRCADASTRARAVALIACAO,
    A.DTINICIO, A.DTFIM, A.DTLIMITEDIGITACAO, A.DTLIMITECONTPREVISTO, A.DTLIMITECONTEFETIVO,
    A.TIPOETAPA, A.ETAPAFINAL, B.CODDISC, DISCIPLINA = F.NOME, B.CODCOLIGADA, B.CODFILIAL, B.CODTIPOCURSO, B.IDHABILITACAOFILIAL, B.IDPERLET,
    C.CODCURSO, NOME_GRADE = D.DESCRICAO

    FROM SETAPAS A (NOLOCK)
    INNER JOIN STURMADISC B (NOLOCK) ON (B.IDTURMADISC = A.IDTURMADISC AND B.CODCOLIGADA = A.CODCOLIGADA)
    INNER JOIN SHABILITACAOFILIAL C (NOLOCK) ON (C.IDHABILITACAOFILIAL = B.IDHABILITACAOFILIAL AND C.CODCOLIGADA = B.CODCOLIGADA AND C.CODFILIAL = B.CODFILIAL AND C.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SGRADE D (NOLOCK) ON (D.CODGRADE = C.CODGRADE AND D.CODCURSO = C.CODCURSO AND D.CODCOLIGADA = C.CODCOLIGADA)
    INNER JOIN SPLETIVO E (NOLOCK) ON (E.IDPERLET = B.IDPERLET AND E.CODCOLIGADA = B.CODCOLIGADA AND E.CODFILIAL = B.CODFILIAL AND E.CODTIPOCURSO = B.CODTIPOCURSO)
    INNER JOIN SDISCIPLINA F (NOLOCK) ON (F.CODDISC = B.CODDISC AND F.CODCOLIGADA = B.CODCOLIGADA AND F.CODTIPOCURSO = B.CODTIPOCURSO)

    WHERE E.CODPERLET = :CODPERLET_S
    AND C.CODCOLIGADA = :$CODCOLIGADA
    AND C.CODFILIAL = :$CODFILIAL
    AND C.CODTIPOCURSO = :$CODTIPOCURSO

    ORDER BY A.IDTURMADISC, A.TIPOETAPA, A.CODETAPA

    Na consulta, em configurações, informei a procedure deixando para executar antes da consulta. Testei executado a consulta e tudo correu perfeitamente. Mas vi que os parâmtros da procedure ficam visíveis, todos eles, mesmo aqueles que recebiam as variáveis globais CODCOLIGADA, CODFILIAL e CODTIPOCURSO.

    Então pensei, e se anexar a consulta ao cadastro Turmas/Disciplinas vinculando os campos do cadastro à consulta, exceto o parâmetro NOVADATA_S que ficaria com valor fixo? Bom, mesmo assim todos os parâmetros são exibidos. Isso é um risco pois um usuário descuidado ou até mesmo a pressa em atualizar as etapas pode alterar um parâmetro que não devesse ser alterado e comprometer outros cursos de outras filiais. Então, como posso fazer para que estes parâmetros pré-definidos não apareçam no momento da execução das consultas? Pois, se fosse apenas uma consulta simples, sem procedures, estes parâmetros não aparecem. Existe alguma solução pra isso no futuro?

    Grato

    0
    Ações de comentário Permalink
Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _