Interfaces Dolibarr vers exterieur: Difference between revisions

m
mNo edit summary
Line 8: Line 8:


1) Copier le fichier '''htdocs/includes/triggers/interface_all_Demo.class.php''' sous le nom:
1) Copier le fichier '''htdocs/includes/triggers/interface_all_Demo.class.php''' sous le nom:
* '''interface_all_''xxx''.class.php'''
* '''interface_all_''Xxx''.class.php'''
ou bien
ou bien
* '''interface_mod''MonModule_xxx''.class.php'''
* '''interface_mod''MonModule_Xxx''.class.php'''
où ''xxx'' est une chaine de votre choix et ''MonModule'' 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 ''all'' à la place de modMonModule.
où ''Xxx'' est une chaine de votre choix commençant par une majuscule et ''MonModule'' 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 ''all'' à la place de modMonModule.
Il faut laisser ce nouveau fichier dans le même répertoire.
Il faut laisser ce nouveau fichier dans le même répertoire.
Rem: Les valeurs à utiliser pour modMonModule sont visibles dans le répertoire
''htdocs/includes/modules''.


Par exemple:  
Par exemple, on pourra nommer notre nouveau trigger:  
''htdocs/includes/triggers/interface_modFacture_Monworkflow.class.php''
''htdocs/includes/triggers/interface_modFacture_Monworkflow.class.php''


Les triggers seront déclenchés a chaque évènement Dolibarr a condition que le module Facture soit actif.
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.




2) Editer ce fichier ''interface_modMonModule_Monworkflow.class.php'' afin de renommer la classe ''InterfaceDemo'' par ''InterfaceMonworkflow''
2) Editer ce fichier ''interface_modMonModule_Monworkflow.class.php'' afin de renommer la classe ''InterfaceDemo'' par ''InterfaceMonworkflow''


3) Editer ce fichier afin de renseigner dans '''$this->name''' la valeur ''Monworkflow''.


Ensuite, accéder à la page Accueil-> Infos Systèmes -> Dolibarr -> Triggers.
Ensuite, accéder à la page Accueil-> Infos Systèmes -> Dolibarr -> Triggers.
Line 29: Line 29:




4) Revenez maintenant à l'édition du fichier trigger afin d'ajouter votre code dans la fonction ''run_trigger''.
3) Revenez maintenant à l'édition du fichier trigger afin d'ajouter votre code dans la fonction ''run_trigger''.
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 pouvant être identifié par un test sur la variable '''$action''':
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 pouvant être identifié par un test sur la variable '''$action''':


Line 62: Line 62:
* '''$conf''' est l'objet qui contient toute la configuration de Dolibarr.
* '''$conf''' est l'objet qui contient toute la configuration de Dolibarr.


Une fois le code réalisé, il n'y a plus qu'à tester, en provoquant l'évènement déclencheur dans Dolibarr. Attention, l'appel au '''run_trigger''' 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).
4) Une fois le code réalisé, il n'y a plus qu'à tester, en provoquant l'évènement déclencheur dans Dolibarr. Attention, l'appel au '''run_trigger''' 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).
Ajouter des traces dans la fonction '''run_trigger''' afin de vous assurer que le code s'exécute bien.
Ajouter des traces dans un fichier dans la fonction '''run_trigger''' afin de vous assurer que le code s'exécute bien. Vous pouvez pour cela si vous le désirer, utiliser la fonction
dolibarr_syslog("mon texte de trace", LOG_DEBUG);


== Liste des évènements connus ==
== Liste des évènements connus ==