{"id":1,"date":"2023-11-20T14:05:45","date_gmt":"2023-11-20T14:05:45","guid":{"rendered":"https:\/\/france.magicsoftware.com\/blog\/?p=1"},"modified":"2025-01-07T12:06:13","modified_gmt":"2025-01-07T11:06:13","slug":"d365-fo-rest-api-with-magic-xpi","status":"publish","type":"post","link":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/d365-fo-rest-api-with-magic-xpi\/","title":{"rendered":"D365FO &#8211; Magic xpi: How to use DMF ExportToPackage Method using REST API"},"content":{"rendered":"\n<p><strong>Goal<\/strong> : Execute an export in D365FO with DMF REST API and save the result in a file locally.<\/p>\n\n\n\n<p>Describe the different steps for connecting Magic xpi with D365 FO using Data Management Framework (DMF) API :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"697\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI_INTRO.png\" alt=\"\" class=\"wp-image-141\" style=\"width:627px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI_INTRO.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI_INTRO-300x204.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI_INTRO-768x523.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-verse\">1\/ Check that you get OAuth2 token from login.microsoftonline using Postman<\/pre>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1353\" height=\"815\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_Token.png\" alt=\"\" class=\"wp-image-101\" style=\"width:592px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_Token.png 1353w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_Token-300x181.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_Token-1024x617.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_Token-768x463.png 768w\" sizes=\"auto, (max-width: 1353px) 100vw, 1353px\" \/><\/figure>\n\n\n\n<p>(*) client_id, clientsecret, resource and tenantid are retrieve from azure portal (https:\/\/portal.azure.com)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1479\" height=\"704\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/PM_2.png\" alt=\"\" class=\"wp-image-31\" style=\"width:632px;height:auto\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><\/li>\n<\/ul>\n\n\n\n<p>(*) Check that client id is defined in D365 FO<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"467\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD-1024x467.png\" alt=\"\" class=\"wp-image-108\" style=\"width:638px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD-1024x467.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD-300x137.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD-768x350.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD-1536x700.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD.png 1624w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"202\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD2-1024x202.png\" alt=\"\" class=\"wp-image-110\" style=\"width:652px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD2-1024x202.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD2-300x59.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD2-768x152.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD2-1536x304.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_AAD2.png 1639w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>2\/ Create a REST Client Magic xpi resource to get the token (Project=&gt;Settings=&gt;Resources)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"525\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI1-1024x525.png\" alt=\"\" class=\"wp-image-112\" style=\"width:656px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI1-1024x525.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI1-300x154.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI1-768x393.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI1.png 1310w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>3\/ Create a New Magic xpi Flow with a Flow Data Step. Update a blob variable with the desired credentials <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"363\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/image-1024x363.png\" alt=\"\" class=\"wp-image-115\" style=\"width:604px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/image-1024x363.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/image-300x106.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/image-768x272.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/image.png 1193w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>4\/ Use REST Client Connector to call Microsoft Online for getting the Bearer token.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"682\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI3-1024x682.png\" alt=\"\" class=\"wp-image-118\" style=\"width:529px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI3-1024x682.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI3-300x200.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI3-768x512.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI3.png 1066w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>and parse the json response to get the token using a Flow Data Component<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"245\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI4-1024x245.png\" alt=\"\" class=\"wp-image-120\" style=\"width:528px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI4-1024x245.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI4-300x72.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI4-768x184.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI4.png 1091w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>5\/ Set the JSON body to send for the export package using Flow Data Component<\/p>\n\n\n\n<p>Json Body should be in this format<\/p>\n\n\n\n<p class=\"has-small-font-size\">{<br>\u00ab\u00a0definitionGroupId\u00a0\u00bb:\u00a0\u00bb&lt;definitionGroupId&gt;\u00a0\u00bb,<br>\u00ab\u00a0packageName\u00a0\u00bb:\u00a0\u00bb&lt;packageName&gt;\u00a0\u00bb,<br>\u00ab\u00a0executionId\u00a0\u00bb:\u00a0\u00bb\u00a0\u00bb,<br>\u00ab\u00a0reExecute\u00a0\u00bb: \u00ab\u00a0True\u00a0\u00bb,<br>\u00ab\u00a0legalEntityId\u00a0\u00bb:\u00a0\u00bb\u00a0\u00bb<br>}<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"403\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI5-1024x403.png\" alt=\"\" class=\"wp-image-122\" style=\"width:506px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI5-1024x403.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI5-300x118.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI5-768x303.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI5.png 1038w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>6\/ Create a REST Client Magic xpi resource to call the export Package (Project=&gt;Settings=&gt;Resources)<\/p>\n\n\n\n<p>Define 4 paths in other to work with DMF export :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\/DataManagementDefinitionGroups\/Microsoft.Dynamics.DataEntities.ExportToPackage<\/li>\n\n\n\n<li>\/DataManagementDefinitionGroups\/Microsoft.Dynamics.DataEntities.GetExecutionSummaryStatus<\/li>\n\n\n\n<li>\/DataManagementDefinitionGroups\/Microsoft.Dynamics.DataEntities.GetExportedPackageUrl<\/li>\n\n\n\n<li>\/DataManagementDefinitionGroups\/Microsoft.Dynamics.DataEntities.GetExecutionErrors<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"571\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI17-1024x571.png\" alt=\"\" class=\"wp-image-167\" style=\"width:793px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI17-1024x571.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI17-300x167.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI17-768x428.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI17.png 1050w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>7\/ Drag and Drop a REST Client Connector linked to the previous resource and configure the connector to call ExportToPackage method<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"681\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI7-1-1024x681.png\" alt=\"\" class=\"wp-image-129\" style=\"width:495px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI7-1-1024x681.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI7-1-300x200.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI7-1-768x511.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI7-1.png 1121w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"674\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI18-1024x674.png\" alt=\"\" class=\"wp-image-170\" style=\"width:709px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI18-1024x674.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI18-300x198.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI18-768x506.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI18.png 1083w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>8\/ Set the body (DataBlob) with the previous JSON (step 5)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"714\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI9-1024x714.png\" alt=\"\" class=\"wp-image-131\" style=\"width:492px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI9-1024x714.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI9-300x209.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI9-768x536.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI9.png 1120w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>9\/ Drag &amp; Drop a DataMapper Component in other to retrieve the execution Id<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"367\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI10-1024x367.png\" alt=\"\" class=\"wp-image-134\" style=\"width:618px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI10-1024x367.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI10-300x108.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI10-768x275.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI10-1536x551.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI10.png 1645w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>10\/ To get the status of the export package, create a json message using a Flow Data Component<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"522\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI11-1024x522.png\" alt=\"\" class=\"wp-image-136\" style=\"width:622px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI11-1024x522.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI11-300x153.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI11-768x391.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI11.png 1234w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>11\/ Drag and Drop a REST Client Connector and configure the connector to call GetExecutionSummaryStatus method<\/p>\n\n\n\n<p>and pass the previous JSON message.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"696\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI19-1024x696.png\" alt=\"\" class=\"wp-image-172\" style=\"width:689px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI19-1024x696.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI19-300x204.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI19-768x522.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI19.png 1042w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"764\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI23-1024x764.png\" alt=\"\" class=\"wp-image-496\" style=\"width:504px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI23-1024x764.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI23-300x224.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI23-768x573.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI23.png 1075w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>12\/ Parse the json response to get the status using a DataMapper component<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"165\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI13-1024x165.png\" alt=\"\" class=\"wp-image-146\" style=\"width:689px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI13-1024x165.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI13-300x48.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI13-768x124.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI13.png 1127w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>13\/ Set a loop while Status is not &lsquo;Succeeded&rsquo;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"532\" height=\"786\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI14-1.png\" alt=\"\" class=\"wp-image-151\" style=\"width:224px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI14-1.png 532w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI14-1-203x300.png 203w\" sizes=\"auto, (max-width: 532px) 100vw, 532px\" \/><\/figure>\n\n\n\n<p>14\/ When Status is Succeeded, get the Url of the package and parse the JSON response to retrieve the url<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1040\" height=\"611\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI20.png\" alt=\"\" class=\"wp-image-174\" style=\"width:651px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI20.png 1040w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI20-300x176.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI20-1024x602.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI20-768x451.png 768w\" sizes=\"auto, (max-width: 1040px) 100vw, 1040px\" \/><\/figure>\n\n\n\n<p>15\/ You can now use the url to download the package using an HTTP component.<\/p>\n\n\n\n<p>URL should be in this format : https:\/\/&lt;server&gt;.blob.core.windows.net\/temporary-file\/&lt;zipfilename&gt;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"994\" height=\"268\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI21.png\" alt=\"\" class=\"wp-image-175\" style=\"width:723px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI21.png 994w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI21-300x81.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI21-768x207.png 768w\" sizes=\"auto, (max-width: 994px) 100vw, 994px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"775\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI16-1024x775.png\" alt=\"\" class=\"wp-image-157\" style=\"width:520px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI16-1024x775.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI16-300x227.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI16-768x581.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI16.png 1084w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>16\/ You can save the downloaded zip file using FileManagement component<\/p>\n\n\n\n<p>17\/ If the Status of the export Package is different than \u00ab\u00a0Succeeded\u00a0\u00bb then you can retrieve the errors using  the method GetExecutionErrors<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"374\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI22-1024x374.png\" alt=\"\" class=\"wp-image-177\" style=\"width:797px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI22-1024x374.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI22-300x110.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI22-768x281.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_XPI22.png 1496w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>(*) Values for DMF Status are : Succeeded, PartiallySucceeded, Canceled, Executing, Failed, NotRun, Unknown<\/p>\n\n\n\n<p>18\/ Documentation reference<\/p>\n\n\n\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/dynamics365\/fin-ops-core\/dev-itpro\/data-entities\/data-management-api\">https:\/\/learn.microsoft.com\/en-us\/dynamics365\/fin-ops-core\/dev-itpro\/data-entities\/data-management-api<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":100,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4,28,30],"tags":[12,24,14],"class_list":["post-1","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-magic-xpi","category-microsoft","category-d365fo","tag-d365","tag-data-management-framework","tag-magic-xpi"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/D365FO_Magicxpi-1.png","_links":{"self":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/1","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/comments?post=1"}],"version-history":[{"count":5,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":2458,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/1\/revisions\/2458"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/media\/100"}],"wp:attachment":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/media?parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/categories?post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/tags?post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}