向自定义工作流活动添加元数据

 

发布日期: 2016年11月

适用于: Dynamics CRM 2015

使用 .NET 属性为包含自定义工作流活动定义的程序集添加批注,以提供 Microsoft Dynamics 365 在运行时用于将代码链接到工作流引擎的元数据。 有关 .NET 属性的详细信息,请参阅使用属性扩展元数据

在开始将元数据添加到自定义工作流活动定义中之前,确保您知道自定义工作流活动支持的 Microsoft Dynamics 365 类型和属性。详细信息: 参阅进程类、属性和类型

本主题内容

添加输入参数

添加输出参数

为同一参数添加输入和输出属性

其他属性

添加 Execute 方法

添加输入参数

在工作流类中指定输入参数时,还可以为参数指定默认值。 以下示例显示了输入参数的定义方法。

[Input("DateTime input")]
[Default("2004-07-09T02:54:00Z")]
public InArgument<DateTime> Date { get; set; }

使用 .NET 属性 Input 为此输入参数添加批注。InputAttribute 类派生自 ParameterAttribute 类,后者使用参数 (ParameterAttribute.Name) 指定输入属性的名称。 此名称显示在 web 应用程序的流程窗体助理中。 这样,您就可以将属性作为输入参数映射到流程。

此外,您还可以生成所需的输入参数。详细信息:RequiredArgumentAttribute

添加输出参数

输出参数的添加方法与输入参数的添加方法相同。 以下示例显示了输出参数的定义方法。

[Output("Money output only")]
[Default("23.3")]
public OutArgument<Money> MoneyOutput { get; set; }

使用 .NET 属性 Output 为此输出参数添加批注。OutputAttribute 类派生自 ParameterAttribute 类,后者使用参数 (ParameterAttribute.Name) 指定输出属性的名称。 此名称显示在 web 应用程序的流程窗体助理中。 这样,您就可以将某个属性映射为输出参数了。

为同一参数添加输入和输出属性

可以为同一参数使用输入和输出属性。 在下面的代码示例中,IntParameter 是输入参数,也是输出参数。

[Input("Int input")]
[Output("Int output")]
[Default("2322")]
public InOutArgument<int> IntParameter { get; set; }

其他属性

一些类型(例如 EntityReferenceOptionSetValue)需要除 InputOutputDefault 属性之外的其他属性。 其他属性是:ReferenceTargetAttributeTarget。 以下示例显示了 EntityReference 类型的参数的定义方法。

[Input("EntityReference input")]
[Output("EntityReference output")]
[ReferenceTarget("account")]
[Default("3B036E3E-94F9-DE11-B508-00155DBA2902", "account")]
public InOutArgument<EntityReference> AccountReference { get; set; }

有关支持的类型和属性的列表,请参阅进程类、属性和类型

添加 Execute 方法

自定义工作流活动必须具有 Execute 方法,如以下示例所示。

protected override void Execute(CodeActivityContext context)
{
   if (AccountReference.Get(context).Id != new Guid("3B036E3E-94F9-DE11-B508-00155DBA2902"))   
      throw new InvalidPluginExecutionException("Unexpected default value");
}

另请参阅

自定义工作流活动(工作流程序集)
自定义工作流活动(工作流程序集)
创建自定义工作流活动
在自定义工作流活动中使用 IOrganization Web 服务
示例:创建自定义工作流活动
进程类、属性和类型

© 2017 Microsoft。 保留所有权利。 版权