//-------------------------------------------------------------
        private void EndEtape()
        {
            if (m_formulaire != null && m_formulaire.ModeEdition)
            {
                CFormAlerte.Afficher(I.T("Validate your modification before|20572"));
                return;
            }
            CResultAErreur result = CResultAErreur.True;

            using (CContexteDonnee ctx = new CContexteDonnee(m_etapeEnCours.ContexteDonnee.IdSession, true, false))
            {
                if (m_objetSecondaireEnCoursEdition != null)
                {
                    CObjetDonnee objetSecondaire = m_objetSecondaireEnCoursEdition.GetObjetInContexte(ctx);
                    result = m_panelFormulalire.AffecteValeursToElement(objetSecondaire);
                }
                if (result)
                {
                    m_etapeEnCours = m_etapeEnCours.GetObjetInContexte(ctx) as CEtapeWorkflow;
                    if (m_etapeEnCours.EtatCode == (int)EEtatEtapeWorkflow.Démarrée)
                    {
                        result = m_etapeEnCours.EndEtapeAndSaveIfOk();
                    }
                }
            }
            if (!result)
            {
                CFormAlerte.Afficher(result.Erreur);
                return;
            }
            else
            {
                Init();
            }
        }
예제 #2
0
        //-------------------------------------------------------------------
        public CResultAErreur RunEvent(
            bool bAutoManagerHandlerTermine,
            CObjetDonneeAIdNumerique obj,
            CInfoDeclencheurProcess infoDeclencheur,
            IIndicateurProgression indicateur)
        {
            CResultAErreur          result  = CResultAErreur.True;
            CProcessEnExecutionInDb process = ProcessSource;

            if (ProcessSource != null)
            {
                result = process.RepriseProcess(IdActionDeProcessToExecute, indicateur);
            }
            else if (EtapeWorkflowATerminer != null)
            {
                using (CContexteDonnee contexte = new CContexteDonnee(ContexteDonnee.IdSession, true, false))
                {
                    CEtapeWorkflow etape = EtapeWorkflowATerminer.GetObjetInContexte(contexte) as CEtapeWorkflow;
                    if (etape != null)
                    {
                        result = etape.EndEtapeAndSaveIfOk();
                    }
                    if (!result)
                    {
                        //L'étape ne s'est pas terminée ? tant pis alors, c'est pas grave, elle se terminera par ailleurs
                        result = CResultAErreur.True;
                        return(result);
                    }
                }
            }
            //gestion du handler faite ailleurs
            if (!bAutoManagerHandlerTermine)
            {
                if (!result)
                {
                    result.EmpileErreur(I.T("@1 handler error|271", Libelle));
                }
                return(result);
            }
            EndHandler(result);
            return(result);
        }