Ejemplo n.º 1
0
        /// ////////////////////////////////////////////////////////
        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);
        }
Ejemplo n.º 2
0
        /// ////////////////////////////////////////////////
        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);
        }