In case you encounter the Update Conflict Error:
1. Stopping wss timer job, Saving Copy of the cache.ini file from C:\Documents and Settings\All Users\application data\Microsoft\SharePoint\Config folder. Clearing all the .xml files from the location except cache.ini but Edit the cache.ini to have value 1. Starting the timer job
2. Rerun the Sharepoint technology wizard on the server.
3. If all above doesnt work, you may run the configuration wizard. select the option to disconnect the server from server farm and revert back again at next step (so you actually do not disconnect). Selected the option as not to disconnect from server farm and ran the wizard successfully.
http://blogs.technet.com/corybu/archive/2007/05/31/sharepoint-orphans-explained.aspx
Tuesday, October 26, 2010
Monday, October 25, 2010
MOSS 2007 Backup & Restoration
Back up a farm by using SQL Server tools (Office SharePoint Server 2007)
http://technet.microsoft.com/en-us/library/cc263069(v=office.12).aspx
Restore a farm by using SQL Server tools (Office SharePoint Server 2007)
http://technet.microsoft.com/en-us/library/cc262197(v=office.12).aspx
http://technet.microsoft.com/en-us/library/cc263069(v=office.12).aspx
Restore a farm by using SQL Server tools (Office SharePoint Server 2007)
http://technet.microsoft.com/en-us/library/cc262197(v=office.12).aspx
Tuesday, July 20, 2010
SharePoint Patterns & Practices
The download includes patterns & practices for both SharePoint 2007 and 2010, applicable for implementing content-driven or event-driven SharePoint applications as well as integrating line of business applications.
http://msdn.microsoft.com/en-us/library/dd203468.aspx
Must read.
http://msdn.microsoft.com/en-us/library/dd203468.aspx
Must read.
Thursday, June 10, 2010
Notes on Workflows
- TaskName_MethodInvoking
- Listen Activity
- OnWorkflowItemChanged
- OnWorkflowItemDeleted
- WorkflowProperties.Item("Name").String
Wednesday, June 9, 2010
SharePoint Version
From the Site Settings Page
- Go to Site Actions > Site Settings
- Go to SharePoint 3.0 Central Administration
- Operations > Servers in Farm
Thursday, June 3, 2010
Tuesday, May 18, 2010
VSTA
InfoPath forms with custom-code will require an add-in called VSTA (Visual Studio Tools for Application). VSTA can be added through the MS Office Enterprise instance (Control Panel > Add/Remove Programs > Change).
Thursday, March 25, 2010
Creating, Modifying SharePoint Views Programmatically
Creating a New View
String[] colArray = new String[] { "Column1", "Column2", "Column3” };
StringCollection colCollection = new StringCollection();
colCollection.AddRange(colArray);
String viewQry = “Your CAML Query Here’;
SPView newView = YourList.Views.Add(“View Title”, colCollection, viewQry, 100, true, false);
Note: 100 is the item limit, true is allow paging and false is to set as the default view
Adding Fields to an Existing View
SPList oList = oWebsite.Lists["List_Name"];
SPView oView = oList.Views["All Items"];
SPViewFieldCollection collViewFields = oView.ViewFields;
collViewFields.Add("Created");
oView.Update();
Adding a "Group By" to the View
String query = " ";
view.Query += query;
view.Update
String[] colArray = new String[] { "Column1", "Column2", "Column3” };
StringCollection colCollection = new StringCollection();
colCollection.AddRange(colArray);
String viewQry = “Your CAML Query Here’;
SPView newView = YourList.Views.Add(“View Title”, colCollection, viewQry, 100, true, false);
Note: 100 is the item limit, true is allow paging and false is to set as the default view
Adding Fields to an Existing View
SPList oList = oWebsite.Lists["List_Name"];
SPView oView = oList.Views["All Items"];
SPViewFieldCollection collViewFields = oView.ViewFields;
collViewFields.Add("Created");
oView.Update();
Adding a "Group By" to the View
String query = "
view.Query += query;
view.Update
Tuesday, March 23, 2010
String Manipulations in ASP.NET
Find String within string
This code shows how to search within a string for a sub string and either returns an index position of the start or a -1 which indicates the string has not been found.
string MainString = "String Manipulation";
string SearchString = "pul";
int FirstChr = MainString.IndexOf(SearchString);
Strip specified number of characters from string
This example show how you can strip a number of characters from a specified starting point within the string. The first number is the starting point in the string and the second is the amount of chrs to strip.
string MainString = "S1111tring Manipulation";
string NewString = MainString.Remove(1,4);
This code shows how to search within a string for a sub string and either returns an index position of the start or a -1 which indicates the string has not been found.
string MainString = "String Manipulation";
string SearchString = "pul";
int FirstChr = MainString.IndexOf(SearchString);
Strip specified number of characters from string
This example show how you can strip a number of characters from a specified starting point within the string. The first number is the starting point in the string and the second is the amount of chrs to strip.
string MainString = "S1111tring Manipulation";
string NewString = MainString.Remove(1,4);
Thursday, March 18, 2010
Creating Lookup, Multi-Value Fields in SharePoint
Because lookup fields are not included when you save a list as template in SharePoint, you might need to create custom code to programmatically add these fields to a list during site provisioning. Here's how:
SPSite site = new SPSite (siteURL);
SPWeb web = site.OpenWeb();
SPList departmentList = web.Lists["Department"];
SPList employeeList = web.Lists["Employees"];
employeeList.Fields.AddLookup("Department", departmentList.ID, false);
Lookup field in this case is the Department field which was added to the Employee list. Afterwards, you may set this field as a multi-value field:
SPFieldLookup categoryField = (SPFieldLookup)eLibrary.Fields[fldName];
categoryField.AllowMultipleValues = true;
categoryField.Update();
SPSite site = new SPSite (siteURL);
SPWeb web = site.OpenWeb();
SPList departmentList = web.Lists["Department"];
SPList employeeList = web.Lists["Employees"];
employeeList.Fields.AddLookup("Department", departmentList.ID, false);
Lookup field in this case is the Department field which was added to the Employee list. Afterwards, you may set this field as a multi-value field:
SPFieldLookup categoryField = (SPFieldLookup)eLibrary.Fields[fldName];
categoryField.AllowMultipleValues = true;
categoryField.Update();
Reading XML Documents
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("Setup.xml"));
XmlNode root = doc.DocumentElement;
string url = root.SelectSingleNode("url").ChildNodes[0].Value;
doc.Load(Server.MapPath("Setup.xml"));
XmlNode root = doc.DocumentElement;
string url = root.SelectSingleNode("url").ChildNodes[0].Value;
Sunday, March 7, 2010
WSS v3 Custom Web Parts
- http://msdn.microsoft.com/en-us/library/bb530302.aspx
- Creating a Windows SharePoint Services 3.0 Web Part Using Visual Studio 2005 Extensions: http://msdn.microsoft.com/en-us/library/aa973249.aspx
- Web Part Class: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webpart.aspx
Thursday, March 4, 2010
Custom Field Types in SharePoint
Minimum requriements:
A field type definition. This field type definition is an XML file that contains the information that Windows SharePoint Services needs to correctly render the field, including its column header, on list view pages (such as AllItems.aspx). It is typically also used to render the field on the view list item page (DispForm.aspx) and sometimes it is used to render the field on the New or Edit (list item) pages. It can also declare and define special variable properties of the field type whose values will be set whenever a column is created based on the field type. Most importantly, it contains information about the assembly that includes the compiled field type.
A field class. This is a class whose instances can represent particular fields that are based on your custom field type. This class must inherit from SPField or one of the classes in Windows SharePoint Services that derive from it. The class is compiled into a strong-named assembly and you deploy it to the global assembly cache. In the context of a list view, an SPField object represents a column and its properties, such as whether it can be sorted. In the context of the Display, New, and Edit modes, an SPField object represents a particular field of a list item — a cell in the table that constitutes the list — and the value of that cell in the content database.
A rendering control class. This is a class that can be used, in conjunction with a rendering template (see below), to render your fields in New mode or Edit mode, or, less commonly, in Display mode. This class must inherit from BaseFieldControl or one of the classes in Windows SharePoint Services that derive from it. This class is compiled into the same assembly as the field class.
A rendering template. The rendering template is defined in an .ascx file located in C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\ControlTemplates.
An editing control for the variable properties of the field type. All field types require a name, a data type, a description, and other common properties; but many field types also have properties that are relevant only to fields of that particular type. These variable properties are set by users in the UI when they create a new column that is based on the field type. Usually, an element in the field type definition (see above) determines how these property setting controls are rendered. But sometimes a special editing control is required. Such a control is defined in an .ascx file that usually has a code-behind file that contains its logic. Creating a special editing control is recommended if you need to perform custom functions, such as complicated computational logic, looking up values from data sources, or custom data validation of the values that a user might choose when configuring a new column.
Source: http://msdn.microsoft.com/en-us/library/ms446361.aspx
A field type definition. This field type definition is an XML file that contains the information that Windows SharePoint Services needs to correctly render the field, including its column header, on list view pages (such as AllItems.aspx). It is typically also used to render the field on the view list item page (DispForm.aspx) and sometimes it is used to render the field on the New or Edit (list item) pages. It can also declare and define special variable properties of the field type whose values will be set whenever a column is created based on the field type. Most importantly, it contains information about the assembly that includes the compiled field type.
A field class. This is a class whose instances can represent particular fields that are based on your custom field type. This class must inherit from SPField or one of the classes in Windows SharePoint Services that derive from it. The class is compiled into a strong-named assembly and you deploy it to the global assembly cache. In the context of a list view, an SPField object represents a column and its properties, such as whether it can be sorted. In the context of the Display, New, and Edit modes, an SPField object represents a particular field of a list item — a cell in the table that constitutes the list — and the value of that cell in the content database.
A rendering control class. This is a class that can be used, in conjunction with a rendering template (see below), to render your fields in New mode or Edit mode, or, less commonly, in Display mode. This class must inherit from BaseFieldControl or one of the classes in Windows SharePoint Services that derive from it. This class is compiled into the same assembly as the field class.
A rendering template. The rendering template is defined in an .ascx file located in C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\ControlTemplates.
An editing control for the variable properties of the field type. All field types require a name, a data type, a description, and other common properties; but many field types also have properties that are relevant only to fields of that particular type. These variable properties are set by users in the UI when they create a new column that is based on the field type. Usually, an element in the field type definition (see above) determines how these property setting controls are rendered. But sometimes a special editing control is required. Such a control is defined in an .ascx file that usually has a code-behind file that contains its logic. Creating a special editing control is recommended if you need to perform custom functions, such as complicated computational logic, looking up values from data sources, or custom data validation of the values that a user might choose when configuring a new column.
Source: http://msdn.microsoft.com/en-us/library/ms446361.aspx
Wednesday, March 3, 2010
Event Handler Explorer
Determine whether an event-handler has been successfully attached to your lists or document libraries:
http://didierdanse.net/blogs/dev_en/archive/2009/02/28/sharepoint-how-to-debug-event-handlers.aspx
http://didierdanse.net/blogs/dev_en/archive/2009/02/28/sharepoint-how-to-debug-event-handlers.aspx
Signing an Assembly in .NET
Here are steps in order to sign an assembly using Visual Studio and be able to deploy that to the GAC:
- Open the Project within Solution Explorer
- Right-Click and Select Properties
- Switch to the "Signing" tab
- Select the option to "Sign the Assembly"
Lutz Roeder's .NET Reflector
The.NET Reflector is a class browser and decompiler that can examine an assembly and show you just about all of its secrets. The .NET Framework introduced reflection which can be used to examine any .NET-based code, whether it is a single class or an entire assembly. Reflection can also be used to retrieve information about the various classes, methods, and properties included in a particular assembly. Using .NET Reflector, you can browse the classes and methods of an assembly, you can examine the Microsoft intermediate language (MSIL) generated by these classes and methods, and you can decompile the classes and methods and see the equivalent in C# or Visual Basic® .NET.
You may download here.
You may download here.
Sunday, January 31, 2010
Chapter 2: MOSS Search
Schema
.AllManagedProperties
.QueryCrawledProperties
ManagedProperty
.GetMappings()
Mapping
.CrawledPropertyName
schema.AllManagedProperties.Create(name, type);
MappingCollection
CrawledProperty
mappings.Add(new Mapping(crawledprop.Propset, crawledprop.Name, crawledprop.VariantType, managedprop.PID));
managedproperty.SetMappings(mappings);
Customizing the Search Center
.AllManagedProperties
.QueryCrawledProperties
ManagedProperty
.GetMappings()
Mapping
.CrawledPropertyName
schema.AllManagedProperties.Create(name, type);
MappingCollection
CrawledProperty
mappings.Add(new Mapping(crawledprop.Propset, crawledprop.Name, crawledprop.VariantType, managedprop.PID));
managedproperty.SetMappings(mappings);
Customizing the Search Center
- Lite - does not require Publishing Feature
- IIS Web Application is associated to an SSP
- With Tabs - fully customizable
- Page layouts - Search Page (Search Box WP), Search Results Page, Advanced Search Page (Advanced Search Box WP), People Search Results Page
- Tabs - All Sites, People; are items stored in two lists
- Search Box WP - has a Scopes Dropdown
- Search Summary WP - corrects the Spelling
- Search Core Results WP - stemming is disabled by default. Example: buy matches buying, bought. Noise word query is enabled by default. Example: the, a, an. Can be configured to have a fixed keyword query. Has a Selected Columns property that you can add/remove from.
Monday, January 25, 2010
Sample Stored Procedure, Query for SSRS
CREATE PROCEDURE prCustomerOrders
@startDate DATETIME, @endDate DATETIME
AS
SELECT
c.CustomerID, c.CompanyName,
c.City, c.ContactName,
o.OrderID, o.OrderDate,
od.UnitPrice, od.Quantity,
od.UnitPrice * od.Quantity AS ExtendedPrice
FROM
Customers c
INNER JOIN
Orders o ON c.CustomerID = o.CustomerID
INNER JOIN
[Order Details] od ON o.OrderID = od.OrderID
WHERE
o.OrderDate BETWEEN @startDate AND @endDate
ORDER BY
c.CompanyName, o.OrderDate
---------------------
SELECT
S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday,
S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName
FROM
HumanResources.Employee E
INNER JOIN
Person.Contact C ON E.ContactID = C.ContactID
INNER JOIN
Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
WHERE
(S.OrderDate BETWEEN (@StartDate) AND (@EndDate) AND
S.SalesPersonID IN (@SalesPersonID))
@startDate DATETIME, @endDate DATETIME
AS
SELECT
c.CustomerID, c.CompanyName,
c.City, c.ContactName,
o.OrderID, o.OrderDate,
od.UnitPrice, od.Quantity,
od.UnitPrice * od.Quantity AS ExtendedPrice
FROM
Customers c
INNER JOIN
Orders o ON c.CustomerID = o.CustomerID
INNER JOIN
[Order Details] od ON o.OrderID = od.OrderID
WHERE
o.OrderDate BETWEEN @startDate AND @endDate
ORDER BY
c.CompanyName, o.OrderDate
---------------------
SELECT
S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday,
S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName
FROM
HumanResources.Employee E
INNER JOIN
Person.Contact C ON E.ContactID = C.ContactID
INNER JOIN
Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
WHERE
(S.OrderDate BETWEEN (@StartDate) AND (@EndDate) AND
S.SalesPersonID IN (@SalesPersonID))
Thursday, January 14, 2010
Finding the Id (Guid) for a SharePoint List
From Nick Grattan:
There are times when you need to find the Id (a Guid) of a list – for example, when setting the Task list to be used with SharePoint Designer Workflows (see my blog post here). Here’s a simple way of doing this:
•Navigate to the SharePoint list using the browser.
•Select the Settings + List Settings menu command.
•Copy the Url from the browser address bar into Notepad. It will look something like:
http://moss2007/ProjectX/_layouts/listedit.aspx?List=%7B26534EF9%2DAB3A%2D46E0%2DAE56%2DEFF168BE562F%7D
•Delete everying before and including “List=”.
•Change “%7B” to “{”
•Change all “%2D” to “-“
•Chnage “%7D” to “}”
You are now left with the Id: {26534EF9-AB3A-46E0-AE56-EFF168BE562F}
From Ken Pespisa:
A (slightly) easier way if you have MOSS 2007 is to go to the List or Library settings as described above, then right-click on the “Audience targeting settings” or “Information management policy settings” links and choose Copy Shortcut.
You can then paste the URL and there’s no need to decode the GUID. For some reason these links aren’t URL encoded.
Source: http://nickgrattan.wordpress.com/2008/04/29/finding-the-id-guid-for-a-sharepoint-list/
There are times when you need to find the Id (a Guid) of a list – for example, when setting the Task list to be used with SharePoint Designer Workflows (see my blog post here). Here’s a simple way of doing this:
•Navigate to the SharePoint list using the browser.
•Select the Settings + List Settings menu command.
•Copy the Url from the browser address bar into Notepad. It will look something like:
http://moss2007/ProjectX/_layouts/listedit.aspx?List=%7B26534EF9%2DAB3A%2D46E0%2DAE56%2DEFF168BE562F%7D
•Delete everying before and including “List=”.
•Change “%7B” to “{”
•Change all “%2D” to “-“
•Chnage “%7D” to “}”
You are now left with the Id: {26534EF9-AB3A-46E0-AE56-EFF168BE562F}
From Ken Pespisa:
A (slightly) easier way if you have MOSS 2007 is to go to the List or Library settings as described above, then right-click on the “Audience targeting settings” or “Information management policy settings” links and choose Copy Shortcut.
You can then paste the URL and there’s no need to decode the GUID. For some reason these links aren’t URL encoded.
Source: http://nickgrattan.wordpress.com/2008/04/29/finding-the-id-guid-for-a-sharepoint-list/
Tuesday, January 12, 2010
How to Activate the Report Server Feature
- Click Start, click Administrative Tools, and then click SharePoint 3.0 Central Administration.
- Click Site Actions.
- Click Site Settings.
- Click Site Collection Features.
- Find Report Server Integration Feature in the list.
- Click Activate.
MOSS+SSRS Related Topics
- To debug during the setup of "Reporting Services Add-In for Sharepoint: There is a setup log file in the %temp% folder for the user (under Local Settings folder) who is installing the Reporting Services Add-in. The file name is RS_SP_
.log - If the "Reporting Services" feature do not show up within Central Administration, it is because the feature failed to activate within the Site Collection during setup. You must run the "Add-In" with the same user account you used to install MOSS 2007.
- If the Report Server feature is not fully installed within a site collection, execute the following command: stsadm -o activatefeature -name ReportServer -url http://siteCollectionURL
- After applying SP2, under "Database Setup" when you try to create a new database: you may encounter an error that says the DB cannot be found. When you check within the SQL Server, you will observe that the Database has been created. This means, there's nothing wrong with permissions... the "update" scripts failed due to a BUG. What I did is to name the Report Server DBs without appending the "ReportServer" name. After doing so, the DB Setup completed without problems.
- Old Name: MOSSDEVReportserver
- New Name: MOSSDEV
- What to customize per report: Query Parameters or Filters, Number Format, Sorting, Header/Footer, Totals
Reporting Services has several methods for dynamically filtering report contents, including the following:
Query parameters filter data at the source as it is retrieved.
Report filters, applied to a dataset or data region, limit the data that is displayed from a generated report.
Using filters retrieves all data, but only data that is relevant to the user is displayed. This may be less efficient on an individual report basis than filtering at the source. However, it lets you retrieve the data once from the source and store in it a snapshot to serve many different user communities. On the other hand, when using query parameters, you must revisit the data source for each new value of the query parameters. Filters enable you to use execution snapshots and still get full parameterization.
Source: http://technet.microsoft.com/en-us/library/cc966445.aspx
Resources:
SSRS 2005 Installation
SSRS 2005 Creation of Reports Tutorial
SSRS 2005 Troubleshooting
Subscribe to:
Posts (Atom)