示例:Azure意识自定义工作流活动
发布日期: 2017年1月
适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online
此示例从当前 Microsoft Dynamics 365 操作获取数据上下文,并将其发布到 Microsoft Azure 服务总线。
此示例代码适用于 Microsoft Dynamics 365(在线或本地)。 下载 Microsoft Dynamics CRM SDK 包。 在下载包的以下位置可以找到该代码:
SampleCode\CS\Azure\AzureAwareWorkflowActivity\Activity.cs
要求
在注册和执行示例自定义工作流活动示例之前,必须配置 Microsoft Dynamics 365 以连接 Microsoft Azure。详细信息:配置 Azure 与 Microsoft Dynamics 365 集成。
请注意代码中 “Input id” 所需的参数。 当您将此活动添加到工作流时,您必须提供 Microsoft Azure 服务端点的 GUID。详细信息:创建服务终结点配置。
在通过 Microsoft Dynamics 365 (online) 注册此自定义工作流活动时,您必须将其注册到沙盒(部分信任)。
有关运行此 SDK 中提供的示例代码的要求的详细信息,请参阅使用示例和帮助程序代码。
演示
此示例演示如何编写一个自定义工作流活动,以便将数据上下文从当前 Microsoft Dynamics 365 操作发布到 Microsoft Azure 服务总线。 已通过 Execute 方法完成数据上下文的发布。
示例
// This namespace is found in the System.Activities.dll assembly.
using System.Activities;
// This namespace is found in the Microsoft.Xrm.Sdk.dll assembly
// located in the SDK\bin folder of the SDK download.
using Microsoft.Xrm.Sdk;
// This namespace is found in the Microsoft.Xrm.Sdk.Workflow.dll assembly
// located in the SDK\bin folder of the SDK download.
using Microsoft.Xrm.Sdk.Workflow;
namespace Microsoft.Crm.Sdk.Samples
{
/// <summary>
/// This class is able to post the execution context to the Windows Azure
/// Service Bus.
/// </summary>
public class AzureAwareWorkflowActivity : CodeActivity
{
/// <summary>
/// This method is called when the workflow executes.
/// </summary>
/// <param name="executionContext">The data for the event triggering
/// the workflow.</param>
protected override void Execute(CodeActivityContext executionContext)
{
IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
IServiceEndpointNotificationService endpointService =
executionContext.GetExtension<IServiceEndpointNotificationService>();
endpointService.Execute(ServiceEndpoint.Get(executionContext), context);
}
/// <summary>
/// Enables the service endpoint to be provided when this activity is added as a
/// step in a workflow.
/// </summary>
[RequiredArgument]
[ReferenceTarget("serviceendpoint")]
[Input("Input id")]
public InArgument<EntityReference> ServiceEndpoint { get; set; }
}
}
另请参阅
IServiceEndpointNotificationService
Microsoft Dynamics 365 和 Microsoft Azure 整合的示例代码
示例:持久队列侦听器
自定义工作流活动(工作流程序集)
Microsoft Dynamics 365
© 2017 Microsoft。 保留所有权利。 版权