cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Anonymous
Not applicable

Context variable form (Mr-Dang solution)

Hello,

 

I'm trying to use an adapted version of the solution originally posted by Mr-Dang here: https://powerusers.microsoft.com/t5/PowerApps-Forum/Patch-Timestamp/m-p/30311/highlight/true#M12775

 

 

However I am using the above to allow a user to log in and then submit information to a sharepoint list via a form in the app. The user logs in, fills out some of the form and clicks start job. Later, once the user has finished, the user returns to the app, fills out the remaining fields on the form and clicks end job.

 

I can use the solution above as long as there is only one person per device. However it does not work if one person starts a job and then a second person does the same as the context variable is overwritten. I wonder if there is a way to store the form information in the context variable and have one row per person. The idea being that when person logs in again, the form reloads their information from the contaxt variable.

 

In an ideal world a person could start a job from one device and then finish it in another (eg patch the context variable to the database and then reload it again next time that specific user logs in if it was not finished).

 

Any ideas?

1 ACCEPTED SOLUTION

Accepted Solutions

Hi @Anonymous,

 

For form mode switch, consider take use of a variable with the updatecontext() function.

 

For option 5, yes, using the submitform() function should also work. Consideration here is that when the whole form is under Edit mode, all the fields would be in Edit mode, some fields (as you mentioned, the StartTime )might be changed, if all the fields are editable, then that's OK to switch to SubmitForm() function.

 

For all the fields, no, there is no need to add all the fields, 

Patch(table, EditRecord, {Fields})

Here we will use the submitted record as the second parameter of the patch, which should be able for patch to match the corresponding record, for the fields, only add the part needed for ending the job.

That is assuming all the fields could be divided into start, or End related.

Regards,

Michael

Community Support Team _ Michael Shao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

6 REPLIES 6
v-micsh-msft
Community Support
Community Support

Hi @Anonymous,

 

I think here you means to keep the record offline.

I will make some tests on this, and update here later.

Share a blog for reference:

https://powerapps.microsoft.com/en-us/blog/build-offline-apps-with-new-powerapps-capabilities/

 

Regards,

Michael

Community Support Team _ Michael Shao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

@v-micsh-msft

 

Thank you for helping with this - we are creating a feedback app internally for workers and wish to see how long they spend on each job. The problem is that they might start a job on one device, spend the whole day on it, and then finish the job from another device.

 

I hope that makes sense. I have tried patching to the sharepoint list but I am falling over on how to recall the correct records!

 

Thanks 🙂

Hi @Anonymous,

 

Post back to share some feedback.

I thought keeping the record offline may work with your scenario, but it requires the data stored within the same device.

If the user may work under different device, then we should keep the record with an online data source, and use filter to locate the corresponding record.

To better understand your scenario, could you please share more details, for example, the data source, like SharePoint List (corresponding columns), sign-in table information, and the App controls you used?

Here are a few thoughs based on the current information:

1. There is a sign-in table, used to check user sign-in and sign out, a data table, in SharePoint list, woking with form control,

2. User signs in with a check under the sign-in table, if no record for a specific time and the sign-in field is empty, switch form control to New mode,

3. Two buttons to work with Start job and end job, for Start, create a new item under SharePoint list, recording the Start time, with submitForm() function, once clicked, disable the Start Button itself,switch the form control in Edit mode,

4. Here we have two tables containing the user information, and comes to the part to recall the record, 

  Two conditions:

  a. User didn't sign out, two ways to recall the submitted record, Form.LastSubmit, or Frist(filter(table, conditions)), here we use the second one, as the lastsubmit may vary for different users, 

  b. User signed out, we need to get back the status, so here we should configure the Onvisible property of the landing screen, checking with the two tables to get back the information, using some variable to update form control mode and the button status,

5. If step 4 has been well configured, then here we need to end the job, as the record has already been created, here we use patch to update the corresponding record, 

 

Regards,

Michael

Community Support Team _ Michael Shao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Hi Michael,

 

Thank you very much for coming back to me, your solution should work perfectly, but I'm afraid I will need a little help implementing.

 

All asumptions are correct. There are two lists in sharepoint, one containing usernames and passwords (Production_Users), another containing the information captured in the form (Production_Database). Currently, the 'login' button has an onvisible property with a lookup matching the password with the username. The onselect property is NewForm() & Navigate().

 

1. Currently no reporting of login/logout times, only job start/end times. I could certainly add a column for logged in - true/false.

2. Clever idea - I will look to implement this using Patch().

3. Again a clever idea - how do i switch the active form on the screen to an Edit from New? A combination of SubmitForm() & EditForm(filters to find the correct one)?

4. Agreed, can filter  on first(this is the function that mr-dang used, i will need to properly familerise myself with it.

5. Confused here why you would use patch and not submit the edited form? Is it so that you don't overwrite the job start time? If using patch, do I have to include every field in the form in the argument?

 

To make the above easier, I'm going to add a screen inbetween login and the job info which will show any of the users open jobs in a gallery and then a button for new job.

 

Thanks again for spending time thinking about this Michael, it is very much apreciated.

 

Max

Hi @Anonymous,

 

For form mode switch, consider take use of a variable with the updatecontext() function.

 

For option 5, yes, using the submitform() function should also work. Consideration here is that when the whole form is under Edit mode, all the fields would be in Edit mode, some fields (as you mentioned, the StartTime )might be changed, if all the fields are editable, then that's OK to switch to SubmitForm() function.

 

For all the fields, no, there is no need to add all the fields, 

Patch(table, EditRecord, {Fields})

Here we will use the submitted record as the second parameter of the patch, which should be able for patch to match the corresponding record, for the fields, only add the part needed for ending the job.

That is assuming all the fields could be divided into start, or End related.

Regards,

Michael

Community Support Team _ Michael Shao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Hi Micahel,

 

I really appreciate your help with this one - I'm almost there. I've managed to setup the use of context variables to let the form know whether to edit the selected item from the gallery or to start a new form, and when the jobs started which form to select (using lastsubmitted).

 

On the Patch() front, I have used an alternative method. The issue is that every time we add a new field to the form I will have to remember to update the patch formula to include it.

 

Instead what I have done is create a context variable titled 'JobRunning' (set to false by default on new jobs) which is set to true as part of the onselect property of the first submit, Job Start, button (sending jobstart related information to the sharepoint table). As JobRunning is set to 'true' all the job end related fields switch from default.Blank() to their correct default values.

 

I would like to thank you very much for your help on this Michael. It seemed like such a big problem at the start but with your help has been broken down into digestible steps.

 

Best,

 

Max

 

 

Helpful resources

Announcements

Exclusive LIVE Community Event: Power Apps Copilot Coffee Chat with Copilot Studio Product Team

  It's time for the SECOND Power Apps Copilot Coffee Chat featuring the Copilot Studio product team, which will be held LIVE on April 3, 2024 at 9:30 AM Pacific Daylight Time (PDT).     This is an incredible opportunity to connect with members of the Copilot Studio product team and ask them anything about Copilot Studio. We'll share our special guests with you shortly--but we want to encourage to mark your calendars now because you will not want to miss the conversation.   This live event will give you the unique opportunity to learn more about Copilot Studio plans, where we’ll focus, and get insight into upcoming features. We’re looking forward to hearing from the community, so bring your questions!   TO GET ACCESS TO THIS EXCLUSIVE AMA: Kudo this post to reserve your spot! Reserve your spot now by kudoing this post.  Reservations will be prioritized on when your kudo for the post comes through, so don't wait! Click that "kudo button" today.   Invitations will be sent on April 2nd.Users posting Kudos after April 2nd. at 9AM PDT may not receive an invitation but will be able to view the session online after conclusion of the event. Give your "kudo" today and mark your calendars for April 3rd, 2024 at 9:30 AM PDT and join us for an engaging and informative session!

Tuesday Tip: Unlocking Community Achievements and Earning Badges

TUESDAY TIPS are our way of communicating helpful things we've learned or shared that have helped members of the Community. Whether you're just getting started or you're a seasoned pro, Tuesday Tips will help you know where to go, what to look for, and navigate your way through the ever-growing--and ever-changing--world of the Power Platform Community! We cover basics about the Community, provide a few "insider tips" to make your experience even better, and share best practices gleaned from our most active community members and Super Users.   With so many new Community members joining us each week, we'll also review a few of our "best practices" so you know just "how" the Community works, so make sure to watch the News & Announcements each week for the latest and greatest Tuesday Tips!     THIS WEEK'S TIP: Unlocking Achievements and Earning BadgesAcross the Communities, you'll see badges on users profile that recognize and reward their engagement and contributions. These badges each signify a different achievement--and all of those achievements are available to any Community member! If you're a seasoned pro or just getting started, you too can earn badges for the great work you do. Check out some details on Community badges below--and find out more in the detailed link at the end of the article!       A Diverse Range of Badges to Collect The badges you can earn in the Community cover a wide array of activities, including: Kudos Received: Acknowledges the number of times a user’s post has been appreciated with a “Kudo.”Kudos Given: Highlights the user’s generosity in recognizing others’ contributions.Topics Created: Tracks the number of discussions initiated by a user.Solutions Provided: Celebrates the instances where a user’s response is marked as the correct solution.Reply: Counts the number of times a user has engaged with community discussions.Blog Contributor: Honors those who contribute valuable content and are invited to write for the community blog.       A Community Evolving Together Badges are not only a great way to recognize outstanding contributions of our amazing Community members--they are also a way to continue fostering a collaborative and supportive environment. As you continue to share your knowledge and assist each other these badges serve as a visual representation of your valuable contributions.   Find out more about badges in these Community Support pages in each Community: All About Community Badges - Power Apps CommunityAll About Community Badges - Power Automate CommunityAll About Community Badges - Copilot Studio CommunityAll About Community Badges - Power Pages Community

Tuesday Tips: Powering Up Your Community Profile

TUESDAY TIPS are our way of communicating helpful things we've learned or shared that have helped members of the Community. Whether you're just getting started or you're a seasoned pro, Tuesday Tips will help you know where to go, what to look for, and navigate your way through the ever-growing--and ever-changing--world of the Power Platform Community! We cover basics about the Community, provide a few "insider tips" to make your experience even better, and share best practices gleaned from our most active community members and Super Users.   With so many new Community members joining us each week, we'll also review a few of our "best practices" so you know just "how" the Community works, so make sure to watch the News & Announcements each week for the latest and greatest Tuesday Tips!   This Week's Tip: Power Up Your Profile!  🚀 It's where every Community member gets their start, and it's essential that you keep it updated! Your Community User Profile is how you're able to get messages, post solutions, ask questions--and as you rank up, it's where your badges will appear and how you'll be known when you start blogging in the Community Blog. Your Community User Profile is how the Community knows you--so it's essential that it works the way you need it to! From changing your username to updating contact information, this Knowledge Base Article is your best resource for powering up your profile.     Password Puzzles? No Problem! Find out how to sync your Azure AD password with your community account, ensuring a seamless sign-in. No separate passwords to remember! Job Jumps & Email Swaps Changed jobs? Got a new email? Fear not! You'll find out how to link your shiny new email to your existing community account, keeping your contributions and connections intact. Username Uncertainties Unraveled Picking the perfect username is crucial--and sometimes the original choice you signed up with doesn't fit as well as you may have thought. There's a quick way to request an update here--but remember, your username is your community identity, so choose wisely. "Need Admin Approval" Warning Window? If you see this error message while using the community, don't worry. A simple process will help you get where you need to go. If you still need assistance, find out how to contact your Community Support team. Whatever you're looking for, when it comes to your profile, the Community Account Support Knowledge Base article is your treasure trove of tips as you navigate the nuances of your Community Profile. It’s the ultimate resource for keeping your digital identity in tip-top shape while engaging with the Power Platform Community. So, dive in and power up your profile today!  💪🚀   Community Account Support | Power Apps Community Account Support | Power AutomateCommunity Account Support | Copilot Studio  Community Account Support | Power Pages

Super User of the Month | Chris Piasecki

In our 2nd installment of this new ongoing feature in the Community, we're thrilled to announce that Chris Piasecki is our Super User of the Month for March 2024. If you've been in the Community for a while, we're sure you've seen a comment or marked one of Chris' helpful tips as a solution--he's been a Super User for SEVEN consecutive seasons!       Since authoring his first reply in April 2020 to his most recent achievement organizing the Canadian Power Platform Summit this month, Chris has helped countless Community members with his insights and expertise. In addition to being a Super User, Chris is also a User Group leader, Microsoft MVP, and a featured speaker at the Microsoft Power Platform Conference. His contributions to the new SUIT program, along with his joyous personality and willingness to jump in and help so many members has made Chris a fixture in the Power Platform Community.   When Chris isn't authoring solutions or organizing events, he's actively leading Piasecki Consulting, specializing in solution architecture, integration, DevOps, and more--helping clients discover how to strategize and implement Microsoft's technology platforms. We are grateful for Chris' insightful help in the Community and look forward to even more amazing milestones as he continues to assist so many with his great tips, solutions--always with a smile and a great sense of humor.You can find Chris in the Community and on LinkedIn. Thanks for being such a SUPER user, Chris! 💪🌠

Find Out What Makes Super Users So Super

We know many of you visit the Power Platform Communities to ask questions and receive answers. But do you know that many of our best answers and solutions come from Community members who are super active, helping anyone who needs a little help getting unstuck with Business Applications products? We call these dedicated Community members Super Users because they are the real heroes in the Community, willing to jump in whenever they can to help! Maybe you've encountered them yourself and they've solved some of your biggest questions. Have you ever wondered, "Why?"We interviewed several of our Super Users to understand what drives them to help in the Community--and discover the difference it has made in their lives as well! Take a look in our gallery today: What Motivates a Super User? - Power Platform Community (microsoft.com)

March User Group Update: New Groups and Upcoming Events!

  Welcome to this month’s celebration of our Community User Groups and exciting User Group events. We’re thrilled to introduce some brand-new user groups that have recently joined our vibrant community. Plus, we’ve got a lineup of engaging events you won’t want to miss. Let’s jump right in: New User Groups   Sacramento Power Platform GroupANZ Power Platform COE User GroupPower Platform MongoliaPower Platform User Group OmanPower Platform User Group Delta StateMid Michigan Power Platform Upcoming Events  DUG4MFG - Quarterly Meetup - Microsoft Demand PlanningDate: 19 Mar 2024 | 10:30 AM to 12:30 PM Central America Standard TimeDescription: Dive into the world of manufacturing with a focus on Demand Planning. Learn from industry experts and share your insights. Dynamics User Group HoustonDate: 07 Mar 2024 | 11:00 AM to 01:00 PM Central America Standard TimeDescription: Houston, get ready for an immersive session on Dynamics 365 and the Power Platform. Connect with fellow professionals and expand your knowledge. Reading Dynamics 365 & Power Platform User Group (Q1)Date: 05 Mar 2024 | 06:00 PM to 09:00 PM GMT Standard TimeDescription: Join our virtual meetup for insightful discussions, demos, and community updates. Let’s kick off Q1 with a bang! Leaders, Create Your Events!    Leaders of existing User Groups, don’t forget to create your events within the Community platform. By doing so, you’ll enable us to share them in future posts and newsletters. Let’s spread the word and make these gatherings even more impactful! Stay tuned for more updates, inspiring stories, and collaborative opportunities from and for our Community User Groups.   P.S. Have an event or success story to share? Reach out to us – we’d love to feature you!

Top Solution Authors
Top Kudoed Authors
Users online (6,799)