Módulo: Integração - Interfaces
Funcionalidade: Interfaces
Data/Hora da Publicação: 19/01/2017 15:39:38
Data/Hora Última Alteração: 19/01/2017 15:39:38
Descrição da Nota: Ao processa a interface de Indiretos, e ocorriam mais que 200 falhas, e o usuário solicitasse pra editar os registros em lote, uma mensagem "OutOfMemoryException" aparecia, impedindo a edição dos registro.
Sintoma
Ao processa a interface de Indiretos, e ocorriam mais que 200 falhas, e o usuário solicitasse pra editar os registros em lote, uma mensagem "OutOfMemoryException" aparecia, impedindo a edição dos registro.
Foi identificado que ao abrir a tela de edição em lote é carregado para memória todos "caches" da interface processada. No caso de Indiretos, pode existir uma tabela com grande número de registros (ultrapassando a casa de 1 milhão de registros).
Neste caso, havia um estouro de memória, ocasionando o problema.
Solução
O mapeamento do campo INI_CFPS da tabela ITG_NF_ITEM possuia uma consulta para criar o cache antes do processo de interface. Essa consulta que retornava muitos registros. Por isso, foi alterado a forma como cache é recuperado na execução da interface: O cache foi passado pra dentro da fórmula, desta forma, ele será recuperado apenas para execução da interface e não mais na edição em lote, o que possibilitará a inserção de qualquer valor String no campo.
Vale ressaltar, que ao passar o cache para dentro da fórmula, o mesmo será buscado apenas na primeira execução, nas demais o mesmo já estará em memória.
4.00.00.0000
Ordem
Pacote - (Requisição)