getBaseDonnees().commit(); getBaseDonnees().begin(); getBaseDonnees ().update (mNouvelleIteration) ;
    public String traiter () throws ServletException    {      try      {        // Si l'utilisateur affiche la page pour la premire fois,        if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_VIDE))        {          getBaseDonnees ().commit() ;          getBaseDonnees ().close () ;                    // Si l'utilisateur accde  la page de cloturation, transmet les donnes  la page.          getRequete ().setAttribute (CConstante.PAR_ITERATION, mIteration) ;          getRequete ().setAttribute (CConstante.PAR_PROJET, mProjet) ;                              // Affiche la page de modification de problme.          return "/JSP/Processus/TCloturerIteration.jsp" ;        }        else        {          Session      lSession ;     // Session actuelle de l'utilisateur.          OQLQuery     lRequete ;     // Requte  raliser sur la base.          QueryResults lResultat ;    // Rsultat de la requte sur la base.                    lSession     = (Session) getRequete ().getSession ().getAttribute (CConstante.SES_SESSION) ;          mProjet      = lSession.getProjet () ;                    /*************** Modification de l'itration en cours ************/                   //L'tat passe  termine          mIteration.setEtat(MIteration.ETAT_TERMINE);          // Si l'utilisateur valide les donnes, alors on les enregistre dans la base.          if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMIT))          {            getBaseDonnees().commit();            getBaseDonnees().begin();            getBaseDonnees().update (mIteration) ;          }                              /***************** Ensuite on change d'itration *****************/                    //Rcupration de l'itration suivante (numro sivant)          MIteration mNouvelleIteration ;          lRequete = getBaseDonnees ().getOQLQuery ("select ITERATION from owep.modele.execution.MIteration ITERATION where mNumero = $1 AND mProjet.mId = $2") ;          lRequete.bind (mIteration.getNumero()+1) ;          lRequete.bind (mProjet.getId ()) ;          lResultat = lRequete.execute () ;          // Si on rcupre correctement l'itration dans la base,          if (lResultat.hasMore ())          {            mNouvelleIteration = (MIteration) lResultat.next () ;                        //On change l'tat  en_cours            mNouvelleIteration.setEtat(MIteration.ETAT_EN_COURS);            //On valorise la date de dbut relle  la date de fin relle de l'itration prcdente            mNouvelleIteration.setDateDebutReelle(mIteration.getDateFinReelle());            //On parcour la liste des taches de la nouvelle itration            //et on passe l'tat de celle qui peuvent commencer  prte            //Une tache est prte  commencer si elle n'a aucune condition            for (int i = 0; i < mNouvelleIteration.getNbTaches(); i ++)            {              MTache lTache = mNouvelleIteration.getTache (i) ;              if (lTache.getNbConditions()==0)                lTache.setEtat(MTache.ETAT_NON_DEMARRE);            }            getBaseDonnees().commit();            getBaseDonnees().begin();            getBaseDonnees ().update (mNouvelleIteration) ;          }          // Si l'itration n'existe pas ou n'appartient pas au projet ouvert,          else          {            throw new ServletException (CConstante.EXC_TRAITEMENT) ;          }          // Valide les donnes.          getBaseDonnees ().commit () ;          getBaseDonnees ().close () ;                    getSession().setIteration(mNouvelleIteration);          // Affiche la page de visualisation des taches  raliser dans la nouvelle itration.          return "/Tache/ListeTacheVisu" ;        }      }      catch (Exception eException)      {        eException.printStackTrace () ;        throw new ServletException (CConstante.EXC_TRAITEMENT) ;      }    }