//--------------------------------------------------- public override CResultAErreur RunAndSaveIfOk(CEtapeWorkflow etape) { CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(etape); CResultAErreur result = CResultAErreur.True; if (m_formuleElementDeclencheur == null) { result.EmpileErreur(I.T("Invalid wait paramter on step @1|20091", TypeEtape.Libelle)); return(result); } result = m_formuleElementDeclencheur.Eval(ctxEval); if (!result) { result.EmpileErreur(I.T("Invalid wait parameter on step @1|20091", TypeEtape.Libelle)); return(result); } if (result.Data == null)//Pas de cible, ok, on dégage { return(EndAndSaveIfOk(etape)); } CObjetDonneeAIdNumerique objetCible = result.Data as CObjetDonneeAIdNumerique; if (objetCible == null) { result.EmpileErreur(I.T("Can not run wait step @1 on type @2|20092", TypeEtape.Libelle, DynamicClassAttribute.GetNomConvivial(result.Data.GetType()))); return(result); } CResultAErreurType <CHandlerEvenement> resH = CHandlerEvenement.CreateHandlerOnObject( etape.ContexteDonnee, objetCible, ParametreDeclencheur, "Workflow step " + TypeEtape.Id + "/" + etape.UniversalId, etape.UniversalId); if (!resH) { result.EmpileErreur(resH.Erreur); return(result); } if (resH) { resH.DataType.EtapeWorkflowATerminer = etape; } return(etape.ContexteDonnee.SaveAll(true)); }
//------------------------------------------------------------------- public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CHandlerEvenement evt = (CHandlerEvenement)objet; } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
//--------------------------------------------------- public override CResultAErreur RunAndSaveIfOk(CEtapeWorkflow etape) { CResultAErreur result = CResultAErreur.True; if (NePasExecuterSiToutesConditionsRemplies) { if (GetErreursManualEndEtape(etape)) { return(EndAndSaveIfOk(etape)); } } //S'assure que l'évenement stoppeur est bien créé if (ParametreDeclencheurStop != null) { CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(etape); result = FormuleElementEditePrincipal.Eval(ctx); if (!result) { return(result); } CObjetDonneeAIdNumerique objCible = result.Data as CObjetDonneeAIdNumerique; if (objCible != null) { CResultAErreurType <CHandlerEvenement> resH = CHandlerEvenement.CreateHandlerOnObject( etape.ContexteDonnee, objCible, ParametreDeclencheurStop, "Workflow step " + TypeEtape.Id + "/" + etape.UniversalId, etape.UniversalId); if (!resH) { result.EmpileErreur(resH.Erreur); return(result); } resH.DataType.EtapeWorkflowATerminer = etape; } } //Asynchrone, le démarrage ne fait rien, l'étape attendra la validation du formulaire return(etape.ContexteDonnee.SaveAll(true)); }
/// /////////////////////////////////////////////// public void AddCoupleHandlerObjet(CHandlerEvenement handler, CObjetDonneeAIdNumerique obj, CInfoDeclencheurProcess infoDeclencheur) { m_listeCoupesEvtObj.Add(new CCoupleHandlerObjet(handler, obj, infoDeclencheur)); }
public CCoupleHandlerObjet(CHandlerEvenement handler, CObjetDonneeAIdNumerique obj, CInfoDeclencheurProcess infoDeclencheur) : base(obj, infoDeclencheur) { Handler = handler; }