cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
amitlathia
Frequent Visitor

Flow: get multiple values from sharepoint column for CSV table

I have created a flow using the following options:

Get Items (Sharepoint List)

Fiter Array

Select

Create CSV Table

Send Email.

 

For the select option - I have selected various fields from my sharepoint list including one which is a multiple selection field.

 

The flow works and exports to CSV - however the output for the multi-selct field is a long string which includes the value retrieved i.e

 

[{"@odata.type":"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference","Id":0,"Value":"Main Hall"},{"@odata.type":"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference","Id":1,"Value":"Dining Room"},{"@odata.type":"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference","Id":3,"Value":"Kitchen"}]

 

What I would like is to receive the values seperated by a comma or semi colon to make this more user friendly. for example in the output above it should ideally read: Main Hall; Dining Room; Kitchen

 

Any suggestions as to how I can do this by either manipulating the output string as an additional step in the flow or changing the way I collect the data for this column.

 

Thanks in advance

 

Amit

4 ACCEPTED SOLUTIONS

Accepted Solutions

okay, i had to rethink this csv export. so i do the csv export in two steps:

  1. export and convert the multi-selected-values into a separate single-line of text field of the list-item
  2. use the csv-export-action with the single-line of text field

it's a little bit messi and the flow is now slow, but it works.

View solution in original post

like:

step 1 for each choice-field:

load all items

loop through all this items

     load per each item the multiselectvalue (choice-field) collection into an array variable

     loop though the array-values

         append each multiselectvalue to a string variable concatenated with your "separator"

     update listitem with the string value (which contains all separated values)

 

step 2:

load all items

create csv

 

 

View solution in original post

You can use the following expression for your multi-select column:

xpath(xml(json(concat('{"root":{"choices":', item()?['Officers'] , '}}'))), '/root/choices/Value/text()')

 

**My SP column (multi-select) field is called "Officers". Change yours accordingly.

 

Overview.png

 

Result:

overview-result.png

@Rathiya@amitlathia@Babalaul@kayaking@Roger365 

View solution in original post

@NirajA

My colleague @svarukala is the real hero here. He helped me with this original issue and has provided us the following explanation:

Start here: item()?['Officers']

The should be in json format but incomplete, without a parent and root element to enclose the items.

 

concat('{"root":{"choices":', item()?['Officers'] , '}}')

This concats the missing parent/root to it.

 

xml(json(concat('{"root":{"choices":', item()?['Officers'] , '}}')))

Then use json() to convert this string to JSON object. Then convert JSON obj to XML object.

 

xpath(xml(json(concat('{"root":{"choices":', item()?['Officers'] , '}}'))), '/root/choices/Value/text()')

Now that the XML structure is good, we use xpath to select all the values within the choice options.

View solution in original post

21 REPLIES 21
v-yamao-msft
Community Support
Community Support

Hi @amitlathia,

 

Could you show me a screenshot of your flow configuration?

 

According to your description, I created a simple flow likes below. In the Select action, configure the Choice column (multiple selection enabled field) with the following expression:

last(item()?['Choice1'])?['Value']

In the email body, the choice value would be ideally read.

1.PNG

 

Please take this for a reference and try it on your side.

 

 

 

Best regards,

Mabel Mao

Community Support Team _ Mabel Mao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hi Mabel ( @v-yamao-msft),

 

Please see attached my flow now including your suggested string. This works to the extent that only the value shows in the resulting CSV file, however what I would like is all the values showing not just the very last one. For example if 2 rooms are booked, it would show "Main Hall; Kitchen". At the moment only "Kitchen" would appear.

 

Is there any way of expanding the expression so as to collect the multiple values?

 

Thank you for your help with this.

flowimage.PNG

 

 

Amit

amitlathia
Frequent Visitor

Hi Mabel @v-yamao-msft

I was wondering if you have had a chance to look at my reply and can suggest a solution?
amitlathia
Frequent Visitor

Thanks in advance!

Hi @v-yamao-msft Just wondering if you have had any further ideas as to how I can retrieve all the values out of a multi-select sharepoint column. I would imagine I am not the only one with a use case for this so any help would be great to me and others.

 

Thanks once again

 

Amit

I am also having this issue and cannot figure it out for the life of me!

do you found a solution for that?

Anonymous
Not applicable

Any solution ? Smiley Sad

okay, i had to rethink this csv export. so i do the csv export in two steps:

  1. export and convert the multi-selected-values into a separate single-line of text field of the list-item
  2. use the csv-export-action with the single-line of text field

it's a little bit messi and the flow is now slow, but it works.

View solution in original post

Anonymous
Not applicable

Can you provide a screenshot please ? I didn't get how you export the multi values field into single value

 

Thank you Smiley Happy

like:

step 1 for each choice-field:

load all items

loop through all this items

     load per each item the multiselectvalue (choice-field) collection into an array variable

     loop though the array-values

         append each multiselectvalue to a string variable concatenated with your "separator"

     update listitem with the string value (which contains all separated values)

 

step 2:

load all items

create csv

 

 

View solution in original post

Any solution on this ? 

Can you please share the screenshot of your approach

You can use the following expression for your multi-select column:

xpath(xml(json(concat('{"root":{"choices":', item()?['Officers'] , '}}'))), '/root/choices/Value/text()')

 

**My SP column (multi-select) field is called "Officers". Change yours accordingly.

 

Overview.png

 

Result:

overview-result.png

@Rathiya@amitlathia@Babalaul@kayaking@Roger365 

View solution in original post

@lindquiswi 

 

Thank you 🙂 Your solution worked for my problem where i wanted to fetch only values of multiple choice.

 

Can you help to explain the expression.

 

@NirajA

My colleague @svarukala is the real hero here. He helped me with this original issue and has provided us the following explanation:

Start here: item()?['Officers']

The should be in json format but incomplete, without a parent and root element to enclose the items.

 

concat('{"root":{"choices":', item()?['Officers'] , '}}')

This concats the missing parent/root to it.

 

xml(json(concat('{"root":{"choices":', item()?['Officers'] , '}}')))

Then use json() to convert this string to JSON object. Then convert JSON obj to XML object.

 

xpath(xml(json(concat('{"root":{"choices":', item()?['Officers'] , '}}'))), '/root/choices/Value/text()')

Now that the XML structure is good, we use xpath to select all the values within the choice options.

View solution in original post

@lindquiswi

@svarukala

 

I'm trying to use the same expression in "Select" operation, but getting the below error. Any idea what might be wrong?

 

'The template language function 'json' parameter is not valid. The provided value '{"root":{"choices":}}' cannot be parsed: 'Unexpected character encountered while parsing value: }. Path 'root.choices', line 1, position 19.'. Please see https://aka.ms/logicexpressions#json for usage details.'. 

 

Thanks

Amir

Hi,

 

But what if I want to retrieve the item based on the first selected option ?

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Welcome Super Users.jpg

Super User Season 2

Congratulations, the new Super User Season 2 for 2021 has started!

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Top Solution Authors
Users online (1,892)