cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Regular Visitor

Duration Timing

I have created an audit app using PowerApps. I have not been able to figure out how to automatically time how long it takes the auditor to complete the audit. I would like the app to start timing when the audit form is opened and then stop timing when the submit button is selected.  I would then like the duration data to populate into a column in the SharePoint list where the rest of the audit data is collected. Anyone know how to do this?

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Super User III
Super User III

Re: Duration Timing

Hi Guys,

 

I'm just curious as to why we think it's necessary to use a timer here?

Could we not just store the time that the user opens the screen into a variable (eg on the OnVisible property of the screen)? Then on the Submit button, we can work out the duration by calculating the difference between the current time and the initial time.
@Blurred - if you're really stuck with implementing the timer technique that that @Mr-Dang-MSFT and @BenFetters describes, I can probably give you a fuller explanation of what I described above.

View solution in original post

12 REPLIES 12
Highlighted
Power Apps
Power Apps

Re: Duration Timing

Hi @Blurred,

You will want to learn about the timer control:

https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/controls/control-timer

 

Timers have an AutoStart property where you can place a condition on when it should be starting. Accordingly, they will stop when the same condition is false.

 

You can give a timer a very long duration so they do not end before the audit is complete.

 

When you write the data back to SharePoint, you would save Timer1.Value. That returns the elapsed time in milliseconds. If you prefer seconds, divide Timer1.Value/1000. If you would like the time formatted in hh:mm:ss, then you could use the Time() function:

Time(0,0,Timer1.Value/1000)

It will regroup all the seconds into h and m accordingly. Saving that format would need a text column in SharePoint though.

Highlighted
Continued Contributor
Continued Contributor

Re: Duration Timing

Hi,

 

I have an idea that hopefully can help. Please let me know if you have questions because I know explanations can be kind of confusing!

 

First, I would add a timer to the screen that you have the form on. Then set the timer's "AutoStart" property to true. Then, on the form there is an "OnSuccess" property - set this to this formula: Patch(YourDataSourceName, YourFormName.LastSubmit, {Duration: Timer1.Text})  you might need to say Value(Timer1.Text) depending on what the type of field it is.

 

Lastly, for your submit button, be sure to add this formula to the END of the "OnSelect" property: Reset(Timer1)

 

I hope this makes sense and was helpful.

 

Ben

 

 

If this solved the problem for you, feel free to hit "Accept as Solution" so others can find the answer easier. 🙂

Kind regards,

Ben Fetters
Power Apps/Power Automate Developer
www.sovereignsp.com
Highlighted
Super User III
Super User III

Re: Duration Timing

Hi Guys,

 

I'm just curious as to why we think it's necessary to use a timer here?

Could we not just store the time that the user opens the screen into a variable (eg on the OnVisible property of the screen)? Then on the Submit button, we can work out the duration by calculating the difference between the current time and the initial time.
@Blurred - if you're really stuck with implementing the timer technique that that @Mr-Dang-MSFT and @BenFetters describes, I can probably give you a fuller explanation of what I described above.

View solution in original post

Highlighted
Power Apps
Power Apps

Re: Duration Timing

@BenFetters, I like how you also described how to restart the timer.

 

@timl, now that I think about it, I like the idea of saving the start time and end time, then calculating the elapsed time later. That is more manageable and provides clearer information.

 

@Blurred, if you want to go with Tim's method, you can brush up on DateDiff.

Here's a primer on using DateDiff for counting down:

https://www.youtube.com/watch?v=eS4HesPcOSk

Highlighted
Regular Visitor

Re: Duration Timing

@BenFetters, @timl, @mr-dang-MFST,

 

Thank you for all the great suggestions. It sounds like saving the start and end time and then calculating the elapsed time later may be the best option. If you have any suggestions on how to set this up I would appreciate it. Watching the suggested utube video now.

Highlighted
Helper I
Helper I

Re: Duration Timing

Hi, 

I have somewhat similar problem; however my scenerio is little different. I got my duration fine by using DateDiff. However I am unable to figure out how to add up 2 or more Durations. i.e. if I go on my Break. I am pressing a Button which starts a timer and then once I am back I hit that button again. It Stops the timer and now I have 2 variables for Break Start and Stop which then I use to calculate the duration of my break using DateDiff. Now the tricky part begins. I want to record another break and add the result in previous duration of break to get total time I was on break in whole day. Regardless of how many times I went on break. 

I am unable to think it through properly; would really appreciate your advise.

Highlighted
Continued Contributor
Continued Contributor

Re: Duration Timing

So to sort of briefly explain how I would do that, is I would have a the fields: BreakStarted (Date & Time field), OnBreak (Yes/No field), and a TotalBreakTime (Number field). Then, all you have to do is when you go on break, you set the BreakStarted = Now(), OnBreak = true. Then when you come back from the break, you would set OnBreak = false, and TotalBreakTime = Previous Break Time + Value(DateDiff(BreakStarted,Now(),Minutes)/60) - This way, you just add the 15 minutes of break time you just went on to the previous 15 minutes you already had.

 

Lastly, when you want to get your total time, you would just subtract the ending time from the start time and then subtract the TotalBreakTime from that. 

 

That is a simplified explanation but if it didn't make any sense or you would like more clarification just let me know! 

 

Kind regards,

 

Ben Fetters

If this solved the problem for you, feel free to hit "Accept as Solution" so others can find the answer easier. 🙂

Kind regards,

Ben Fetters
Power Apps/Power Automate Developer
www.sovereignsp.com
Highlighted
Helper I
Helper I

Re: Duration Timing

Hi Ben,

Thanks; this is not exactly what i am looking for but I got my problem sorted. Used Collections store break durations and then in the end Sum them up to get total value.

Thanks.

------- 

I have another situation here. I have few people which went on break but then if I go to their record and put them on break on changing / selecting someone else record trigger resets its self. In short app is not keeping its state for individual records. Also I can see variable value of one persons form in a different person. (forms are using same variables though). I think I need to look into Global and local variables if there is any. Any suggestion?

Continued Contributor
Continued Contributor

Re: Duration Timing

Oh okay, I'm glad your figured out a good solution! And for the other situation, I try throwing some labels on your screen or screens and setting them to the different variables just so you can see things a little more clearly to try to find the problem. Then running through the process and looking for all the different places where the variable is changing or staying the same when it should change? I'm not sure what the problem could be though. But putting labels on the screen always helps me alot as well as testing the app on your phone if you can. Sometimes it works a little differently on the phone. I'll let you know if I think of something else though! 

If this solved the problem for you, feel free to hit "Accept as Solution" so others can find the answer easier. 🙂

Kind regards,

Ben Fetters
Power Apps/Power Automate Developer
www.sovereignsp.com

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

Watch Now

Experience what’s next for Power Apps

See the latest Power Apps innovations, updates, and demos from the Microsoft Business Applications Launch Event.

Power Platform ISV Studio

Power Platform ISV Studio

ISV Studio is designed to become the go-to Power Platform destination for ISV’s to monitor & manage published applications.

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

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