リスト内の項目に対してワークフローが実行されています。ワークフローには、Whileアクティビティ内にあるOnWorkflowItemChangedアクティビティがあります。ワークフローはWhileループに入り、UIを介してアイテムを更新すると、OnWorkflowItemChangedアクティビティが発生します。ただし、(コンソールアプリケーションを介して)項目をプログラムで更新すると、OnWorkflowItemChangedアクティビティは発生しませんが、UIを介した更新にも応答しなくなります。リストアイテムがプログラムによって更新されると、ワークフローが応答しなくなる
誰もこれまで見たことがありますか?プログラムでリストアイテムを更新し、ワークフローでイベントに応答し、将来のイベントに応答し続ける方法がありますか?
編集:アイテムを更新するためにリストWebサービスを使用するとうまくいきます。オブジェクトモデルを使用すると、なぜそれがうんざりしますか?
DisableEventFiring()およびEnableEventFiring()は、イベント受信者が再帰呼び出しを防止するためのものです。ワークフローや外部コードには使用できません。また、SPListItem.Update()メソッドを呼び出すと、イベントfirintが無効になる理由がわかりません。 – zimdanen
は、私が上記に含めることを意図したリンクを追加しました – Chloraphil
更新の前後の両方でEnableEventFiringに設定しようとしましたが、それでもイベントを発生させたりUIを介して応答しません。 アイテム["Decision 1"] = "Concur"; SPEventManagerWrapper.EnableEventFiring(); item.Update(); SPEventManagerWrapper.EnableEventFiring(); – zimdanen