- Видео 23
- Просмотров 55 082
Tim Dobrinski - Power Apps and Coffee
США
Добавлен 3 янв 2021
Follow and learn with me, a SharePoint Developer since 2006, as I expand my SharePoint Development feature-set into Power Apps and the Power Platform.
Datasets with more than 2000 Items and How to avoid Delegation limits
Using Flow and ParseJSON to import datasets larger than the 2000 item limit AND avoiding delegation limits.
Просмотров: 6 489
Видео
Re-using one app on multiple sites with different data
Просмотров 417Год назад
Instead of having to make multiple copies of an app when different sites want to use it, why not setup an app to dynamically return data from any site and list?
Clicking Headers to Sort a Gallery
Просмотров 2,4 тыс.2 года назад
Today we go over a way to sort a gallery by clicking a column header.
DevOps for PowerBI
Просмотров 2,6 тыс.2 года назад
DevOps Day continues as we explore CI/CD for Power BI Reports
PopUp Menus ... with Flair!
Просмотров 1852 года назад
Using SVG graphics and a bit of overkill, we make a navigation menu that has a bit of an Apple-y flair.
Adding Flair to Item Selection
Просмотров 2182 года назад
Using SVG Images, we learn to add some flair to our galleries when using them to select form items.
DevOps - Adding Flows to Your Solution and Pipeline
Просмотров 1,3 тыс.2 года назад
Adding on to the DevOps Day series, we look into adding Flows to your solution and deploying them to production via your Azure DevOps Pipeline.
User Question - Number of Saturdays Between Two Dates
Просмотров 3982 года назад
Today we cover a user question that came up when watching the calendar video asking about calculating if a date range has a Saturday.
Power Apps Callable Functions - kinda
Просмотров 2162 года назад
Callable Functions in Power Apps... kinda. In this episode, we go over a way to get an experience of callable functions on a platform that doesn't allow them.
DevOps Updating Data Sources
Просмотров 2,1 тыс.2 года назад
Finally! The episode that ties is all together. In this video, we will take Environment Variables and update them in a release pipeline to change data sources between environments.
DevOps Environment Variables
Просмотров 2,8 тыс.3 года назад
Adding Environment Variables to Canvas Apps in preparation for updating a pipeline to change data sources as part of a release.
Rotating Banner Gallery
Просмотров 8733 года назад
Kickin' it ild school with a Banner Rotator made in Power Apps.
Centering Dynamic Galleries
Просмотров 9813 года назад
This video covers how to center a gallery when the items in the gallery can vary.
Multi-day, Spanning Event Calendar
Просмотров 2,4 тыс.3 года назад
The first in the "Reinventing the Wheel" category, we explore how to create an event calendar with events that span multiple days.
Searching Relational Lists
Просмотров 753 года назад
If your Power App uses relational lists in SharePoint and you need to search across those lists, the technique in this video will help you set up your search page.
DevOps for Power Apps Canvas Apps (Prod Release)
Просмотров 4,4 тыс.3 года назад
DevOps for Power Apps Canvas Apps (Prod Release)
DevOps for Power Apps Canvas Apps (Source Control)
Просмотров 10 тыс.3 года назад
DevOps for Power Apps Canvas Apps (Source Control)
DevOps for Power Apps Canvas Apps (The Setup)
Просмотров 7 тыс.3 года назад
DevOps for Power Apps Canvas Apps (The Setup)
This is the PERFECT solution for something I am working on.... THANK YOU!!!
nice video. I am using the sql server connection, can we change the connection reference while deploying from test to prod?
Does this work for a document library?
It should. Since you’d be returning the metadata from the library, it’s just a variation on the API used.
@@TimDobrinskiPowerAppsandCoffee I've tried, but can´t construct the columns needed, for example the 'Full Path', the 'Folder PAth' for subfolders, file name with extension or File Name, Im using your same ParseJson example. but is only working for the title, any suggestions would be appreciated.
Hi, I would like to create azure devops pipeline summary report in Power BI. Can you please explain how
thank you
Really Nice and basically simple!!!!
THANKS !!!!!!!!!!! ^^
Just brilliant! Thanks! The combination of filtering and sorting can become rather complex in the Gallery Items property I found. Also, today, placing of the arrows is a bit cumbersome when using the responsive container controls
Thank you. I viewed and followed part One and then this video. It was very well explained. I changed the vertical sub menu to a horizontal one to allow for more screen space below.
Thank you for this!
You never need more than 2000 items at a time and your "explanation" for delegation is not helpful. What's frustrating is that you are on the right path to solving the problem of not being able to delegate some queries from Power Apps to SharePoint by delegating through Power Automate. The opportunity missed is not demonstrating how the "Send HTTP to SharePoint" action can help with pagination so users don't have to download 2000+ items at a time.
Thanks for this video, it really helped me solve something I was building.
What about if you have a list of records with a start and end date, is there a way to loop through each record and get the start/end date for each and drop them into a collection?
You can. ForAll(colListOfRecords As DatedItem, If(DatedItem.StartDate >= Today(), Collect(colNewCollection,DatedItem) ) )
Thanks, but what I meant it let's say I have a record with a start date of 01/01/23 and an end date of 03/01/2023 (UK format), then is there a way to loop through and get the start, each date in between and the end date and paste them into a collection with the same title/other info, and do that for multiple records each with a start and end date?
@@n2datasolutions443 Yes... You can use the DateDiff and Sequence Functions in the main ForAll. See Below. ForAll( colDatedData As Dateitem, // Original Records with StartDate and EndDate ForAll( // Iterate through days 0->TotalDays Sequence(DateDiff(Dateitem.StartDate,Dateitem.EndDate,TimeUnit.Days),0,1) As InterimDays, Collect( colInterimData, { RecordID: Dateitem.ID, // Individual Dates are Original StartDate + InterimDate, starting at 0 RecordDate: DateAdd(Dateitem.StartDate,InterimDays.Value,TimeUnit.Days) } ) ) )
Thank you, I found this really useful as I had never sorted a gallery by column before, its worked perfectly for me for most fields but I am having issues with Value fields. I tried this but still no luck I have instead in my Switch put an IfError in to still make it work for most but it would be nice if I could get the others. Here is my code Switch( varSortColumn, "ID",ID, "Created",Created, "Effective Date",'Effective Date', "DB or DC",IfError(Value('DB or DC'.Value),0), "Type of Request",IfError(Value('Type of Request'.Value),0), "Subject",IfError(Value(Subject),0), "Created By",IfError(Value('Created By'.DisplayName),0)),
Great stuff! Thanks for sharing, I haven't used As function before, and it helped a lot for my nested For All!
Great vid :) Is there a way to call a button/function from another screen, without navigating? Thanks
Right now, no. They took away the ability to call controls on other screens. 😞
@@TimDobrinskiPowerAppsandCoffee Ah, would've helped me a lot right now 🥲
I can now see that the pac solution create-settings also get the Workflows id's and names, so has this changed so we can now turn on flows using pipelines?
Thanks Tim :)
The continious DevOps chain, that's exactly what I want!!! Recommendations? !!! Please advise!
What exactly would you like recommendations on? Details of setting it up or a specific issue?
@@TimDobrinskiPowerAppsandCoffee I want to continuously edit my canvas app straight from source code VS Code then commit, not downloading, then importing all the time, is that possible? With or without DevOps?
That’s a fascinating idea. Thank would it would be possible if you were comfortable with editing the files in the repository. Let me tinker with this. I honestly never thought about it before.
Hi Tim, I just want to thank you for these videos!!! Awesome job covering everything, including a handful of "gotchas". Your videos allowed us to move forward with our projects. We had asked Microsoft for a help originally, and they simply failed to get us up the speed. We asked for a demo, we got a slideshow. We asked for resources, we got one link to a video (not a bad video, just not as thorough as yours) and a link to DevOps page. LOL! Anyway, thank you for taking the time to help others!
Great video and very well explained. This will help in many scenarios. But (there's always a but... 🙂), can you actually get above 5k items? When I try it with 5001 items, I get the "The attempted operation is prohibited because it exceeds the list view threshold." message. Guess the default "Get items" limitations are still a deal-breaker, but 5k is still alot better compared to 2k if needed.
Interesting question. I used 5000 as a random number - never thinking about pulling items beyond the list view threshold. What i’d think of trying is to two-step it with two pulls from SharePoint get items using a skip-5000 in the second. Id have to try that.
@@TimDobrinskiPowerAppsandCoffee Thanks for the quick reply! I thought about the "get first 5k, cache last Id, start again at last Id" method, like back in the days when we all first tried to get above the 2k limit. But it's not a fun method...
I’m seeing it more. For example, moving D365 records to Dataverse, I have to do it in loops of 5000-7500 to avoid timeout.
Looking forward to trying this. Thank you.
Thank you Tim. You nailed it. Greetings from Spain
You made me curious. Turns out, it was pretty simple. Thank you!!
Wonderful content .Thx! Could we return to power apps more than 5000 items and so avoiding delegation that way?
To be honest, I’ve wondered if it’s possible. Flow can collect it. The only fear would be timing out on really large sets.
Great video. Very helpful, and smart.
Nice video! I hope to see more like this more often the future
Hey, can you share the link to the video where you created the service connection?
Hi Tim,Thanks for the video series Wht abt updating the canvas app and again running the build and release pipeline, can you please help with that. Also, if possible how to revert canvas app to previous version , is it from the Powerapps studio or from the Azure repo.
Reverting would be done by setting up a pipeline to use a previous version.
very worthy PowerApps loop method ... great job 🦅💙
Tim - thank you for posting the video, it's very helpful. I would like post an event's title and date range from a SharePoint online events list using a gallery in power apps. Do you have or know of a how-to video specific to show events in a canvas app gallery?
The events list won’t be different from the generic list, just change the columns used in the example to point to the columns in the events list. The calendar here just needs the start and end dates to work.
Hi, Great Video and tutorial. I tried to follow your steps in pipeline under the command line. the run of the pipeline is successful but the files are not seen in the Repository. I tried it many times but its not showing. Do you have any recommendations? Thank you
Are you preforming a commit to the repo?
I am having the same problem @Tim Dobrinski. I am also getting an additional error in the Command Line Script step. I have done everything exactly the way you did it but it fails every time. Please advise.
First, is the “Allow scripts to access the OAuth token” setting checked on the Agent Job? Second, did you establish the initial folder in the repo?
Hi, Could I ask you a question? How can i filter a sharepoint list from the values that I have in Table (like a collection). I´ve got Records in a list and I´ve got in a table the ID of the ones that i need to filter. thanks anyway for the videos
You may be able to use the IN command in the filter. You may hit a delegation warning but it may work. Trying to filter with an IN against the DISTINCT values from the table. It’s very similar to SQL.
Hey Tim! Great video. Quick question, that last time I tried this it would not work using Delegation. As in, my gallery source had more than 2k items, and applying the Sort function to this dynamically just didnt work. Any idea if that is still the case? I tried 3-4 months ago. Thanks!
The 2k limit is a problem, i agree. Only thoughts I have are to either prefilter if possible or… and this is new for me but I’ve had good luck, try Dataverse. The speed I’ve seen with DV might be enough to let you work on the list directly.
You can get around the 2k limit by building a collection, which can hold more than 2000. I've built a collection with over 30,000 items in it by loading multiple collection in the App Onstart in 2000 increments. So if you had a data source with 20,000 items, you have 10 collections, each with 2000 item in it. Then the you just make a collection that merges all these into one. The biggest hurdle is finding a value you can use to break the data into groups of 2000 records/list items each. DON'T use the ID. If you don't have another column then you can use then create another column called IDCopy (NOT CALCULATED) and then use a Power Automate to populate it with the value in the ID every time a record is added. If you have another field that you can group things into less than 2000, without getting duplicate, you can avoid the IDCopy, but in my case I didn't have a field to do this with. This is the code I used to do this. I hope it is helpful even though this is many months after this video and this question was posted. Concurrent( ClearCollect(colChargeMaster1, Filter('Invision.vChargeMaster',IDCopy <2000)), ClearCollect(colChargeMaster2, Filter('Invision.vChargeMaster',IDCopy >= 2000 And IDCopy < 4000 )); ClearCollect(colChargeMaster3, Filter('Invision.vChargeMaster',IDCopy >=4000 And IDCopy <6000 )), ClearCollect(colChargeMaster4, Filter('Invision.vChargeMaster',IDCopy >=6000 And IDCopy <8000 )), ClearCollect(colChargeMaster5, Filter('Invision.vChargeMaster',IDCopy >=8000 And IDCopy <10000 )), ClearCollect(colChargeMaster6, Filter('Invision.vChargeMaster',IDCopy >=10000 And IDCopy <12000 )), ClearCollect(colChargeMaster7, Filter('Invision.vChargeMaster',IDCopy >=12000 And IDCopy <14000 )), ClearCollect(colChargeMaster8, Filter('Invision.vChargeMaster',IDCopy >=14000 And IDCopy <16000 )), ClearCollect(colChargeMaster9, Filter('Invision.vChargeMaster',IDCopy >=16000 And IDCopy <18000 )), ClearCollect(colChargeMaster10, Filter('Invision.vChargeMaster',IDCopy >=18000 And IDCopy <20000 )), ClearCollect(colChargeMaster11, Filter('Invision.vChargeMaster',IDCopy >=20000 And IDCopy <22000 )), ClearCollect(colChargeMaster12, Filter('Invision.vChargeMaster',IDCopy >=22000 And IDCopy <24000 )), ClearCollect(colChargeMaster13, Filter('Invision.vChargeMaster',IDCopy >=24000 And IDCopy <26000 )), ClearCollect(colChargeMaster14, Filter('Invision.vChargeMaster',IDCopy >=26000 And IDCopy <28000 )), ClearCollect(colChargeMaster15, Filter('Invision.vChargeMaster',IDCopy >=28000 And IDCopy <30000 )), ClearCollect(colChargeMaster16, Filter('Invision.vChargeMaster',IDCopy >=30000 And IDCopy <32000 )), ClearCollect(colChargeMaster17, Filter('Invision.vChargeMaster',IDCopy >=32000 And IDCopy <34000 )), ClearCollect(colChargeMaster18, Filter('Invision.vChargeMaster',IDCopy >=34000 And IDCopy <36000 )), ClearCollect(colChargeMaster19, Filter('Invision.vChargeMaster',IDCopy >=36000 And IDCopy <38000 )), ClearCollect(colChargeMaster20, Filter('Invision.vChargeMaster',IDCopy >=38000 And IDCopy <40000 )) ); ClearCollect(colChargeMasterALL,colChargeMaster1,colChargeMaster2,colChargeMaster3,colChargeMaster4,colChargeMaster5,colChargeMaster6,colChargeMaster7,colChargeMaster8,colChargeMaster9,colChargeMaster10,colChargeMaster11,colChargeMaster12,colChargeMaster13,colChargeMaster14,colChargeMaster15,colChargeMaster16,colChargeMaster17,colChargeMaster18,colChargeMaster19,colChargeMaster20);
The powershell command you use, is there anyway that you klnow of to deploy that with devops? For example, I want to push a solution to an environment without having another user run that command or me having to do it once it gets there. Our organization has man many environments and trying to get all this "automated"
The Powershell action can call a file. You could have a set of Powershell scripts in the the repo and have them callable based on a variable?
@@TimDobrinskiPowerAppsandCoffee hey thanks so much. I think I found another source that said that the tools can’t support it right now and that the service accounts won’t be able to bypass the authentication needs. So right now at least I think we still have to run the script everytime we push updates. Thanks for the reply though! Real hard to find information this topic and you nailed it!
Is there a different process when you have more items with a wrap count? I have a gallery with about 45 items and I'm trying to center the last row.
Probably not as the items themselves will be setup on a grid and not freely centered. I will tinker some and see.
Great thread Tim. Do you know how to do something similar for Dataverse tables? best.
Dataverse tables aren’t yet setup for CICD. They promise it but it’s not yet implemented.
@@TimDobrinskiPowerAppsandCoffee Thanks for answer Tim.. Do you use export and import tools to control it or any other solution?
As of right now, no. I’m starting to transition to dataverse and am hoping for (if not tools) something in PowerShell.
Thanks. Whenever I put the Set(varcolor, {... on my command its giving me an error saying its missing a second value from(set(variable, value)) so its wanting to have a value. Is it possible to fix it?
Can you give the full Set statement? I’m wondering if you aren’t closing the record.
@@TimDobrinskiPowerAppsandCoffee I fixed the issue thank you very much for the response. I had my client on a different language so the operations where kinda different.
This video got me out of a bind I've been in for 24 hours, thanks! I don't know how I hadn't seen aliasing in ForAll loops anywhere else.
I have added all the commands and scripts below. Thank you for all the help.
#in vscode: pac solution create-settings --solution-zip Variables_1_0_0_6.zip ____________________________________ #in powershell: Install-Module -Name Microsoft. PowerApps.Administration.PowerShell -Force Install-MOdule -Name AzureAD -Force $password = "ThislsWhereYourPasswordGoes" $cred = New-Object System.Management.Automation.PSCredential ($user, (ConvertTo-SecureString $password -ASPIainText -Force)) $envGuid = "" $appName = "EP13-EnvironmentVariables" $apps = Get-AdminPowerApp -EnvironmentName $envGuid I Where-Object { $=DisplayName -eq $appName } $apps | Select-Object AppName, DisplayName, EnvironmentName, LastM0difiedTime | Sort-Object LastModifiedTime Connect-AzureAD -Credential $cred $newOwnerEmail = "TheNewOwnerEmailAddresq" $userID = Get-AzureADUser -Objectld $newOwnerEmail Set-AdminPowerAppOwner -AppName $apps[0].AppName -AppOwner $userID.Objectld -EnvironmentName $envGuid
Found this solution by chance. Thank you for sharing!!!
Very nice video, thank for your help, my client is very particular, jajajajaj
Great session! Is there any possibility to separate solutions for different code stages?
If you wanted changes in code for each stage, maybe. What I would think would work would be (given a DEV-TEST-PROD series): have a pipeline to take from dev to test. Leave both solutions as Unmanaged. Then have another pipeline take it from test to prod. This way, the unmanaged app in test will be editable. In prod, should you choose, you can import as manager to freeze the code.
Hi, thanks for the series of videos for ADO. I followed them and got the build to work. However, my release is failing on the Power Platform Import Solution task. Its a huge logged error but this is the key piece: 2022-05-25T15:17:19.8702406Z ##[error]Exception type: System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault] Microsoft.Crm.CrmException: An unexpected error occurred. ---> System.FormatException: Input string was not in a correct format. Seeing if you have any troubleshooting ideas on what it could be? Thanks!
Are you using variables? Are they added correctly to any string?
@@TimDobrinskiPowerAppsandCoffee I'm using one variable, SolutionName, with all text in value, scoped to the "Push to Stage" piece of the release pipeline. I'm using it on my Pack Solution task on line Solution Output File: $(Build.StagingDirectory)/$(SolutionName).zip and again on the Import Solution on line Solution Input File: $(Build.StagingDirectory)/$(SolutionName).zip
@@TimDobrinskiPowerAppsandCoffee I updated and removed the use of the variable. Instead, i wrote out the raw name of the zip file. I also made another change yesterday(refreshed the AAD app registration in the environment. maybe other changes I can't recall right now). Now getting another error: "Message: Solution manifest import: FAILURE: The following solution cannot be imported: Cr43e0d. Some dependencies are missing. The missing dependencies are :" . The error is longer and lists the dependencies like bots and connections. Now when i navigate into the environment, it shows the solution, but its empty.
Missing dependencies are usually fixed in the solution itself. For every item in your solution, click the properties and select add required components (or something close to that). It will add items to your solution that existing components need. Try that and re-run the pipeline.
Thx for this great contribution! Is there a way to expand the concept so as to achieve a month view? (For example, a 9 day event would appear as a seven day bar that extends itself along as another two day bar appearing on the next row below.)
Hi Tim, Thank you for the video series!! By the way, did you know whether Microsoft now supports Environment Variables update for other connectors (other than SharePoint)?
Thank you for the question. As of right now, SharePoint Online is the only CICD-ready environment variables data source. Dataverse is “coming soon” but it is not known when (at least not to me).
Thank you :)
Great video, thank you for sharing. I ran into an issue where the "Publish Artifact: drop" step ran successfully but I do not see any files being created in Artifact. Do you possible know what could be the reasons?
Great video. What a time saver you just gave me. Thank you - Kevin
@Tim Dobrinski, Followed Exactly the same from Start-to-End, But throws me the Error " Failed to Connect to Dataverse" at Power platform import solution. Any solution for this Error would be highly Appreciated.
??
@Tim After following your tutorial, my release to uat was successful. I see the solution there, but it's empty (the app is missing). Any idea what might be going on?
Is the folder in your Azure DevOps repository populated with the solution files?