1

私は2つのリストを持っています:

リストA

  • 題名
  • カテゴリ (カテゴリ リストへの参照) (選択肢 A、BC)
  • 価格 (数値フィールド)
  • カテゴリ合計 (数値フィールド)
  • ...その他の分野

リストB

  • 題名
  • カテゴリーA 価格 (数値フィールド)
  • カテゴリーB 価格 (数値フィールド)
  • カテゴリーC 価格 (数値フィールド)
  • 保留中の変更 (ブール値 / チェックボックス、デフォルトは「いいえ」)
  • ...その他の分野

リスト B には、リスト A に移動して価格を取得し、いくつかの計算を行い、「保留中の変更」を false に設定する前にその価格を CategoryX 価格フィールドに保存する itemUpdating イベント レシーバーがあります。これは、リスト B からトリガーされた場合に正常に機能します。

リスト A には、itemUupdating および itemUpdated イベント レシーバーもあります。Price を変更すると、itemUpdating はリスト A をループし、同じカテゴリの Price を合計して、同じカテゴリのすべてのアイテムの Category Total に保存します。ItemUpdated はリスト B に移動し、同じカテゴリのアイテムに "Changes Pending=yes" を設定します。リスト B の itemUpdating が発生し、リスト A からの新しい価格で更新されるように、イベントの発生が意図的に有効になっています。

問題:リスト A の価格を変更すると、リスト B の最初の 3 つの項目だけが正しく更新されます。(約 15 項目の更新があります)。リスト B のイベント レシーバーがすべてのアイテムに対して完了したことを確認するにはどうすればよいですか? (さらに、デバッガーをリスト B の itemUpdating にアタッチし、リスト A の Price を変更すると、デバッガーは起動せず、リスト B のアイテムは更新されません)

VM 上の環境SP 2010 サーバー。VS2010 サンドボックス ソリューション (ファームを使用できません)。すべてのイベント レシーバーには、既定のシーケンス番号があります。-ing イベントは同期で、-ed イベントは非同期です。

4

0 に答える 0