Comment modifier l'id d'une DBData, générée automatiquement ?

Emilie Gryncajger · le 18/11/15 à 18:39

Bonsoir à tous,

L'ID des DBData est généré automatiquement selon une règle prédéfinie (rowid_ShortClassName).

Je souhaiterais pouvoir changer ce comportement pour forcer mon propre ID. 

Y a-t-il un hook permettant de faire cela ? Si oui, comment l'utiliser ?

Ou, comme mes contenus concernés sont stockés en base de données suite à un import (utilisation de l'ImportManager de JCMS), y a t-il moyen de surcharger l'ID généré au moment de cette opération ? 

 

Merci par avance pour vos lumières,

 

12 pts
Frédéric Touitou - le 19/11/15 à 09:55
Meilleure réponse

Bonjour,

Il n'est pas prévu, ni possible sans "patcher" des classes, avec toutes les conséquences que cela pourrait entraîner, de modifier les IDs générés par le coeur (la forme de ceux générés pour les DBData, "rowid_ShortClassName" comme vous l'avez constaté, est même significative, et peut être utilisée pour certains traitements ; modifier cela risquerait donc de déstabiliser fortement le système).

En revanche, rien ne vous empêche de gérer vos propres IDs, en stockant par exemple dans une table du SGBD les associations "Votre ID" => "ID JCMS Donnée" (DBData ou Store du reste...), et en implémentant la méthode public Data getData(String id) du hook ChannelPolicyFilter (voir le chapitre 5 du Catalogue des points de débranchement (hooks) disponibles dans l'API JCMS )

En espérant que cette réponse pourra vous aider,

Bien cordialement.

9 pts
Emilie Gryncajger · le 24/11/15 à 16:33

Bonjour Frédéric,

Merci pour cette réponse qui m'éclaire !

Bien cordialement,

0 pt