Développer avec RBS Change : [Indexation] Exception lors de l'indexation de contactcards

  • 47185.1

    24/11/2011 17:14


    David Guillot
    Rang : Expert
    Bonjour,

    Lors de l'indexation d'un document de type contactcard/contact, l'exception suivante est lancée :
    TagException: No document has the requested tag: contextual_website_website_modules_contactcard_page-contact

    Je n'ai pas besoin/envie d'avoir une page portant ce tag sur mon site, que faire ?

    Merci d'avance
  • 47185.2 en réponse à 47185.1 écrit par David Guillot

    25/11/2011 09:49


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    En fait a priori ce tag c'est le tag de la page contenant le formulaire pour envoyer un email à un contact donné. Après une petite recherche, je ne vois que deux endroits où elles est utilisée :
    - dans le bloc de détail d'un contact (modules/contactcard/templates/Contactcard-Block-Contact-Success.all.all.html) qui ne concerne pas directement l'indexation
    - dans le rendu html d'un contact lorsqu'il est inséré dans un richtext (contactcard_ContactService::getXhtmlFragment) qui lui entrera en compte lors de l'indexation d'une page ou d'un autre document contenant un tel richtext

    Je viens de tester et sans la page taguée, je n'ai effectivement pas d'exception loguée lors de l'indexation des contacts. J'en ai une par conte lors de l'indexation d'une page qui contient ce genre de lien dans un richtext.

    Donc a priori si vous avez cette exception lors de l'indexation c'est que vous avez inséré un contact dans un richtext quelque part et dans ce cas là oui vous aurez besoin de la page en question car insérer un contact dans un richtext insère un lien "Envoyer un mail à <nom du contact>" pointant sur cette page taguée.


    Remarques :
    - lorsque vous obtenez une exception, c'est plus facile à diagnostiquer pour nous si vous fournissez la stack trace avec.
    - la commande change.php indexer import-model permet de déclencher la ré-indexation d'un modèle de document donné ce qui peut être plus pratique pour isoler les problèmes et tester les modifications (attention par contre, la commande ne fait que marquer les document comme étant à ré-indexer, il faut donc attendre le passage de la tâche d'indexation pour que la ré-indexation soit effective).
  • 47185.3

    25/11/2011 12:25


    David Guillot
    Rang : Expert
    Alors en fait en regardant mieux la trace, apparemment le problème a l'air de se présenter lors de l'indexation d'un form/recipientGroup :
    2011-11-25 11:00:59	[EXCEPTION]	TagException: No document has the requested tag: contextual_website_website_modules_contactcard_page-contact
    #0 /home/dguillot/AlterWay/.files/developpement/pompiers.fr/rbschange/modules/contactcard/contactcard-3.5.0/lib/services/ContactService.class.php(163): TagService->getDocumentByContextualTag('contextual_webs...', Object(website_persistentdocument_website))
    #1 /home/dguillot/AlterWay/.files/developpement/pompiers.fr/rbschange/framework/framework-3.5.0/indexer/IndexService.class.php(1308): contactcard_ContactService->addTreeAttributes(Object(contactcard_persistentdocument_contact), 'contactcard', 'wmultilist', Array)
    #2 /home/dguillot/AlterWay/.files/developpement/pompiers.fr/rbschange/framework/framework-3.5.0/indexer/IndexService.class.php(1246): indexer_IndexService->getBackofficeAttributes(Object(contactcard_persistentdocument_contact))
    #3 /home/dguillot/AlterWay/.files/developpement/pompiers.fr/rbschange/framework/framework-3.5.0/indexer/IndexService.class.php(1100): indexer_IndexService->buildBackIndexedDocument(Object(contactcard_persistentdocument_contact))
    #4 /home/dguillot/AlterWay/.files/developpement/pompiers.fr/rbschange/framework/framework-3.5.0/indexer/IndexService.class.php(883): indexer_IndexService->updateRealDocument(Object(contactcard_persistentdocument_contact))
    #5 /home/dguillot/AlterWay/.files/developpement/pompiers.fr/rbschange/framework/framework-3.5.0/indexer/IndexService.class.php(831): indexer_IndexService->indexDocumentId(12106)
    #6 /home/dguillot/AlterWay/.files/developpement/pompiers.fr/rbschange/framework/framework-3.5.0/indexer/backgroundDocumentIndexer.php(17): indexer_IndexService->backgroundIndex(0, 12123, 100)
    #7 /home/dguillot/AlterWay/.files/developpement/pompiers.fr/src/changescriptexec.php(81): include_once('/home/dguillot/...')
    #8 {main}

    Mais en isolant les indexations, c'est plutôt lors de l'indexation des website/page que le problème intervient (et pas lors de l'indexation des form/recipientGroup).... Sachant que j'ai dans mon site une page qui contient un bloc form/form insérant grâce à cmpref un form/form ayant plusieurs recipientGroups, ça peut s'expliquer... Mais à ma connaissance le bloc form/form ne fait qu'afficher la liste des recipientGroup dans des <option> d'un <select>, donc sans richtext et sans référence à la page affichant un contactcard/contact....
  • 47185.4 en réponse à 47185.3 écrit par David Guillot

    25/11/2011 16:22


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Alors vue la trace ça a l'air de se trouver dans l'indexation backoffice d'un contact. Par contre, il s'agit d'un point qui a été modifié et qui ne remonte plus cette exception depuis la 3.5.1 (commit faa941ac242df58e681fc80292909108bb75dea3 du 08/08/2011). Donc ça laisse à penser que vous développez toujours sur une version 3.5.0 et qu'il faudrait passer à la 3.5.1 (et à la 3.5.2 d'ici peu quand elle sera sortie).

    Sinon, pour ne plus avoir de message d'erreur dans un cas comme ça où vous ne voulez pas que la page soit accessible, rien n'empêche de créer la page puis de la désactiver : elle existera mais ne sera pas affichable.
  • 47185.5

    25/11/2011 16:32


    David Guillot
    Rang : Expert
    OK merci, pour le moment je vais me contenter d'intégrer le commit comme patch dans mon Change 3.5.0, et d'ici la mi-décembre nous nous baserons sur la version 3.5.2.
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1437 membres
Aucun membre connecté