1

SharePointワークフローとイベント受信者に関する質問がありました。私は要素のメタデータを設定しているイベントレシーバを持っています。その後、ワークフローを使用してアイテムメタデータをリストにコピーします。残念ながら、ワークフローはイベント受信者によって設定されたメタデータをコピーしません。私はそれがイベント受信者の前に実行されるためだと思います。順序を変更する可能性があるので、ワークフローはイベント受信者の後に実行されますか?レシーバは、ItemAddedイベントとItemUpdatedイベントに同期しています。EventReceiverの後にSharePoint Workflowを呼び出す

ありがとうございました! パトリック

答えて

2

SPWorkFlowAssociationを使用して、リストまたはコンテンツタイプに関連付けられたワークフローを実行できます。 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); 

} 

詳しい情報は下記のリンク

をチェック

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

0

SPListItem:

"同期" のイベントが(ItemAddのようなエンディング-ing * ing *)は、常にワークフローの前に実行されます。

"非同期"イベント(ItemAdd * ed *のように終了)は、常にワークフローの実行後に実行されます。

したがって、Elements.xmlファイルの "Synchronization"プロパティを "Synchronous"に設定する必要があり、ワークフローは常にイベント受信者の後に実行されます。

注意:イベントの追加と更新はデフォルトで非同期で実行されるため、Elements.xmlで変更を行う必要があります。

関連する問題