Skip to main content

Notifications

Announcements

No record found.

Dynamics 365 Community / Blogs / Learn with Subs / Parsing CSV and excel file ...

Parsing CSV and excel file from Azure Blob storages, using Logic Ap for D365FO

Subhad365 Profile Picture Subhad365 7 User Group Leader
 




This small write-up can help you to read from a CSV or Excel and populate records in D365FnO, using Logic Apps. The main challenge here is, reading from Azure Blobs is easy, but the content thus obtained is a jumbled up JSON content and certainly not a CSV content. This document gives you an idea as to how to transform for the same, so that you can invoke a FinOps entity and do the rest of the CRUD operations.
We are reading here a simple CSV file that contains of two columns, and we need to insert into SalesPool table:

a. Reading from Blob:
Supposing we have a scheduler that reads from an Azure blob, by looping through all the newly added blobs in a container (here the container name, for example, is 'container1'):
And then getting the content of the file using the following loop:


We need to get the name of the file (the newly added file name in the blob container). This we can find out, first by inspecting the output from the previous step:

{
  "Id""JTJmY29udGFpbmVyMSUyZnNhbGVzcG9vbDIuY3N2",
  "Name""salespool2.csv",
  "DisplayName""salespool2.csv",
  "Path""/container1/salespool2.csv",
  "LastModified""2022-09-08T12:24:56Z",
  "Size"38,
  "MediaType""text/csv",
  "IsFolder"false,
  "ETag""\"0x8DA919523CA6591\"",
  "FileLocator""JTJmY29udGFpbmVyMSUyZnNhbGVzcG9vbDIuY3N2",
  "LastModifiedBy"null
}

Here, we need to get the value of the 'Name' key from the json.  The following action, does that exactly:


 And we are getting the file name, using the following expression in the next step:

b. Transforming the file content as CSV:
Next part is actually tricky. The file content thus obtained is actually not CSV, but a cryptic JSON as is shown below:

{
  "$content-type""application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
  "$content""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"
}

We can handle this by declaring an array variable before the loop:

And then setting the content of the array to remove the newlines and escape characters using the following expression:

The expression used here is:

split(decodeUriComponent(replace(replace(uriComponent(body('Get_blob_content_using_path_(V2)')), '%0D', ''), '%0A', '#NEWLINE#')), '#NEWLINE#')

The output of this step gives you a neat CSV content as:

Next step is to use a JSON 'select' type of connector, where we can map the excel/CSV columns as a part of a key-value pair arrangement:

Here, we can set value of the 'From' field as:
skip(variables('CSVArray'),1)
It's saying to skip the first row of the inputted excel/CSV file. Optionally you can omit saying to skip the row, if it does not have a header row actually.
Regarding the columns, you can use the following expressions:
split(Item(),',')?[1]
where: 0, 1, etc. are the column indexes.

c. Invoking FinOps entities:
The next part is pretty straight. You can now create a loop for each of the row you've got from the above step to call your FinOps entity:

The columns are available directly as obtained variables from the above step.

Subsequent/alternate steps:
You can alternately update or create your FinOps entity, based on your need and also can add additional steps to move the file, once all the records of the file is successfully read. You can put the entire execution in a conditional try-catch arrangement, whereby handling each type of failure, etc.

Comments

*This post is locked for comments