PW.ETL - Nota 008788

Módulo: INTERFACES

Funcionalidade: Interfaces

Data/Hora da Publicação: 19/01/2017 15:38:42

Data/Hora Última Alteração: 19/01/2017 15:38:42

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.