The city of Langford has a homegrown timesheet entry system. This system has been integrated to SharePoint 2010 for submission and approval. This presentation will show how the submission (via code) and approval (code – less) are implemented.
Kevin Dube has been working with SharePoint since 2008 for the City of Langford wearing many hats (support, administration & development).
Kevin’s blog site is: http://www.greenroomsolutions.ca/blog/
How to Troubleshoot Apps for the Modern Connected Worker
Timesheet Approval Process
1.
2. About Me
• I have been working with sharepoint since
2008
• My blog:
http://www.greenroomsolutions.ca/blog/
• Email: kdube@cityoflangford.ca
• My spare time:
5. Background
• City of Langford has a homegrown ASP.NET
timesheet system
• Allows staff to enter there time on a daily
basis. Time entry is recorded on a project by
project basis
• The times system exports a file which is
imported into our Payroll ERP System (Great
Plains)
9. Approval Process
• In the “old days”
– People would print out there timesheet get their
supervisor to sign it and submit it to the payroll
department
– Purely a paper process
10. Integration Functionality
• Approval done in SharePoint document library
• Submit timesheet to SharePoint using SharePoint API
• Document tagged with metadata (submitter, date),
dropped in Supervisor Folder (with security)
• Ability to comment Timesheet
11. Server API vs CSOM (SP2010)
• Pros/Cons
Server API CSOM
Easier to code Limited OM exposed
Entire OM exposed More difficult to code
Requires sharepoint server on
machine running code
Can run on any client
Wrapper over web services
12.
13. Development History
• Originally in SP2007 this system used the
Server API (no CSOM available). Required
timesheet website to run on sharepoint
server.
• In migration to SP2010 CSOM became
available. Switched to this API so timesheet
not coupled to sharepoint server
14. Pseudocode
• Generate report (already existing), byte array
• Connect to sharepoint site, list
• Query for supervisor folder IF it doesn’t exist
then create it first
• Upload to supervisor folder
• Tag with metadata