Skip Ribbon Commands
Skip to main content

Rez's SharePoint Blog Spot

:

Quick Launch

Home
Rez blogs on Microsoft technologies such as SharePoint, WSS, ASP.NET and architecting .NET solutions in general
Records Management features in SharePoint 2010: Part 14– Document Sets

Overview

  • Document sets are a group of related documents that can be packaged together and then managed as a single entity. [1]
  • Think zip or compressed folder but they are not actually compressed and not considered a folder.
  • Used to manage multi-document work products.  For example, an RFP or RFP Response might be composed of many documents, like spreadsheets, appendices, etc…  You might want to group these together as one entity rather than in a folder.
  • SharePoint allows you to:
  1. Automatically create a set of default documents when a specific document set is created.  For example, if your organization has default templates for an RFP composition, you can have these automatically within your document set.
  2. Define the content types allowed within your document set (i.e. invoices, expense forms, etc…)
  3. Synchronization of meta-data for all documents within your document set
  4. Allow workflows for the document set itself rather than all the individual documents within the document set (i.e. approve all of these documents)
  5. Have and customize a welcome page for your document set (i.e. so you can describe the templates in your document set or even describe the document set purpose
  6. Have versioning on the entire Document Set!  This is huge, you can roll back and view previous version of document sets

Activated via a Site Collection Feature under Site Actions –> Site Settings –> Site Collection Features:

image

Or activated by PowerShell via: Enable-SPFeature –id “DocumentSet” -url “<site collection url>”

Upon activation, you create a new content type based upon the Parent Document Set content type and add that content type to your library.

Some things to be aware of:

  • You cannot group by content types on views in document sets
  • Folders and metadata navigation are not supported

 

The complete list of this series can be seen by the following links:

1. Introduction
2. Document IDs
3. Managed Metadata Service (Term Store)
4. In-Place Records Declarations
5. Site Collection Auditing
6. Content Organizer
7. Compliance Details
8. Hold and eDiscovery
9. Content Type Publishing Hubs
10. Multi-Level Retention
11. Virtual folders and metadata based navigation
12. Scaling
13. Send To...
14. Document Sets

 

[1] http://office.microsoft.com/en-us/sharepoint-server-help/introduction-to-document-sets-HA101782466.aspx

 

SQL Server 2008 – Administrator account denied access or locked out

I don’t know how many times my clients have given me administrator access to the SQL Server machine thinking I will automatically have access to administer the SQL Server.  However, in SQL Server 2008 and above (i.e. SQL Server 2008 R2), there is a new security feature where the installer doesn’t automatically add the local server administrators group as SysAdmin on the server.  The person doing the install has to remember to do this during setup.  Most of the time, they don’t do it or forget to do it.

Take the following steps to add yourself as SysAdmin on the SQL Server to have full access:

1. Stop the SQL Server instance and the SQL Server Agent service in your services (by going to administrative tools –> services or typing in services.msc from your run box)

image

2. Open a command prompt as an Administrator

image

3. Locate your sqlservr.exe file (usually located in C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn directory) and CD to that directory:

CD C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn

image

4. Run the following command and ignore any errors that may occur during run – this starts the SQL Server Service in single user mode [1] :

sqlservr.exe -m -s MSSQLSERVER

Note: MSSQLSERVER above is the name of your instance – usually the same as the last item after the “.” in the directory path i.e. C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER )

image

 

5. Once that is run, check to see if the service in step 1 is activated (don’t forget to refresh the screen) and then open up SQL Server Management Studio

6. Once SQL Management Studio opens, go to the security tab, add your account and make them a SysAdmin

 

image

7. In your services, stop and restart the SQL Server and SQL Server Agent services

image

[1] http://msdn.microsoft.com/en-us/library/ms188236.aspx

SharePoint 2010 In Place Records and Holds Viewer

Introduction

Through my dealings with Records Management features in SharePoint 2010, I noticed there wasn’t an easy out-of-the-box way to filter to see all the declared In-Place Records and Holds across your site collection.  Hence, I decided to create a tool to help Site Collection Administrators to report and be able to see them in a simple custom list.

Tool Description

The SharePoint 2010 In Place Records Viewer tool makes it easy for users to view all In-Place Records and Holds declared across your site collection.

image

image

In Place Records Management is a new feature in SharePoint 2010 where by instead of moving a document to a specific SharePoint 2010 Records Center in order to declare it a record, a document can be declared and handled as a record within site it was created in. After having declared the document as a record, the document can now have policies and restrictions different from when it was just a document in the site. Read more about it on my blog.

The tool that I have written basically gathers an inventory of all In Place Declared Records and Holds in your SharePoint site collection.

It's activated by a hidden site collection feature and uses a timer job to gather all the declared records within your site collection within a root list.  Note that this is not limited to documents but also works with list items as well.

As an added bonus, I also store any Holds across your Site Collection here as well. Read more about holds on my blog.


Summary

 

The latest release and solution installer files can be downloaded in the downloads section here:

http://sp2010inplacerecords.codeplex.com/releases

The source code and deployment files have been uploaded to the CodePlex source code and downloads section.

Please log any issues on CodePlex and please provide feedback there as well. I welcome any feedback for improvements. Also, if you would like to contribute to this CodePlex project, let me know.

Please note that you should use this at your own risk, as it does use a site level SPSiteDataQuery across all the site collections that have the feature enabled and as always note my “works on my machine” disclaimer.

Note that the feature is installed as a hidden, site collection level, global feature, so you won’t be able to browse to the site actions –> site settings –> site collection features and activate/deactivate it there, instead you will have to run the Solution Installer tool that I have included in the release or activate/deactivate it using PowerShell on the site collection:

Enable-SPFeature SP2010InPlaceRecordsViewer_InPlaceRecordsViewer -Url http://server:port

It was purposely created as hidden to avoid any RemoteAdministratorAccessDenied errors which is a new security feature in SharePoint 2010 (http://support.microsoft.com/kb/2564009).

You can also choose to run the Solution Installer tool that I have included in the release package.

The installation and configuration instructions can be found on my blog at: http://www.khamis.net/blog/Lists/Posts/Post.aspx?ID=65

Technical Notes (important - please read):

Upon installation of the solution package to a site collection and feature activation, the solution performs the following:

  1. Creates a new list definition for the In Place Records Viewer list with the fields I wanted to store (Record File Name, Title, Declared Date, Size, etc.…)
  2. Creates a hidden instance of the above list definition at the root of the site collection (i.e. http://myserver/Lists/InPlaceRecords), Note: if the list exists already, it will be deleted and re-created
  3. This root level “In Place Records” SharePoint custom list where I store the inventory of all the declared records and holds across the site collection
  4. Creates a Site Settings Custom Action Group (In Place Records) and a Custom Action (In Place Declared Records Viewer) that links to the hidden list (i.e. http://myserver/Lists/InPlaceRecords)
  5. Creates a Timer Job that executes daily between 1AM & 3AM (Upon initial Feature Activation, it will also create a Run Once job that runs 3 minutes from the time the feature is activated)
  6. The Timer Job will first check to see if the feature is activated on the site collection and if it is activated, it will delete and create the InPlaceRecords list
  7. The Timer Job will then run a SPSiteDataQuery for every type of list you have on your site collection and check to see if there are any declared records and holds in your site collection
  8. The declared records and holds are then stored with specific meta-data on the InPlaceRecords list
  9. The InPlaceRecords list and site settings links should only be accessible and visible to site collection administrators (this is purposely done)

Installation Instructions

Installation Instructions

1. Download the latest SP2010CAResourceLinkGenerator solution installer zip file from http://sp2010inplacerecords.codeplex.com.  Note that I have chosen to use a version of the SharePoint Solution Installer (http://sharepointinstaller.codeplex.com) to make it easier for SharePoint Administrators to deploy

2. Extract the files to your main SharePoint 2010 web application server

image

3. Run Setup.exe

image

4.  Ignore the one yellow error in the below screen (I have found an unsupported converted version of the Solution Installer to work with SP 2010 and it has some bugs)

image

5. Choose the Site Collection (expand the drop down) you would like to deploy to. 

image

6. Wait for the job to complete as it will:

a) Add the solution file to your SharePoint web application as a site collection feature,

b) Automatically activate the site collection level feature on your chosen site collection

c) Provision the InPlaceRecords list at the root of your site collection (i.e. /lists/InPlaceRecords)

d) Create a timer job that runs once 3 minutes after feature activation and one that runs daily in between 1am and 3am

e) Each night, this timer job will recreate the InPlaceRecords list and populate it with all the Declared Records and Holds across your site collection

image

image

7. To uninstall the feature and solution, just run setup again and go through the wizard.

Speaking at SharePoint Summit 2012 in Toronto

image

The SharePoint Summit will be in Toronto, Canada from May 14 to May 16, 2012. 

My session is on day 3 (Wednesday, May 16th) @ 3:00pm.  I will doing a level 100 Introductory Track on “Major Intranet Trends - What are your Peers Doing for Their SharePoint Intranets?”:

“This is an introductory level session where we will be going through many of the trends seen in modern Intranets that are built on top of the SharePoint platform. The session will focus on everything from small custom or 3rd party web parts that are quick and easily to deploy and that effectively address common Intranet needs, to custom complex Intranet solutions that some Enterprises have chosen to deploy.”

Click here to go to the Summit Web Site.

 

What can you expect at the SharePoint Summit 2012?

  • Designed and developed by SharePoint customers, consultants and solution providers, the SharePoint Summit 2012 is a unique place to meet the key players in the world of SharePoint and learn from their successes (and their mistakes).
  • Sessions ranging from introductory to advanced deep dives suitable for you whether you are new to SharePoint or a SharePoint expert
  • Sessions targeted to multiple audiences, including:
    • Developers
    • Power Users
    • Business Managers
    • Information Architects
    • Project Managers
    • IT Management
  • Sessions focused on the topics you care about, including:
    • Case Studies
    • Change Management
    • Development
    • Governance
    • Implementation Methodology
    • Information Architecture
    • Knowledge Management
    • Business Solutions
Records Management features in SharePoint 2010: Part 13– Send to connections

Overview

“Send to" ECB (edit control block or dropdown) menu option can be customized to send documents to multiple records management centers, not just one like SharePoint 2007.

It can now do more than just copy a document (like in SharePoint 2007), it can now:

  1. Move the document
  2. Copy the document
  3. Move the document and leave a link to it so it is still accessible from original library

It’s configured in Central Admin –> General Application settings –> Configure Send to Connections:

image

image

When the “Send to” connection is configured to “move and leave a link”, the document appears with a short-cut symbol to it and points to a page with a special short-cut URL directly to where the document ended up.  Every document in the Records Center will have a Document ID with it and this document ID URL has the ability to follow the document to it’s final destination.  It has a Document ID associated with it and it points to a URL like: “/_layouts/DocIdRedir.aspx?ID=XQ626KCMTU4R” where the Document ID is XQ626KCMTU4R.

image

The document itself, gets replaced with a web page of aspx format that is the same as the document name, except that it is with the aspx extension.  When you click on the link, you get a page that indicates the document has been moved along with the explanation you fill in during the Send To Connection setup along with the new document id url:

image

 

To be able to use the Send To connection, you need to point to a site that has the Content Organizer feature activated.  Again, this is different from SharePoint 2007, where it was only available in your one Records Center.  You can activate the Content Organizer on any type of site.

Once the content organizer is activated, it creates the ability to connect to the OfficialFile Web Service.  This web service needs to be pointed to during the initial Send To connection configuration.  To get the URL for the OfficialFile Web Service go to your Records Center (or the site where you have the content organizer activated):

1. In Site Actions –> Site Settings.

2. Click Content Organizer Settings link in Site Administration section

3. At the bottom of page, in Submission Points section, find the URL for the official file web service

clip_image002

4. In the Central Admin Send to connections, us the URL specified. (i.e. http://yoururl/sites/records/_vti_bin/officialfile.asmx)

 

The complete list of this series can be seen by the following links:

1. Introduction
2. Document IDs
3. Managed Metadata Service (Term Store)
4. In-Place Records Declarations
5. Site Collection Auditing
6. Content Organizer
7. Compliance Details
8. Hold and eDiscovery
9. Content Type Publishing Hubs
10. Multi-Level Retention
11. Virtual folders and metadata based navigation
12. Scaling
13. Send To...
14. Document Sets

 

Records Management features in SharePoint 2010: Part 12– Scalability and Performance

Overview

  • Think scalability and performance first!
    • Invest time performing an in-depth current content inventory of Records (are we looking at terabytes?)
    • What are your growth estimates for the size of your electronic record inventories?
  • Large collections of Records require careful planning on numbers and locations of content databases, site collections, sites and document libraries in relation to the file plan
  • Bottom Line: Invest time in planning the SharePoint Logical Architecture for your Records Center
  • Some more thoughts:
    • Try and limit the size of your content databases to 50 GB to 100 GB
    • For very large archives of records, organize your Records Center repositories as independent site collections rather sub-sites and document libraries (consider making a site collection per category in your file plan)
    • Consider RBS
    • Clearly think of your backup, restore and disaster recovery strategy

 

How SharePoint 2010 can help with scaling [1]

SharePoint 2010 has many features to make it easier to scale to massive archives such as:

  • Database query performance optimizations [2]
  • SQL 2008’s Remote Blob Storage (RBS) decreased size of content DB [3]
    • Basically takes binary data out of your content databases resulting in the binary data on the file systems themselves and the metadata in the databases reducing the database size and improving scalability and performance
  • Internal timer job processing improvements
  • Highly scalable search along with new database indexing strategies [4]
    • Compound indexing, index management, and content-by-query optimizations
    • SharePoint now supports multiple index servers
    • Content index can now be divided into multiple index partitions
    • Each index server can be configured to run multiple crawlers
    • Multiple crawlers can crawl content in parallel
    • Index servers are now stateless.  The crawlers build the content index and propagate directly to the query servers. 
    • multiple query servers benefits of redundancy and parallel performance can be made available
    • crawl management and property store data tables have been split into separate databases and multiple tables of this kind can be configured. 
  • List optimizations
    • Tens of millions of docs in a single list
  • Service Applications Architecture
  • New Send to connections allow moving of records instead of just copying
  • Multiple Records Center Site Collections
  • Internal database improvements (e.g. lock ordering, throttling, IOPS efficiency)
  • Background per-item processing throughput maximization
  • Content Organizer is able to organize your Records Repositories
  • Content Type Syndication allows central location to inherit and publish from

 

This allows:

  • Millions of records in a single Records Center
  • Multiple Records Centers! (new in SharePoint 2010, in 2007 you were only allowed 1)
  • A distributed archive allowing many Record Centers to bind together to act as one logical repository
  • Fast searching through your archives of records
  • An easy mechanism to move records to the archive of your choice and leave a reference to where it now exists

But this does not excuse you from planning your architecture for scalability and performance!!

Visit Microsoft’s Technet article called “SharePoint Server 2010 capacity management: Software boundaries and limits” [5] to see more of SharePoint 2010’s new boundaries, recommendations and thresholds that can help with scaling, capacity and performance for your Records Management Solution.  I have listed some here:

 

Limit Threshhold or Maximum
Zone 5 per Web application
Managed path 20 per Web application
Solution cache size 300 MB per Web application
Site collection 250,000 per Web application
Application pools 10 per Web server
Content database size (general usage scenarios) 200 GB per content database
Content database size (all usage scenarios) 4 TB per content database
Content database size (document archive scenario) No explicit content database limit
Content database items 60 million items including documents and list items
Site collections per content database 2,000 recommended, 5,000 maximum
Remote BLOB Storage (RBS) storage subsystem on Network Attached Storage (NAS) Time to first byte of any response from the NAS cannot exceed 20 milliseconds
Web site 250,000 per site collection
Site collection size Maximum size of the content database
List row size
8,000 bytes per row
File size 2 GB
Documents 30,000,000 per library
Major versions 400000 maximum
Items 30,000,000 per list
Rows size limit 6 table rows internal to the database used for a list or library item
Bulk operations 100 items per bulk operation
List view lookup threshold 8 join operations per query
List view threshold 5000 maximum
List view threshold for auditors and administrators 20000 maximum
Subsite 2,000 per site view
Coauthoring in Microsoft Word and Microsoft PowerPoint for .docx, .pptx and .ppsx files 10 concurrent editors per document
Security scope 1,000 per list
Web parts
25 per wiki or Web part page
Number of SharePoint groups a user can belong to
5000
Users in a site collection 2 million per site collection
Active Directory Principles/Users in a SharePoint group 5,000 per SharePoint group
SharePoint groups 10,000 per site collection
Security principal: size of the Security Scope 5,000 per Access Control List (ACL)

 

The complete list of this series can be seen by the following links:

1. Introduction
2. Document IDs
3. Managed Metadata Service (Term Store)
4. In-Place Records Declarations
5. Site Collection Auditing
6. Content Organizer
7. Compliance Details
8. Hold and eDiscovery
9. Content Type Publishing Hubs
10. Multi-Level Retention
11. Virtual folders and metadata based navigation
12. Scaling
13. Send To...
14. Document Sets

 

 

[1]

http://blogs.msdn.com/b/ecm/archive/2010/02/13/introducing-records-management-in-sharepoint-2010.aspx

[2]

http://blogs.msdn.com/b/enterprisesearch/archive/2010/06/09/sharepoint-2010-search-dogfood-part-3-query-performance-optimization.aspx

[3]

http://technet.microsoft.com/en-us/library/ee748607.aspx

[4]

http://www.houberg.com/2009/10/sp2010_scalability_2_of_4_sharepoint_search/

[5]

http://technet.microsoft.com/en-us/library/cc262787.aspx

Free Online Service to convert SharePoint CAML Queries to c#

Powered by their Codeplex project - Camlex.NET (http://camlex.codeplex.com), Alexey Sadomov and Vladimir Timashkov have released a free online service to convert your CAML Query Strings into c# code.  All you have to do is type in your CAML query and it will spit out the corresponding c# lambda expression you can use in your code.

Example by typing in this CAML Query:

<Query>
  <Where>
    <And>
        <Eq>
            <FieldRef Name="ID" />
            <Value Type="Integer">1</Value>
        </Eq>
        <Eq>
            <FieldRef Name="Title" />
            <Value Type="Text">Hello world</Value>
        </Eq>
    </And>
  </Where>
</Query>

You get this code:

Camlex.Query().Where(x => (int)x["ID"] == 1 && (string)x["Title"] == "Hello world") 

The link to the free service is: http://camlex-online.org/

My favorite tool to generate the CAML query itself is still CAML Query Builder by U2U which can be used in both SharePoint 2007 and 2010: http://www.u2u.net/Tools/wincamlquerybuilder/CamlQueryBuilder.aspx

 

Technorati Tags: ,,
1 - 7 Next
 

 Image Viewer

 
Welcome to Rez's SharePoint Blog Spot
 
About Me

MVPLogo.gif I'm a Microsoft MVP and SharePoint Architect who enjoys working with the cutting-edge Microsoft technologies and have been in the industry for more than 13 years.
 
 
My Company

StoneShare Consulting
StoneShare is the preferred destination for SharePoint specific products and services in the Toronto and Ottawa area.  Feel free to visit our web site at http://www.stoneshare.com if you have any questions.

 
Connect with me via LinkedIn