向自定义工作流活动添加元数据
发布日期: 2017年1月
适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online
使用 .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; }
其他属性
一些类型(例如 EntityReference 和 OptionSetValue)需要除 Input、Output 和 Default 属性之外的其他属性。 其他属性是:ReferenceTarget 和 AttributeTarget。 以下示例显示了 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 服务
示例:创建自定义工作流活动
进程类、属性和类型
Microsoft Dynamics 365
© 2017 Microsoft。 保留所有权利。 版权