Запуск событий по компоненту опубликовано


2

У меня есть требование для запуска почты целевой аудитории в событии публикации компонента. Я планирую обработать это требование, используя Event System. Но я не могу определить, какое событие доступно, например PublishEventArgs.

Вот код, я попробовал -

public void Subscribe() 
    { 

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

Но мое приложение не сможет распознать PublishEventArgs как событие. Я получаю сообщение об ошибке -

Тип или пространство имен имя «PublishEventArgs» не может быть найден (? Являются вы недостающую с помощью директивы или ссылка на сборку)

Я уже включены ниже сборками -

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; 

Пожалуйста, сообщите, если я пропустил сборку.

enter image description here

+1

Это немного расплывчато. Не могли бы вы прояснить, что вы пробовали и какие были проблемы? Предпочтительно с кодом для того, что вы пробовали. Кроме того, являетесь ли вы Компоненты динамическими и будут опубликованы самостоятельно? Или они будут на странице, которая затем будет опубликована? И то и другое? 30 дек. 152015-12-30 10:17:30

  0

Привет, Питер, я попробовал ниже метод public void Подписаться() { EventSystem.Subscribe <Component, PublishEventArgs> (SetOrUpdateComponent, EventPhases.Processed); } Но мое приложение не может распознать PublishEventArgs. 30 дек. 152015-12-30 10:20:17

+1

Пожалуйста, отредактируйте исходное сообщение и добавьте эти данные. В принципе, считайте, что PublishEventArgs - правильное событие - теперь что? 30 дек. 152015-12-30 10:22:32

+1

Что вы подразумеваете под «Но мое приложение не может распознать PublishEventArgs как событие»?? Вы получаете ошибку компиляции? Не возбуждает ли это событие? Вы пробовали отлаживать, и если да, то ваша точка останова попадает? Является ли ваш издатель изменен на другую машину? 30 дек. 152015-12-30 10:25:31

  0

Я обновил детали ошибки в моем вопросе. Я получаю ошибку компиляции. Тип или имя пространства имен «PublishEventArgs» не удалось найти (вам не хватает директивы using или ссылки на сборку?) 30 дек. 152015-12-30 10:34:21

3

Вы можете найти список всех событий на TRIDION 2013 на link:

Более подробное объяснение событий можно найти в "SDL Tridion 2013 SP1 TOM.NET API.chm" API документ из SDL. Существует некоторая документация о событиях на SDL Live Content:

Существует много блогов о том, как работать с системой событий, поскольку это одна из частей Tridion с хорошим охватом. (Например, this blog объясняет, как работать с Tridion Event System)

Определенно использовать событие OnComponentPublish (имя, используемое в старом событии api, вы можете найти новый api в документе матрицы событий). В зависимости от требований, когда вам нужно отправить электронное письмо, вы можете выбрать между двумя этапами «Инициировать» или «Обработать». Вы, вероятно, нужна фаза ... об обработанной

Редакции: Вы, вероятно, отсутствуете

using Tridion.ContentManager.Publishing; 
  0

Спасибо за информацию. Я также добавил эту сборку и протестировал ее. Ошибка все еще существует. 30 дек. 152015-12-30 10:45:08

  0

Я удалил эту dll и импортировал ее снова, и теперь она работает правильно. Спасибо за вашу помощь. 30 дек. 152015-12-30 12:09:17


4

Тип или пространство имен имя «PublishEventArgs» не может быть найдено (вы пропали без вести с помощью директивы или ? ссылка на узел)

Я уже включены ниже сборок -

...

использование Tridion.ContentManager.Extensibility.Events;

Поскольку вы уже добавили правильный с помощью директивы, другая часть сообщения об ошибке должно быть правдой: вы не добавили «Tridion.ContentManager.Publishing.dll» в качестве ссылки в вашем проекте. Обратите внимание, что с использованием директив и ссылки на сборку - это две разные вещи.

  0

Привет, Питер, я уже добавил ContentManager.dll в свое приложение. 30 дек. 152015-12-30 11:48:49

  0

Когда я использую SaveEventArgs или CheckInEventArgs, он работает нормально, но только дает проблему при использовании PublishEventArgs. 30 дек. 152015-12-30 11:57:35

  0

PublishEventArgs на самом деле находится в Tridion.ContentManager.Publishing.dll, тогда как SaveEventArgs и CheckInEventArgs находятся в Tridion.ContentManager.dll 30 дек. 152015-12-30 14:37:41