Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Générer automatiquement une action dans le CRM par code

0000002090     -      26/08/2017

La programmation décrite ici montre comment créer une action dans le CRM par code. Elle met essentiellement en oeuvre un objet ActionEngine, qui est la représentation abstraite (indépendante de l'interface utilisateur) d'une action et qui contient toute une série de méthodes l'élevant au statut de moteur d'actions du CRM.

Il faut noter que si le modèle d'action utilisé est doté d'un customizer, celui-ci sera aussi activé et utilisé par le moteur dans ce code. Pour information, si on ne souhaite pas qu'un code de customizer s'exécute lorsqu'on n'est pas dans l'interface utilisateur, il faut ajouter ce test :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;

namespace MyNameSpace
{
    public class Class1 : MercatorUi.Interfaces.IExec
    {

        public void Main()
        {
            using (MercatorUi.Engine.Crm.ActionEngine actionEngine = MercatorUi.Engine.Crm.ActionEngine.InitNew(MercatorUi.Sig._SigEnum.CLI, "2002", ".A-6C412D0")) // signalétique à utiliser, id de la fiche dans ce signalétique, id du modèle d'action dans ACTTEMPL
            {
                if (!string.IsNullOrEmpty(actionEngine.LastError))
                {
                    Dialogs.Stop("Init ActionEngine : " + actionEngine.LastError);
                    return;
                }
                actionEngine.ActionsRecord.EMAIL = "info@mercator.eu";
                actionEngine.ActionsRecord.OBJET = "Test de mail généré automatiquement";
                actionEngine.ActionsRecord.NOTE = "Ce mail a été généré automatiquement en utilisant MercatorUi.Engine.Crm.ActionEngine.";

                // sauvegarde
                if (!actionEngine.Save())
                {
                    Dialogs.Stop("Save : " + actionEngine.LastError);
                    return;
                }
                Dialogs.Stop(string.Format("L'action {0} a été sauvegardée.", actionEngine.ActtemplRecord.LIB_F));
            }
        }
    }
}

Remarque : pour que ce module fonctionne, vous devez disposer de l'option ENGA (Engine sur Actions)