SharePoint Saturday Session
Keeping it organized with SharePoint 2010 Content Organizer
Feature
Saturday November 13, 2010Roy Kim
SharePoint Saturday SPONSORS
AgendaIntroductionContent Organization OverviewBusiness ScenarioContent Organizer FunctionalityContent Organizer Settings & RulesDemoExtensibility: Custom Content RouterSummaryQuestions
IntroductionRoy KimCurrently working on implementation of
SharePoint 2010 internet site for public sector.
Several years of experience with Microsoft and .NET
2+ years with SharePointConsulting experience: Infusion
(current), Accenture (past)U of T Grad – Computer ScienceMCSD, MCTS
Content Organization Overview
Automation in the organization of documents to libraries and its folders.
Organization is executed through rules matched by content type and metadata.
One source drop off location to many destinations.
Typical Content Management Scenario
Site
Document Library A
Subfolder
Subfolder Subfolder
Subfolder
Subfolder Subfolder
Document Library B
Subfolder
Subfolder Subfolder
Subfolder
Subfolder Subfolder
Content Organization Challenges
Assumption: Content stored hierarchically◦Difficult to organize not knowing
where documents should go.◦Duplicated files in across different
folders◦Misplaced files◦Files stored many “temp” folders
Content Organizer Business ValueAutomated placement of content based on
metadata.Avoid duplicate content.Avoid misplaced content.Abstract away from destination locations for users.Support Governance policies and processes to
guide and control how the organization uses the technologies to accomplish content organization goals.
Increase ease of use of content management for content authors.
Contribute to overall information architecture effectiveness.
Scalable to Enterprise structure with many libraries.
Content Organizer FeatureWeb level Feature ActivationCreates a Drop Off LibraryCreates a Content Organizer
Rules listSite Settings
◦Content Organizer Settings◦Content Organizer Rules Settings
Content Organizer Timer Jobs
Content Organizer Feature Activated
Site
Document Library
Subfolder
Subfolder
Subfolder
Subfolder
Subfolder
Subfolder
Document Library
Subfolder
Subfolder
Subfolder
Subfolder
Subfolder
Subfolder
Drop Off Library
Content Organizer
Rules
Document Library
Document Library
Routing Scenario
Drop Off Library
Document Library
Folder A Folder B
Folder A1
Folder A2
Folder B1
Folder B2
Site
1) Upload Document
Set Content Type and metadata
2) Content Organizer
Rule Routing
3) Auto-foldering
CO Rules
Content Organizer Process
User creates document in MS Office and/or SharePoint Designer
Document Content Types- Document- Pages- Images
Content Type
Enterprise Scenario
Site
Site
Site
Site Site
Site
Site Site
Site
Site
Site Site
Site
Site Site
Drop Off Library
Target
Library
- Very Large number of sites and libraries
Demo: Drop off Library to another site
Content Organizer Configuration & SetupActivate Content Organizer Feature
for the Site (Web)Set Configuration SettingsAdd Content Types to the drop off
libraryAdd Content Types to the destination
foldersAdd “Configure Send To
Connections” (if necessary)Add Content Organizer Rules
Content Organizer Settings
Content Organizer Settings (cont’d)
Content Organizer RulesRouting mechanism to match
based on content type and metadata properties.
An implementation of a governance policy.
Rules saved in a list accessible through ‘Site Settings’ page.
Content Organizer Rules Settings
Content Organizer Rules SettingsCont’d
Demo: Setup HR Site
Extensibility:Custom Content RouterExtend the routing logic for a
content type with more functionality.Implement the CustomRouter class
and “register” through Feature Activation code
Examples◦Able to do custom auto foldering◦Populate metadata fields◦Lookup to other data sources◦Target multiple sites and folders
Custom Content Router: Code Sampleusing Microsoft.SharePoint;
using RecordsRepository = Microsoft.Office.RecordsManagement.RecordsRepository;
public class MetadataRouter : ICustomRouter
{
CustomRouterResult ICustomRouter.OnSubmitFile(
EcmDocumentRoutingWeb contentOrganizerWeb,
string recordSeries, // Content type name
string userName,
Stream fileContent,
Microsoft.SharePoint.RecordsRepositoryProperty[] properties,
SPFolder finalFolder,
ref string resultDetails)
{
…
}
}
Register Custom Router
EcmDocumentRoutingWeb contentOrganizer
= new EcmDocumentRoutingWeb(contentOrganizerSite);
contentOrganizer.AddCustomRouter(
customRouterName,
customRouterAssemblyName,
customRouterClassName );
Questions