Question

J'ai quelques éléments composants dans Tridion qui sont mis en place pour un schéma particulier. Je voudrais être en mesure de changer le schéma de ces éléments à un schéma plus récent. Le nouveau schéma conserve toutes les propriétés existantes que l'ancien avait, alors il n'y aurait pas de perte de données. Dans cette situation, il est impossible de modifier simplement le schéma existant.

Est-ce que quelqu'un sait s'il est possible de le faire?

Était-ce utile?

La solution 5

J'ai pu le faire en écrivant des requêtes pour remplacer les noms de schéma et les références directement dans la base de données de Tridion. Il a bien fonctionné, mais je ne recommanderais cela si le schéma de départ est EXACTEMENT comme le schéma final. Sinon, il va briser les composants.

Autres conseils

Vous pouvez modifier le schéma d'un composant simplement en affectant une nouvelle valeur à la propriété du schéma du composant et l'enregistrer. Bien sûr, l'enregistrement du composant exigera que le composant contre le nouveau Valide schéma.

Le cas trivial pour cela est quand vous venez de copier-collé le schéma et donc les deux schémas sont identiques. Dans la pratique, vous avez généralement une raison pour changer le schéma, auquel cas vous voulez probablement utiliser GetXml () et UpdateXML () sur le composant et avoir une transformation XSLT le XML compatible quelque chose avec le nouveau schéma. Dans ce scénario, vous pouvez simplement mettre à jour la référence de schéma dans votre XSLT.

Jonathon dit, vous pouvez utiliser une page personnalisée pour cela, mais gardez à l'esprit que, généralement, c'est une action ponctuelle qui devrait être conçu / exécuté par les programmeurs et les administrateurs, donc si vous utilisez une page personnalisée, vous avez probablement vouloir l'enlever par la suite.

Il y a une raison pour laquelle l'interface graphique Tridion ne vous permet pas de modifier le schéma d'un composant: il est très probable que votre appareil perdra son contenu après le changement d'un tel, même si les deux schémas ont des champs en commun. Pour éviter cela, assurez-vous que les schémas ont le même espace de noms cible. Dans ce cas, si un champ est défini dans les deux schémas, la composante conservera ses valeurs, même après le schéma a été modifié.

Le contenu Tridion Porter vous permet d'exporter le contenu et les schémas d'un CMS à un autre. Il peut également être utilisé pour déplacer des éléments entre publications. Ceci est une option de « dupliquer » un schéma et son contenu pour la réutilisation (ainsi que pour sauvegarder tout travail avant de changer les données en direct!).

Veillez à ne pas modifier l'espace de noms ou tous les champs XML que vous souhaitez conserver (les descriptions et le nom du schéma sont bien bien). Pour être sûr, en particulier avec les données en direct, faire une exportation propre juste au cas où avant d'utiliser l'une de ces réponses.

Il est impossible de modifier le schéma d'un composant Tridion via l'interface Content Manager. Cependant, cela peut être réalisé en utilisant une « page personnalisée » comme l'API permet de changer dans le code du schéma d'un composant.

Tiré de la documentation SDL Tridion 2009 (Manuel Templating mise en œuvre (TOM.NET) 2009):

  • Classe: Tridion.ContentManager.ContentManagement.Component
  • Propriété: schéma du public schéma {get; ensemble; }
  • Description:. Ou définit le schéma pour le contenu et les métadonnées de la composante

Il y a un élément (y compris un exemple de code) sur les forums de développeurs de Tridion (topic_id = 2899) à ce sujet. Cependant, comme il est un forum fermé Je ne suis pas sûr sur les aspects juridiques de reproduire le code ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top