@Override
  protected String executeMetier() {
    // recuperation des taches suivant les filtres, le tri et la page
    if (page < 1) page = 1;
    else if (nrPages != 0 && page > nrPages) page = nrPages;
    if (nrPerPage == 0) nrPerPage = PilotageConstants.NB_TACHES_PER_PAGE;
    if (sens == null || "".equals(sens)) sens = "asc";
    if (sort == null || "".equals(sort)) sort = "tache";
    pagination = new Pagination<Checklist_Base>(page, nrPerPage);
    listCriticite = ChecklistCriticiteDatabaseService.getAll();
    listEnvironnement = EnvironmentDatabaseService.getAll();
    listEtat = ChecklistEtatDatabaseService.getAll();

    // gestion du filtre
    Users userLogged = (Users) session.get(PilotageConstants.USER_LOGGED);
    Integer userLoggedId = userLogged.getId();
    filtre = FiltreDatabaseService.getFiltre(userLoggedId, titrePage);

    if (filtre != null) {
      try {
        Integer filtreId = filtre.getId();
        reloadFiltreBase(filtre.getFiltreString());

        listeTaches =
            ChecklistBaseDatabaseService.getAll(
                pagination,
                sort,
                sens,
                filtreNom,
                filtreEnvironnement,
                filtreDateDebut,
                filtreEtat,
                filtreCriticite,
                filtreDemandes);

        filtreJson =
            ShowChecklistBaseAction.filtreToString(
                filtreNom, filtreEnvironnement, filtreDateDebut, filtreEtat, filtreCriticite);

        if (validForm == 1) {
          if (filtreNomBase != filtreNom
              || filtreEnvironnementBase != filtreEnvironnement
              || filtreDateDebutBase != filtreDateDebut
              || filtreEtatBase != filtreEtat
              || filtreCriticiteBase != filtreCriticite) {
            filtreJson =
                ShowChecklistBaseAction.filtreToString(
                    filtreNom, filtreEnvironnement, filtreDateDebut, filtreEtat, filtreCriticite);
            FiltreDatabaseService.update(
                filtreId, filtreJson != null ? filtreJson.toString() : null);
          }
        }
      } catch (Exception e) {
        error = getText("error.message.generique") + " : " + e.getMessage();
        erreurLogger.error("Update de filtre administration checklist", e);
      }
    } else {
      try {
        listeTaches =
            ChecklistBaseDatabaseService.getAll(
                pagination,
                sort,
                sens,
                filtreNom,
                filtreEnvironnement,
                filtreDateDebut,
                filtreEtat,
                filtreCriticite,
                filtreDemandes);
        filtreJson =
            ShowChecklistBaseAction.filtreToString(
                filtreNom, filtreEnvironnement, filtreDateDebut, filtreEtat, filtreCriticite);
        if (validForm == 1) {
          if (filtreNom != null
              || filtreEnvironnement != null
              || filtreDateDebut != null
              || filtreEtat != null
              || filtreCriticite != null) {
            FiltreDatabaseService.create(
                userLoggedId, titrePage, filtreJson != null ? filtreJson.toString() : null);
          }
        }
      } catch (Exception e) {
        error = getText("error.message.generique") + " : " + e.getMessage();
        erreurLogger.error("Creation de filtre administration checklist", e);
      }
    }
    return OK;
  }