cancel
Showing results for 
Search instead for 
Did you mean: 
Reply

Managing Duplicates, create Item and Update Item

Hi Community, 

I need assistance with importing daily data from excel to SharePoint list.

Each morning I run a flow to list Rows Present in a Table and add them to SharePoint list, this much I can do, however where the trouble starts is there are some records with same Name, Date of Birth, i.e. Duplicate people but has multiple records because the procedure column has different procedures, 

e.g.

Name        Date or Birth          Procedure                            Date to Complete          UR

Me             15/06/1987            Take care to car wash           03/03/2024                   1

Me             15/06/1987            Pick up groceries                                                       1

 

I want to add the items if they are new and not in the list, or update them if there is a change, for instance the Date to Complete column is updated.

 

flow is as below:

CHQLDHealth_0-1709005566143.png

Get Items is obvious

List rows: no filter query but listing the excel rows

Filter Query is filtering the 3800 list row items down to 540 for selected column.

For each is: body('Filter_array')

Condition is: This is where I need assistance, currently comparing if: items('For_each')?['UR'] = items('For_each')?['field_0'], UR is the column from the List Rows present in a Table. and field_0 is the SharePoint column for UR,

If True I will add an update items , if false Create Items.

Apply to each is: outputs('Filter_array')?['body']

The compose before create items is to convert serial date in excel:  if(equals(items('Apply_to_each')?['Procedure Date'],''),null, addDays('1899-12-30',int(items('Apply_to_each')?['Procedure Date']),'dd/MM/yyyy')).

 

The flow mostly works but is creating duplicates of any record so I end up cancelling the flow to prevent running an infinite loop.

 

Any assistance would be great.

Thanks

3 ACCEPTED SOLUTIONS

Accepted Solutions
ivan_apps
Memorable Member
Memorable Member

So you are close and your issue is actually with “Get Items”. It’s done too early in the flow and should be replacing the “Condition” after the ForEach.

 

basically you are iterating through the Excel table, and for each row you are reviewing, make a call to the SharePoint list to see if and see if there is a match - that means use the filter criteria in GetItems to query for an existing match:

Name eq [excel value] and Date of Birth eq [excel value] and field_0 eq [excel value]

 

The there should be a “Condition” after this query, but not like you have it. At this point you are only checking if you got a return value or not (should only be 1 at most). So your condition just needs to check the length of the response array - 0 results means you should create a row, 1 result means you should update.

 

Condition:

length(GetItems[‘body/value’]) eq 1 — update else create


Hope this helps!

---------
If I helped you solve your issue, please mark it as a solution or give it a like!

View solution in original post

y I should Add the Create Items Procedure date references 

if(equals(outputs('Compose'),''),'null',outputs('Compose'))
 
Ta

View solution in original post

Yes you’ll want to change the excel connector’s date format to ISO 8601. It should be under ‘show advanced options’

 

ivan_apps_0-1709096225022.png

 

---------
If I helped you solve your issue, please mark it as a solution or give it a like!

View solution in original post

5 REPLIES 5
ivan_apps
Memorable Member
Memorable Member

So you are close and your issue is actually with “Get Items”. It’s done too early in the flow and should be replacing the “Condition” after the ForEach.

 

basically you are iterating through the Excel table, and for each row you are reviewing, make a call to the SharePoint list to see if and see if there is a match - that means use the filter criteria in GetItems to query for an existing match:

Name eq [excel value] and Date of Birth eq [excel value] and field_0 eq [excel value]

 

The there should be a “Condition” after this query, but not like you have it. At this point you are only checking if you got a return value or not (should only be 1 at most). So your condition just needs to check the length of the response array - 0 results means you should create a row, 1 result means you should update.

 

Condition:

length(GetItems[‘body/value’]) eq 1 — update else create


Hope this helps!

---------
If I helped you solve your issue, please mark it as a solution or give it a like!

Thank you Ivan_Apps, 

I will give this a try and let you know how it goes.

On another note though my Sharepoint list has a field Procedure Date (field_11) set to date format, the Excel data from List rows for this column is serial date  ( e.g. 45789) so the Compose step is to convert this as it will not accept  items('For_each')?['Procedure Date'] doesn't matter what I try so I did this:

if(equals(items('For_each')?['Procedure Date'],''),null,addDays('1899-12-30',int(items('For_each')?['Procedure Date']),'dd/MM/yyyy'))
It still errors and tells me the expected format "''" is not in the correct format String and stops the flow.
 
Any ideas would be great thank you.

y I should Add the Create Items Procedure date references 

if(equals(outputs('Compose'),''),'null',outputs('Compose'))
 
Ta

Yes you’ll want to change the excel connector’s date format to ISO 8601. It should be under ‘show advanced options’

 

ivan_apps_0-1709096225022.png

 

---------
If I helped you solve your issue, please mark it as a solution or give it a like!

Thanks again for the help, all is going well not but for one item not working.

Update works, Create works but in the get items I used the following as you suggested:

field_0 eq' items('Apply_to_each')?['UR'] '

where UR is a unique medical record number

I wanted to also use a second filter for example

field_5 ne ' items('Apply_to_each')?['Procedure'] ' 

The reason is the excel data might contain the same patient with the same UR but having a different procedure at a different date, so naturally I am looking for a point of difference to get both records but it is not working. Is this  filter query on the get items correct:

field_0 eq' items('Apply_to_each')?['UR'] ' and field_5 ne ' items('Apply_to_each')?['Procedure'] '

 

What I want to achieve is;

UR                Name           Procedure                   Procedure Date

12345           Mr Name      Operation 1               12/03/2024

12345           Mr Name      Operation 23              24/04/2024

 

Currently the flow works to update an item or create an item but does not create the second or third record if the person is having multiple procedures.

 

Thank again for your assistance:

CHQLDHealth_0-1709100928341.png

 

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!    This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Community MembersNumber SolutionsSuper UsersNumber Solutions Deenuji 9 @NathanAlvares24  17 @Anil_g  7 @ManishSolanki  13 @eetuRobo  5 @David_MA  10 @VishnuReddy1997  5 @SpongYe  9JhonatanOB19932 (tie) @Nived_Nambiar  8 @maltie  2 (tie)   @PA-Noob  2 (tie)   @LukeMcG  2 (tie)   @tgut03  2 (tie)       Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 2: Community MembersSolutionsSuper UsersSolutionsPower Automate  @Deenuji  12@ManishSolanki 19 @Anil_g  10 @NathanAlvares24  17 @VishnuReddy1997  6 @Expiscornovus  10 @Tjan  5 @Nived_Nambiar  10 @eetuRobo  3 @SudeepGhatakNZ 8     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 3:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji32ManishSolanki55VishnuReddy199724NathanAlvares2444Anil_g22SudeepGhatakNZ40eetuRobo18Nived_Nambiar28Tjan8David_MA22   Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 4:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji11FLMike31Sayan11ManishSolanki16VishnuReddy199710creativeopinion14Akshansh-Sharma3SudeepGhatakNZ7claudiovc2CFernandes5 misc2Nived_Nambiar5 Usernametwice232rzaneti5 eetuRobo2   Anil_g2   SharonS2  

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages

Users online (864)