D365FO – Magic xpi: How to use DMF ExportToPackage Method using REST API

Goal : Execute an export in D365FO with DMF REST API and save the result in a file locally.

Describe the different steps for connecting Magic xpi with D365 FO using Data Management Framework (DMF) API :

1/ Check that you get OAuth2 token from login.microsoftonline using Postman

(*) client_id, clientsecret, resource and tenantid are retrieve from azure portal (https://portal.azure.com)

(*) Check that client id is defined in D365 FO

2/ Create a REST Client Magic xpi resource to get the token (Project=>Settings=>Resources)

3/ Create a New Magic xpi Flow with a Flow Data Step. Update a blob variable with the desired credentials

4/ Use the REST Client Connector to call Microsoft Online for getting the bearer token.

and parse the json response to get the token using a Flow Data Component

5/ Set the JSON body to send for the export package using Flow Data Component

Json Body should be in this format

{
“definitionGroupId”:”<definitionGroupId>”,
“packageName”:”<packageName>”,
“executionId”:””,
“reExecute”: “True”,
“legalEntityId”:””
}

6/ Create a REST Client Magic xpi resource to call the export Package (Project=>Settings=>Resources)

Define 4 methods in other to work with DMF export :

  • /DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.ExportToPackage
  • /DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetExecutionSummaryStatus
  • /DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetExportedPackageUrl
  • /DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetExecutionErrors

7/ Drag and Drop a REST Client Connector linked to the previous resource and configure the connector to call ExportToPackage method

8/ Set the body (DataBlob) with the previous JSON (step 5)

9/ Drag & Drop a DataMapper Component in other to retrieve the execution Id

10/ To get the status of the export package, create a json message using a Flow Data Component

11/ Drag and Drop a REST Client Connector and configure the connector to call GetExecutionSummaryStatus method

and pass the previous JSON message.

12/ Parse the json response to get the status using a DataMapper component

13/ Set a loop while Status is not ‘Succeeded’

14/ When Status is Succeeded, get the Url of the package and parse the JSON response to retrieve the url

15/ You can now use the url to download the package using an HTTP component.

URL should be in this format : https://<server>.blob.core.windows.net/temporary-file/<zipfilename>

16/ You can save the downloaded zip file using FileManagement component

17/ If the Status of the export Package is different than “Succeeded” then you can retrieve the errors using the method GetExecutionErrors

(*) Values for DMF Status are : Succeeded, PartiallySucceeded, Canceled, Executing, Failed, NotRun, Unknown

18/ Documentation reference

https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/data-management-api

1 réflexion sur “D365FO – Magic xpi: How to use DMF ExportToPackage Method using REST API”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut