cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
tas_ranson
Frequent Visitor

Power Apps Custom SharePoint List Form - Calculating Values from Multiple Fields

I have a SharePoint list with user related information on it.  I have created a Power Apps Custom form connected to the list.

 

I want to make some calculations of user name length and create some warnings based on a persons proper names, preferred names, and whether they want to use preferred names in eMail etc.

 

The form works fine to create and edit records and save these changes.

 

I am trying to add some on-screen calculations of user name based on the users Proper Given Name, Proper Family Name, Preferred Given Name, Preferred Family Name, and a check box "Use Preferred Names in Email"  These are all SharePoint list fields.

 

I have tried two main approaches: Helper Fields on the Form (not connected to the SharePoint list), and Context Variables.  Neither seem to work.  

 

Helper fields with formulae calculating the values of parts of the user name dont update when the user edits the values of the SharePoint fields on the form that the formula uses.  The helper fields are set accurately when the form opens, but do not responde to any changes on the form.  Is this because these fields are not bound to a List Column?   If I use helper fields that are actually in the list will this work?   I then have to hide these from the end users, so this seems like extra work that should not be necessary.

 

In the Context Variables approach I created OnChange forumulae in each of the contributing SharePoint fields updating the values (using the same forumule as for the Helper fields) of the Context variables.   I can not find where to set the values of these variable correctly when the form first opens.  But most problematic  is that the values of the Context Variables only update once, and only when the 'Use Preferred in Email' check box is checked.   I have tried putting the same formule in the OnSelected attributes of the data cards as well with no change in behaviour.   Is the OnChange event only going to fire once for any field on the form?  This does not seem right?  Surely any change to the value in a field on the form should fire the OnChange event, and the formulae below shoud update the value of the context variables, and these values should refresh in the fields that reference them?

 

Here are some details for the Context Forumulae approach.  Similar Formulae were used for the Helper Fields approach.

OnChange: ('Preferred Given Name' SP Field DataCardValue)
UpdateContext({cvunGiven: Substitute(Substitute(Trim(If(ThisItem.'Use Preferred in Email' && Len(ThisItem.'Preferred Given Name') > 0,ThisItem.'Preferred Given Name',ThisItem.'Given Name'))," ",""),"'","")})

 

OnChange: ('Preferred Family Name' SP Field DataCardValue)
UpdateContext({cvunFamily:Substitute(Substitute(Trim(If(ThisItem.'Use Preferred in Email' && Len(ThisItem.'Preferred Family Name')>0,ThisItem.'Preferred Family Name',ThisItem.'Family Name'))," ",""),"'","")})

 

OnChange: ('Use Preferred in Email' SP Field DataCardValue)
UpdateContext({cvunFamily:Substitute(Substitute(Trim(If(ThisItem.'Use Preferred in Email' && Len(ThisItem.'Preferred Family Name')>0,ThisItem.'Preferred Family Name',ThisItem.'Family Name'))," ",""),"'",""),cvunGiven: Substitute(Substitute(Trim(If(ThisItem.'Use Preferred in Email' && Len(ThisItem.'Preferred Given Name') > 0,ThisItem.'Preferred Given Name',ThisItem.'Given Name'))," ",""),"'","")})

 

Helper Field: unGiven
Text: cvunGiven

 

Helper Field: unFamily
Text: cvunFamily

2 ACCEPTED SOLUTIONS

Accepted Solutions

Based on your description, it seems like you're experiencing difficulties in updating and recalculating the helper fields or context variables in your Power Apps custom SharePoint list form. I'll provide some insights and suggestions that might help you resolve these issues.

  1. Helper Fields Approach:

    • If the helper fields are not bound to a list column, they won't update automatically when the form values change. You can consider using calculated columns in the SharePoint list instead. These calculated columns can contain the necessary formulas to calculate the values based on the other fields.
    • If you decide to use helper fields in the SharePoint list, you can hide them from end users by adjusting the field properties in SharePoint. This way, they will still be accessible in the form and update correctly.
  2. Context Variables Approach:

    • The OnChange event should fire whenever the value of a field on the form changes. If you're experiencing issues with the OnChange event not firing, there might be an error in the formula or a configuration issue.
    • To set the initial values of the context variables when the form opens, you can use the Form's OnVisible property. Set the formula in the OnVisible property of the form to update the context variables with the initial values based on the SharePoint list fields.
    • Make sure that the formulas in the OnChange events of each field are correct and reference the correct fields. Check for any typos, missing or extra parentheses, or incorrect logical conditions that might cause the formulas to not work as intended.

Here's an example of how you can set the initial values of context variables when the form opens:

Form.OnVisible:

 

UpdateContext({
  cvunGiven: Substitute(Substitute(Trim(If(ThisItem.'Use Preferred in Email' && Len(ThisItem.'Preferred Given Name') > 0, ThisItem.'Preferred Given Name', ThisItem.'Given Name'))," ",""),"'",""),
  cvunFamily: Substitute(Substitute(Trim(If(ThisItem.'Use Preferred in Email' && Len(ThisItem.'Preferred Family Name') > 0, ThisItem.'Preferred Family Name', ThisItem.'Family Name'))," ",""),"'","")
})

Please ensure that the formula references the correct fields and matches your specific requirements.

Remember to save and publish your app after making any changes to ensure the latest version is deployed.

I hope these suggestions help you resolve the issues you're facing with your Power Apps custom SharePoint list form.

View solution in original post

Thank you these are helpful suggestions.   I finally figured out the main issue with both approaches, in that the formulae were all referencing the ThisItem.[FieldName] values which are the underlying list values.  Clearly these dont change during the form edit, only when the form data is saved back to the list.   When I changed the formulae to refernce the appropriate form data fields, things started to work as I wanted them too.   I have finished up using more complex formulae and placing these in the data controls for existing list fields that were being populated by a flow after the form was saved.  This has made the User experience significantly better, and I can keep all the formulae in one place .

View solution in original post

2 REPLIES 2

Based on your description, it seems like you're experiencing difficulties in updating and recalculating the helper fields or context variables in your Power Apps custom SharePoint list form. I'll provide some insights and suggestions that might help you resolve these issues.

  1. Helper Fields Approach:

    • If the helper fields are not bound to a list column, they won't update automatically when the form values change. You can consider using calculated columns in the SharePoint list instead. These calculated columns can contain the necessary formulas to calculate the values based on the other fields.
    • If you decide to use helper fields in the SharePoint list, you can hide them from end users by adjusting the field properties in SharePoint. This way, they will still be accessible in the form and update correctly.
  2. Context Variables Approach:

    • The OnChange event should fire whenever the value of a field on the form changes. If you're experiencing issues with the OnChange event not firing, there might be an error in the formula or a configuration issue.
    • To set the initial values of the context variables when the form opens, you can use the Form's OnVisible property. Set the formula in the OnVisible property of the form to update the context variables with the initial values based on the SharePoint list fields.
    • Make sure that the formulas in the OnChange events of each field are correct and reference the correct fields. Check for any typos, missing or extra parentheses, or incorrect logical conditions that might cause the formulas to not work as intended.

Here's an example of how you can set the initial values of context variables when the form opens:

Form.OnVisible:

 

UpdateContext({
  cvunGiven: Substitute(Substitute(Trim(If(ThisItem.'Use Preferred in Email' && Len(ThisItem.'Preferred Given Name') > 0, ThisItem.'Preferred Given Name', ThisItem.'Given Name'))," ",""),"'",""),
  cvunFamily: Substitute(Substitute(Trim(If(ThisItem.'Use Preferred in Email' && Len(ThisItem.'Preferred Family Name') > 0, ThisItem.'Preferred Family Name', ThisItem.'Family Name'))," ",""),"'","")
})

Please ensure that the formula references the correct fields and matches your specific requirements.

Remember to save and publish your app after making any changes to ensure the latest version is deployed.

I hope these suggestions help you resolve the issues you're facing with your Power Apps custom SharePoint list form.

Thank you these are helpful suggestions.   I finally figured out the main issue with both approaches, in that the formulae were all referencing the ThisItem.[FieldName] values which are the underlying list values.  Clearly these dont change during the form edit, only when the form data is saved back to the list.   When I changed the formulae to refernce the appropriate form data fields, things started to work as I wanted them too.   I have finished up using more complex formulae and placing these in the data controls for existing list fields that were being populated by a flow after the form was saved.  This has made the User experience significantly better, and I can keep all the formulae in one place .

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