Class IntgExporter
- All Implemented Interfaces:
Closeable
,AutoCloseable
Abre um PreparedStatement para consultar a tabela de controle de integrações (INTG_010), que pode ser aproveitado para várias exportações.
Por isso, esses objetos devem ser fechados ao fim das operações com o método
close()
, ou usando "try-with-resources".
Todo o controle das exportações já está isolado dentro desta classe.
-
Constructor Summary
ConstructorsConstructorDescriptionIntgExporter
(Connection conn, Integracao integracao) Instancia um exportador de dados.IntgExporter
(Connection conn, Integracao integracao, IntgLogger logger) Instancia um exportador de dados. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Fecha o resultset de consulta dos registros de integração e o statement que foi aberto para consultar os registros do ERP.static String
<DTO extends IntgDto>
booleanexportarDados
(DtoReader<DTO> rd, Exporter<DTO> exp) Exporta e envia para a integração todos os registros pendentes na tabela de integrações referentes a determinada tabela do ERP, e registra o retorno.<DTO extends IntgDto>
booleanexportarDados
(DtoReader<DTO> rd, Exporter<DTO> exp, Excluder exc) Exporta e envia para a integração todos os registros pendentes na tabela de integrações referentes a determinada tabela do ERP, e registra o retorno.<DTO extends IntgDto>
booleanexportarDadosEmLote
(DtoReader<DTO> rd, Exporter<DTO> exp, Excluder exc, int maximumElements) static CallableStatement
prepareCall
(Connection conn) Conveniência que prepara um statement para executar a procedure INTG_PR_EXPORT_ITEM.
-
Constructor Details
-
IntgExporter
Instancia um exportador de dados.- Parameters:
conn
- a conexão ao banco de dadosintegracao
- a identificação da integração- Throws:
SQLException
- se houver problema
-
IntgExporter
Instancia um exportador de dados.- Parameters:
conn
- a conexão ao banco de dadosintegracao
- a identificação da integraçãologger
- o logger que será usado; não pode ser nulo- Throws:
SQLException
- se houver problema
-
-
Method Details
-
exportarDados
public <DTO extends IntgDto> boolean exportarDados(DtoReader<DTO> rd, Exporter<DTO> exp) throws SQLException Exporta e envia para a integração todos os registros pendentes na tabela de integrações referentes a determinada tabela do ERP, e registra o retorno.Usa um logger para registrar as mensagens de sucesso ou de erro, se tiver sido definido no construtor.
- Type Parameters:
DTO
- o tipo de dados a exportar- Parameters:
rd
- o objeto que obtém um DTO a partir do seu ID no ERP, e que informa qual é a tabela do ERP que será exportadaexp
- o objeto de exportação específico para esse tipo de DTO que integra com o sistema externo- Returns:
- se a exportação foi com sucesso, sem falhas
- Throws:
SQLException
- se houver problema no acesso à tabela de controle das integrações- See Also:
-
exportarDados
public <DTO extends IntgDto> boolean exportarDados(DtoReader<DTO> rd, Exporter<DTO> exp, Excluder exc) throws SQLException Exporta e envia para a integração todos os registros pendentes na tabela de integrações referentes a determinada tabela do ERP, e registra o retorno.Usa um logger para registrar as mensagens de sucesso ou de erro, se tiver sido definido no construtor.
Se não for preciso exportar exclusões, então pode-se usar
exportarDados(DtoReader, Exporter)
.- Type Parameters:
DTO
- o tipo de dados a exportar- Parameters:
rd
- o objeto que obtém um DTO a partir do seu ID no ERP, e que informa qual é a tabela do ERP que será exportadaexp
- o objeto de exportação específico para esse tipo de DTO que integra com o sistema externoexc
- o objeto de exportação de exclusões. Pode ser nulo, se não houver exclusões a exportar.- Returns:
- se a exportação foi com sucesso, sem falhas
- Throws:
SQLException
- se houver problema no acesso à tabela de controle das integrações
-
exportarDadosEmLote
public <DTO extends IntgDto> boolean exportarDadosEmLote(DtoReader<DTO> rd, Exporter<DTO> exp, Excluder exc, int maximumElements) throws SQLException - Throws:
SQLException
-
prepareCall
Conveniência que prepara um statement para executar a procedure INTG_PR_EXPORT_ITEM. Ela aceita 4 parâmetros de entrada e não tem nenhum parâmetro de saída. Os parâmetros de entrada são:- o código da empresa (se for nulo significa todas as empresas);
- o código da integração;
- o nome da tabela;
- o código identificador no ERP do objeto a exportar.
Esta procedure é responsável por encaminhar para exportação qualquer objeto do ERP. Ela cuida de saber se o objeto já foi exportado ou se já está aguardando exportação, evitando assim perda ou duplicidade de dados.
Atenção! Certifique-se de fechar esse statement após o uso, de preferência usando "try-with-resources".
- Parameters:
conn
- a conexão ao banco de dados usada para controlar a integração- Returns:
- o statement preparado, aguardando parâmetros para executar a procedure
- Throws:
SQLException
- se houver problema no acesso ao banco de dados
-
convertStackTraceToString
-
close
public void close()Fecha o resultset de consulta dos registros de integração e o statement que foi aberto para consultar os registros do ERP.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-