示例: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。 保留所有权利。 版权