我想限制我的CRM工作流程由某些用户执行。 我已经尝试将工作流程的范围扩展到用户'级别并与用户共享工作流程。
答案 0 :(得分:2)
您可以这样做,但必须将逻辑内置到工作流代码中。
这将为您提供执行工作流程的用户的GUID:
IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
var userId = context.InitiatingUserId;
从此处您可以根据用户停止/继续。
对于数据驱动的解决方案,您可以构建逻辑以仅基于条件继续;例如用户被分配到某个角色。
修改(根据我的评论)
或者,您可以创建返回执行用户的工作流程。这样您就不必将规则编码到工作流源中,而是可以根据“获取执行用户”工作流的返回值在工作流编辑器中添加停止条件。
有人已编写代码来执行此操作:http://www.crmanswers.net/2013/10/get-current-user-inside-workflow.html
答案 1 :(得分:0)
您还可以将工作流的范围设置为业务单位或父级:子业务单位。但是,这不太可能是改变组织在CRM中的结构的一个很好的理由。
http://blog.profad.com/crm-3/defining-scope-using-workflows-in-microsoft-dynamics-crm-2011/