/// //////////////////////////////////////////////////////// protected override CResultAErreur MyExecute(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; //Evalue l'objet source CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(Process); contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee); result = FormuleSource.Eval(contexteEval); if (!result) { result.EmpileErreur(I.T("Error in object source formula|255")); return(result); } //Pas d'objet source, pas grave if (result.Data == null) { return(result); } if (!(result.Data is CObjetDonneeAIdNumerique)) { result.EmpileErreur(I.T("The source object formula must return a work entity|257")); return(result); } CObjetDonneeAIdNumerique objetSource = (CObjetDonneeAIdNumerique)result.Data; result = FormuleDest.Eval(contexteEval); if (!result) { result.EmpileErreur(I.T("Error in target object formula|256")); return(result); } //Pas d'objet dest, pas grave if (result.Data == null) { return(result); } if (!(result.Data is CObjetDonneeAIdNumerique)) { result.EmpileErreur(I.T("The target object formula must return a work entity|254")); return(result); } CObjetDonneeAIdNumerique objetDest = (CObjetDonneeAIdNumerique)result.Data; CSynchronismeDonnees.CreateSynchronisme( contexte.ContexteDonnee, objetSource, objetDest, ChampSource, ChampDest, FormuleConditionSource, FormuleConditionDest); return(result); }
/// //////////////////////////////////////////////// public static CSynchronismeDonnees CreateSynchronisme( CContexteDonnee contexteCreation, CObjetDonneeAIdNumerique objetSource, CObjetDonneeAIdNumerique objetDest, string strChampSource, string strChampDest, C2iExpression expressionSurSource, C2iExpression expressionSurDest) { CSynchronismeDonnees synchro = new CSynchronismeDonnees(contexteCreation); CFiltreData filtre = new CFiltreData( c_champTypeSource + "=@1 and " + c_champTypeDest + "=@2 and " + c_champIdSource + "=@3 and " + c_champIdDest + "=@4 and " + c_champChampSource + "=@5 and " + c_champChampDest + "=@6", objetSource.GetType().ToString(), objetDest.GetType().ToString(), objetSource.Id, objetDest.Id, strChampSource, strChampDest); if (!synchro.ReadIfExists(filtre)) { synchro.CreateNewInCurrentContexte(); synchro.ObjetSource = objetSource; synchro.ObjetDest = objetDest; synchro.ChampSource = strChampSource; synchro.ChampDest = strChampDest; } synchro.ConditionSurSource = expressionSurSource; synchro.ConditionSurDest = expressionSurDest; return(synchro); }