web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Suggestions on app des...
Power Apps
Unanswered

Suggestions on app design using Lists that may change dynamically and used on numerous jobs

(0) ShareShare
ReportReport
Posted on by 6

I'm looking for suggestions on the best way to make my app dynamic and scalable. I describe the project, current setup, and five specific question/challenges below. I appreciate your time in advance!

 

Project Brief:

I work for a construction company that builds apartment buildings (multiple floors and multiple units per floor). I've been tasked with creating a very simple mobile app that tracks when tasks are started and finished. The app will just be used to log the "Started" and "Finished" dates for each task back to a SharePoint List.

 

If edits to the start or finish date are needed the project manager (PM) will make changes in the SharePoint List directly. The PM then downloads the List and uses it for other scheduling-related activities. Each job (apartment building) will have their own List and app which will have different number of floors and units and possibly different tasks to track. 

 

I've created a minimal viable product that the team is happy with, but running into some snags around scalability and curious if they are just limitations with PowerApps or if my design is wrong. I would appreciate any suggestions or pointers, as I'm new to PowerApps (but have decent SQL/PHP/HTML coding experience).

 

Current App Schema/Design: 

My SharePoint List (or is it just called "List" now?) columns are:

 

unit_number (Title/primary key)
comments
drywall_hung_start
drywall_hung_finish
corner_bead_start
corner_bead_finish
prime_first_coat_start
prime_first_coat_finish
...

 

etc. for 40+ tasks (each task has 2 columns, one for start and one for finish)

 

The number of tasks may vary from project to project. I created another list that has the task names above and maps then to a "friendly" name but not currently using it, reason explained below.

 

I have a few screens that get me to this unit edit screen which includes a variable "var_unit_key". ("var_unit_key" = 701 in this example).

The main user input is done on this scrolling canvas with multiple datacards:

 

mikepfly2_3-1625147986484.png

 

The "comments" field shows/hides by clicking the newspaper icon. 

User manually saves comments with the Save icon and this OnSelect formula:

 

Patch(MF_unit_tracker_job_C123,LookUp(MF_unit_tracker_job_C123,Title=var_unit_key),{comments:txtComments.Text});Notify("Comment saved.",NotificationType.Success,1000)

 

Each task is it's own data card with a label and 2 buttons.

I copy and paste a data card for each task and manually update the task name Label.Text.

 

"Started" Button "Text": Shows "Log Date" if the date field is blank, otherwise shows the logged date)

 

If(IsBlank(LookUp(MF_unit_tracker_job_C123,Title=var_unit_key,drywall_hung_start)),"Log Date",Text(LookUp(MF_unit_tracker_job_C123,Title=var_unit_key,drywall_hung_start)))

 

"Started" Button "OnSelect":  Inputs today's date in the appropriate field when a user clicks the button.

 

Patch(MF_unit_tracker_job_C123,LookUp(MF_unit_tracker_job_C123,Title=var_unit_key),{drywall_hung_start:Now()})

 

"Started" Button "DisplayMode": Disables the button if a date exists, otherwise it's editable so user can click.

 

If(IsBlank(LookUp(MF_unit_tracker_job_C123,Title=var_unit_key,drywall_hung_start)),DisplayMode.Edit,DisplayMode.Disabled)

 

For each datacard I update the "_start" and "_finish" and the column name for each button as appropriate and it all seems to be working well enough. 

 

As you can imagine, this is a very manual and tedious process, especially if I have 40+ construction-related tasks. 

 

Specific questions/challenges:

  1. What is the best way to re-use the app for a different project? I will create a new SharePoint List for the new job and need to change the data source used on all the data cards. Can I find/replace "MF_unit_tracker_job_C123" with a new job List name (eg "MF_unit_tracker_job_C456")? Cursory searches don't look too promising, but hoping I don't have to edit each control for each new job replacing the data source. Any suggestions? I read something about possibly using collections, but didn't understand how. Do I need to use packaging?

  2. I'm using data cards to manually create each task section (one for Drywall Hung, one for Corner Bead, etc.). Is there a way to dynamically create the cards based on a List of just the tasks? I was trying to use a vertical gallery of the tasks (using a datasource of just the tasks names) and then create relative references in the controls.  I was hoping for an "Indirect" or similar function, as found in Excel, but no such luck: Patch(MF_unit_tracker_job_C123,LookUp(MF_unit_tracker_job_C123,Title=var_unit_key),{Indirect(ThisItem.Title & "_start"):Now()})​

    In custom development I would write a loop for each task creating the form html on the fly. Is there a way to create a data card "template" that can be reused?

    I read about this experimental "dynamic schema" feature and wasn't sure if it could do what I'm after: https://powerapps.microsoft.com/en-us/blog/authoring-formulas-with-dynamic-schema-in-power-apps/

  3. I tried using an Edit Form with 2 column (one for start/one for finish). However, that only brought in the first 9 or 10 List column and I  had to manually add the other 30+ columns and update/customize the label to make it friendly (drywall_hung_start to just say "Drywall Hung"). If I added additional columns to my List (ie added additional tasks) those new columns would NOT automatically add to my app. I'd have to edit the form and add the Fields manually. Any way for the edit for to dynamically add additional columns on the fly?

  4. When I click from screen to screen to select a different unit, the previous unit's data is still visible for a second or two while the screen pulls and refreshes with the new unit's data. This can be distracting and may cause some confusion. Any way to pre-fetch the data before showing the next screen or delay showing controls until the data is updated? I have "Delayed Loading" set to on. gif illustrating the issue attached.

  5. Small thing, but in the SharePoint List I renamed the "Title" column to be "unit_number". However, I have to reference it as "Title" in the PowerApp; "unit_number" doesn't show as a field option. Anyway around this other than re-creating a new List and not using the "Title" column? Minor, but would help readability for others who may maintain this app going forward.

I'm willing to start over if you think there is a better way to structure the data and/or controls. Any and all suggestions are welcome. Thanks in advance!

 

powerapp_delay_recording.gif
Categories:
I have the same question (0)

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the June Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Apps

#1
WarrenBelz Profile Picture

WarrenBelz 366 Most Valuable Professional

#2
11manish Profile Picture

11manish 184

#3
MS.Ragavendar Profile Picture

MS.Ragavendar 99 Super User 2026 Season 1

Last 30 days Overall leaderboard