Problème erreur SQL avec CustomFields

Bonjour,

Nous utilisons la version 5.0.1 de Dolibarr avec MySQL (5.5). Dans MySQL j’ai créé une TABLE VIEW llx_societe_canal_de_vente, basée sur llx_societe, qui comporte uniquement le nom des tiers actifs (statut = 1).

Dans le module Projets, j’ai créé un CustomFields Projets « canaldevente » sur une cette table (llx_societe_canal_de_vente) pour avoir la liste de toutes les tiers actifs (NB: j’ai besoin de passer par cette méthode de TableView car mes utilisateurs utilisent l’outil MyList de Patas pour faire un extract csv des statuts des projets commerciaux en cours. Si je passe par la Table llx-societe je récupère l’ID et pas le string du nom du tiers).

Lorsque je vais dans mon projet et que je valide la sélection d’un tiers (champ canaldevente) ou lorsque que j’ouvre un projet avec le champ « Canaldevente » rempli, j’obtiens toujours le message d’erreur suivant : « You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‹ ORDER BY canaldevente › at line 1 ».

J’ai lu dans le manuel « Module CustomFields Dev » que ce dernier a besoin d’une clé étrangère pour fonctionner correctement (ce qui n’est pas le cas de ma TableView) et que le module dispose aussi d’un mode « compatible » permettant de s’affranchir de cette contrainte.

Pouvez-vous m’indiquer comme je peux basculer en mode compatible ce module pour m’affranchir de la clé étrangère ou bien me dire comment éviter l’apparition de ce message (car tout fonctionne correctement…) ?

D’avance merci pour votre aide.

cordialement,

Jérôme

Bonjour,

Pouvez vous monter l’erreur SQL complète (récupérable via le log par exemple) ?

Vu que vous avez des connaissances SQL une façon de faire est de corriger les paramètres du customfield dans la db llx_extrafields la partie param qui « correspond » au sellist

sellist=> tableName:ListFieldsToShow:IDcolum(rowid):tongue:arentName|ParentColumnName:WhereClause
- ListFieldsToShow : chaque champs doit être séparé par « | »
- remplacez les éventuels ‹ SELECT › par ‹  ›$SEL$’ et l’id de l’objet courant (ici soc/societe_canal_de_vente) ‹ $ID$ ’ dans WhereClause,
- utilisez extra. › pour faire référence au extraf fields de tableName

ca devrait être un truc comme ça
sellist =>societe_canal_de_vente:canaldevente:rowid::

ce qui donne ce format dans la db:

a:1:{s:7:« options »;a:1:{s:43:« societe_canal_de_vente:canaldevente:rowid:: »;s:1:« N »;}}

Bonjour,

Merci pour la réponse. Je teste votre suggestion la semaine prochaine et vous fais un retour dans la foulée.

Cdlt,

Jérôme