Skip to content

Commit ac60261

Browse files
committed
Updated content
1 parent d594c9f commit ac60261

File tree

4 files changed

+29
-36
lines changed

4 files changed

+29
-36
lines changed

powerapps-docs/developer/data-platform/azure-integration.md

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "Azure integration (Microsoft Dataverse) | Microsoft Docs"
33
description: "Learn how Microsoft Dataverse can be configured to send data to the Azure cloud."
44
ms.collection: get-started
5-
ms.date: 03/22/2022
5+
ms.date: 07/17/2024
66
ms.reviewer: "pehecke"
77
ms.topic: "article"
88
author: "jaredha"
@@ -11,13 +11,13 @@ ms.author: "jdaly"
1111
search.audienceType:
1212
- developer
1313
contributors:
14-
- PHecke
14+
- pehecke
1515
---
1616
# Azure integration
1717

1818
[!INCLUDE[cc-terminology](includes/cc-terminology.md)]
1919

20-
Microsoft Dataverse supports integration with Azure. Developers can register plug-ins with Dataverse that can pass runtime message data, known as the execution context, to one or more Azure solutions in the cloud. This is especially important because Azure is one of two supported solutions for communicating runtime context obtained in a plug-in to external line-of-business (LOB) applications. The other solution is the external custom endpoint access capability from a plug-in registered in the sandbox.
20+
Microsoft Dataverse supports integration with Azure. Developers can register plug-ins with Dataverse that can pass runtime message data, known as the execution context, to one or more Azure solutions in the cloud. This is especially important because Azure is one of a few supported solutions for communicating runtime context to external line-of-business (LOB) applications.
2121

2222
The Azure Service Bus provides a secure and reliable communication channel between Dataverse runtime data and external cloud-based line-of-business (LOB) applications. This capability is especially useful in keeping disparate Dataverse systems or other Dataverse servers synchronized with business data changes.
2323

@@ -27,50 +27,51 @@ The Azure Service Bus provides a secure and reliable communication channel betwe
2727

2828
### Data Context
2929

30-
The *data context* contains the business data that is being processed as part of the current Dataverse operation. This processing was initiated when a request to perform a certain operation was made by a user, workflow, or application, to the Dynamics 365 platform. The data context is passed to any plug-ins or custom workflow activities that are registered with the event pipeline to execute on the specific request and table combination that is currently being processed. The data context is of type <xref:Microsoft.Xrm.Sdk.IPluginExecutionContext> when it is being passed along the event execution pipeline and <xref:Microsoft.Xrm.Sdk.RemoteExecutionContext> when it is posted to the Service Bus.
30+
The *data context* contains the business data that is being processed as part of the current Dataverse operation. This processing was initiated when a request to perform a certain Dataverse operation was made by a user, workflow, or application. The data context is passed to any plug-ins or custom workflow activities that are registered with the event pipeline to execute on the specific request and table combination that is currently being processed. The data context is of type <xref:Microsoft.Xrm.Sdk.IPluginExecutionContext> when it is being passed along the event execution pipeline and <xref:Microsoft.Xrm.Sdk.RemoteExecutionContext> when it is posted to the Service Bus.
3131

3232
The data context contained within the message that is posted to the Azure Service Bus can be formatted in XML or JSON in addition to the default .NET binary format. This allows for cross-platform interoperability where Azure hosted non-.NET clients can read Dataverse data from the service bus.
3333

3434
> [!IMPORTANT]
3535
> When the size of the entire HTTP payload exceeds 192Kb, the following properties will be removed:
3636
>
37-
> - <xref:Microsoft.Xrm.Sdk.RemoteExecutionContext.ParentContext>
38-
> - <xref:Microsoft.Xrm.Sdk.RemoteExecutionContext.InputParameters>
39-
> - <xref:Microsoft.Xrm.Sdk.RemoteExecutionContext.PreEntityImages>
40-
> - <xref:Microsoft.Xrm.Sdk.RemoteExecutionContext.PostEntityImages>
37+
> <xref:Microsoft.Xrm.Sdk.RemoteExecutionContext.ParentContext>,
38+
> <xref:Microsoft.Xrm.Sdk.RemoteExecutionContext.InputParameters>,
39+
> <xref:Microsoft.Xrm.Sdk.RemoteExecutionContext.PreEntityImages>,
40+
> <xref:Microsoft.Xrm.Sdk.RemoteExecutionContext.PostEntityImages>
4141
>
4242
> Some operations do not include these properties.
4343
>
4444
> - If the size of the payload is below 192Kb after the additional data is removed, an additional `MessageMaxSizeExceeded` property is added to the [BrokeredMessage](/dotnet/api/microsoft.servicebus.messaging.brokeredmessage) sent by the system. This indicates that some of the data has been truncated.
4545
> - If the size of the payload exceeds 192Kb after the additional data is removed, an error occurs and the message is not sent.
4646
4747
For more information about the technologies described earlier, see:
48-
- [Event execution pipeline](event-framework.md#event-execution-pipeline)
49-
- [Write a listener application for a Microsoft Azure solution](write-listener-application-azure-solution.md).
48+
49+
- [Event execution pipeline](event-framework.md#event-execution-pipeline)
50+
- [Write a listener application for a Microsoft Azure solution](write-listener-application-azure-solution.md).
5051

5152
### Plug-ins
5253

5354
Plug-ins are one of two methods used to initiate posting the message containing the data context to the Azure Service Bus, the other method being a custom workflow activity. There are two kinds of plug-ins supported by the Dataverse-Azure connection feature: out-of-box (OOB), and custom. In either case, it is recommended that you register the plug-in to run asynchronously for best system performance.
5455

55-
An Azure-aware OOB plug-in is provided with Dataverse and can be registered using the Plug-in Registration tool. This plug-in executes in full trust with the Dataverse platform. You must register a plug-in 'step' in the event execution pipeline that identifies the message and table combination that triggers the plug-in to execute and perform the posting notification. When executed, the plug-in notifies the asynchronous service, through a service endpoint notification service (<xref:Microsoft.Xrm.Sdk.IServiceEndpointNotificationService>), to post the current request data context to the Azure Service Bus.
56+
An Azure-aware default (OOB) plug-in is available and can be registered with Dataverse by registering a service endpoint using the Plug-in Registration tool. You must register a plug-in 'step' in the event execution pipeline that identifies the message and table combination that triggers the plug-in to execute and perform the posting notification. When executed, the plug-in notifies the asynchronous service, through a service endpoint notification service (<xref:Microsoft.Xrm.Sdk.IServiceEndpointNotificationService>), to post the current request data context to the Azure Service Bus.
5657

57-
You can also write your own custom plug-in that is “Azure-aware”. The custom plug-in executes in partial trust mode in the sandbox. A custom plug-in can initiate posting of the data context to the service bus through the service endpoint notification service. Adding code to invoke this service makes the plug-in “Azure-aware”.
58+
You can also write your own custom plug-in that is “Azure-aware”. The custom plug-in executes in partial-trust mode in the sandbox. A custom plug-in can initiate posting of the data context to the service bus through the service endpoint notification service. Adding code to invoke this service makes the plug-in “Azure-aware”.
5859

5960
For more information about plug-ins in general, see [Writing a Plug-in](write-plug-in.md). For more information about Azure-aware plug-ins, see [Write a Custom Azure-aware Plug-in](write-custom-azure-aware-plugin.md).
6061

6162
### Custom workflow activities
6263

63-
Similarly to plug-ins, custom workflow activities can be written to initiate posting the current request message data context to the Azure Service Bus by using the service endpoint notification service. More information: [Workflow extensions](workflow/workflow-extensions.md)
64+
Similarly to plug-ins, custom workflow activities can be written to initiate posting the current request message data context to the Azure Service Bus by using the service endpoint notification service. More information: [Workflow extensions](workflow/workflow-extensions.md)
6465

6566
### Asynchronous service
6667

67-
Once notified by the service endpoint notification service, the asynchronous service handles posting the data context of the request message currently being processed by the event execution pipeline to the Azure Service Bus. Each post is performed by a system job of the asynchronous service. A user can view the status of each system job by using the **System Jobs** view of the Power Apps web application.
68+
Once notified by the service endpoint notification service, the asynchronous service handles posting the data context of the request message currently being processed by the event execution pipeline to the Azure Service Bus. Each post is performed by a system job of the asynchronous service. A user can view the status of each system job by using the **System Jobs** view of the Power Apps web application. In the web application, choose **Advanced settings** to display the legacy Dynamics 365 interface. Next, select **Settings** > **System jobs**.
6869

6970
For more information about the asynchronous service see [Asynchronous service](asynchronous-service.md).
7071

7172
### Microsoft Azure Service Bus
7273

73-
The service bus relays the request message data context between Dataverse and Azure Service Bus solution listener applications. The service bus also provides data security so that only authorized applications can access the posted Dynamics 365 data. Authorization of Dataverse to post the data context to the service bus and for listener applications to read it is managed by Azure Shared Access Signatures (SAS).
74+
The service bus relays the request message data context between Dataverse and Azure Service Bus solution listener applications. The service bus also provides data security so that only authorized applications can access the posted Dataverse data. Authorization of Dataverse to post the data context to the service bus and for listener applications to read it is managed by Azure Shared Access Signatures (SAS).
7475

7576
For more information about service bus, see [Service Bus](https://azure.microsoft.com/services/service-bus/). For more information about service bus authorization, see [Service Bus authentication and authorization](/azure/service-bus-messaging/service-bus-authentication-and-authorization).
7677

@@ -127,10 +128,7 @@ Similar to a queue except that one or more listeners can subscribe to receive me
127128

128129
### Event Hub
129130

130-
This contract type applies to Azure Event Hub solutions.
131-
132-
> [!IMPORTANT]
133-
> To use these contracts, you must write your listener applications using the [Azure SDK](https://www.windowsazure.com/develop/downloads/) v1.7 or later.
131+
This contract type applies to Azure Event Hub solutions.
134132

135133
Identifying the kind of security a contract uses is part of the contract’s configuration. A contract can use Transport security, which uses Transport Layer Security (TLS) or Secure Sockets Layer (SSL) (https).
136134

@@ -142,5 +140,4 @@ Claims authentication is used for secure access to the Service Bus. The claim us
142140

143141
If an error occurred after a post was attempted to the Service Bus, check the status of the related system job in the web application for more information on the error. If the Service Bus is down or a listener/endpoint isn’t available, the current message being processed in Dataverse will not be posted to the bus. The asynchronous service will continue to try to post the message in an exponential pattern where it will try to post frequently at first and then at longer and longer intervals. For an internal Dataverse error, message posts are not attempted. For an external service bus or network error, the related system job will be in a “Wait” state.
144142

145-
146143
[!INCLUDE[footer-include](../../includes/footer-banner.md)]

powerapps-docs/developer/data-platform/configure-azure-integration.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Configure Azure integration (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
33
description: "Learn about configuring Azure integration with Microsoft Dataverse." # 115-145 characters including spaces. This abstract displays in the search result.
4-
ms.date: 03/22/2022
4+
ms.date: 07/19/2024
55
ms.reviewer: "pehecke"
66
ms.topic: "article"
77
author: "jaredha" # GitHub ID
@@ -30,7 +30,7 @@ After configuring Azure integration, you will need to perform these additional t
3030
1. Register an Azure aware plug-in or a Azure-aware custom workflow activity with Dataverse. More information: [Tutorial: Register an Azure-aware plug-in using the Plug-in Registration tool](walkthrough-register-azure-aware-plug-in-using-plug-in-registration-tool.md)
3131
1. Perform the necessary Dataverse operation that triggers the plug-in or custom workflow activity to run.
3232

33-
If all of the preceding steps were performed correctly, a message containing the Dataverse data context should be sent to a Azure queue or topic and ultimately received by the listener application. You can navigate to the System Jobs grid in the Dataverse web application and check the status of the related System Job to see if the post to the Azure Service Bus succeeded. In case of errors, the message section of the System Job displays the error details.
33+
If all of the preceding steps were performed correctly, a message containing the Dataversse data context should be sent to a Azure queue or topic and ultimately received by the listener application. You can navigate to the System Jobs grid in the Power Apps web application, under **Advanced settings**, and check the status of the related system job to see if the post to the Azure Service Bus succeeded. In case of errors, the message section of the system job displays the error details.
3434

3535
### See also
3636

@@ -40,5 +40,4 @@ If all of the preceding steps were performed correctly, a message containing the
4040
[Write a listener application for a Azure solution](write-listener-application-azure-solution.md)<br />
4141
[What is Azure Service Bus?](/azure/service-bus-messaging/service-bus-messaging-overview)
4242

43-
4443
[!INCLUDE[footer-include](../../includes/footer-banner.md)]

powerapps-docs/developer/data-platform/work-data-azure-solution.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Work with Microsoft Dataverse data in your Azure solution (Microsoft Dataverse) | Microsoft Docs"
33
description: "Provides an overview of passing data from Dataverse to an Azure cloud hosted solution."
4-
ms.date: 08/28/2023
4+
ms.date: 07/19/2024
55
author: swylezol
66
ms.author: swylezol
77
ms.reviewer: pehecke
@@ -18,22 +18,19 @@ contributors:
1818

1919
[!INCLUDE[cc-terminology](includes/cc-terminology.md)]
2020

21-
An internal plug-in named `ServiceBusPlugin` is provided with Dataverse. The plug-in contains the business logic to post the Dataverse message execution context to the integrated Azure service. To use this plug-in, you need to register an Azure endpoint and a step for the plug-in. The step defines what message and table combination being processed by the core Dataverse operation should trigger the plug-in to execute. For more information, see [Walkthrough: Register an Azure-aware Plug-in using the Plug-in Registration Tool](walkthrough-register-azure-aware-plug-in-using-plug-in-registration-tool.md).
21+
A default Azure-aware plug-in is provided with Dataverse. The plug-in contains the business logic to post the Dataverse message execution context to the Azure Service Bus. To use this plug-in, you need to register a service endpoint and a step. The step defines what message and table combination being processed by the core Dataverse operation should trigger the plug-in to execute. For more information, see [Walkthrough: Register an Azure-aware Plug-in using the Plug-in Registration Tool](walkthrough-register-azure-aware-plug-in-using-plug-in-registration-tool.md).
2222

23-
In addition, you can write a custom plug-in that includes the required lines of code to post to the Azure service. The plug-in is registered in a similar way, except that it must be registered in the sandbox. For more information on writing a custom plug-in that can post to the Azure services, see [Write a Custom Azure-aware Plug-in](write-custom-azure-aware-plugin.md).
23+
In addition, you can write a custom plug-in that includes the required lines of code to post to the Azure service. The plug-in is registered in a similar way, except that it must be registered in the sandbox. For more information on writing a custom plug-in that can post to the Azure Service Bus, see [Write a Custom Azure-aware Plug-in](write-custom-azure-aware-plugin.md).
2424

2525
You can also write a custom workflow activity that can post the execution context to the Azure service and include this activity in your workflows. Sample code for a custom Azure-aware workflow activity is provided in the [Sample: Azure aware custom workflow activity](org-service/samples/azure-aware-custom-workflow-activity.md).
2626

2727
> [!NOTE]
2828
> Any service endpoint registered for a synchronous step will send the execution context data to the Azure service immediately. If an error occurs after the request was sent, the data operation will rollback but the request sent the the Azure service cannot be recalled.
2929
30-
31-
3230
### See also
3331

3432
[Writing a Plug-in](write-plug-in.md)<br/>
35-
[Event execution pipeline](event-framework.md#event-execution-pipeline)<br/>
33+
[Event execution pipeline](event-framework.md#event-execution-pipeline)<br/>
3634
[ServiceEndPoint Entity](reference/entities/serviceendpoint.md)<br/>
3735

38-
3936
[!INCLUDE[footer-include](../../includes/footer-banner.md)]

0 commit comments

Comments
 (0)