Déclenchement d'événements sur la publication de composant


2

J'ai l'obligation de déclencher le courrier pour l'audience ciblée sur l'événement de publication de composant. Je prévois de gérer cette exigence à l'aide du système d'événements. Mais je suis incapable de comprendre l'événement disponible comme PublishEventArgs.

Voici le code que j'ai essayé -

public void Subscribe() 
    { 

     EventSystem.Subscribe<Component, PublishEventArgs>(SetOrUpdateComponent, EventPhases.Processed); 
    } 

Mais ma demande n'est pas en mesure de reconnaître les PublishEventArgs comme un événement. Je reçois une erreur -

n'a pas pu être trouvé le nom de type ou espace de noms « PublishEventArgs » (? Sont vous manque une directive à l'aide ou une référence d'assemblage)

Je l'ai déjà inclus ci-dessous des ensembles -

using Tridion.ContentManager; 
using Tridion.ContentManager.ContentManagement; 
using Tridion.ContentManager.CommunicationManagement; 
using Tridion.ContentManager.ContentManagement.Fields; 
using Tridion.ContentManager.Extensibility; 
using Tridion.ContentManager.Extensibility.Events; 

Veuillez suggérer si j'ai manqué un assemblage.

enter image description here

+1

C'est un peu vague. Pourriez-vous préciser ce que vous avez essayé et quels étaient les problèmes? De préférence avec le code pour ce que vous avez essayé. Aussi, êtes-vous Composants dynamiques et seront publiés par eux-mêmes? Ou seront-ils sur une page qui est ensuite publiée? Tous les deux? 30 déc.. 152015-12-30 10:17:30

  0

Salut Peter, j'ai essayé ci-dessous méthode public void Subscribe() { EventSystem.Subscribe <Component, PublishEventArgs> (SetOrUpdateComponent, EventPhases.Processed); } Mais mon application est incapable de reconnaître PublishEventArgs. 30 déc.. 152015-12-30 10:20:17

+1

S'il vous plaît modifier votre publication originale et ajouter ces détails. Fondamentalement, considérez que PublishEventArgs est l'événement correct - maintenant quoi? 30 déc.. 152015-12-30 10:22:32

+1

Que voulez-vous dire par "Mais mon application n'est pas capable de reconnaître le PublishEventArgs comme un événement."? Avez-vous une erreur de compilation? Cela ne déclenche-t-il pas l'événement? Avez-vous essayé le débogage et, si oui, votre point d'arrêt est-il touché? Votre éditeur est-il décalé sur une autre machine? 30 déc.. 152015-12-30 10:25:31

  0

J'ai mis à jour les détails de l'erreur dans ma question. J'obtiens une erreur de compilation - Le type ou le nom de l'espace de nommage 'PublishEventArgs' est introuvable (manque-t-il une directive using ou une référence d'assembly?) 30 déc.. 152015-12-30 10:34:21

3

Vous pouvez trouver une liste de tous les événements pour Tridion 2013 sur link:

Une explication plus détaillée des événements est possible de trouver dans l'API "SDL Tridion 2013 SP1 TOM.NET API.chm" document de SDL. Il y a de la documentation sur les événements sur SDL Live Content:

Il ya beaucoup de blogs sur la façon de travailler avec le système d'événements, car c'est une partie de Tridion avec une bonne couverture. (Par exemple, this blog explique comment travailler avec Tridion Event System)

Utilisez définitivement l'événement OnComponentPublish (nom utilisé dans l'ancien événement api, vous pouvez trouver la nouvelle API dans le document de la matrice d'événements ci-dessus). Selon les besoins lorsque vous devez envoyer l'e-mail, vous pouvez choisir entre deux phases: initié ou traité. Vous avez probablement la phase de traitement ...

ÉDITÉE: Vous êtes probablement absent

using Tridion.ContentManager.Publishing; 
  0

Merci pour les informations. J'ai ajouté cet assemblage et testé. L'erreur est toujours là. 30 déc.. 152015-12-30 10:45:08

  0

J'ai enlevé cette DLL et l'ai importé encore et maintenant il fonctionne correctement. Merci de votre aide. 30 déc.. 152015-12-30 12:09:17


4

n'a pas pu être trouvé « PublishEventArgs » Le nom du type ou espace de noms (vous manque une directive ou à l'aide ? une référence d'assemblage)

J'ai déjà inclus ci-dessous des ensembles -

...

en utilisant Tridion.ContentManager.Extensibility.Events;

Puisque vous avez déjà ajouté la correcte avec la directive, l'autre partie du message d'erreur doit être vrai: vous n'avez pas ajouté « Tridion.ContentManager.Publishing.dll » comme une référence dans votre projet. Notez que en utilisant les directives et les références d'assemblage sont deux choses très différentes.

  0

Salut Peter, j'ai déjà ajouté ContentManager.dll dans mon application. 30 déc.. 152015-12-30 11:48:49

  0

Lorsque j'utilise SaveEventArgs ou CheckInEventArgs, cela fonctionne correctement mais ne pose problème que lors de l'utilisation de PublishEventArgs. 30 déc.. 152015-12-30 11:57:35

  0

PublishEventArgs est actuellement dans Tridion.ContentManager.Publishing.dll, tandis que SaveEventArgs et CheckInEventArgs sont dans Tridion.ContentManager.dll 30 déc.. 152015-12-30 14:37:41