我有一个关于sharepoint工作流和事件接收器的问题。我有一个事件接收器,它在一个元素上设置元数据。之后,我使用工作流将项目元数据复制到列表中。不幸的是,工作流不会复制由事件接收者设置的元数据。我想是因为它是在事件接收器之前执行的。是否有可能更改顺序,以便在事件接收者之后执行工作流?接收器以同步的方式绑定到ItemAdded和ItemUpdated事件。
谢谢你的帮助!帕特里克
发布于 2010-12-20 14:13:53
您可以使用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
发布于 2014-01-24 22:43:32
SPListItem:
“同步”事件(-ing结尾如ItemAdd*)总是在工作流之前执行。
"Asynchronous“事件(-ed结尾如ItemAdd*ed*)总是在工作流执行之后执行。
因此,您必须将Elements.xml文件的"Synchronization“属性设置为"Synchronous”,工作流将始终在事件接收器之后执行。
注意:默认情况下,添加和更新的事件异步运行,因此您必须在Elements.xml中进行更改。
https://stackoverflow.com/questions/4483446
复制相似问题