public String replicar() {
    MensagemConvencaoDB db = new MensagemConvencaoDBToplink();
    List<MensagemConvencao> listam = new ArrayList();

    listam = db.pesquisaTodosAno(this.getListaRefReplica().get(idReplica).getLabel());

    Dao dao = new Dao();
    if (!listam.isEmpty()) {
      dao.openTransaction();
    }
    DataHoje dh = new DataHoje();
    boolean comita = false;
    for (int i = 0; i < listam.size(); i++) {
      MensagemConvencao mc = new MensagemConvencao();
      mc =
          db.verificaMensagem(
              listam.get(i).getConvencao().getId(),
              listam.get(i).getServicos().getId(),
              listam.get(i).getTipoServico().getId(),
              listam.get(i).getGrupoCidade().getId(),
              listam.get(i).getReferencia().substring(0, 3) + replicaPara);
      if (mc != null && mc.getId() != -1) {
        continue;
      }

      MensagemConvencao men =
          new MensagemConvencao(
              -1,
              listam.get(i).getGrupoCidade(),
              listam.get(i).getConvencao(),
              listam.get(i).getServicos(),
              listam.get(i).getTipoServico(),
              listam.get(i).getMensagemContribuinte(),
              listam.get(i).getMensagemCompensacao(),
              listam.get(i).getReferencia().substring(0, 3) + replicaPara,
              DataHoje.converte(dh.incrementarAnos(1, listam.get(i).getVencimento())));

      if (dao.save(men)) {
        comita = true;
      } else {
      }
    }
    if (comita) {
      dao.commit();
      msgConfirma = "Registro replicado com Sucesso!";
      GenericaMensagem.info("Sucesso", msgConfirma);
    } else {
      dao.rollback();
      msgConfirma = "Nenhuma mensagem para Replicar!";
      GenericaMensagem.warn("Erro", msgConfirma);
    }
    return "";
  }