2009-06-24 2 views
1

リスト内の項目に対してワークフローが実行されています。ワークフローには、Whileアクティビティ内にあるOnWorkflowItemChangedアクティビティがあります。ワークフローはWhileループに入り、UIを介してアイテムを更新すると、OnWorkflowItemChangedアクティビティが発生します。ただし、(コンソールアプリケーションを介して)項目をプログラムで更新すると、OnWorkflowItemChangedアクティビティは発生しませんが、UIを介した更新にも応答しなくなります。リストアイテムがプログラムによって更新されると、ワークフローが応答しなくなる

誰もこれまで見たことがありますか?プログラムでリストアイテムを更新し、ワークフローでイベントに応答し、将来のイベントに応答し続ける方法がありますか?

編集:アイテムを更新するためにリストWebサービスを使用するとうまくいきます。オブジェクトモデルを使用すると、なぜそれがうんざりしますか?

答えて

0

イベントを発生させる唯一の方法は、リストWebサービスを使用することです。

0

あなたはSPEventReceiverBase.DisableEventFiring(呼び出すことができるイベントレシーバにオブジェクトモデルを通じてリスト項目を更新するとき、私は知っている)、などSPEventReceiverBase.DisableEventFiring()は、あなたがいることを試してみました、またはワークフロー同等はありますか? link text

+0

DisableEventFiring()およびEnableEventFiring()は、イベント受信者が再帰呼び出しを防止するためのものです。ワークフローや外部コードには使用できません。また、SPListItem.Update()メソッドを呼び出すと、イベントfirintが無効になる理由がわかりません。 – zimdanen

+0

は、私が上記に含めることを意図したリンクを追加しました – Chloraphil

+0

更新の前後の両方でEnableEventFiringに設定しようとしましたが、それでもイベントを発生させたりUIを介して応答しません。 アイテム["Decision 1"] = "Concur"; SPEventManagerWrapper.EnableEventFiring(); item.Update(); SPEventManagerWrapper.EnableEventFiring(); – zimdanen

0

うん、私は同意する問題は、そのイベントがすべてで発射されていないです。

はここでイベントレシーバ内から起動されません更新に発射イベントを無効にするハックです。私はあなたがIISをリセットした場合、最初に動作することに気付きましたが、その後はアップデートはありません。

関連する問題