You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Descreva o erro
Ao executar o agendamento ProtocoloIntegradoAgendamentoRN::publicarProtocoloIntegrado, ocorre um erro (Object of class DateTime could not be converted to string) no processamento do campo dth_abertura da tabela atividade do SEI. Pelo que investiguei, o código esperava que fosse retornado um objeto do tipo string e foi retornado um objeto do tipo DateTime.
O framework do SEI até corrige isso, mas só quando se usa as funções da classe InfraBD (Ex: listar, consultar, etc). Para não mudar muito o código, sugiro utilizar a função formatarLeituraDth da interface InfraIBanco ao ler o valor do campo dth_abertura. Irei fazer um pull request com a sugestão.
Para reproduzir
Execute o agendamento ProtocoloIntegradoAgendamentoRN::publicarProtocoloIntegrado, seja de forma manual ou automática, em um ambiente do SUPER com banco de dados SQLServer.
Comportamento esperado
Agendamento ser executado sem falhas.
Contexto da falha (Por favor, complete a seguinte informação):
Descreva o erro
Ao executar o agendamento ProtocoloIntegradoAgendamentoRN::publicarProtocoloIntegrado, ocorre um erro (Object of class DateTime could not be converted to string) no processamento do campo
dth_abertura
da tabelaatividade
do SEI. Pelo que investiguei, o código esperava que fosse retornado um objeto do tipo string e foi retornado um objeto do tipo DateTime.O problema está na forma com que a função
consultarAtividadesPublicacao
faz a consulta no banco.https://github.com/supergovbr/mod-sei-protocolo-integrado/blob/2c744055740772db72b94d2526395cee54384ae2/src/bd/ProtocoloIntegradoMonitoramentoProcessosBD.php#L239
Ao usar a função
consultarSql
diretamente, me parece que os campos são retornados da forma como o driver PHP do banco de dados utilizado retorna.No caso do banco SQLServer, o driver SQLSRV por padrão retorna os campos de data como objetos DateTime e não como string. (https://learn.microsoft.com/en-us/sql/connect/php/how-to-retrieve-date-and-time-type-as-strings-using-the-sqlsrv-driver?view=sql-server-ver16).
O framework do SEI até corrige isso, mas só quando se usa as funções da classe InfraBD (Ex: listar, consultar, etc). Para não mudar muito o código, sugiro utilizar a função
formatarLeituraDth
da interface InfraIBanco ao ler o valor do campodth_abertura
. Irei fazer um pull request com a sugestão.Para reproduzir
Execute o agendamento ProtocoloIntegradoAgendamentoRN::publicarProtocoloIntegrado, seja de forma manual ou automática, em um ambiente do SUPER com banco de dados SQLServer.
Comportamento esperado
Agendamento ser executado sem falhas.
Contexto da falha (Por favor, complete a seguinte informação):
Log de Erros
The text was updated successfully, but these errors were encountered: