cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Anonymous
Not applicable

How to update items between 2 lists

Hi Guys, 

 

I need some help in creating a flow

The trigger will be when ever an item is created or modified in SharePoint.

Which then either create or update an item in List B from List A depending on the following condition.

 

If Policy Number in List A equals Policy Number in List B 

Then Update fields for this item

Else Create item 

 

I have created the following flow and it seems be able to do both scenarios, however it looks like keeps looping through the each record that is in List B trying find a match and always pops up as flow failed.

 

 

2 ACCEPTED SOLUTIONS

Accepted Solutions
v-alzhan-msft
Community Support
Community Support

Hi @Anonymous ,

 

Could you please share a screenshot of the configuration of your flow?

 

Do you want to:

1.Create an item in the List B when an item is created or modified in the List A, and no item in the List B has the same Policy Number with the trigger item.

2.Update the item that has the same Policy Number with the trigger item in the List B when an item is created or modified in the List A .

 

If yes, you could refer to screenshot below to create the flow:

1.png2.png

The length expression in the Condition:

length(body('Filter_array'))

The item expression in the Id field of the Update item action:

item()?['ID']

 

Best regards,

Alice       

 

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

View solution in original post

Hi @Anonymous ,

 

Take a try with expression below:

 

Title eq '@{triggerBody()?['Title']}'

 

 

Or expression below if the Policy Number column is not updated from the Title column in the List A:

 

Title eq '@{triggerBody()?['PolicyNumber']}'

 

 

Best regards,

Alice       

 

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

View solution in original post

17 REPLIES 17

Hi @Anonymous 

 

Can you share a screenshot of the flow that you have built so far? 

 

One way you can do this is, add an action to get items and use odata filter query to check for the column in the list b based on the list a. Then you can check the length of the items returned in the previous action and if it is 0 then create a new item or else update item and that should address the scenario you are building. 

 

Hope this Helps!

If this reply has answered your question or solved your issue, please mark this question as answered. Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up. THANKS!

v-alzhan-msft
Community Support
Community Support

Hi @Anonymous ,

 

Could you please share a screenshot of the configuration of your flow?

 

Do you want to:

1.Create an item in the List B when an item is created or modified in the List A, and no item in the List B has the same Policy Number with the trigger item.

2.Update the item that has the same Policy Number with the trigger item in the List B when an item is created or modified in the List A .

 

If yes, you could refer to screenshot below to create the flow:

1.png2.png

The length expression in the Condition:

length(body('Filter_array'))

The item expression in the Id field of the Update item action:

item()?['ID']

 

Best regards,

Alice       

 

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

Anonymous
Not applicable

Hi Alice,
That is exactly the flow I am trying to build.


I managed to get the flow to work for both Create Item and Update Item.


However looks like I am still getting an error as it is trying to through the each item in List B to find a match.

 

See below.

 

FlowError.png

 

Thanks

Mick118

Hi @Anonymous ,

 

It is because if you have choose the dynamic content from the "Get items" action, however you need to apply to each items from the Filter items action.

 

Please remove the dynamic content from the "Get items" action in the "Update item" action, remove the Apply to each from the Value dynamic content from the "Get items" action.

And then you could enter the item() expression into each column in the "Update item" action.

The expression for the id column:

item()?['ID']

The expression for the Title column:

item()?['Title']

 

Or you could filter the items in the "Get items" action, then you don't need to use the "Filter Array" action, the screenshot of the flow should as below:

2.png

Expression in the Filter Array action:

PolicyNumber eq '@{triggerBody()?['PolicyNumber']}'

 

Expression in the first field of the Condition:

length(body('Get_items')?['value'])

 

Best regards,

Alice       

 

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

Anonymous
Not applicable

Hi Alice,

 

I seem to be getting an error when trying to add the ODATA filter query. See screenshot below.

 

FlowError2.png

 

Body:

{
"status": 400,
"message": "The expression \"Policy Number eq ''\" is not valid. Creating query failed.\r\nclientRequestId: 91f054af-8b30-4be5-893f-3634cb432dc8\r\nserviceRequestId: 91f054af-8b30-4be5-893f-3634cb432dc8"
}
 
This is a screenshot of my ODATA Config, note I have amended it slightly as I have a space between 'Policy' and 'Number'
FlowConfig.png
 

Thanks 

Michael

 

Hi @Anonymous ,

 

Two error in your flow:

1. Please remove the space you add in the PolicyNumber,  copy my expression below:

PolicyNumber eq '@{triggerBody()?['PolicyNumber']}'

2.Please make sure that you have add a value to the Policy Number column when an item is created or modified and that trigger the flow.

 

 

Best regards,

Alice       

 

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

Anonymous
Not applicable

Hi Alice,

 

Its currenlty erroring in the same 'Get Items' action module, but with the following error below.

 

Body output:

{
"status": 400,
"message": "Column 'PolicyNumber' does not exist. It may have been deleted by another user.\r\nclientRequestId: f4d6a1a5-dec3-4cf2-b97e-f00dd346ba11\r\nserviceRequestId: f4d6a1a5-dec3-4cf2-b97e-f00dd346ba11"
}
 
Thanks
Michael
 

Hi @Anonymous ,

 

Please delete the Policy Number column in your sharepoint List A and List B,

And then create a new Policy Number in the List A and the List B with Number type.

 

Best regards,

Alice       

 

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

Anonymous
Not applicable

Hi Alice,

 

Sorry but I need the Policy Number Column in List A and B to be Single Line of Text as data in this column is alphanumeric.


Would there be any alternate solution to this?

 

Thanks 

Michael

Hi @Anonymous ,

 

You could also create the Policy Number column with Single line of text type.

Please take a try, to delete the column and recreate in the List A and List B, then create the flow as my screenshot.

 

Best regards,

Alice       

 

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

Anonymous
Not applicable

Hi Alice,
I do not have the option to delete the Policy Number column as this was originally the Title column.

Thanks

Michael

Hi @Anonymous ,

 

Are they all modified from the Title column in the List A and List B?

 

Best regards,

Alice       

 

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

Hi @Anonymous ,

 

Take a try with expression below:

 

Title eq '@{triggerBody()?['Title']}'

 

 

Or expression below if the Policy Number column is not updated from the Title column in the List A:

 

Title eq '@{triggerBody()?['PolicyNumber']}'

 

 

Best regards,

Alice       

 

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

Anonymous
Not applicable

Hi Alice,

 

You are AMAZING, that worked and I am not getting any errors in my flow.

Thank you so much for your help 🙂

 

Kind Regards 

Michael

Anonymous
Not applicable

Hi Alice, 

 

I have just retested again and it seems like the Condition if yes to Create Item is not working.

 

Scenario: New Item is create in List A - then a new record is created in List B.

 

Flow shows that it is successful but when I check List B the record is not there.

 

Also when U check the flow the Create Item is greyed out, see below.

 

FlowErrorCreateItem.PNG

Thanks

Michael

Hi @Anonymous ,

 

You shouldn't add the Apply to each 2 inside the If yes branch of the Condition:

1.png

 

Best Regards,

Alice

 

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

Anonymous
Not applicable

That fixed it, 

 

Thanks Alice

Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Community Calls Conversations

Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Users online (4,345)