A Practical Guide to SharePoint 2013

A Practical Guide to SharePoint 2013
A Practical Guide to SharePoint 2013 - Book by Saifullah Shafiq

Thursday, May 18, 2006

"A site template has been applied to this site"

This is a very frequent error that users get especially when restoring backed up sites.  Here is the exact error message:
Server error: A site template has already been applied to this site. Once a template has been applied, the site must be deleted and recreated in order to apply a different template.
I just found a link on Microsoft site that confirms that this is a problem in the Microsoft products. Here is the link:
I would suggest users to use the second technique, that is, saving your site using "Save as Template" option. Note that you only get this error when you are trying to migrate your site from one location to another, especially if that *another* location is SPS 2003. If you are restoring the site to it's original location, then you don't get this error.
Here is a work around for this problem:
Create a new site on the target location (where you want to restore the site) and when "Select Template" page loads, do not apply a template and leave the page open. Now return to your back up site and restore it. You won't get an error this way because no template was applied to the site. 


Thursday, May 4, 2006

Creating your own document library with your own set of fields

Creating your own document library with your own set of fields

You manage a large document management system in your organization. Your organization has many departments. You create a site for each department and each site has a document library. You add some custom fields in your library but you don't want the dialog box to pop-up asking users to enter values for the custom fields whenever they insert a new document. You may have experienced this in your company. When you add custom fields in your document or form library, a dialog box pops up every time user tries to add a new document. Suppose, the number of custom fields exceeds 10. You don't want your users to be presented with a dialog box with more than 10 fields to be filled up every time they add a file. You need to add these fields in all the document libraries in your SharePoint Portal. What do you do? Go to each library, and add these fields? Not a good solution!! Wouldn't it be nice if all these fields get added to your document library template? This way when you will add a new document library to a site, all the custom fields will already be part of the document library and interestingly, you won't get that dialog box popping up each time a document is added to the library.
Let's create a document library template of our own with the following new fields:
1. Level
2. Workflow
3. Approver
Here are the steps to create a template of our own:
1. Go to following location: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions60TEMPLATE1033STSLISTS
2. Copy "DOCLIB" folder and paste it in the same folder. Rename new folder to "MYDOCLIB"
3. Go to: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions60TEMPLATE1033STSXML. This location contains ONET.XML file.
4. After taking back up of the original file, open ONET.XML and locate the following line:

<ListTemplate Name="doclib" DisplayName="Document Library" Type="101" BaseType="1" OnQuickLaunch="TRUE" SecurityBits="11" Description="Create a document library when you have a collection of documents or other files that you want to share. Document libraries support features such as sub-folders, file versioning, and check-in/check-out." Image="/_layouts/images/itdl.gif" DocumentTemplate="101"></ListTemplate>

Copy and paste the following line underneath the above line:

<ListTemplate Name="mydoclib" DisplayName="My Document Library" Type="899" BaseType="1" OnQuickLaunch="TRUE" SecurityBits="11" Description="This is a customized Document Library. Create a document library when you have a collection of documents or other files that you want to share. Document libraries support features such as sub-folders, file versioning, and check-in/check-out." Image="/_layouts/images/itdl.gif" DocumentTemplate="101"></ListTemplate>

5. Open Schema.xml from the following path:
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions60TEMPLATE1033STSLISTSMYDOCLIB
6. Take backup of the original file before making changes. Locate following code in the schema.xml:
<List xmlns:ows="Microsoft SharePoint" Name="Documents" Title="Shared Documents" Direction="0" Url="Shared Documents" BaseType="1" >

Inside <Fields> tag, you can include your own fields. Add following lines inside <Fields> and </Fields> tags:

<Field Type="Text" Name="Level" ShowInNewForm="FALSE" ShowInFileDlg="FALSE" DisplayName="Level"></Field>
<Field Type="Text" Name="WorkFlow" ShowInNewForm="FALSE" ShowInFileDlg="FALSE" DisplayName="WorkFlow"></Field>
<Field Type="Text" Name="Approver" ShowInNewForm="FALSE" ShowInFileDlg="FALSE" DisplayName="Approver"></Field>

Save schema.xml!
7. Restart IIS.
Now, go to "CREATE" page, you will see two document library templates. Select your newly added template and create a document library. This library will have additional fields by default. You can add as many fields as you like. 



Wednesday, May 3, 2006

Antivirus products for SharePoint

Traditional Anit-Virus programs do not detect viruses in SharePoint document libraries and hence, it is important to use products specific to SharePoint. There are viruses that use vulnerability in SharePoint to allow cross site scripting and spoofing attacks, for example, Bloodhound.Exploit.27 virus.

Here are some products that you can use:
I have tested Sybari and Symantec products, both work fine with SharePoint.


SharePoint Explorer

SharePoint Explorer

I have written a small application that will search your SharePoint Portal for sites and lists. All information will be saved in the database. Application has a small interface with three buttons.
Here are the instructions on how to set up this application on your machine. I could have provided a setup but that would have taken lot of space unnecessarily. It is a small application. One EXE and a couple of DLLs!! I have included the complete source code. If EXE gives you an error and tells you that a DLL is missing, just open the project in your studio, include the missing DLLs and compile it.
1. Unzip the zip file to a location on your hard disk.
2. DB folder contains "db.sql" file. Run this file in SQL Query Analyzer to create database tables and stored procedures. It will create a database named "EDMS".
3. "Config" folder contains "traverse.cfg". This file contains database connection string and your portal's URL.
[database connection string]
[Root URL]
Modify the following line in the configuration file and provide correct parameters like your SQL Server name, database name, user ID and password if any:
Following line contains URL of your portal site. Edit this line. URL should point to your portal. Do not remove the trailing slash ("/").
Save the file and copy it to your System32 folder on your system drive. For example, If your system drive is C: then copy "traverse.cfg" to "C:WindowsSystem32".
4. BIN folder inside SPExplorer folder contains the EXE file and the DLLs. This EXE is dependant on the following files to run:
a. Interop.Excel.dll
b. Interop.Scripting.dll
c. SPLib.dll
 5. SPExplorer folder contains the source code of the main application. There is another folder called as SPLib. This folder contains the source code for the SPLib.dll assembly.

What does this application do?

This application traverses your portal and finds all sites, subsites, folders, subfolders, lists, etc. It can go to n levels deep for searching. All information is stored in the database. For your convenience, I have created a function that extracts all information from the database and stores it in an Excel file. Click "Start Processing" button to start searching the portal. Click "Generate Excel File" to generate the excel file. Excel file named as SPE-current date-seconds.xls will be generated in the folder where the EXE is being run from. You can run this application periodically to keep the data in the DB updated. After every run, generate a new Excel file. This Excel can be distributed to the managers or other technical people who may be interested to know the number of sites in their organization. Usually, at an enterprise level, each site represents a department in the organization. Therefore, managers may find it useful to have all information about their departments in one place.
This application will serve as a good example for beginners to learn about SharePoint object model.
Send your comments to share.point@yahoo.com


Tuesday, May 2, 2006

Error: Local admin can access my WSS sites

A user who has not been permitted access to the content in your Windows SharePoint Services Web sites has full access to this content. The user can visit any Web page in all your Windows SharePoint Services Web sites. Because of the security requirements in your organization, you may not want all the members of the local Administrators group to have this access. 

Here is the hotfix from Microsoft: