anatelgovbr / mod-sei-peticionamento

Projeto Oficial do Módulo do SEI de Peticionamento e Intimação Eletrônicos. PROJETO DE DESENVOLVIMENTO COLABORATIVO, contudo, deve abrir Issue de demanda para discussão antes de qualquer desenvolvimento.
GNU General Public License v3.0
13 stars 12 forks source link

Incompatibilidade com mais de um sistema #25

Closed calimaborges closed 2 years ago

calimaborges commented 2 years ago

Iniciamos o processo de instalação do módulo mod-sei-peticionamento no ambiente de desenvolvimento aqui do TST. Porém, no TST temos dois sistemas na tabela "sistema" (CSJT e TST) e por isso ao executar o script sip/scripts/sip_atualizar_versao_modulo_peticionamento.php o seguinte erro ocorre:

00001 - INICIANDO A INSTALA��O/ATUALIZA��O DO M�DULO DE PETICIONAMENTO E INTIMA��O ELETR�NICOS NO SIP VERS�O 3.0.5
00002 - [InfraOracle->consultarSql] select lower(table_name) as table_name from all_tables where lower(owner)='sip' and lower(table_name)='sip_teste' order by table_name asc
00003 - [InfraOracle->consultarSql] 0 registro(s)
00004 - [InfraOracle->consultarSql] 0.078 s
00005 - [InfraOracle->executarSql] CREATE TABLE sip_teste (id number(*,0) null)
00006 - [InfraOracle->executarSql] 0 registro(s) afetado(s)
00007 - [InfraOracle->executarSql] 0.32 s
00008 - [InfraOracle->executarSql] DROP TABLE sip_teste
00009 - [InfraOracle->executarSql] 0 registro(s) afetado(s)
00010 - [InfraOracle->executarSql] 0.617 s
00011 - [InfraParametro->getStrValor] VERSAO_MODULO_PETICIONAMENTO
00012 - [InfraRN->__call] InfraParametroRN.consultar
00013 - [InfraOracle->consultarSql] SELECT infra_parametro.valor FROM infra_parametro WHERE infra_parametro.nome=:v1

Bind:
v1: VERSAO_MODULO_PETICIONAMENTO

00014 - [InfraOracle->consultarSql] 0 registro(s)
00015 - [InfraOracle->consultarSql] 0.001 s
00016 - EXECUTANDO A INSTALA��O/ATUALIZA��O DA VERS�O 0.0.1 DO M�DULO DE PETICIONAMENTO E INTIMA��O ELETR�NICOS NA BASE DO SIP
00017 - [InfraRN->__call] SistemaRN.consultar
00018 - [InfraOracle->consultarSql] SELECT sistema.id_sistema AS idsistema FROM sistema WHERE sistema.sigla=:v1 AND sistema.sin_ativo=:v2

Bind:
v1: SEI
v2: S

00019 - [InfraOracle->consultarSql] 2 registro(s)
00020 - [InfraOracle->consultarSql] 0.051 s
Descri��o:
Consulta retornou mais de um registro de SISTEMA.

Mensagem:
Consulta retornou mais de um registro de SISTEMA.

Trilha de Processamento:
#0 /opt/sei-v4.0.0/sip/scripts/sip_atualizar_versao_modulo_peticionamento.php(2275): InfraRN->__call('atualizarVersao', Array)
#1 {main}

Detalhes:
SELECT sistema.id_sistema AS idsistema FROM sistema WHERE sistema.sigla=:v1 AND sistema.sin_ativo=:v2

Bind:
v1: SEI
v2: S

Trilha de Processamento Original:
\n0 /opt/sei-v4.0.0/sip/web/rn/SistemaRN.php(816): InfraBD->consultar(Object(SistemaDTO))
\n1 /opt/sei-v4.0.0/infra/infra_php/InfraRN.php(140): SistemaRN->consultarConectado(Object(SistemaDTO))
\n2 /opt/sei-v4.0.0/sip/scripts/sip_atualizar_versao_modulo_peticionamento.php(188): InfraRN->__call('consultar', Array)
\n3 /opt/sei-v4.0.0/sip/scripts/sip_atualizar_versao_modulo_peticionamento.php(112): MdPetAtualizadorSipRN->instalarv001()
\n4 /opt/sei-v4.0.0/infra/infra_php/InfraRN.php(138): MdPetAtualizadorSipRN->atualizarVersaoConectado()
\n5 /opt/sei-v4.0.0/sip/scripts/sip_atualizar_versao_modulo_peticionamento.php(2275): InfraRN->__call('atualizarVersao', Array)
\n6 {main}

Aparentemente basta trocar o método ->consultar por ->listar e aplicar um loop para que todos os sistemas tenham as alterações do módulo de peticionamento aplicadas. Posso abrir um PR nesse sentido, porém gostaria de saber se pode existir alguma outra incompatibilidade com mais de 1 sistema no uso do módulo. Nesse caso o trabalho ficaria mais complexo.

neijobson commented 2 years ago

@calimaborges Nunca vi isso ocorrer no script do SIP Pode ajustar e testar para ver se resolve. Resolvendo, nos repassa o ajustado neijobson@anatel.gov.br

neijobson commented 2 years ago

@calimaborges Só alerto que apenas para o sistema "SEI" é que tem alterações no SIP É para retornar apenas o sistema "SEI" e seguimos os mesmos padrões de scripts que o TRF4 construi Tenha cuidado a respeito dos testes Pelos "Detalhes" acima retornou correto o SEI ativo S

neijobson commented 2 years ago

@calimaborges entendi melhor pelo jeito. Se vocês estão com dois sistemas SEI aí, não pode de jeito algum. O SIP foi feito para controlar um SEI apenas. Vai dar problemas para vocês até mesmo em atualizações que o TRF4 libere que envolva script de banco.

Vocês devem segregar um SIP para cada SEI.

calimaborges commented 2 years ago

@neijobson é isso mesmo. São 2 registros para o SEI nessa tabela. Mas também existem 2 registros para o SIP nessa mesma tabela. Um é do TST outro é do CSJT. Então, na verdade, são dois órgãos, cada um com 1 SIP e 1 SEI. O que permite a listagem abaixo no momento do acesso:

image

neijobson commented 2 years ago

@calimaborges Tem alguma coisa errada aí, pois tem muitos órgãos usando múltiplos órgãos no SEI e não tem "dois SEIs" no SIP. A forma de utilização do SEI para múltiplos órgãos é diferente e tem algum ponto aí que fizeram errado. Vocês precisam revisar.

Qualquer coisa, meu e-mail de contato está no README do módulo: https://github.com/anatelgovbr/mod-sei-peticionamento#readme

Mas o problema está na forma aí que implementaram o SEI e precisam revisar, pois poderão ter inúmeros problemas. Nem o TRF4 que tem múltiplos órgãos utilizam o SEI dessa forma!

calimaborges commented 2 years ago

Tem razão... Lembrei aqui o que houve. Existe uma tabela de órgãos que pode ser usada para o caso do screenshot. Essa do sistema foi uma "adaptação" porque precisavam de um domínio separado, título de sistema separado etc. Certamente teremos muitas incompatibilidades no futuro se mantivermos dessa forma. Vamos estudar aqui qual caminho vamos tomar considerando isso. Obrigado pelo alerta e pela paciência.