创建自定义工作流活动
发布日期: 2017年1月
适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online
本主题介绍如何创建自定义工作流活动,以及如何注册它以便在 Microsoft Dynamics 365(在线或本地) 中使用。 对于 Microsoft Dynamics 365 (online),只能注册自定义工作流活动以在沙盒(部分信任)中执行。 有关如何沙盒和部分信任的详细信息,请参阅插件隔离、信任和统计信息。
本主题内容
必备软件和程序集
使用 CodeActivity 工作流基类
为自定义工作流活动指定名称和组名称
必备软件和程序集
若要为 Dynamics 365 开发 Windows Workflow Foundation 4 自定义活动,您必须在 Microsoft .NET Framework 4.5.2 中开发它们。 必须在您的项目中将以下程序集作为引用添加。 可以在 Microsoft Dynamics 365 SDK 的 SDK\Bin 文件夹下找到这些程序集。下载 Microsoft Dynamics CRM SDK 包。
Microsoft.Xrm.Sdk.dll
Microsoft.Xrm.Sdk.Workflow.dll
使用 CodeActivity 工作流基类
若要创建自定义工作流活动,请创建一个从 CodeActivity 工作流基类继承的类。 此类可以在 System.Activities 命名空间中找到。 从 CodeActivity 类继承的活动可以替代 Execute 方法发挥自定义功能。
启动 Microsoft Visual Studio。
在“文件”菜单上,单击“新建”,然后单击“项目”。
在“新建项目”对话框的“已安装的模板”窗格中,选择“Visual C#”下的“工作流”,然后选择“活动库”。
指定解决方案的名称和位置,然后单击“确定”。
导航到“项目”菜单并选择“属性”。 在“应用程序”选项卡上,指定“.NET Framework 4.5.2”作为目标框架。
添加对 Microsoft.Xrm.Sdk.dll 和 Microsoft.Xrm.Workflow.dll 程序集的引用。
删除项目中的 Activity1.xaml 文件。
将类文件 (.cs) 添加到项目中。 在解决方案资源管理器中,右键单击项目,选择“添加”,然后单击“类”。 在“添加新项”对话框中,键入类的名称,然后单击“添加”。
打开类文件,然后添加以下 using 指令:
using System.Activities;using Microsoft.Xrm.Sdk;using Microsoft.Xrm.Sdk.Workflow;
使该类继承自 CodeActivity 类并为它提供一个此处所示的公共访问修饰符:
public class SampleCustomActivity : CodeActivity
通过添加 Execute 方法为类添加功能:
protected override void Execute(CodeActivityContext context){ //Activity code}
有关详细信息,请参阅向自定义工作流活动添加元数据。
指定输入和输出参数。 有关详细信息,请参阅向自定义工作流活动添加元数据。
在项目属性中 签名 选项卡下,选择 签署程序集 并提供密钥文件名。 必须签署自定义工作流活动(和插件程序)程序集。
编译项目以创建程序集 (.dll)。
若要查看演示如何创建自定义工作流活动的代码示例,请参阅示例:创建自定义工作流活动。
重要
为了提高性能,Microsoft Dynamics 365 将缓存自定义工作流活动实例。 自定义工作流活动的 Execute 方法应编写为无状态方法,因为不是每次调用自定义工作流活动时都调用构造函数。 此外,多个系统线程还可能同时执行自定义工作流活动。 所有每个调用状态信息都存储在上下文中,因此,不建议使用全局变量或者成员变量将数据从一个调用传递到下一个调用。
为自定义工作流活动指定名称和组名称
在注册自定义工作流活动程序集时,请指定名称和组名称。 名称属性可指定工作流活动的名称。 组名称属性可指定添加到 Microsoft Dynamics 365 程序设计器中的主菜单的子菜单名称。 这些属性会链接自定义工作流活动和 Microsoft Dynamics 365 流程设计器,以便自定义活动名称将显示在用户界面中。
若要指定自定义工作流活动的名称和组名称,请在注册自定义工作流活动程序集时使用 PluginType.Name 和 PluginType.WorkflowActivityGroupName 属性。 有关注册自定义工作流活动的详细信息,请参阅注册和使用自定义工作流活动程序集。 如果将 PluginType.Name 和 PluginType.WorkflowActivityGroupName 属性设置为 null,自定义活动会在Microsoft Dynamics 365工作流设计器中隐藏起来,并且只能通过 XAML 工作流进行访问。
如果您是使用插件注册工具来注册自定义工作流活动程序集,则可以在“可编辑”区域下的“名称”和“WorkflowActivityGroupName”框中指定适当的值。 有关使用插件注册工具的详细信息,请参阅演练:使用插件注册工具注册插件。
在注册此自定义工作流活动之后,您可以从 Microsoft Dynamics 365 流程设计器中使用它来处理工作流或对话。 有关详细信息,请参阅注册和使用自定义工作流活动程序集。
另请参阅
自定义工作流活动(工作流程序集)
向自定义工作流活动添加元数据
在自定义工作流活动中使用 IOrganization Web 服务
示例:创建自定义工作流活动
示例:Azure意识自定义工作流活动
Windows Workflow Foundation 4 基本活动类
Microsoft Dynamics 365
© 2017 Microsoft。 保留所有权利。 版权