Dynamics CRM 2011 编程系列(26):自定义工作流
2012-06-07 10:56
393 查看
在Dynamics CRM系统中支持可配置的工作流功能,该功能类似Plugin可以根据实体的某些条件而自动触发。比如当实体创建时或实体的某个属性被更改时,当然还可以直接手动触发该流程。
本文来介绍下如何开发自定义的工作流活动,自定义的工作流活动能很好的弥补系统自带活动的不足。且自定义的工作流活动灵活,往往能实现很多复杂需求,所以掌握它还是非常有必要的。
接下来我们来看看具体的***过程:
图1
图2
图3
图4
图5
图6
图7
图8
图9
图10
图11
图12
图13
图14
本文来介绍下如何开发自定义的工作流活动,自定义的工作流活动能很好的弥补系统自带活动的不足。且自定义的工作流活动灵活,往往能实现很多复杂需求,所以掌握它还是非常有必要的。
接下来我们来看看具体的***过程:
图1
图2
图3
图4
图5
图6
图7
图8
图9
图10
图11
图12
图13
图14
自定义工作流代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Activities; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Workflow; namespace MyActivity { public sealed class MyActivity1:CodeActivity { [Input("Account Name")] public InArgument<string> AccountName { get; set; } [Output("Account Id")] public OutArgument<string> AccountId { get; set; } protected override void Execute(CodeActivityContext executionContext) { IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>(); IOrganizationServiceFactory factory = executionContext.GetExtension<IOrganizationServiceFactory>(); IOrganizationService service = factory.CreateOrganizationService(null); Guid tmp=Guid.Empty; Entity account = new Entity("account"); account.Attributes.Add("name", AccountName.Get(executionContext)); tmp=service.Create(account); AccountId.Set(executionContext, tmp.ToString()); } } }
小结
用自定义的工作流活动能灵活的获取系统中任意目标实体的属性值,用自定义工作流活动搭配系统标准的工作流活动能完成一些业务复杂的任务。相关文章推荐
- Dynamics CRM 2011 编程系列:自定义工作流
- Dynamics CRM 2011 编程系列(30):使用ASP.NET Ajax技术的自定义页面
- Dynamics CRM 2011 编程系列(29):自定义页面
- Dynamics CRM 2011 编程系列(25):插件的依赖注入
- Dynamics CRM 2011 编程系列(33):Ribbon的开发三(按钮的执行环境)
- Dynamics CRM 2011 编程系列 (8):JS编程之实体CRUD辅助类
- Dynamics CRM 2011 编程系列(16):插件
- Dynamics CRM 2011 编程系列(23):用插件调用WCF
- Dynamics CRM 2011 编程系列(15):用JS事件提交表单
- Dynamics CRM 2011 编程系列(2):JS脚本编程之onload事件
- Dynamics CRM 2011 编程系列(7):JS编程之实体的CRUD[Update,Delete]
- Dynamics CRM 2011 编程系列(2):JS脚本编程之onload事件
- Dynamics CRM 2011 编程系列(28):使用SQL Server Profiler找表
- Dynamics CRM 2011 编程系列(3):JS脚本编程之onsave事件
- Dynamics CRM 2011 编程系列(31):Ribbon的开发一(添加按钮,选项卡,Jewel)
- Dynamics CRM 2011 编程系列(11):JS编程之征服表单控件(一)
- Dynamics CRM 2011 编程系列(20):插件队列
- Dynamics CRM 2011 编程系列(3):JS脚本编程之onsave事件
- Dynamics CRM 2011 编程系列 (6):JS脚本编程之实体的CRUD[Create,Read]
- Dynamics CRM 2011 编程系列(5):JS脚本编程之实战一