Scenario: In your organization you are using SharePoint to manage your projects. Tasks are created in each project site and assigned to you. To keep track of your tasks, you have to go each project site to view, edit those tasks. If you are involved in multiple projects then it can certainly become a time consuming task to manage all the tasks in all the project sites that you are assigned a task.
In SharePoint 2013, there is a much better way of going about managing your tasks. When you go to your My Site in SharePoint 2013 there is a link on the left hand navigation menu called “Tasks”.
Clicking on this link will show you all the tasks that are assigned to you across all site collections. You, as a user can now just go to your My Site and manage all your tasks, make changes and create new ones. SharePoint also displays those tasks on a nice timeline.
- All tasks can be managed from one location (My Site)
- Displayed on a time line. Ability to add tasks to the time line from the same screen.
- Sync to Outlook.
- Categorized/grouped by project sites or “locations”.
- Ability to mark tasks as important.
- Search your tasks.
In my opinion this feature will really boost the productivity of the users.
To setup the task management feature:
- Setup the Search Service Application
- Setup the User Profile Service Application
- Setup My Site Host.
- Setup the Work Management Service application
- Make sure the Work Management Service is started (Look under Manage Services section under System Settings)
- Create a project site in one of your site collections and assign a task yourself.
- Run a Crawl.
Once the crawl is finished you can go to your My Site, click on the Tasks link on the left and you will see the tasks assigned to you.
Now since it is aggregating tasks, does it have the capability to aggregate tasks from other systems? Yes and No. No, because this is not out of the box. Yes, because SharePoint 2013 provides a framework to plug in different task providers. For example, you can write a Task provider which will connect to TFS and pull in the work items that are assigned to the user or a provider to connect to CRM and pull the tasks from there. The possibilities are endless.
Now to write a provider is definitely not an easy job by any chance but it’s not impossible too. I have written a provider which will connect to TFS and pull in the tasks and display them grouped by my projects.
Here is a very high level process:
- Create a class and implement a few interfaces.
- Compile and build your assembly.
- Create an XML file and drop it in the following folder
- C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\CONFIG\WorkManagementService\Providers
- Name the xml file in the following format providers.NameOfYourProvider.xml
- Structure of the xml file is as follows
<Provider ProviderKey=”Guid” OverrideProviderKey=”” Assembly=” ” Class=” ” ></Provider>
When you first hit the tasks aggregation page, SharePoint will go through each of the xml files, parse through them and load the assembly specified in the xml file and starts calling certain methods in the class that was specified in the xml file.
I have a blog coming up which will go into details about which interfaces to implement and how the tasks get created and grouped.