I've built a time off tracking "application" in SharePoint that's composed of the following elements:

  • Two site content types:
    • Team Member Hour Balance - A user field, then two fields for each time off category: available and total allowed (i.e. VacationAvailable and VacationTotal).
    • Time Off Request - The actual request: date/time fields for start and end, a choice field for category, a user field, and an hours requested field.
  • Four lists
    • Hour Register (using the Team Member Hour Balance content type)
    • Time Off Requests (using the other content type, natch)
    • Out of Office Calendar
    • Holidays
  • Two workflows, both associated with the Time Off Requests list
    • Request Time Off
    • Retract Request
  • A number of javascript and css files, and one html file, all of which go towards customizing the OOTB new and edit forms (via a content editor webpart and Mark Rackley's thing and some form logic I wrote) on the Time Off Requests list.

Here's a brief rundown of my workflows:

Request Time Off

  1. Go to the Hour Register, make sure the hours requested for the category of time off (i.e., vacation, floating holiday, PTO, etc.) is available in the Hour Register for that team member. If it is, proceed.
  2. Start an approval process on the team member's manager, wait for approval.
  3. On approval, decrement the Hour Register the number of hours requested for that category, send some emails, add an event to the Out of Office Calendar.

Retract Request

Basically the reverse of the above, but without an approval process. Remove the Out of Office Calendar event, add back to the appropriate bucket however many hours were requested, send some emails to everyone.

So, my question: How in the heck do I package all of this stuff up into a thing I can port from site collection to site collection, without having to just rewrite all of the things (particularly the workflows, which are stupidly complicated) over and over again?

Additional context

We're on 2013 on-premise. I'm reasonably good with javascript, but C# is a black box for me. I do have access to Visual Studio and a development server. I've also figured out how to turn my content types and lists into a WSP file, and how to plant my resource files into appropriate folders in the SiteAssets library.

But the workflow and provisioning the list with its form customization? No way.

  • It is something robust enough that it should be a bundled as a feature or an app, so it can be deployed, and activated where desired. – Eric Alexander Dec 15 '16 at 14:22
  • I guess that's my problem. I have no idea how to go about doing that. I've figured out---and I'll edit my post with this---how to bundle the content types and lists into a WSP. But the workflows? No. And provisioning my list with its form already customized? No way. – ChrisPEditor Dec 15 '16 at 14:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.