cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
PauwelsSven
Level 8

Re: Creating a Time Tracking (Timesheet) PowerApp using SharePoint lists

After you have pushed everything to Sharepoint you can add Clear(Timesheet).

It wil clear the collection you made.

schen
Level: Power Up

Re: Creating a Time Tracking (Timesheet) PowerApp using SharePoint lists

We are a non-profit museum. Is it possible to share this app with us? Thank you.

Sherry

leemex
Level: Powered On

Re: Creating a Time Tracking (Timesheet) PowerApp using SharePoint lists

I'd be super interested to get this app as well :-)

 

and the screenshots would be nice as well...

araelius86
Level: Powered On

Re: Creating a Time Tracking (Timesheet) PowerApp using SharePoint lists

Any chance in sharing the code or screenshots as to an idea of how this works?

 

Thanks

rachelsilveira
Level: Powered On

Re: Creating a Time Tracking (Timesheet) PowerApp using SharePoint lists

Hi @Aaron_Kapala  

This is exactly what we really need too for our charity based in London. Are you able to send info about how you created this? 

Thank you so much, from Rachel

Aps0615
Level: Power Up

Re: Creating a Time Tracking (Timesheet) PowerApp using SharePoint lists

Could you share your timesheet app with me? I am really interested on how to make this work.

 

I'm specifically looking for tracking employees, hours spent, project/ticket #.

rachelsilveira
Level: Powered On

Re: Creating a Time Tracking (Timesheet) PowerApp using SharePoint lists

Hi,

 

We use workflow max, which in theory conects with Xero however I wouldn't recommend it. The inputting is clunky and we have to do a lot of manipulation to get useful data from it as we don't split salaries by project in Xero. And it's not cheap. I'd be very interested to hear of better ones though. We use fabmin to track annual leave and sickness and they have created a really simple interface and it is very cheap, I can't see why there isn't a better time sheet one to use.

 

I found a link that would allow you to build timesheet inputting into outlook, however it uses an app that has been replaced by MS power apps and I'm not knowledgable about building apps to recreate it. 

 

Sorry to not be more help,


From Rachel

 

CMHants
Level: Powered On

Re: Creating a Time Tracking (Timesheet) PowerApp using SharePoint lists

Hi All,

 

So I wanted to follow this post up a bit with some stuff I've learned on a time tracking app.

 

The most important point of all is scalability. The app below saves its data to a SharePoint list, for a small team or limited run of projects thats fine. But it isn't suitable for groups any larger than about 10 employees. I would highly recommend Azure SQL Databases. They are fairly easy to set up and much much cheaper than using the CDS.

 

This app is used by a smallish consultancy team where i work. They use it to track hours delivered on projects. The app itself is a little bit clunky as it is quite old, but it does work. The important point is that you can reuse some of the principles and design them better. I'll try to export the app package and clean any sensitive data out of it, then put it on gitHub. Maybe we can iterate it off this thread.

 

So the app is divided into 4 screens. 3 Provide supporting information and the 4th is below, staff members use it to enter their worked time.

 

Hours Entry  Screen .pngHours Entry Screen

Breakdown

 

Each row represents a day in the working week, the first component is a date picker. I made 2 changes  to this is;1  to set the date format to UK (in the FORMAT option i set the formula to "dd/mm/yyyy") and 2 set the default date of the top row to today()(I then set the default date of the rows below to the top date plus 1). This needs improvement, it could probably do with displaying all the working days of the current week or something which is quite easy to do.

 

The next two along are user name and line manager both drawn from office 365 users{add the office 365 users connection, to get name simply enter Office365Users.MyProfile().DisplayName in the text field of the label. to get manager you need the userid, i added a label with just userid in and diplayed it with office 365 users, but you could nest the user ID in the formula, the label for manager looks like this Office365Users.Manager(Profile_ID).DisplayName. Now these two fields  are there because at the time I wanted to collect them for each row, but they dont need to be be visible and the only really need to appear once. Needs to be changed at some point.

 

Job title is also just a label, its text property is Office365Users.MyProfile().JobTitle

 

Project is a dropdown control, its item property is a list of projects held on a sharepoint site the formula on the items property is Filter('UID List','Inactive UIDs' = "No"). There is an administrator that adds and removes the projects from the list, she sets the status of the projects when they are complete to  inactive. The formula on the items property just filters the list by the column Inactive UIDS, looking for "No".

 

The team only measures time by full or half day spent. The next two options deal with the time element. The users selects the time they've delivered in the full or half day dropdown then the time changes to reflect what they have added. The first dropdown just has two hardcoded options in the item property of the dropdown control ["Full Day","Half Day"]. The Hours element is just a label with an IF statement in the text property If('Full/Half'.Selected.Value = "Half Day",3.7,7.4) . It auto populates the hours label to prevent the user from entering anything stupid.

 

And finally the plus and beyond !!.

 

This is where it starts to gets useful, the plus symbol has the following formula in its on select property 

 

Collect(
    Timesheet,
    {
        Date: Enter_Date.Text,
        UserName: User_Name.Text,
        LineManager: User_Line_Manager.Text,
        JobTitle: Job_Title.Text,
        Project: Project.Selected.Value,
        FullorHalf: 'Full/Half'.Selected.Value,
        Hours: Hours.Text
    }
)

 

This collects all of the data from the corresponding row. Additionally underneath the plus symbol there is a label with the following formula on its text propertyIf(Value(HoursMonitor.Text) < 7.4,"Add More Hours",If(Value(HoursMonitor.Text) > 7.4,"Too Many Hours")) . The purpose of this is to help the user recognise when they've over or under entered hours. It looks at a text box that is invisible and is just adding the total "hours monitor", at the time of building i didn't know you could just count the collection ! :-)) 

 

Below the entry boxes you'll note a gallery, the gallery item property is set to the timesheet collection. The purpose is to give the user a chance to review their hours before submission. They can delete any mistakes they make here.

 

Finally when they are happy they hit submit - and this is where the **bleep** hits the fan. 

 

The submit arrow has this formula on its on select property

 

ForAll(
    Timesheet,
    Patch(
        'Practice Operations Tool',
        Defaults('Practice Operations Tool'),
        {
            Date: Date,
            FullorHalf: FullorHalf,
            Hours: Hours,
            JobTitle: JobTitle,
            LineManager: LineManager,
            Project: Project,
            UserName: UserName
        }
    )
);
Navigate(
    Hours_Successfully_Submitted,
    ScreenTransition.Cover
)

 

This submits the collection and navigates the user to a success screen. At the time of build i didn't know you could just use collect ("collection":"SP List") instead of the monster above. For All was a true bitch to get to work properly, the best advice i can give you is to ensure your column names are the same exactly and dont give up.

 

- when they navigate off of the success screen theres a clear collect function that empties the collection for the next submission.

 

The final link in the chain is the report - this is done in powerBI and uses the sharepoint list. Its just auto refreshed using a scheduled refresh 3 times a day. My plan was to try and forecast hours using Azure ML studio and pass data between it and PowerBI. Similar to the titanic demo. But i moved departments and now I make chatbots !! :-)

 

Anyway I hope this is of some use to those thinking about timesheets. It needs alot of impovement but it is at least one perspective on a way to do it.

CMHants
Level: Powered On

Re: Creating a Time Tracking (Timesheet) PowerApp using SharePoint lists

Just going one step further -  in the next few weeks im hoping to start work on a chatbot that could manage the input process. My vision is its embedded in a sharepoint site, potentially it could cut out powerapps !! ouch.

 

I'll try to post any progress 

Samswift
Level: Power Up

Re: Creating a Time Tracking (Timesheet) PowerApp using SharePoint lists

Hi There,

Very impressive done can you share we are team of 10.

Helpful resources

Announcements
firstImage

Watch Sessions On Demand!

Continue your learning in our online communities.

SecondImage

PowerApps Monthly Community Call

Next Wednesday, September 18th at 8am PDT

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

FirstImage

Power Platform World Tour

Coming to a city near you

thirdimage

PowerApps Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

FourthImage

Join PowerApps User Group!!

Connect, share, and learn with your peers year-round

SecondImage

Power Platform Summit North America

Register by September 5 to save $200

Users Online
Currently online: 207 members 4,042 guests
Please welcome our newest community members: