Class IntgExporter

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

public class IntgExporter extends Object implements Closeable
Exportador de dados do ERP para uma integração.

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 Details

    • IntgExporter

      public IntgExporter(Connection conn, Integracao integracao) throws SQLException
      Instancia um exportador de dados.
      Parameters:
      conn - a conexão ao banco de dados
      integracao - a identificação da integração
      Throws:
      SQLException - se houver problema
    • IntgExporter

      public IntgExporter(Connection conn, Integracao integracao, IntgLogger logger) throws SQLException
      Instancia um exportador de dados.
      Parameters:
      conn - a conexão ao banco de dados
      integracao - a identificação da integração
      logger - 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á exportada
      exp - 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á exportada
      exp - o objeto de exportação específico para esse tipo de DTO que integra com o sistema externo
      exc - 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

      public static CallableStatement prepareCall(Connection conn) throws SQLException
      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

      public static String convertStackTraceToString(Exception e)
    • 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 interface AutoCloseable
      Specified by:
      close in interface Closeable