sistemas:suap:criarview

Criar views para usar em outros sistemas

Exemplo 1: view que retorna os dados de um processo para o sisproen

Criar o usuário que utilizará a view.

-- criar usuário sisproen
CREATE USER sisproen WITH PASSWORD 'senha';

Criar a view (por exemplo, obter dados dos processos do IFCE)

CREATE VIEW vw_protocolo_sisproen AS
select 
    numero_processo, assunto, numero_documento,
    pessoa.nome as pessoa_interessada,
    unidadeorganizacional.nome as unidade_organizacional,
    setor.nome as setor,
    data_cadastro,
    data_finalizacao,
    (CASE WHEN status=1 THEN 'EM TRÂMITE'
        WHEN status=2 THEN 'FINALIZADO'
        WHEN status=3 THEN 'ARQUIVADO'
        ELSE 'OUTRO'
    END) as status,
    (CASE WHEN tipo=1 THEN 'MEMORANDO'
        WHEN tipo=2 THEN 'OFÍCIO'
        WHEN tipo=3 THEN 'REQUERIMENTO'
        ELSE 'OUTRO'
    END) as tipo
from 
    protocolo_processo
INNER JOIN pessoa ON protocolo_processo.pessoa_interessada_id = pessoa.id
INNER JOIN unidadeorganizacional ON protocolo_processo.uo_id = unidadeorganizacional.id
INNER JOIN setor ON protocolo_processo.setor_origem_id = setor.id;

Alterar o dono da view para o usuário suap

ALTER TABLE vw_protocolo_sisproen OWNER TO suap;
GRANT ALL ON TABLE vw_protocolo_sisproen TO suap;

Atribuir as permissões de select na view para o usuário que foi criado no passo 1

GRANT SELECT ON TABLE vw_protocolo_sisproen TO sisproen; -- colocar o usuario dele

Como fazer a consulta?

select * from vw_protocolo_sisproen  where numero_processo = '23259.005198.2015-86';

Exemplo 2: view para obter os dados dos professores do SUAP

create view vw_professor_sisproen AS
select 
    pessoa_fisica.pessoa_ptr_id as id, 
    pessoa_fisica.cpf as cpf,
    pessoa_fisica.rg as rg,
    TO_CHAR(pessoa_fisica.nascimento_data, 'DD-MM-YYYY') as data_nascimento,
    pessoa_fisica.sexo as sexo,
    pessoa_fisica.username as matricula_siape,
    pessoa.nome as nome,
    pessoa.email_secundario as email,
    pessoa.excluido as excluido
from 
    edu_professor
inner join 
    pessoa_fisica on edu_professor.pessoa_fisica_id = pessoa_fisica.pessoa_ptr_id
inner join 
    pessoa on pessoa_fisica.pessoa_ptr_id = pessoa.id
order by pessoa.nome asc;
ALTER TABLE vw_professor_sisproen OWNER TO suap;
GRANT ALL ON TABLE vw_professor_sisproen TO suap;
GRANT SELECT ON TABLE vw_professor_sisproen TO sisproen;

Última revisão: ~~LASTMOD~~


Voltar à página Principal do SUAP (Acesso DGTI)

  • sistemas/suap/criarview.txt
  • Última modificação: 2021/08/25 10:33
  • (edição externa)