Вызовите рабочий процесс SharePoint после EventReceiver - PullRequest
1 голос
/ 19 декабря 2010

У меня возник вопрос относительно рабочих процессов sharepoint и получателей событий.я получил приемник событий, который устанавливает метаданные для элемента.после этого я использую рабочий процесс для копирования метаданных элемента в список.к сожалению, рабочий процесс не копирует метаданные, установленные получателем события.я думаю, потому что это выполняется перед получателем события.Есть ли возможность изменить порядок, чтобы рабочий процесс выполнялся после получения события?Получатель не связан с событиями ItemAdded и ItemUpdated, например, синхронно.

Спасибо за помощьPatrick

Ответы [ 2 ]

2 голосов
/ 20 декабря 2010

Вы можете использовать SPWorkFlowAssociation для запуска рабочего процесса, связанного со списком или типом содержимого.Пример (запуск рабочего процесса после добавления элемента)

public override void ItemAdded(SPItemEventProperties properties)  
{  

    SPList parentList = properties.ListItem.ParentList;  
    SPWorkflowAssociation associationTemplate =         
      parentList.WorkflowAssociations.GetAssociationByName("Your Workflow Name",   
      new CultureInfo  
        (Convert.ToInt32(parentList.ParentWeb.RegionalSettings.LocaleId)));  
    SPSite siteCollection = properties.ListItem.ParentList.ParentWeb.Site;  
      siteCollection.WorkflowManager.StartWorkflow(properties.ListItem,  
      associationTemplate, String.Empty);  

}  

Дополнительная информация о SPWorkflowAssociation Проверьте ссылку ниже

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.workflow.spworkflowassociation.aspx

0 голосов
/ 24 января 2014

SPListItem:

Синхронные события (заканчивающиеся как ItemAdd * ing *) всегда выполняются перед рабочим процессом.

Асинхронные события (заканчивающиеся как ItemAdd * ed *) всегда выполняются после выполнения рабочего процесса.

Таким образом, необходимо установить свойство «Синхронизация» файла Elements.xml равным «Синхронный», и рабочий процесс всегда будет выполняться после получения события.

ВНИМАНИЕ: События, добавленные и обновленные, по умолчанию запускаются асинхронно, поэтому вы должны внести изменения в Elements.xml.

...