Package systextil.intg.api
Class IntgImporter
java.lang.Object
systextil.intg.api.IntgImporter
- All Implemented Interfaces:
Closeable
,AutoCloseable
Importador de dados para o ERP.
Abre um PreparedStatement para consultar a tabela de controle de integrações (INTG_010) e atualizar seus dados, que pode ser aproveitado para várias exportações.
Abre outro PreparedStatement para inserir registros nessa tabela, se precisar. E outros mais.
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 importações já está isolado dentro desta classe.
- Author:
- sergio
-
Constructor Summary
ConstructorsConstructorDescriptionIntgImporter
(Connection conn, Integracao intg) IntgImporter
(Connection conn, Integracao intg, IntgLogger logger) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Conveniência para informar ao processo de importação qual é a identificação de um item que já foi importado.<DTO extends IntgDto>
booleanExecuta primeiro as reimportações (reimport(DtoWriter, Importer)
) e em seguida importa os objetos novos (importDtos(DtoWriter, Importer)
).<DTO extends IntgDto>
booleanImporta um DTO no ERP.<DTO extends IntgDto>
booleanimportDtos
(DtoWriter<DTO> wr, Importer<DTO> importer) Importa novos registros e atualizações do sistema externo.<DTO extends IntgDto>
booleanImporta registros que estão pendentes de importação porque falharam.
-
Constructor Details
-
IntgImporter
- Throws:
SQLException
-
IntgImporter
- Throws:
SQLException
-
-
Method Details
-
getId
Conveniência para informar ao processo de importação qual é a identificação de um item que já foi importado.- Parameters:
tabela
- o nome da tabela do item importadoextKey
- a identificação do item na integração remota- Returns:
- a identificação do item no ERP, ou nulo se não existir
- Throws:
SQLException
- se houver problema no acesso ao banco de dados
-
importDto
Importa um DTO no ERP.- Type Parameters:
DTO
- o tipo de dados a importar- Parameters:
dto
- os dados a importarwr
- o objeto que sabe importar os dados no ERP- Returns:
- se a importação foi bem sucedida
- Throws:
SQLException
- se houver problema no acesso à tabela de controle das integrações
-
reimport
public <DTO extends IntgDto> boolean reimport(DtoWriter<DTO> wr, Importer<DTO> importer) throws SQLException Importa registros que estão pendentes de importação porque falharam. Percorre a tabela de integração, procurando registros que estão marcados para importação, e invoca a importação deles, um a um.- Type Parameters:
DTO
- o tipo de objeto do ERP que será importado- Parameters:
wr
- o objeto que sabe gravar o DTO no ERP, e que informa qual é a tabela do ERP que está sendo acessadaimporter
- o objeto que sabe buscar no provedor externo os dados para importação- Returns:
- se a importação foi com sucesso, sem falhas
- Throws:
SQLException
- se houver problema no acesso à tabela de controle das integrações
-
importDtos
public <DTO extends IntgDto> boolean importDtos(DtoWriter<DTO> wr, Importer<DTO> importer) throws SQLException, Exception Importa novos registros e atualizações do sistema externo. Para isso, consulta o timestamp de atualização de determinada tabela, e solicita ao sistema externo os novos dados a partir desse timestamp. Ao concluir a importação, registra o novo timestamp para aquela tabela, independentemente de todos os registros terem sido importados com sucesso. Os registros que tiverem problemas já estarão registrados na tabela de controle de integrações.Se não houver timestamp registrado no sistema, será enviado nulo, e o sistema externo deve tratar essa informação convenientemente (deve tratar-se de uma importação inicial).
- Type Parameters:
DTO
- o tipo de objeto do ERP que será importado- Parameters:
wr
- o objeto que sabe gravar o DTO no ERP, e que informa qual é a tabela do ERP que está sendo acessadaimporter
- o objeto que sabe buscar no provedor externo os dados para importação- Returns:
- se a importação foi com sucesso, sem falhas
- Throws:
SQLException
- se houver problema no acesso à tabela de controle das integraçõesException
- se houver problema ao obter a lista de dados a importar do sistema externo
-
importAll
public <DTO extends IntgDto> boolean importAll(DtoWriter<DTO> wr, Importer<DTO> importer) throws SQLException, Exception Executa primeiro as reimportações (reimport(DtoWriter, Importer)
) e em seguida importa os objetos novos (importDtos(DtoWriter, Importer)
).- Type Parameters:
DTO
- o tipo de objeto do ERP que será importado- Parameters:
wr
- o objeto que sabe gravar o DTO no ERP, e que informa qual é a tabela do ERP que está sendo acessadaimporter
- o objeto que sabe buscar no provedor externo os dados para importação- Returns:
- se a importação foi com sucesso, sem falhas
- Throws:
SQLException
- se houver problema no acesso à tabela de controle das integraçõesException
- se houver problema ao obter a lista de dados a importar do sistema externo
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-