VTiger – Ajouter les champs spécifiques aux web services exposés
Le 11/06/2014 Par Christophe Dupontvtigerweb service
Il est possible dans VTiger d’ajouter des champs spécifiques aux différents modules : calendrier, contacts, etc.
Néanmoins, si ces champs sont bien visibles côté application, ils ne le sont pas via les web services exposées nativement. Pire, dans certains cas, il se peut que l’ajout d’un champ spécifique provoque un bug.
Pour remédier à cela, il faut modifier le code source de VTiger afin qu’il expose ces champs spécifiques.
Dans cet article, nous allons voir comment exposer un champ spécifique via le web service permettant de communiquer avec Outlook.
Prérequis :
Voici les étapes à réaliser et qui sont détaillées ci-dessous:
Remarque :
1. Identifier le nom technique du champ dans la base de donnés VTiger
Connectez vous à la base de données, et sélectionnez dans la table vtiger_field les champs « tablename » et « fieldname » du tuple où « fieldlabel » = le nom de votre champ spécifique dans vtiger.
Exemple : dans le cas ci-dessous, le champ spécifique s’appelle « Point ». Il est stocké dans la table « vtiger_activitycf » dans la colonne « cf_648 ».
2. Ajouter le champ au WSDL du service exposé
Dans le répertoire /SOAPSOAP (Simple Object Access Protocol) est un protocole de communication. où est installé VTiger, vous pouvez voir les fichiers php qui exposent les différents web services de VTiger:
Il faut donc ouvrir celui qu’on souhaite appeler (dans notre cas vtigerolwebservice.php), et ajouter à la définition de l’objet le nom du champ :
Le champ est alors exposé lorsqu’on affiche le wsdl du web service (http://[adresse]:[port]/vtigerservice.php?service=outlook&wsdl) :
3. Mapper le champ aux différentes opérations du service
Il faut maintenant mapper ce champ avec le champ spécifique dans la base de données (« cf_648 »), pour les différentes opérations exposées par le web service. Pour cela, toujours dans le fichier vtigerolservice.php, mapper le champ dans les différentes opérations :
Pour les opérations d’insertion et de mise à jour (CreateClndr et UpdateClndr) :
Pour l’opération de récupération des calendriers (GetClndr ) :
Attention pour que le get fonctionne, il faut aussi modifier la requête de sélection qui se trouve dans le fichier Activity.php du module calendrier (/modules/calendar) :
Testé avec VTiger 5.4
Sommaire
1. Identifier le nom technique du champ dans la base de donnés VTiger
2. Ajouter le champ au WSDL du service exposé
3. Mapper le champ aux différentes opérations du service