不允许一个用户处理队列项

时间:2012-06-07 04:47:28

标签: dynamics-crm dynamics-crm-2011

我想强制说,超过1个用户不应该在QueueItem上工作。如何设置QueueItem.WorkerId对此有帮助?设置此属性后,后台发生了什么?我们如何在CRM 2011中强制执行上述限制。

目前,即使我通过选择WorkOn操作设置了WorkerId属性,其他用户仍然可以打开QueueItem并对其进行处理。

1 个答案:

答案 0 :(得分:0)

我的直觉是挑战你的要求(例如:如果在项目解决之前处理该项目的用户离开公司 - 会发生什么?) - 但我认为你的问题纯属技术问题。< / p>

这是我的建议(未经测试 - 你需要做一些工作来证明哪条路线是正确的)。我最初的假设是队列项基于queueid属性分配给用户或团队,但正如您所指出的,workerid属性可能更有可能成为候选者。

假设WorkerId是驱动程序字段:

我假设workerid属性中没有默认值。您需要编写一个针对Pre-Operation实体的Update消息的queueitem阶段注册的插件。如果已设置workerid属性而非(从预实体图像中获取此属性),则允许操作继续。如果workerid 已经已设置,则向用户发出一个异常,通知他们无法重新分配该项目。您可能还需要根据Create的{​​{1}}消息注册您的插件。

假设QueueId是驱动程序字段:

queueitem实体添加一个新属性,称为“原始队列”。然后编写一个针对queueitem实体的AddToQueue消息注册的插件(我原本认为这是当用户点击“Work On”按钮时触发的消息 - 我认为这个消息移动了项目到用户队列,但我可能是错的)。如果您的“原始队列”属性设置,则将其设置为旧队列ID(从Pre-Entity图像中获取)并允许重新分配到另一个队列以继续。如果“原始队列”项目已经设置,则向用户发出一个异常,通知他们无法重新分配该项目。您可能还需要针对queueitem的{​​{1}}消息注册您的插件(我不确定,没有测试,此时将传入的队列项分配给队列)。