Monday, January 14, 2008

Create a UDL file

To create a UDL file, right click on your desktop. Select New, Microsoft UDL file. If this option is not available, create a new text file and change the extension to UDL. Double click it to bring up the property pages. Select a provider, fill the necessary connection information, test the connection, and click ok. Then open this file in notepad, and there’s your connection string

Custom Workflow using SharePoint Designer

This comes from: http://metahat.blogspot.com/2006/12/1.html

1.1Scenario:

  • Author creates document and submits the approval request to the

  • Reviewer approves/rejects the document.

    • In case of approval email is sent to author notifying approval

    • In case of rejection email is sent to author notifying rejection

1.2Implementation:

  • Create an sharepoint list with approval enabled



  • Open sharepoint designer 2007
  • Open the desired site for workflow as shown below :
    • Click File ->Open Site
    • Enter the url of the desired site in site name section and press “Open”
    • This will open the site
  • Creating new workflow
    • Click File -> New
    • The “New “ Dialog box will pop up
    • Select “SharePoint Content” tab
    • Select workflow from the list box “Blank workflow”
    • Assign appropriate name to workflow in my case its “Approval workflow”
    • Select the list in sharepoint list to which this workflow should be associated
    • Select the start condition of the workflow
      • Start when item is created
      • Start when iten is changed
      • Manual workflow start up

    • Before we start we will go forward and define some initiation workflow variables .
    • Click on the initiation button
      • Define a variable named “workflowstatus” and set the default value as “notstarted”

1.2.1STEP 1

  • Lets start defining the workflow
    • First define a step name “To Approver”
    • Click conditions button and you will get an drop down


    • Select “Compare any data source” you will get option as shown in figure
    • click on the “value” you will get an input box with an eclipse button like this



    • Click on that “fx” eclipse button
    • You will get dialog box like this with “current item” as default selection
    • change the selection to”Source: workflow data” and in the field section select :Initiation :workflowstatus”

    • Click Ok
    • Now select the “value” field after “equal “ and in the input box fill “notstarted”


    • No we are ready with our condition with says “ If “workflowstatus” variable is equal to “notstarted” then execute the defined action
    • Lets Go forward and put process in our action section


    • select “Set workflow variable”
    • Set the values as shown in fig below



    • Now we have set the workflow variable” workflowstatus”to started
    • Lets send E-Mail to the Reviewer for approval request
    • From the actions Menu select send an EMAIL



      • click on “this message” which will eventually pop up a self descriptive dialog box



      • Fill all the appropriate fields for EMAIL and Email is set
        • To : “Reviewer Email ID”
        • Subject

        • Body
    • After email to reviewer we have to make sure that our workflow waits for “Approval/Rejection ” from the Reviewer
    • In order to achieve a “WAIT” we have to add one more action

      • So click on the actions and select “Wait for field change in current item”
      • Assign values and make condition as shown below

Ie Wait till the “Approval status “ is not either “Approved/Rejected”
  • We are done with our first step where the author has requested an approval and reviewer has received mail of approval request

1.2.2STEP 2

  • In this step we have to take care of 2 conditions “Approved /Rejected “
  • To define seconf step click “Add workflow step “on eight pane of workflow designer
  • The Second step would look like this


  • So define 2 conditions “If approved “ and If Reject “
  • The branching of condition can be achieved using the drop down of activity


  • This will take care of the second step
  • Once the email is send stop the workflow by selecting “stop workflow” from the Action menu , this make stop the workflow and make the workflow status to complete

NOTE: Always make sure to stop workflow in all the implementation, in case its missed the workflow will still be alive in the system and that might lead to server performance degradation

DCOM Errors in System Log

This comes from:

http://geekswithblogs.net/mhamilton/archive/2006/12/19/101568.aspx

You may see this error - more than once - when working with your Microsoft Office SharePoint Server (MOSS) 2007 deployment. This animal / error generally shows itself after you have applied an upgrade to an existing deployment. For example, when upgrading from B2 MOSS to B2TR MOSS - or when applying a special service pack from MSFT - you may begin to see a lot of these errors pop up in the SYSTEM event log.

The error CLSID is followed by a class ID for the DCOM+ application that the service account trying to activate that application - does NOT have permission to activate.

For example, let's say I installed MOSS on a server, and used the account mossService as the service account (a least privileged, user account you created to run the MOSS service(s))., when I get this error, I could very well see an error like the following:

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID

{61738644-F196-11D0-9953-00C04FD919C1}

to the user \mossService SID (S-1-5-21-). This security permission can be modified using the Component Services administrative tool.

Copy the GUID following the CLSID above, and Start-->Run-->regedit

With the registry editor open, ensure that your cursor is on the computer at the beginning of the tree (make sure you are not in the middle of some previous edit session in the registry editor).

Edit-->Find and paste in the GUID. It'll stop at the application entry - and you will want to note the application name on the right side pane. In this example, it was the IIS WAMREG admin service that popped up.

Now, open Component Services (typically, from the server - Start-->Administrative Tools-->Component Services), expand Component Services, Computers, My Computer, DCOM Config. Scroll down and find the application (IIS WAMREG in this case). Right-Click-->Properties and select the Security tab. You'll have some options here - the first block Launch and Activation Permissions - ensure that the Customize radio button is selected, and click Edit. Now, add your service account - giving it launch and activate - and in some requirements - remote launch / activate permission.

Restart IIS and continue on.

NOTE: This is not applicable to MOSS setups only - and hopefully this will help someone else that sees these annoying DCOM errors in their SYSTEM event log.

Wednesday, January 09, 2008

Error installing WSS and MOSS SP1

I followed the steps here:
http://msmvps.com/blogs/shane/archive/2007/12/14/how-to-install-wss-and-moss-sp1.aspx

Further reading & downloads
My MOSS environment is a basic farm with one MOSS server & one SQL 2005 server.

The WSS upgrade installed ok.
The Office upgrade installed ok.

I ran the configuration wizard which ran through each step without any problem until step 9 where it failed with the error message below.

Central Administration is still running ok.
My Portal is still running ok.

The upgrade appears to have worked however; the version number against the server in Central Administration is equal to 12.0.0.6219.

This is worrying though - this is an OOB uncustomised MOSS environment in pretty much its most simple form.

Update... (10/01/2008)

Spoke to Microsoft who said - ignore the error message (!!)

The error log:

01/09/2008 16:13:50 9 ERR The B2B upgrader timer job failed.
01/09/2008 16:13:50 9 INF Entering function StringResourceManager.GetResourceString
01/09/2008 16:13:50 9 INF Resource id to be retrieved is UpgradeTaskFailConfigSyncDisplayLabel for language English (United States)
01/09/2008 16:13:50 9 INF Resource retrieved id UpgradeTaskFailConfigSyncDisplayLabel is Failed to upgrade SharePoint Products and Technologies.
01/09/2008 16:13:50 9 INF Leaving function StringResourceManager.GetResourceString
01/09/2008 16:13:50 9 INF Entering function Common.BuildExceptionMessage
01/09/2008 16:13:50 9 INF Entering function StringResourceManager.GetResourceString
01/09/2008 16:13:50 9 INF Resource id to be retrieved is ExceptionInfo for language English (United States)
01/09/2008 16:13:50 9 INF Resource retrieved id ExceptionInfo is An exception of type {0} was thrown. Additional exception information: {1}
01/09/2008 16:13:50 9 INF Leaving function StringResourceManager.GetResourceString
01/09/2008 16:13:50 9 INF Leaving function Common.BuildExceptionMessage
01/09/2008 16:13:50 9 ERR Task upgrade has failed with a PostSetupConfigurationTaskException An exception of type Microsoft.SharePoint.PostSetupConfiguration.PostSetupConfigurationTaskException was thrown. Additional exception information: Failed to upgrade SharePoint Products and Technologies.
01/09/2008 16:13:50 9 INF Entering function Common.BuildExceptionInformation
01/09/2008 16:13:50 9 INF Entering function Common.BuildExceptionMessage
01/09/2008 16:13:50 9 INF Entering function StringResourceManager.GetResourceString
01/09/2008 16:13:50 9 INF Resource id to be retrieved is ExceptionInfo for language English (United States)
01/09/2008 16:13:50 9 INF Resource retrieved id ExceptionInfo is An exception of type {0} was thrown. Additional exception information: {1}
01/09/2008 16:13:50 9 INF Leaving function StringResourceManager.GetResourceString
01/09/2008 16:13:50 9 INF Leaving function Common.BuildExceptionMessage
01/09/2008 16:13:50 9 INF Leaving function Common.BuildExceptionInformation
01/09/2008 16:13:50 9 ERR An exception of type Microsoft.SharePoint.PostSetupConfiguration.PostSetupConfigurationTaskException was thrown. Additional exception information: Failed to upgrade SharePoint Products and Technologies.
Microsoft.SharePoint.PostSetupConfiguration.PostSetupConfigurationTaskException: Exception of type 'Microsoft.SharePoint.PostSetupConfiguration.PostSetupConfigurationTaskException' was thrown.
at Microsoft.SharePoint.PostSetupConfiguration.UpgradeTask.Run()
at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()
01/09/2008 16:13:50 9 INF Entering function Common.BuildExceptionInformation
01/09/2008 16:13:50 9 INF Entering function Common.BuildExceptionMessage
01/09/2008 16:13:50 9 INF Entering function StringResourceManager.GetResourceString
01/09/2008 16:13:50 9 INF Resource id to be retrieved is ExceptionInfo for language English (United States)
01/09/2008 16:13:50 9 INF Resource retrieved id ExceptionInfo is An exception of type {0} was thrown. Additional exception information: {1}
01/09/2008 16:13:50 9 INF Leaving function StringResourceManager.GetResourceString
01/09/2008 16:13:50 9 INF Leaving function Common.BuildExceptionMessage
01/09/2008 16:13:50 9 INF Leaving function Common.BuildExceptionInformation
01/09/2008 16:13:50 9 INF Entering function UpgradeBootstrapTask.BuildUpgradeExtendedMessage
01/09/2008 16:13:50 9 INF Task result is fail
01/09/2008 16:13:50 9 INF Looking for upgrade log file at C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\LOGS\Upgrade.log
01/09/2008 16:13:50 9 INF Found upgrade log file at C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\LOGS\Upgrade.log, so we will build the extended message containing the upgrade log file location so the user can further diagnose
01/09/2008 16:13:50 9 INF Entering function StringResourceManager.GetResourceString
01/09/2008 16:13:50 9 INF Resource id to be retrieved is UpgradeFailureMoreInfo for language English (United States)
01/09/2008 16:13:50 9 INF Resource retrieved id UpgradeFailureMoreInfo is Failed to upgrade SharePoint Products and Technologies. Further information regarding this failure can be found at {0}.
01/09/2008 16:13:50 9 INF Leaving function StringResourceManager.GetResourceString
01/09/2008 16:13:50 9 INF Leaving function UpgradeBootstrapTask.BuildUpgradeExtendedMessage
01/09/2008 16:13:50 9 INF Entering function TaskBase.OnTaskStop
01/09/2008 16:13:50 9 INF Creating the OnTaskStop event for task upgrade
01/09/2008 16:13:50 9 ERR Task upgrade has failed
01/09/2008 16:13:50 9 INF friendlyMessage for task upgrade is An exception of type Microsoft.SharePoint.PostSetupConfiguration.PostSetupConfigurationTaskException was thrown. Additional exception information: Failed to upgrade SharePoint Products and Technologies.
01/09/2008 16:13:50 9 INF debugMessage for task upgrade is Failed to upgrade SharePoint Products and Technologies. Further information regarding this failure can be found at C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\LOGS\Upgrade.log.
An exception of type Microsoft.SharePoint.PostSetupConfiguration.PostSetupConfigurationTaskException was thrown. Additional exception information: Failed to upgrade SharePoint Products and Technologies.
Microsoft.SharePoint.PostSetupConfiguration.PostSetupConfigurationTaskException: Exception of type 'Microsoft.SharePoint.PostSetupConfiguration.PostSetupConfigurationTaskException' was thrown.
at Microsoft.SharePoint.PostSetupConfiguration.UpgradeTask.Run()
at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()

Friday, January 04, 2008

Microsoft.Office.Workflow.Feature file not found

This comes from: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1692100&SiteID=1

Found out it was to do with the Visual Studio templates.

There are 2 sets of templates:

  • Windows SharePoint Service (WSS 3.0)
  • Microsoft Office SharePoint Server (MOSS 2007)

If you are developing on a WSS 3.0 box and you try and use a MOSS template then it adds a reference to the "Microsoft.Office.Workflow.Feature" namespace (which is part of the "Microsoft.Office" set of files that come with MOSS.

Change to the correct templates

Otherwise you can just remove those ReceiverAssembly and ReceiverClass references from your Feature.XML and you should find it works just fine.

The Feature.xml should then look like:

<Feature Id="xxxxx"
Title="My Workflow Feature"
Description="This Feature encapsulates the custom workflow"
Version="12.0.0.0"
Scope="Site"
xmlns="http://schemas.microsoft.com/sharepoint/">

Improving the Performance of InfoPath 2007 Forms

This comes from: http://msdn2.microsoft.com/en-us/library/bb380251.aspx

Data Connections in Browser Forms

This comes from the InfoPath Team Blog:

http://blogs.msdn.com/infopath/archive/2006/10/02/Data-Connections-in-Browser-Forms.aspx

Workflow task causing error with forms server

See post here: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1230066&SiteID=17

I have a form published via forms server. Then I associate the approval workflow with the form. I fill out the form and submit it to the library. Once I finish this process my approver gets an email telling them to review the form and approve the task.

They click on the link to review the form and they get this error message:

The URL /.xml is an unsupported relative URL. Use an absolute URL or prefix with '~sitecollection', for a site-collection-relative URL.

Customizing task alert email notifications in MOSS using STSADM

stsadm -o updatealerttemplates -url http://server -filename "C:\Program files\common files\Microsoft shared\web server extensions\12\template\XML\alerttemplates.xml" stsadm -o updatealerttemplates -url http://server -filename "C:\Program files\common files\Microsoft shared\web server extensions\12\template\XML\alerttemplates.xml"

Customising My Site

http://blogs.msdn.com/sharepoint/archive/2007/03/22/customizing-moss-2007-my-sites-within-the-enterprise.aspx