Difference between revisions of "Interfaces Dolibarr vers exterieur"

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
m
Tag: 2017 source edit
 
(54 intermediate revisions by 11 users not shown)
Line 1: Line 1:
== Ajouter son code sur un évênement ==
+
<!-- BEGIN interlang links -->
 +
<!-- Do NOT edit this section
 +
    Links below are automatically managed by PolyglotBot
 +
    You can edit links on the English source page : Interfaces_Dolibarr_toward_foreign_systems -->
 +
[[en:Interfaces_Dolibarr_toward_foreign_systems]]
 +
[[es:Interfaces_Dolibarr_hacia_el_exterior]]
 +
[[zh:Dolibarr到外部系统的接口]]
 +
<!-- END interlang links -->
  
Pour permettre de déclencher du code personalisé en réaction à un évenement Dolibarr (création/modification/suppression d'une société/facture/produit), Dolibarr propose un mécanisme de triggers.
+
{{TemplateDocDev}}
 +
Dolibarr fournit deux mécanismes simples pour permettre d'interfacer Dolibarr avec une application tierce:
  
Pour ajouter son propre code à déclencher par trigger, la procédure est la suivante:
+
* Le [[Système_de_Triggers|système de Triggers]] - active votre code suite à un événement-action métier interne (par exemple, création d'une facture, modification d'un utilisateur, suppression d'une commande...)
# Copier le fichier includes/triggers/interface_demo.class.php sous le nom interface_xxx.class.php (ou xxx est une chaine de votre choix), en le laissant dans le meme répertoire. Par exemple includes/triggers/interface_monworkflow.class.php
+
* Le [[système de Hooks]] - active votre code dans un point d'entrée de Dolibarr (un point d'entrée peut être n'importe où contrairement aux actions-triggers).
# Editer ce fichier interface_monworkflow.class.php afin d'ajouter votre code dans la fonction run_trigger. Cette fonction est appelée à chaque évennement Dolibarr. Placer votre code en fonction du ou des évenements sur lesquels vous voulez réagir, chaque évenement étant identifié par un test sur la variable $action:
+
* Le [[Module Webhook FR|Module Webhook]] - un module (s'appuyant sur le système de Hooks, voir ligne ci-dessus) pour envoyer un message JSON suite à un événement trigger de Dolibarr.
  
  function run_trigger($action,$object,$user,$lang,$conf)
+
Pour des informations sur l'autre sens et permettre à un système extérieur de faire agir Dolibarr, voir plutôt la page [[Interfaces Exterieur vers Dolibarr]].
  {
 
        // Mettre ici le code à exécuter en réaction de l'action
 
        // Le type de l'évenement Dolibarr est stocké dans $action
 
        // Les données de l'action sont stockées dans $object
 
        // La configuration, utilisateur et langage sont dans $conf,$user et $lang
 
        if ($action == 'COMPANY_CREATE')
 
        {
 
            dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id);
 
        }
 
        elseif ($action == 'COMPANY_MODIFY')
 
        {       
 
            dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id);
 
        }
 
        elseif ($action == 'COMPANY_DELETE')
 
        ...
 
  }
 
 
 
 
 
== Gérer de nouveaux évènements ==
 
 
 
Les évenements Dolibarr qui provoquent un appel de triggers sont, pour l'instant, identifiés par les codes évenements suivants:
 
* COMPANY_CREATE
 
* COMPANY_MODIFY
 
* COMPANY_DELETE
 
 
 
 
 
Pour gérer d'autre évenements que ceux ci-dessus, il faut modifier le code Dolibarr pour y ajouter la séquence suivante dans les méthodes métiers des classes utilisées pour gérer les évenements:
 
 
 
  // Appel des triggers
 
  include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
 
  $interface=new Interfaces($this->db);
 
  $interface->run_triggers('XXXXX_YYYYYY',$this,$user,$lang,$conf);
 
  // Fin appel triggers
 
 
 
Ici, $this doit etre l'objet de la classe metier qui contient toutes les informations à passer au trigger. Remplacer, de plus, le 'XXXXX_YYYYYY' par un code évenement non déjà utilisé.
 
Il sera alors possible d'ajouter dans la methode run_trigger, un if qui permet de gérer ce code. La methode run_trigger serait alors de la forme :
 
 
 
  function run_trigger($action,$object,$user,$lang,$conf)
 
  {
 
        // Mettre ici le code à exécuter en réaction de l'action
 
        // Le type de l'évenement Dolibarr est stocké dans $action
 
        // Les données de l'action sont stockées dans $object
 
        // La configuration, utilisateur et langage sont dans $conf,$user et $lang
 
        <b>
 
        if ($action == 'XXXXX_YYYYY')
 
        {
 
            dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id);
 
        }
 
        </b>
 
        elseif ($action == 'COMPANY_CREATE')
 
        {
 
            dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id);
 
        }
 
        elseif ($action == 'COMPANY_MODIFY')
 
        {       
 
            dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id);
 
        }
 
        elseif ($action == 'COMPANY_DELETE')
 
        ...
 
  }
 

Latest revision as of 15:14, 14 August 2024


Dolibarr fournit deux mécanismes simples pour permettre d'interfacer Dolibarr avec une application tierce:

  • Le système de Triggers - active votre code suite à un événement-action métier interne (par exemple, création d'une facture, modification d'un utilisateur, suppression d'une commande...)
  • Le système de Hooks - active votre code dans un point d'entrée de Dolibarr (un point d'entrée peut être n'importe où contrairement aux actions-triggers).
  • Le Module Webhook - un module (s'appuyant sur le système de Hooks, voir ligne ci-dessus) pour envoyer un message JSON suite à un événement trigger de Dolibarr.

Pour des informations sur l'autre sens et permettre à un système extérieur de faire agir Dolibarr, voir plutôt la page Interfaces Exterieur vers Dolibarr.