<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jeanbaptistejeannot</id>
	<title>Dolibarr ERP CRM Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jeanbaptistejeannot"/>
	<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php/Special:Contributions/Jeanbaptistejeannot"/>
	<updated>2026-10-31T06:06:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=List_of_modules_id&amp;diff=35368</id>
		<title>List of modules id</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=List_of_modules_id&amp;diff=35368"/>
		<updated>2016-04-22T12:54:20Z</updated>

		<summary type="html">&lt;p&gt;Jeanbaptistejeannot: /* ID 100000 - 499999 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Core]]&lt;br /&gt;
{{TemplateDocDevEn}}&lt;br /&gt;
{{TemplateDocDevEs}}&lt;br /&gt;
{{TemplateDocDevFr}}&lt;br /&gt;
&lt;br /&gt;
{{Flag en}} This page list all reserved modules numbers / ID. If you build or want to build your own modules (like this [[:Category:Complementary_modules|complementary module]]), you should take an ID range here. &lt;br /&gt;
&lt;br /&gt;
{{Flag fr}} Cette page recense tous les numéros / ID réservés de modules. Si vous avez réalisé ou voulez réaliser vos propres modules (comme les [[:Category:Modules complémentaires|modules complémentaires suivant]]), vous devriez prendre une plage d&#039;ID ici.&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}} Esta página contiene un listado de todos los id reservados para los módulos. Si ha creado o quiere realizar sus propios módulos, (como estos [[:Category:Módulos_complementarios|módulos complementarios]]), deberá reservarse un rango de ID aquí.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ID 0 - 99999 =&lt;br /&gt;
{{Flag en}} Reserved for Dolibarr&#039;s internal modules.&lt;br /&gt;
&lt;br /&gt;
{{Flag fr}} Réservé aux modules internes de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}} Reservado a los módulos internos de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
= ID 100000 - 499999 =&lt;br /&gt;
{{Flag en}} Reserved area for editors in need for an ID range. You can edit this page to add your own range (limited to 1000 values per editor)&lt;br /&gt;
&lt;br /&gt;
{{Flag fr}} Zone réservé aux éditeurs qui ont besoin d&#039;une plage d&#039;ID spécifiques. Vous pouvez modifier cette page pour réserver votre plage (limité à 1000 valeurs par éditeur)&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}} Área reservada para los partners que necesiten un rango de ID. Puede modificar esta página para reservar su rango (limitado a 1000 valores por editor)&lt;br /&gt;
&lt;br /&gt;
* ID 100000 - 100999: OpenThink (http://www.openthink.be)&lt;br /&gt;
* ID 101000 - 101999: NLTechno (http://www.nltechno.com)&lt;br /&gt;
* ID 102000 - 102999: Tiaris (http://www.tiaris.fr)&lt;br /&gt;
* ID 103000 - 103999: Open-concept.pro (http://www.open-concept.pro)&lt;br /&gt;
* ID 104000 - 104999: ATM Consulting (http://www.atm-consulting.fr)&lt;br /&gt;
* ID 105000 - 105999: GPC.solutions&lt;br /&gt;
* ID 106000 - 106999: PHPASSO&lt;br /&gt;
* ID 107000 - 107999: TecLib (http://www.teclib.com) / Auguria (http://www.auguria.net)&lt;br /&gt;
* ID 108000 - 108999: ETHICWEB&lt;br /&gt;
* ID 109000 - 109999: Aplose&lt;br /&gt;
* ID 110000 - 110999: Aternatik&lt;br /&gt;
* ID 111000 - 111999: Asset IT (www.assetit.ch)&lt;br /&gt;
* ID 112000 - 112999: Aarboard AG (www.aarboard.ch)&lt;br /&gt;
* ID 113000 - 113999: Asilib - Alexandre Spangaro&lt;br /&gt;
* ID 114000 - 114999: Iceleaf OÜ&lt;br /&gt;
* ID 115000 - 115999: 2A2C Conseil - Cyril ZEKSER&lt;br /&gt;
* ID 116000 - 116999: Wolftec GmbH&lt;br /&gt;
* ID 117000 - 117999: Oscim (http://www.oscim.fr)&lt;br /&gt;
* ID 118000 - 118999: Oarces Web (dev.oarces.com)&lt;br /&gt;
* ID 119000 - 119999: Manuel Berrocal - Absolacom&lt;br /&gt;
* ID 120000 - 120999: Régis Houssin (http://www.inodbox.com)&lt;br /&gt;
* ID 121000 - 121999: Oscss - Shop &lt;br /&gt;
* ID 130000 - 130999: Technicks ICT (http://www.technicks.eu)&lt;br /&gt;
* ID 140000 - 140999: Altairis&lt;br /&gt;
* ID 150000 - 150999: Jeffinfo &lt;br /&gt;
* ID 160000 - 160999: Charles-François BENKE (http://www.patas-monkey.com)&lt;br /&gt;
* ID 190000 - 190999: Diciannove (http://19.coop)&lt;br /&gt;
* ID 199000 - 199999: RFMS&lt;br /&gt;
* ID 200000 - 200999: Noxiome&lt;br /&gt;
* ID 201000 - 201999: Sasa Ostrouska (saxa)&lt;br /&gt;
* ID 202000 - 202999: Z-Application&lt;br /&gt;
* ID 203000 - 203099: Elidee - elidee.com&lt;br /&gt;
* ID 203100 - 203999: Garcia MICHEL (soamichel.fr)&lt;br /&gt;
* ID 204000 - 204999: Ari Elbaz elarifr - accedinfo.com&lt;br /&gt;
* ID 205000 - 205999: Kreiz IT&lt;br /&gt;
* ID 300000 - 300999: AtooNet (http://www.atoo-net.com)&lt;br /&gt;
* ID 400000 - 400999: 2byte.es (http://www.2byte.es)&lt;br /&gt;
* ID 401000 - 401999: B&amp;amp;D Informática&lt;br /&gt;
* ID 402000 - 402999: Marcos García de La Fuente (marcosgdf)&lt;br /&gt;
* ID 403000 - 403999: Sergibyte (http://www.sergibyte.com)&lt;br /&gt;
* ID 404000 - 404999: Aikhan&lt;br /&gt;
* ID 405000 - 405999: AIME (http://www.aime.mx)&lt;br /&gt;
* ID 420000 - 420099: BBS Concept&lt;br /&gt;
* ID 420100 - 420199: LeMousticProduction (www.lemousticproduction.info) -&amp;lt; module DoliRH&lt;br /&gt;
* ID 420200 - 421199: VatCheck (www.abnc.be)&lt;br /&gt;
* ID 422200 - 422999: Artaban (http://artaban.fr)&lt;br /&gt;
* ID 423000 - 423050: cyberesprit&lt;br /&gt;
* ID 424000 - 424999: A3sys - Mon-Dolibarr (http://www.mon-dolibarr.fr)&lt;br /&gt;
* ID 425000 - 425999: Sébastien SERRE Thivinfo (www.thivinfo.com)&lt;br /&gt;
* ID 426000 - 426099: Arkesis-Solution&lt;br /&gt;
* ID 426100 - 426149: GetLandy (www.getlandy.com)&lt;br /&gt;
&lt;br /&gt;
= ID &amp;gt; 500000 =&lt;br /&gt;
{{Flag en}} If you don&#039;t already have reserved ids and need some, please don&#039;t use hazardous number and use a number higher than 500000, but it is better to ask a wiki account, and reserve your own range by editing the  100000 - 499999 range (1000 ids maximum per partner).&lt;br /&gt;
&lt;br /&gt;
{{Flag fr}} Si vous n&#039;avez pas de numéros réservés et en avez besoin, n&#039;utilisez pas de chiffres au hasard et utilisez une valeur supérieure à 500000, toutefois, il est préférable d&#039;obtenir un compte wiki, et  réserver vous-même votre plage en ajoutant votre entrée dans la zone 100000 - 499999 (pas plus de 1000 numéros par partenaire).&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}} Si no dispone de número reservado y necesita, no use cifras redondeadas y usa un valor superior a 500000. Si tiene una cuenta wiki, puede reservarse usted mismo sus id añadiendo su entrada en la zona 100000 - 499999 (no más de 1000 id por partner).&lt;/div&gt;</summary>
		<author><name>Jeanbaptistejeannot</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=List_of_modules_id&amp;diff=35367</id>
		<title>List of modules id</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=List_of_modules_id&amp;diff=35367"/>
		<updated>2016-04-22T12:53:31Z</updated>

		<summary type="html">&lt;p&gt;Jeanbaptistejeannot: /* ID 100000 - 499999 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Core]]&lt;br /&gt;
{{TemplateDocDevEn}}&lt;br /&gt;
{{TemplateDocDevEs}}&lt;br /&gt;
{{TemplateDocDevFr}}&lt;br /&gt;
&lt;br /&gt;
{{Flag en}} This page list all reserved modules numbers / ID. If you build or want to build your own modules (like this [[:Category:Complementary_modules|complementary module]]), you should take an ID range here. &lt;br /&gt;
&lt;br /&gt;
{{Flag fr}} Cette page recense tous les numéros / ID réservés de modules. Si vous avez réalisé ou voulez réaliser vos propres modules (comme les [[:Category:Modules complémentaires|modules complémentaires suivant]]), vous devriez prendre une plage d&#039;ID ici.&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}} Esta página contiene un listado de todos los id reservados para los módulos. Si ha creado o quiere realizar sus propios módulos, (como estos [[:Category:Módulos_complementarios|módulos complementarios]]), deberá reservarse un rango de ID aquí.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ID 0 - 99999 =&lt;br /&gt;
{{Flag en}} Reserved for Dolibarr&#039;s internal modules.&lt;br /&gt;
&lt;br /&gt;
{{Flag fr}} Réservé aux modules internes de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}} Reservado a los módulos internos de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
= ID 100000 - 499999 =&lt;br /&gt;
{{Flag en}} Reserved area for editors in need for an ID range. You can edit this page to add your own range (limited to 1000 values per editor)&lt;br /&gt;
&lt;br /&gt;
{{Flag fr}} Zone réservé aux éditeurs qui ont besoin d&#039;une plage d&#039;ID spécifiques. Vous pouvez modifier cette page pour réserver votre plage (limité à 1000 valeurs par éditeur)&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}} Área reservada para los partners que necesiten un rango de ID. Puede modificar esta página para reservar su rango (limitado a 1000 valores por editor)&lt;br /&gt;
&lt;br /&gt;
* ID 100000 - 100999: OpenThink (http://www.openthink.be)&lt;br /&gt;
* ID 101000 - 101999: NLTechno (http://www.nltechno.com)&lt;br /&gt;
* ID 102000 - 102999: Tiaris (http://www.tiaris.fr)&lt;br /&gt;
* ID 103000 - 103999: Open-concept.pro (http://www.open-concept.pro)&lt;br /&gt;
* ID 104000 - 104999: ATM Consulting (http://www.atm-consulting.fr)&lt;br /&gt;
* ID 105000 - 105999: GPC.solutions&lt;br /&gt;
* ID 106000 - 106999: PHPASSO&lt;br /&gt;
* ID 107000 - 107999: TecLib (http://www.teclib.com) / Auguria (http://www.auguria.net)&lt;br /&gt;
* ID 108000 - 108999: ETHICWEB&lt;br /&gt;
* ID 109000 - 109999: Aplose&lt;br /&gt;
* ID 110000 - 110999: Aternatik&lt;br /&gt;
* ID 111000 - 111999: Asset IT (www.assetit.ch)&lt;br /&gt;
* ID 112000 - 112999: Aarboard AG (www.aarboard.ch)&lt;br /&gt;
* ID 113000 - 113999: Asilib - Alexandre Spangaro&lt;br /&gt;
* ID 114000 - 114999: Iceleaf OÜ&lt;br /&gt;
* ID 115000 - 115999: 2A2C Conseil - Cyril ZEKSER&lt;br /&gt;
* ID 116000 - 116999: Wolftec GmbH&lt;br /&gt;
* ID 117000 - 117999: Oscim (http://www.oscim.fr)&lt;br /&gt;
* ID 118000 - 118999: Oarces Web (dev.oarces.com)&lt;br /&gt;
* ID 119000 - 119999: Manuel Berrocal - Absolacom&lt;br /&gt;
* ID 120000 - 120999: Régis Houssin (http://www.inodbox.com)&lt;br /&gt;
* ID 121000 - 121999: Oscss - Shop &lt;br /&gt;
* ID 130000 - 130999: Technicks ICT (http://www.technicks.eu)&lt;br /&gt;
* ID 140000 - 140999: Altairis&lt;br /&gt;
* ID 150000 - 150999: Jeffinfo &lt;br /&gt;
* ID 160000 - 160999: Charles-François BENKE (http://www.patas-monkey.com)&lt;br /&gt;
* ID 190000 - 190999: Diciannove (http://19.coop)&lt;br /&gt;
* ID 199000 - 199999: RFMS&lt;br /&gt;
* ID 200000 - 200999: Noxiome&lt;br /&gt;
* ID 201000 - 201999: Sasa Ostrouska (saxa)&lt;br /&gt;
* ID 202000 - 202999: Z-Application&lt;br /&gt;
* ID 203000 - 203099: Elidee - elidee.com&lt;br /&gt;
* ID 203100 - 203999: Garcia MICHEL (soamichel.fr)&lt;br /&gt;
* ID 204000 - 204999: Ari Elbaz elarifr - accedinfo.com&lt;br /&gt;
* ID 205000 - 205999: Kreiz IT&lt;br /&gt;
* ID 300000 - 300999: AtooNet (http://www.atoo-net.com)&lt;br /&gt;
* ID 400000 - 400999: 2byte.es (http://www.2byte.es)&lt;br /&gt;
* ID 401000 - 401999: B&amp;amp;D Informática&lt;br /&gt;
* ID 402000 - 402999: Marcos García de La Fuente (marcosgdf)&lt;br /&gt;
* ID 403000 - 403999: Sergibyte (http://www.sergibyte.com)&lt;br /&gt;
* ID 404000 - 404999: Aikhan&lt;br /&gt;
* ID 405000 - 405999: AIME (http://www.aime.mx)&lt;br /&gt;
* ID 420000 - 420099: BBS Concept&lt;br /&gt;
* ID 420100 - 420199: LeMousticProduction (www.lemousticproduction.info) -&amp;lt; module DoliRH&lt;br /&gt;
* ID 420200 - 421199: VatCheck (www.abnc.be)&lt;br /&gt;
* ID 422200 - 422999: Artaban (http://artaban.fr)&lt;br /&gt;
* ID 423000 - 423050: cyberesprit&lt;br /&gt;
* ID 424000 - 424999: A3sys - Mon-Dolibarr (http://www.mon-dolibarr.fr)&lt;br /&gt;
* ID 425000 - 425999: Sébastien SERRE Thivinfo (www.thivinfo.com)&lt;br /&gt;
* ID 426000 - 426099: Arkesis-Solution&lt;br /&gt;
* ID 426100 - 426199: GetLandy (www.getlandy.com)&lt;br /&gt;
&lt;br /&gt;
= ID &amp;gt; 500000 =&lt;br /&gt;
{{Flag en}} If you don&#039;t already have reserved ids and need some, please don&#039;t use hazardous number and use a number higher than 500000, but it is better to ask a wiki account, and reserve your own range by editing the  100000 - 499999 range (1000 ids maximum per partner).&lt;br /&gt;
&lt;br /&gt;
{{Flag fr}} Si vous n&#039;avez pas de numéros réservés et en avez besoin, n&#039;utilisez pas de chiffres au hasard et utilisez une valeur supérieure à 500000, toutefois, il est préférable d&#039;obtenir un compte wiki, et  réserver vous-même votre plage en ajoutant votre entrée dans la zone 100000 - 499999 (pas plus de 1000 numéros par partenaire).&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}} Si no dispone de número reservado y necesita, no use cifras redondeadas y usa un valor superior a 500000. Si tiene una cuenta wiki, puede reservarse usted mismo sus id añadiendo su entrada en la zona 100000 - 499999 (no más de 1000 id por partner).&lt;/div&gt;</summary>
		<author><name>Jeanbaptistejeannot</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Syst%C3%A8me_de_Triggers&amp;diff=35355</id>
		<title>Système de Triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Syst%C3%A8me_de_Triggers&amp;diff=35355"/>
		<updated>2016-04-18T07:22:08Z</updated>

		<summary type="html">&lt;p&gt;Jeanbaptistejeannot: /* Ajouter son code sur un événement Dolibarr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateDocDevFr}}&lt;br /&gt;
&lt;br /&gt;
= Ajouter son code sur un événement Dolibarr =&lt;br /&gt;
&lt;br /&gt;
Pour permettre de déclencher du code personnalisé en réaction à un évènement Dolibarr (création/modification/suppression d&#039;une société/facture/produit/utilisateur ou autre), Dolibarr propose un mécanisme de triggers métiers. Ce mécanisme vous permet de personnaliser un workflow afin que les évènements de gestion Dolibarr soient répercutés dans une autre application par exemple.&lt;br /&gt;
Rien n&#039;empêche également de l&#039;utiliser pour modifier le comportement de Dolibarr même: par exemple, pour que la validation d&#039;une facture provoque la création d&#039;un contrat automatiquement.&lt;br /&gt;
&lt;br /&gt;
Donc, pour ajouter son propre code qui sera déclenché par trigger, la procédure est la suivante:&lt;br /&gt;
&lt;br /&gt;
1) Copier le fichier &#039;&#039;&#039;htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN&#039;&#039;&#039; sous le nom:&lt;br /&gt;
* &#039;&#039;&#039;interface_99_all_&#039;&#039;Xxx&#039;&#039;.class.php&#039;&#039;&#039;&lt;br /&gt;
ou bien&lt;br /&gt;
* &#039;&#039;&#039;interface_99_mod&#039;&#039;MonModule_Xxx&#039;&#039;.class.php&#039;&#039;&#039;&lt;br /&gt;
où &#039;&#039;Xxx&#039;&#039; est une chaine de votre choix commençant par une majuscule, &#039;&#039;99&#039;&#039; est le numéro de priorité du trigger (&#039;&#039;01&#039;&#039; étant le plus prioritaire), &#039;&#039;MonModule&#039;&#039; est le nom du module si votre trigger ne doit être activé que si le module MonModule est actif. Si on désire que le trigger soit toujours actif, on mettra &#039;&#039;all&#039;&#039; à la place de modMonModule.&lt;br /&gt;
Il faut laisser ce nouveau fichier dans le même répertoire.&lt;br /&gt;
Rem: Les valeurs utilisable pour modMonModule sont visibles dans le répertoire&lt;br /&gt;
&#039;&#039;htdocs/core/modules&#039;&#039;.&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;: &#039;&#039;&#039;Tous&#039;&#039;&#039; ces paramètres sont nécessaires pour que le trigger soit détecté! Ex: si vous oubliez le numéro de priorité, le module ne sera pas detecté!&lt;br /&gt;
&lt;br /&gt;
Par exemple, on pourra nommer notre nouveau trigger: &lt;br /&gt;
&#039;&#039;htdocs/core/triggers/interface_99_modFacture_Monworkflow.class.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
En créant un fichier nommé comme dans cet exemple, notre nouveau trigger sera déclenché à chaque évènement métier Dolibarr et à condition que le module Facture soit actif.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Avec Dolibarr 3.2+, il est aussi possible de placer les fichiers triggers dans un sous-dossier de module. Ex: si le module réside dans htdocs/mymodule/, alors il est possible de placer les triggers dans htdocs/mymodule/core/triggers/.&lt;br /&gt;
Mais dans ce cas, le trigger ne sera trouvé que si vous le déclarer dans le fichier descripteur de votre module. Pour cela, ajouter ajouter triggers-&amp;gt;1 dans le tableau module_parts (ex: &#039;&#039;&#039;/monmodule/core/modules/modMonModule.class.php&#039;&#039;&#039;):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Defined all module parts (triggers, login, substitutions, menus, etc...) (0=disable,1=enable)&lt;br /&gt;
   $this-&amp;gt;module_parts = array(&#039;triggers&#039; =&amp;gt; 1);&lt;br /&gt;
   //$this-&amp;gt;module_parts = array(&#039;triggers&#039; =&amp;gt; 1,&lt;br /&gt;
   //              &#039;login&#039; =&amp;gt; 0,&lt;br /&gt;
   //              &#039;substitutions&#039; =&amp;gt; 0,&lt;br /&gt;
   //              &#039;menus&#039; =&amp;gt; 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Puis désactiver et réactiver le module. Ceci aura pour effet d&#039;ajouter une ligne dans la [[Table llx_const]] pour indiquer à Dolibarr qu&#039;il faut recherch un trigger dans le répertoire de votre module &#039;&#039;&#039;htdocs/monmodule/core/triggers&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Editer ce fichier &#039;&#039;interface_99_modMonModule_Monworkflow.class.php&#039;&#039; afin de renommer la classe &#039;&#039;InterfaceDemo&#039;&#039; par &#039;&#039;InterfaceMonworkflow&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ensuite, accéder à la page Accueil-&amp;gt; Infos Systèmes -&amp;gt; Dolibarr -&amp;gt; Triggers.&lt;br /&gt;
Votre fichier trigger doit apparaitre dans la liste sans erreur indiquant que les opérations précédentes ont été réalisées avec succès.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Revenez maintenant à l&#039;édition du fichier trigger afin d&#039;ajouter votre code dans la fonction &#039;&#039;run_trigger&#039;&#039;.&lt;br /&gt;
Cette fonction est appelée à chaque évènement Dolibarr. Placer votre code en fonction du ou des évènements sur lesquels vous voulez réagir, chaque évènement étant identifié par un code (voir chapitres suivant pour la liste des codes), on peut réagir ou non à un évènement donné par un test sur la variable &#039;&#039;&#039;$action&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function runtrigger($action,$object,$user,$langs,$conf)&lt;br /&gt;
{&lt;br /&gt;
      // Mettre ici le code à exécuter en réaction de l&#039;action&lt;br /&gt;
      // Le type de l&#039;évènement Dolibarr est stocké dans $action&lt;br /&gt;
      // Les données de l&#039;action sont stockées dans $object&lt;br /&gt;
      // La configuration, utilisateur et langage sont dans $conf,$user et $lang&lt;br /&gt;
      if ($action == &#039;COMPANY_CREATE&#039;)&lt;br /&gt;
      {&lt;br /&gt;
          dol_syslog(&amp;quot;Trigger for action &#039;$action&#039; launched. id=&amp;quot;.$object-&amp;gt;id);&lt;br /&gt;
      }&lt;br /&gt;
      elseif ($action == &#039;COMPANY_MODIFY&#039;)&lt;br /&gt;
      {        &lt;br /&gt;
          dol_syslog(&amp;quot;Trigger for action &#039;$action&#039; launched. id=&amp;quot;.$object-&amp;gt;id);&lt;br /&gt;
      }&lt;br /&gt;
      elseif ($action == &#039;COMPANY_DELETE&#039;)&lt;br /&gt;
      ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire ce que vous voulez dans cette portion de code du moment que la fonction runtrigger renvoie un code retour sur le principe suivant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;0 si ko, 0 si aucune action faite, &amp;gt;0 si ok&lt;br /&gt;
&lt;br /&gt;
Vous pouvez de plus dans cette fonction utiliser les objets suivant:&lt;br /&gt;
* &#039;&#039;&#039;$object&#039;&#039;&#039; est l&#039;objet sur lequel porte l&#039;action (voir chapitre suivant)&lt;br /&gt;
* &#039;&#039;&#039;$user&#039;&#039;&#039; est l&#039;objet de l&#039;utilisateur Dolibarr qui réalise l&#039;action&lt;br /&gt;
* &#039;&#039;&#039;$langs&#039;&#039;&#039; est l&#039;objet qui contient la langue de l&#039;utilisateur Dolibarr&lt;br /&gt;
* &#039;&#039;&#039;$conf&#039;&#039;&#039; est l&#039;objet qui contient toute la configuration de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Une fois le code réalisé, il n&#039;y a plus qu&#039;à tester, en provoquant l&#039;évènement déclencheur dans Dolibarr. Attention, l&#039;appel au &#039;&#039;&#039;runtrigger&#039;&#039;&#039; et encapsuler dans un transaction. Si votre trigger renvoie un code ko, la fonction appelante peut annuler la transaction (ceci dépend de la fonction appelante).&lt;br /&gt;
Ajouter des traces dans un fichier dans la fonction &#039;&#039;&#039;run_trigger&#039;&#039;&#039; afin de vous assurer que le code s&#039;exécute bien. Vous pouvez pour cela si vous le désirer, utiliser la fonction&lt;br /&gt;
dol_syslog(&amp;quot;mon texte de trace&amp;quot;, LOG_DEBUG);&lt;br /&gt;
&lt;br /&gt;
= Liste des événements gérés =&lt;br /&gt;
La liste de tous les événements qui provoquent un déclenchement de trigger est disponible dans la table [[Table llx c action trigger]]. Voici un vue rapide des événements identifiés par la valeur suivante au code &#039;&#039;&#039;$action&#039;&#039;&#039;, avec le type de l&#039;objet reçu dans &#039;&#039;&#039;$object&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
En général, le code action de trigger est composé du:&lt;br /&gt;
* Nom du module (en majuscule)&lt;br /&gt;
* D&#039;autres informations isolés par le caractère _&lt;br /&gt;
* L&#039;action.&lt;br /&gt;
&lt;br /&gt;
{{TemplateListOfTriggers}}&lt;br /&gt;
&lt;br /&gt;
Liste non exhaustive.&lt;br /&gt;
&lt;br /&gt;
= Gérer de nouveau évènements =&lt;br /&gt;
&lt;br /&gt;
Pour gérer d&#039;autre évènements 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Appel des triggers&lt;br /&gt;
include_once(DOL_DOCUMENT_ROOT . &amp;quot;/core/class/interfaces.class.php&amp;quot;);&lt;br /&gt;
$interface=new Interfaces($this-&amp;gt;db);&lt;br /&gt;
$result=$interface-&amp;gt;run_triggers(&#039;XXXXX_YYYYY&#039;,$this,$user,$langs,$conf);&lt;br /&gt;
if ($result &amp;lt; 0) { $error++; $this-&amp;gt;errors=$interface-&amp;gt;errors; }&lt;br /&gt;
// Fin appel triggers&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ici, $this doit être l&#039;objet de la classe métier qui contient toutes les informations à passer au trigger. Remplacer, de plus, le &#039;XXXXX_YYYYY&#039; par un code évènement non déjà utilisé.&lt;br /&gt;
&#039;&#039;&#039;D&#039;autre part, si l’exécution du trigger revient en erreur, vous devez annuler l&#039;action correspondante.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A partir de la version 3.7, vous devez utiliser ce type de code :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Call trigger&lt;br /&gt;
$result=$this-&amp;gt;call_trigger(&#039;XXXXX_YYYYY&#039;,$user);&lt;br /&gt;
if ($result &amp;lt; 0) $error++;          &lt;br /&gt;
// End call triggers&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il sera alors possible d&#039;ajouter dans la méthode run_trigger, un if qui permet de gérer ce code. La méthode run_trigger serait alors de la forme :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
function run_trigger($action,$object,$user,$lang,$conf)&lt;br /&gt;
{&lt;br /&gt;
      // Mettre ici le code à exécuter en réaction de l&#039;action&lt;br /&gt;
      // Le type de l&#039;évènement Dolibarr est stocké dans $action&lt;br /&gt;
      // Les données de l&#039;action sont stockées dans $object&lt;br /&gt;
      // La configuration, utilisateur et langage sont dans $conf,$user et $lang&lt;br /&gt;
      if ($action == &#039;XXXXX_YYYYY&#039;)&lt;br /&gt;
      {&lt;br /&gt;
          dol_syslog(&amp;quot;Trigger for action &#039;$action&#039; launched. id=&amp;quot;.$object-&amp;gt;id);&lt;br /&gt;
      }&lt;br /&gt;
      elseif ($action == &#039;COMPANY_CREATE&#039;)&lt;br /&gt;
      {&lt;br /&gt;
          dol_syslog(&amp;quot;Trigger for action &#039;$action&#039; launched. id=&amp;quot;.$object-&amp;gt;id);&lt;br /&gt;
      }&lt;br /&gt;
      elseif ($action == &#039;COMPANY_MODIFY&#039;)&lt;br /&gt;
      {        &lt;br /&gt;
          dol_syslog(&amp;quot;Trigger for action &#039;$action&#039; launched. id=&amp;quot;.$object-&amp;gt;id);&lt;br /&gt;
      }&lt;br /&gt;
      elseif ($action == &#039;COMPANY_DELETE&#039;)&lt;br /&gt;
      ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
Vous pouvez donc en quelques minutes, ajouter une interface Dolibarr vers exterieur sans risque puisqu&#039;on ne touche pas au code Dolibarr, on s&#039;est contenté de placer un nouveau fichier trigger dans le répertoire des triggers.&lt;br /&gt;
Si cette interface peut être utile à d&#039;autre, n&#039;hésitez pas à la packager en tgz (voir la page [[Développement_module#Créer_un_package_pour_livrer_et_installer_votre_module]]) et de la soumettre dans l&#039;espace des téléchargement-contributions sur le site de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
* [[Système de Hooks]]&lt;br /&gt;
* [[Interfaces Dolibarr vers exterieur]]&lt;br /&gt;
* [[Interfaces Exterieur vers Dolibarr]]&lt;/div&gt;</summary>
		<author><name>Jeanbaptistejeannot</name></author>
	</entry>
</feed>