Est-il possible de configurer le déployeur de Tridion pour envoyer un ItemType à plusieurs types de stockage?


18

Nous cherchons à étendre la couche de stockage de contenu de Tridion avec un nouveau type de stockage pour nous permettre d'écrire certaines de nos présentations de composants dans un référentiel RavenDB. Dans ce cadre, nous souhaitons également continuer à stocker toutes ces présentations dans notre base de données de courtiers.

Est-il possible de configurer le déployeur de Tridion pour envoyer un ItemType à plusieurs types de stockage? La documentation et les messages que j'ai trouvés sur l'extension de la couche de stockage (comme le message 'HowTo: Extending Content Broker Storage' de Julian Wrath) ne semblent pas répondre à cette situation. Par exemple, en supposant que les définitions de defaultdb et de defaultFile soient valides, le résultat suivant dans les présentations de composants publiées serait-il envoyé aux deux types de stockage?

<Item typeMapping="ComponentPresentation" cached="false" storageId="defaultdb"/> 
<Item typeMapping="ComponentPresentation" cached="false" storageId="defaultFile"/> 
+1

Salut Glenn, si l'une des réponses ci-dessous permettait de résoudre votre problème, pourriez-vous envisager de l'accepter? (Cliquez sur la coche à côté de cette réponse) 04 mars. 132013-03-04 12:11:14

16

Je ne pense pas que ce soit une configuration valide pour avoir deux des mêmes mappages itemType. Ainsi, deux éléments Item ayant la même valeur dans l'attribut typeMapping que vous avez suggéré ne fonctionneraient pas. En plus d'utiliser une extension déployer, vous pouvez implémenter votre couche de stockage personnalisée qui appelle le stockage de la base de données Tridion Broker (en appelant les DAO Tridion surchargés), puis stocke les données dans RavenDB. Vous devrez jongler avec quelques DAO comme dans this article et this post. Je ne suis pas sûr que ce soit un itinéraire que vous voulez prendre cependant. Ce n'est pas une tâche facile et peut-être un peu trop pour ce que vous voulez réaliser.

  0

Merci, ces liens vers de bons articles que j'avais raté d'une manière ou d'une autre dans ma recherche d'informations sur ce sujet. 26 févr.. 132013-02-26 23:45:22


15

Je pense que ce que vous recherchez est une extension Deployer, pas une extension de stockage. Dans votre extension de déployeur, vous avez accès à l'ensemble du paquet de transaction, de sorte que vous pouvez écrire votre logique pour traiter un type donné d'une manière spéciale en plus de la manière OOTB. Jetez un oeil au tutoriel de Jaime sur Deployer Extensions: http://sdltridionworld.com/articles/sdltridion2011/tutorials/Deployer_Extensions_With_Eclipse_1.aspx


9

Je serais curieux de voir ce qui se passe vu votre exemple - y aurait-il une erreur ou est-ce que le "dernier noeud <Item> gagne"?

Je me sens toujours mon chemin autour des extensions de Deployer et de stockage, mais sur la base du responses I got, je pense vous pouvez utiliser une extension Deployer pour traiter vos présentations de composants spécifiques (en utilisant ce que jamais la logique métier dont vous avez besoin) pour définir un nouveau type d'élément, puis une extension de stockage pour vous permettre de gérer explicitement ce nouveau type d'élément.

<Item typeMapping="ComponentPresentation" cached="false" storageId="defaultdb"/> 
<Item typeMapping="SpecialComponentPresentation" cached="false" storageId="defaultFile"/> 

Travail supplémentaire, mais conserve les éléments définis dans le fichier cd_storage afin que tout soit clair.

  0

Je suis toujours réticent à muck avec nos fichiers de configuration Tridion même en Dev, car il ne semble jamais aller tout à fait comme je l'attends.Malgré cela, je pense que je vais essayer de tester deux points de fin de stockage pour un typeMapping pour voir exactement ce qui se passe. 26 févr.. 132013-02-26 21:54:38

  0

À la fin, lorsque j'ai testé cela, la dernière entrée de configuration pour un mappage de type spécifique a été gagnante. 08 mars. 132013-03-08 02:00:05

  0

Bon à savoir Glenn! Merci 08 mars. 132013-03-08 08:14:40


5

Une autre approche consisterait à publier deux déployeurs distincts et à les configurer différemment.

Mon approche préférée consiste à utiliser des applications Web ASP.NET en tant que serveurs de téléchargement. Si vous les configurez avec des répertoires lib et config convenablement peuplés dans le répertoire bin, vous pouvez demander à chacun de traiter son contenu de manière totalement différente. Bien sûr, si vous avez l'intention de consommer le contenu via la couche de stockage Tridion, cela pourrait être intéressant, mais je suppose que votre cas d'utilisation est que Tridion et un autre système ayant des besoins différents consomment le contenu simultanément.

  0

Je suis d'accord, il n'y a pas besoin de commencer à écrire du code. Le code le plus fiable n'est aucun code! Il est facile de mettre en place plusieurs déployeurs, j'ai des solutions de publication à 6 déployeurs sans aucun problème. 29 nov.. 162016-11-29 09:23:46