Bloqueio de matrícula por função SQL

Utilizado quando se deseja fazer validações específicas durante uma matrícula, impedindo a matrícula e exibindo alguma mensagem para a pessoa.

Ao realizar o bloqueio, será gravado um log desse bloqueio na tabela TB_BLOQ_PROC_MATRICULA, que pode ser consultado a partir da tela de Consulta de log de bloqueio da matrícula. Acesse a documentação Permissão nas telas para saber quais os procedimentos para dar acesso a um recurso.

Para utilizar esta funcionalidade, deve-se criar uma função de banco dentro do banco de dados “ICO” do sistema, com um nome de no máximo 30 caracteres. A função deve conter obrigatoriamente 3 parâmetros, no momento em que for chamada a execução da função no sistema. Serão enviados para os parâmetros o: “id da pessoa”, “id da turma” e o “tipo do módulo”, com os tipos “inteiro, inteiro e varchar” respectivamente. Portanto, os tipos dos parâmetros da função devem ser os mesmos e nessa ordem, além disso, o seu retorno deve ser do tipo “varchar”, pois será esse retorno que será exibido em tela para o usuário. Caso alguma dessas regras não seja cumprida, não será possível utilizá-la.

Exemplo de sintaxe para a função:

Microsoft SQL Server:

mssql.sql
CREATE FUNCTION FUNC_PARCELAS_ABERTO(@ID_PESSOA INT, @ID_TURMA INT, @TIPO_MODULO VARCHAR(255)) RETURNS VARCHAR(255) AS
BEGIN
DECLARE @QTD_PARCELAS INT
	SELECT @QTD_PARCELAS = COUNT(PAR_ID) FROM TB_PARCELA
	WHERE PAR_RESPESID = @ID_PESSOA
	AND PAR_SITPAG = 1
 
	IF @QTD_PARCELAS > 0
		RETURN CONCAT('Você possui ',@QTD_PARCELAS,' parcelas em aberto, não é possível se matricular');
	RETURN NULL
END


Oracle:

oracle.sql
CREATE OR REPLACE FUNCTION FUNC_PARCELAS_ABERTO(V_ID_PESSOA INT, V_ID_TURMA INT, V_TIPO_MODULO VARCHAR) 
RETURN VARCHAR AS
V_QTD_PARCELAS INT;
BEGIN 
 
	SELECT COUNT(PAR_ID) INTO V_QTD_PARCELAS FROM TB_PARCELA
	WHERE PAR_RESPESID = V_ID_PESSOA
	AND PAR_SITPAG = 1;
 
	IF V_QTD_PARCELAS > 0 THEN
		RETURN 'Você possui ' || V_QTD_PARCELAS || ' parcelas em aberto, não é possível se matricular';
	END IF;
  RETURN NULL;
END;

Nesse exemplo, a função busca as parcelas em aberto da pessoa que estiver se matriculando. Caso exista alguma parcela em aberto, retornará a mensagem informando a quantidade de parcelas impedindo a matricula e emitindo a mensagem em tela. Caso não exista parcela em aberto, retornará NULL, não emitirá mensagem e permitirá a matrícula.

Após criar a função, para passar a utilizá-la, é necessário informá-la nas configurações de regra de matrícula, na aba “Geral”, campo “Função de validação específica”. Deve-se informar apenas o nome da função, conforme imagens abaixo.



No ato da matricula em um curso que utiliza esta regra, a função será executada com os parâmetros supracitados. Caso a função retorne algum texto, esse texto será exibido em tela para o usuário e não permitirá a matrícula. Caso não retorne nenhum texto, o usuário poderá prosseguir com o processo normalmente.

Valores para o parâmetro Tipo do módulo:

ACADEMICO - Acadêmico (Graduação, Pós, Escola, etc…)
CENTRALALU - Portal do aluno
CENTRALRES - Portal do responsável
CENTRALEXA - Portal do ex-aluno
CENTRALCOL - Portal do colaborador
CENTRALCOO - Portal do coordenador
CENTRALPRO - Portal do professor


Ainda há dúvidas? Se você preferir retire suas dúvidas com o nosso suporte, clique aqui e abra um chamado para atendimento. :-)


Voltar

  • (edição externa)