How to Send an EMail From WebPart in MOSS 2007

Hi Devs,
The following is the piece of code to send Email from webpart.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.ObjectModel;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint;
using System.Data;
using System.Collections;
namespace SendMail
{
public class SendMail : Microsoft.SharePoint.WebPartPages.WebPart
{
private TextBox txtTo;
private Button btnSendMail;
protected override void CreateChildControls()
{
txtTo = new TextBox();
this.Controls.Add(txtTo);
btnSendMail = new Button();
btnSendMail.Text = “Send Email”;
btnSendMail.Click += new EventHandler(SendMail_Click);
this.Controls.Add(btnSendMail);
}
void SendMail_Click(object sender, EventArgs e)
{
SPSite _site = new SPSite(HttpContext.Current.Request.Url.ToString());
SPWeb _web = _site.OpenWeb();
_web.AllowUnsafeUpdates = true;
SPUtility.SendEmail(_web, false, false, txtTo.Text, “Test Email”, “Text Body Message”);
_web.Dispose();
_site.Dispose();
}
}
}

Create the WebPart and register it as SafeControl

MOSS 2007 Pricing & Costing Info

I have consolidated few links from Microsoft for MOSS 2007 Product Costing.

Microsoft Office SharePoint Server 2007 and Related Technologies pricing

Microsoft Office SharePoint Server 2007 products comparison download

2007 Microsoft Office system pricing and upgrade information

How to Hide Quick Launch in MOSS 2007

Do you want to hide your quick launch Bar in MOSS 2007
There are two ways to hide the quick launch bar
1. You can edit directly in CSS
2. Adding Hidden content editor webpart

Add new content editor webpart
Click Source Editor in ToolPane
paste the below code in content editor webpart
[style]
.ms-quicklaunch
{
display:none;
}
.ms-navframe
{
display: none;
}
[/style]
Use “<" & ">” instead of “[” & “]”
Set the Hidden Property to True under layout section in ToolPane.
Now Refresh the Page……You Quick Launch Bar is Gone 🙂

Presenter in the Shaping the Future Workshop

I presented the Demo on Architecting distributed applications using Grid Architecture in Accenture Shaping the Future workshop. This is my second presentation in Accenture’s Shaping the Future.

How to Force MOSS 2007 Timer Jobs to Execute

Use the Following stadm command to force the timer jobs jobs to execute.
no need to wait for the interval to execute the timerjobs.
stsadm.exe -o execadmsvcjobs

MOSS 2007 Rename the Web Application Name

I want to share how to rename the web application name in command line administration of MOSS 2007 using STSADM Command.

Syntax:
stsadm -o renameweb -url -newname

Example:
Stsadm -o renameweb -url http://localhost/oldname -newname newname

The above command will rename the web application from oldname to the newname.

Commerce Server 2007 Integration with MOSS 2007

MOSS has many inbuilt features. The scope of this POC is to integrate Commerce Server 2007 with MOSS 2007 to provide Portal Integrated e-Commerce Application

Configuring MOSS 2007 to Use the Commerce Server Membership Provider As The Basis For User Authentication

The primary tasks are to make the Central Administration and Portal sites hand-shake with Commerce Server. This needs to be done by modifying the appropriate Web.config files for these sites. By adding the Commerce Server and httpModules sections, the SharePoint Central Administration site and the Portal site will be able to create the necessary CommerceContext object. The CommerceContext object enables the Commerce Server Membership Provider to be initialized correctly, and also enables Web parts and pages in the portal to use the CommerceContext object to access Commerce Server resources such as the Product Catalog.
The UpmMembership Provider extends the Membership framework offered by ASP.Net to accommodate the use of the ASP.Net Login Controls and authenticate against Commerce Server Profiles.

Update the Web.config for MOSS Central Administration and in Portal site with below sections to avail Commerce Server data and services in MOSS

  • Commerce Server Section Group
  • Commerce Server Group
  • Http Modules
  • Assemblies
  • Membership Provider
  • Profile Section

o Determine which Web.config file is used for the SharePoint Central Administration site and which is used for the Portal site. Use the Home Directory tab in IIS Manager to determine the appropriate path of the Web.config file for each site.

o Use the Web.config file that was previously created for the Commerce Server C SharpSite as the source for the text to copy in the following instructions:

Please follow the below steps to modify the web.config file of SharePoint administration site.

Step 1: Adding Commerce Server Section Group
Copy the Commerce [sectionGroup] in [configSections] and paste it after the [System.Workflow.ComponentModel.WorkflowCompiler] section group.
[sectionGroup name=”CommerceServer”]
[section name=”application” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceApplicationSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[section name=”authentication” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceAuthenticationSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[section name=”pipelines” type=”Microsoft.CommerceServer.Runtime.Configuration.CommercePipelineSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[section name=”caches” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceCacheSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[section name=”messageManager” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceMessageManagerSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[section name=”catalog” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceCatalogSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[section name=”orders” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceOrdersSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[section name=”profiles” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceProfilesSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[section name=”contentSelection” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceContentSelectionSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[section name=”commerceEvent” type=”Microsoft.CommerceServer.Runtime.Configuration.EventLoggerConfigurationHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[section name=”expressions” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceExpressionSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[/sectionGroup]
Step 2: Adding Commerce Server Group
§ Copy the [CommerceServer] section and paste it after the [SharePoint] section, just before the [system.web] section.

[CommerceServer]
[application siteName=”CDevSite” debugLevel=”Production”/]
[pipelines][/pipelines]
[expressions schema=”Auto”/]
[caches]
[cache name=”Advertising” type=”Advertising” refreshInterval=”900″ retryInterval=”30″/]
[cache name=”Discounts” type=”Discounts” refreshInterval=”0″ retryInterval=”30″/]
[cache name=”ShippingManagerCache” type=”Shipping” loaderProgId=”Commerce.ShippingMethodCache” refreshInterval=”0″ retryInterval=”30″/]
[cache name=”PaymentMethodCache” type=”Payment”/]
[cache name=”OrdersConfigurationCache” type=”OrdersConfiguration”/]
[/caches]
[messageManager]
[cultures default=”en-US” baseName=”CommerceMessageManager” assembly=”CommerceMessageManager”]
[culture id=”en-US”/]
[culture id=”fr-fr”/]
[culture id=”ja-JP”/]
[culture id=”de-DE”/]
[/cultures]
[resources]
[resource id=”pur_badsku”/]
[resource id=”pur_badplacedprice”/]
[resource id=”pur_discount_changed”/]
[resource id=”pur_discount_removed”/]
[resource id=”pur_noitems”/]
[resource id=”pur_badshipping”/]
[resource id=”pur_badhandling”/]
[resource id=”pur_badtax”/]
[resource id=”pur_badcc”/]
[resource id=”pur_badpayment”/]
[resource id=”pur_badverify”/]
[resource id=”pur_out_of_stock”/]
[resource id=”unknown_shipping_method”/]
[/resources]
[/messageManager]
[orders honorStatus=”true” newOrderStatus=”NewOrder” sqlCommandTimeoutSeconds=”60″ sqlLongRunningCommandTimeoutSeconds=”28800″]
[addressMap]
[profileDefinition name=”Address”/]
[property from=”GeneralInfo.address_id” to=”OrderAddressId”/]
[property from=”GeneralInfo.first_name” to=”FirstName”/]
[property from=”GeneralInfo.last_name” to=”LastName”/]
[property from=”GeneralInfo.address_line1″ to=”Line1″/]
[property from=”GeneralInfo.address_line2″ to=”Line2″/]
[property from=”GeneralInfo.city” to=”City”/]
[property from=”GeneralInfo.region_code” to=”RegionCode”/]
[property from=”GeneralInfo.postal_code” to=”PostalCode”/]
[property from=”GeneralInfo.country_name” to=”CountryName”/]
[property from=”GeneralInfo.region_name” to=”State”/]
[property from=”GeneralInfo.tel_number” to=”DaytimePhoneNumber”/]
[/addressMap]
[Types]
[Type Key=”Basket” UserTypeName=”Basket” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”PurchaseOrder” UserTypeName=”PurchaseOrder” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”OrderTemplate” UserTypeName=”OrderTemplate” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”OrderForm” UserTypeName=”OrderForm” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”LineItem” UserTypeName=”LineItem” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”Shipment” UserTypeName=”Shipment” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”Payment” UserTypeName=”Payment” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”CreditCardPayment” UserTypeName=”CreditCardPayment” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”GiftCertificatePayment” UserTypeName=”GiftCertificatePayment” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”PurchaseOrderPayment” UserTypeName=”PurchaseOrderPayment” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”CashCardPayment” UserTypeName=”CashCardPayment” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”OrderAddress” UserTypeName=”OrderAddress” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”DiscountApplicationRecord” UserTypeName=”DiscountApplicationRecord” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”ShippingDiscountRecord” UserTypeName=”ShippingDiscountRecord” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[Type Key=”PromoCodeRecord” UserTypeName=”PromoCodeRecord” AssemblyType=”GAC” NameSpace=”Microsoft.CommerceServer.Runtime.Orders” Assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[/Types]
[Limits OrderFormsPerOrderGroup=”5″ PromoCodeRecordsPerOrderForm=”10″ PromoCodesPerOrderForm=”10″ LineItemsPerOrderForm=”40″ OrderTemplatesPerUser=”10″ PaymentsPerOrderForm=”10″ ShipmentsPerOrderForm=”40″ BasketsPerUser=”15″ OrderAddressesPerOrderGroup=”10″/]
[MappingFiles PipelineMappingFilename=”OrderPipelineMappings.xml” StorageMappingFilename=”OrderObjectMappings.xml”/]
[SerializationBindings]
[SerializationBinding OldType=”Microsoft.CommerceServer.Runtime.Orders.LineItem , Microsoft.CommerceServer.Runtime ,Version=6.0.1.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35″ NewType=”Microsoft.CommerceServer.Runtime.Orders.LineItem, Microsoft.CommerceServer.Runtime,Version=6.0.1.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[/SerializationBindings]
[/orders]
[commerceEvent]
[add className=”Microsoft.CommerceServer.Runtime.AddItemToBasketEvent” id=”AddItemToBasket”/]
[add className=”Microsoft.CommerceServer.Runtime.RemoveItemFromBasketEvent” id=”RemoveItemFromBasket”/]
[add className=”Microsoft.CommerceServer.Runtime.SubmitOrderEvent” id=”SubmitOrder” loggingEnabled=”true”/]
[/commerceEvent]
[/CommerceServer]
Step 3: Adding “CommerceApplication” in “httpModules” Section
§ Copy the Commerce HTTP Modules to the end of the [httpModules] section.
[add name=”CommerceApplication” type=”Microsoft.CommerceServer.Runtime.CommerceApplicationModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[add name=”CommerceAuthentication” type=”Microsoft.CommerceServer.Runtime.CommerceAuthenticationModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[add name=”CommerceOrder” type=”Microsoft.CommerceServer.Runtime.Orders.CommerceOrderModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[add name=”CommerceCatalog” type=”Microsoft.CommerceServer.Runtime.Catalog.CommerceCatalogModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[add name=”CommerceProfile” type=”Microsoft.CommerceServer.Runtime.Profiles.CommerceProfileModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[add name=”CommerceExpressionEvaluator” type=”Microsoft.CommerceServer.Runtime.Targeting.CommerceExpressionModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[add name=”CommerceCache” type=”Microsoft.CommerceServer.Runtime.Caching.CommerceCacheModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]
[add name=”CommerceContentSelection” type=”Microsoft.CommerceServer.Runtime.Targeting.CommerceContentSelectionModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/][add name=”CommerceDataWarehouseAuthenticationModule” type=”Microsoft.CommerceServer.Runtime.CommerceDataWarehouseAuthenticationModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/]Remove or comment out the Commerce Server Authentication Module. This module is not required because ASP.NET Forms Authentication will be used for all authentications.
Step 4: Adding “Commerce Server” AssembliesCopy the commerce server assembly information from CSharpSite web.config and paste it in the [assemblies] tag in the Central Administration site’s web.config as below:
[assemblies]
[add assembly=”Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ /]
[add assembly=”Microsoft.CommerceServer.Catalog, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35″ /][/assemblies]

Step 5: Configure Central Administration to recognize Commerce Server Membership
Copy the below code snippet to [system.web] section of the Web.config file for the Central Administration. Note: Paste it before the closing [/system.web].
[membership defaultProvider=”UpmMembershipProvider”]
[providers]
[clear /]
[add applicationName=”CSharpSite ”
enablePasswordRetrieval=”false”
enablePasswordReset=”true”
requiresQuestionAndAnswer=”true”
requiresUniqueEmail=”true”
enableCreateDate=”true”
enableEmailAddress=”true”
enableLastLoginDate=”true”
profileDefinition=”UserObject”
passwordFormat=”Hashed”
name=”UpmMembershipProvider”
type=”Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipProvider”/]
[/providers]
[/membership]

Step 6: Configuring the Commerce Server Profiles section

This section contains settings which configure the functionality of profiles and catalog sets. The [userProfile] node resides in the [CommerceServer][profiles] node in the web.config.
Uncomment the profiles section in [commerceserver] node.

[userProfile
profileDefinition=”UserObject”
userIdProperty=”GeneralInfo.email_address”
organizationIdProperty=”AccountInfo.org_id”
catalogSetIdProperty=”AccountInfo.user_catalog_set”
userIdSource = “ASP.NET”
userIdKey = “GeneralInfo.email_address”
userIdTarget = “GeneralInfo.user_id”
/]
[organizationProfile
profileDefintion=”Organization”
organizationIdProperty=”GeneralInfo.org_id”
catalogSetIdProperty=”GeneralInfo.org_catalog_set”
/]

Step 7: Adding Users in the Central AdministrationLocate Central Administration, Application Management, Authentication Providers, Default zone entry. Make sure that you have the PortalSite Web Application selected in the drop-down list.

o Click Forms.

o Change the Membership Provider Name to UpmMembershipProvider. This should match the name that is in the membership section of the Web.config file.Locate Central Administration, Application Management, and Policy for Web Application. Make sure that you have selected the Portal Web Application.

o Click Add Users.

o Select Default zone, and then click Next.

o Type the e-mail address of the user that you added previously by using the Commerce Server Customer and Orders Manager, and then click Check User.

o If the user name is successfully recognized, it will be underlined. Select Full control, and then select Finish.

o If the user name is not recognized, run a SQL Server trace on the Commerce Server Profiles database to make sure that the queries are running against the database. Additionally, make sure that the entry for the provider is in the Web.config file for Central Administration, and look for errors in the event log.

Step 8: Copy the following XML files from the CSharpSite (IIS Virtual Directory) to the root folder of the Central Administration site:

o OrderObjectMappings.xml
o OrderPipelineMappings.xml

Run Central Administration to make sure that these changes were made correctly. If errors occur, check the Web.config file for syntax issues.Even if the page displays correctly, check the event log. Some permissions errors may be hidden.

Configure the MOSS portal to use the Commerce Server Membership provider:
Step 1: Follow the above 6 steps to configure Portal site for Commerce Server.

Step 2: Comment out the existing [authentication], [identity], and [authorization] sections. This will disable the default Windows authentication and authorization.

Step 3: Copy the below configuration settings contents to the Web.config file for the Portal site. Paste this after the previous sections that you just commented out. This sets up the site for Forms Authentication and denies anonymous access.

[authentication mode=”Forms”]
[forms loginUrl=”/_layouts/login.aspx” name=”.ASPXFORMSAUTH” /]
[/authentication]
[authorization]
[deny users=”?” /][/authorization] View the Portal site in a Web browser. You should be redirected to the logon page. Log on and use the user credentials that you added by using the Customer and Orders Manager.

Step 4: Copy the following XML files from the CSharpSite (IIS Virtual Directory) to the root folder of the Portal site:

o OrderObjectMappings.xml
o OrderPipelineMappings.xml

Step 5: Restart the IIS

Step 6: Run the Portal site and look for errors.

[Note : I am not able to Post scripts tag in here replace all “[” & “]” with “<" & ">“

Free Microsoft Press E-Books Offer for LINQ,ASP.Net,Silverlight

The Following E-Books can be downloaded from Microsoft Press Site.

  • Introducing Microsoft LINQ
    by Paolo Pialorsi and Marco Russo
  • Introducing Microsoft ASP.NET AJAX
    by Dino Esposito
  • Introducing Microsoft Silverlight 1.0
    by Laurence Moroney

    http://csna01.libredigital.com

    Login to the site using your passport/hotmail id and Download e-Books for free.

Bill Gates Last Day at Microsoft

Bill Gates gave his final keynote in CES(Consumer Electronic Show) in last vegas.

you can find his full keynote in Microsoft CES

Content Approval Workflow in MOSS 2007

In MOSS 2007 Approval workflow is available in out of the box itself. Just we need to configure only few steps then we are ready with the approval process.

If the approval workflow is configured the document will be visible only to the contributor and to the approver.

Steps to Configure Content approval workflow

Open the Document Library
Click Settings -> Document Library Settings


In Document Library Settings under Permissions and Management Click Workflow Settings

Document Library Settings -> [Permission and Management] Workflow Managements

In MOSS 2007 it has some prebuilt workflow templates for the following workflows

  • Approval
  • Collect Feedback
  • Collect Signatures
  • Disposition Approval
  • Three State

Now Select the Approval Workflow and give the unique name for the workflow instance.
Select the Existing Task List Name or create new Task List for this approval workflow.
Select the Existing History or create new workflow history to maintain this workflow history.
Under Start options you can specify how this workflow can be started.

· Allow this workflow to be manually started by an authenticated user with Edit Items Permissions
· Start this workflow when an item is created
· Start this workflow when an item is changed

If you choose “start this workflow when an item is created” it will automatically starts workflow when new item is added to the document library.

If you choose “start this workflow when an item is changed” it will automatically restarts the workflow when the items in the document library is modified.

Under workflow task
If you choose Assign Task to “All Participant Simultaneously” It will create the task for all participants at the same time. The workflow will be completed only after the approval of all approvers.

If you choose Assign Task to “One Participant at a time” It will follow the sequence of activity first the workflow task will be created to the first user and once its approved then only it will move on to the next approver.

If it’s required you can set the due date for the workflow.
The workflow status also can be notified other than the participants of the workflow by giving the name on notify others column.

We are creating the workflow for Content Approval. So don’t forget the check the option “Update the approval status (use this workflow to control content approval)”

Now you successfully created approval workflow.

You have to enable the content approval in the document library then only it will restrict other users to access it.

When you enable content approval the document will be visible only to contributor/author and approver, it will not be visible to other users in document library.

Open Settings -> Document Library Settings
Under General Settings -> Versioning Settings
Require Content Approval for Submitted Items? Choose Yes
And Click OK to Save the Settings.

Now Open the Document Library and upload the Document

Now the document is uploaded the Document Library

If you login using some other user credential (not an approver/contributor). The document will be displayed in the document library.

If you feel this post helps you to create workflow for content approval. Please leave your valuable comments.