cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
PimJ
Helper I
Helper I

How to get unique numerical ID in Dataverse table?

Hello,

I'm trying to load a large Dataverse table (>2000 records) into a collection, but therefor I need to have a unique numerical column (RecordID) to make the trick possible (see With() Statement managing Delegation – Practical Power Apps). 

 

This unique numerical RecordID should be created during patch of multiple records from myCollection, with this code:

Patch(MyDVtable,ShowColumns(myCollection,"Name"));

Ideally, I would like to copy the unique ID of the created Dataverse records into the column RecordID, probably with an extra Patch-command?

However, I have no idea how to do this, so please help me to get this done.

Thanks a lot!

 

1 ACCEPTED SOLUTION

Accepted Solutions

Ok to answer your questions:

1) There isn't a best way but different approaches depending on what you're comfortable with. If you end goal is to tally up votes and have periodic updates and track it "live" - use Power BI. You'll be able to create great visuals and have a "scoreboard" type effect and not run into delegation. If you want to keep it within the canvas app - my recommendation is to offload the counts onto the server via Power Automate. FetchXml can aggregate or "Group By" for your, or you can create your own OData query. Take a look at XrmToolbox's FetchXML Builder if you want a visual UI to create the query.

-Another trick you can try is a roll-up column. You can create a parent table "elections" and associate all votes to that table. You can create a roll-up column for each candidate and then configure it to only summarize when their name is in a column. Note that there is a roll-up column limit per environment and that they only automatically update once a day - you can manually update it as many times as you want though. - i would only really try this method if you don't like the 2 above.

 

2) I would worry about loading too much data locally, but batch loading is probably what you'd want. In your scenario, if you know all the candidates already - can you filter by candidate name startswith (John) or something similar? Startswith is delegable and should return all votes, and then load it into a generic collection and keep collecting more candidates. This seems more of a pain to manage than simply triggering an instant flow by clicking a button and having it return all the data to you - or return just summary data.

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

View solution in original post

6 REPLIES 6
gulshankhurana
Impactful Individual
Impactful Individual

Hi @PimJ 

 

You could use the autonumber column for this.

 

This video may help:

https://youtu.be/pwF-NXs2tHI?si=NW4PjH35WeWplJLd

 

And here's the link to Microsoft docs if you prefer reading:

https://learn.microsoft.com/en-us/power-apps/maker/data-platform/autonumber-fields

 

I hope this helps.

 

Kind regards

 

Gulshan

 

 

PimJ
Helper I
Helper I

Yes thanks, I am aware of this autonumbering feature!

However, there is one problem as this autonumbering field is not a real numerical value, but a string value - you can see that in the screenshot below (Abc instead of 123):

Cap1.PNG

 

And because of this, these value cannot be handled as real numbers..

So, I'm still looking for an alternative way to auto-fill a column with real numerical values.

Any help is welcome!

 

ivan_apps
Memorable Member
Memorable Member

Can you share what the Delegation warning is that you’re trying to avoid? You may be going about this the wrong way, particularly because the article you shared is focused on SharePoint delegation and makes note that it’s because it’s not a relational database that you have to make certain workarounds. 

Dataverse is a relational database and has a broader range of delegable filters and operators than SharePoint. Perhaps there is a way to do what you need to do in a fully supported Dataverse delegable filter rather than loading a variable using With().

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

Ok, let me explain more in detail what I'm trying to do...
I'm developing a voting-App, with a large table "DV_Votes" in Dataverse, containing all the names that have been voted. And I have a collection "col_Candidates", which contains a column with the candidate-names (used for voting) and an empty column "Votes" that should get the number of votes for each candidate. See picture below:

Cap2.PNG

I tried to get the number of votes per candidate from the DV-table with the CountIf() function, but the problem is that my DV-table contains ~5000 records, which is much more than the delegation limit of 2000. And the CountIf() function is non-delegable, so I think this will not work.

 

As an alternative I tried to copy the whole large DV-table into a new collection, so that I can run the CountIf() function on that collection, without having the delegation problem. But in order to do this copy, I need to deal with the same delegation issue and therefor I thought the numbered column would help in combination with the suggested With() solution.

 

So, basically my 2 questions are these:

1) What would be the best way to count the votes in the large DV-table? Can I do this directly in the table itself, or is it required to copy the table first into a collection?

 

2) If I really need to copy the large DV-table into a collection, what would be the best way to do?

 

I hope this helps to understand my case and looking forward for good suggestions!

Ok to answer your questions:

1) There isn't a best way but different approaches depending on what you're comfortable with. If you end goal is to tally up votes and have periodic updates and track it "live" - use Power BI. You'll be able to create great visuals and have a "scoreboard" type effect and not run into delegation. If you want to keep it within the canvas app - my recommendation is to offload the counts onto the server via Power Automate. FetchXml can aggregate or "Group By" for your, or you can create your own OData query. Take a look at XrmToolbox's FetchXML Builder if you want a visual UI to create the query.

-Another trick you can try is a roll-up column. You can create a parent table "elections" and associate all votes to that table. You can create a roll-up column for each candidate and then configure it to only summarize when their name is in a column. Note that there is a roll-up column limit per environment and that they only automatically update once a day - you can manually update it as many times as you want though. - i would only really try this method if you don't like the 2 above.

 

2) I would worry about loading too much data locally, but batch loading is probably what you'd want. In your scenario, if you know all the candidates already - can you filter by candidate name startswith (John) or something similar? Startswith is delegable and should return all votes, and then load it into a generic collection and keep collecting more candidates. This seems more of a pain to manage than simply triggering an instant flow by clicking a button and having it return all the data to you - or return just summary data.

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

Thanks for helping me, I found a nice solution!

There was no need to count the votes real-time, so I found a solution to copy the whole DV-table to a collection - in a delegable way - and do all the grouping and counting from there. This is good possible because my large DV-table contains just one numerical column, so the amount of data (used memory) is limited.

Regards, Pim

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 in the Forums 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 of SolutionsSuper UsersNumber of Solutions @anandm08  23 @WarrenBelz  31 @DBO_DV  10 @Amik  19 AmínAA 6 @mmbr1606  12 @rzuber  4 @happyume  7 @Giraldoj  3@ANB 6 (tie)   @SpongYe  6 (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. Community MembersSolutionsSuper UsersSolutions @anandm08  10@WarrenBelz 25 @DBO_DV  6@mmbr1606 14 @AmínAA 4 @Amik  12 @royg  3 @ANB  10 @AllanDeCastro  2 @SunilPashikanti  5 @Michaelfp  2 @FLMike  5 @eduardo_izzo  2   Meekou 2   @rzuber  2   @Velegandla  2     @PowerPlatform-P  2   @Micaiah  2     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 Apps anandm0861WarrenBelz86DBO_DV25Amik66Michaelfp13mmbr160647Giraldoj13FLMike31AmínAA13SpongYe27     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 Apps DBO-DV21WarranBelz26Giraldoj7mmbr160618Muzammmil_0695067Amik14samfawzi_acml6FLMike12tzuber6ANB8   SunilPashikanti8

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 (1,504)