複数のユーザーが QueueItem で作業しないように強制したいと考えています。QueueItem.WorkerId の設定はこれにどのように役立ちますか? この属性が設定されたとき、バックグラウンドで何が起こったのですか? CRM 2011 で上記の制限を適用するには、他にどのような方法がありますか。
現時点では、WorkOn アクションを選択して WorkerId 属性を設定しても、他のユーザーは QueueItem を開いて作業できます。
複数のユーザーが QueueItem で作業しないように強制したいと考えています。QueueItem.WorkerId の設定はこれにどのように役立ちますか? この属性が設定されたとき、バックグラウンドで何が起こったのですか? CRM 2011 で上記の制限を適用するには、他にどのような方法がありますか。
現時点では、WorkOn アクションを選択して WorkerId 属性を設定しても、他のユーザーは QueueItem を開いて作業できます。
私の本能はあなたの要件に挑戦することです (たとえば、アイテムに取り組んでいるユーザーがアイテムが解決される前に会社を辞めた場合、どうすればよいでしょうか?) - しかし、あなたの質問は純粋に技術的なものであると仮定します.
これが私の提案です(テストされていません-どのルートが正しいかを証明するために、これでいくつかの作業を行う必要があります)。queueid
私の当初の想定では、キュー アイテムは属性に基づいてユーザーまたはチームに割り当てられていましたが、ご指摘のとおり、workerid
おそらく属性の方が有力な候補です。
属性にはデフォルト値がないと仮定しworkerid
ます。エンティティのメッセージのPre-Operation
ステージに対して登録されるプラグインを作成する必要があります。属性がまだ設定されていない場合(プレエンティティ イメージから取得)、操作を続行できます。がすでに設定されている場合は、アイテムを再割り当てできないことをユーザーに通知する例外を発生させます。のメッセージに対してプラグインを登録する必要がある場合もあります。Update
queueitem
workerid
workerid
Create
queueitem
queueitem
「元のキュー」などと呼ばれる新しい属性をエンティティに追加します。AddToQueue
次に、エンティティのメッセージに対して登録されるプラグインを作成しますqueueitem
(これは、ユーザーが [作業中] ボタンをクリックしたときに発生するメッセージであると最初は信じていました。これにより、アイテムがユーザー キューに移動したと考えられていましたが、そうである可能性があります)。違う)。「元のキュー」属性が設定されていない場合は、それを古いキュー ID に設定し (プレエンティティ イメージから取得)、別のキューへの再割り当てを続行できるようにします。「元のキュー」アイテムがすでに設定されている場合は、アイテムを再割り当てできないことをユーザーに通知する例外を発生させます。Create
のメッセージに対してプラグインを登録する必要がある場合があります。queueitem
あまりにも(テストなしでは、着信キューアイテムがキューに割り当てられる時点でわかりません)。