====== Criar views para usar em outros sistemas ======
Exemplo 1: view que retorna os dados de um processo para o sisproen
===== Passo 1 =====
Criar o usuário que utilizará a view.
-- criar usuário sisproen
CREATE USER sisproen WITH PASSWORD 'senha';
===== Passo 2 =====
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;
===== Passo 3 =====
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;
===== Passo 4 =====
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
===== Passo 5 =====
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~~
-----------
[[sistemas:suap:acessodgti|Voltar à página Principal do SUAP (Acesso DGTI)]]