Class IntgImporter

java.lang.Object
systextil.intg.api.IntgImporter
All Implemented Interfaces:
Closeable, AutoCloseable

public class IntgImporter extends Object implements Closeable
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 Details

  • Method Details

    • getId

      public String getId(String tabela, String extKey) throws SQLException
      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 importado
      extKey - 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

      public <DTO extends IntgDto> boolean importDto(DTO dto, DtoWriter<DTO> wr) throws SQLException
      Importa um DTO no ERP.
      Type Parameters:
      DTO - o tipo de dados a importar
      Parameters:
      dto - os dados a importar
      wr - 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 acessada
      importer - 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 acessada
      importer - 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
      Exception - 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 acessada
      importer - 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
      Exception - se houver problema ao obter a lista de dados a importar do sistema externo
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable