In The Mix

As a SharePoint architect I have the business behind me and the Developers and IT Pro on my shoulders.

Lazy Workflow Approval in SharePoint March 17, 2009

Filed under: SharePoint — fmuntean @ 3:32 pm

I was asked about a “Lazy Approval” for a project in SharePoint.

First let’s define what “Lazy Approval” means: The user should be able to use their mobile phones to approve SharePoint tasks that were spawned by a SharePoint workflow.

Now that being said we have the problem defined, so let’s see the solution that I came up with to solve this problem:

  • The workflow processes a task as follow: Create new Task -> while not completed -> Wait for update -> process the properties in principal the outcome -> if completed -> then complete the task.
  • A task gets created for a person and the user can edit it to approve/reject
  • We can add an event listener on the tasks list and send a special email to the user. the email needs to be less than 1Kb and should contain the instructions on how the approve/reject the item by email. it will also  contain an hidden <div id=”LazyApproval”>  that contains all the necessary data to identify the task as the URL to the task and maybe the GUID. The ‘from’ field of the email address should contain a special email address.
  • Create a library to store the incoming emails from the Lazy Approval. Attach an event receiver to it that will process the messages and update the tasks list with the outcome given by the user. here we can put some validation and if we can’t process the message to update the task we can send another email to the user or a confirmation one when the task got updated.
  • Once the task got changed the workflow will see the change and continue.

By using the described approach the user has the choice of approving using SharePoint or by email using the reply button and writing the outcome.

This approach will work with any existing out of the box or custom workflow and is reusable.

There are few issues that needs to be iron out:

  • If the task list is used for other task types as review then we need to use a content type for the approver task and attach the event handler to it thus making the solution apply only to a custom workflow that use the custom task content type.
  • The user want to see more data other than the task title in the Lazy Approval email.

SharePoint Saturday Boston – Follow up March 15, 2009

Filed under: Presentations — fmuntean @ 9:12 am

The event is now over. It was a great event with over 200 participants a lot of good speakers and 5 tracks to follow.

Thanks for attending my presentation and as I have promised into my presentation the files are available here.

If you have any question don’t hesitate to contact me or leave a comment.

To just reiterate the conclusion of my presentation is:

  • Create you InfoPath forms with data in mind
  • Reuse the xsd files generated by the forms by referencing them into other forms and by generating the code from them.
  • Use De/Serialization instead of XPath to have Type Safety.
  • Less number of lines means less code to maintain and less bugs.

Happy Coding


Integrating Reporting Services 2008 with SharePoint March 4, 2009

Filed under: SharePoint,SQL — fmuntean @ 10:50 pm

This process is very simple once you figure out how to run it correctly in 5 easy steps:

1st – install SSRS (Reporting Services 2008) on a computer that it is already part of the SharePoint Farm or install the SharePoint server on it and add it to the farm.

2nd – create and configure the SSRS database in SharePoint integrated mode using Reporting Services Configuration Manager.

3rd – download the SQL Server 2008 Reporting Services Add-in for SharePoint Technologies and install it using the rsSharePoint.msi SKIPCA=1 command on all your SharePoint  servers that are part of the Farm and have the Windows SharePoint Services Web Application on them. Chose one server, I prefer one that has Central Admin on it, and run the rsCustomAction.exe /i command that it is available in %Temp% folder.

NOTE: Do not run the rsCustomAction.exe command a second time on any other server as it will fail and then remove the feature that was already installed.

4th – In Central Admin under Application Management -> Reporting Services, grant database access and configure the Reporting Services Web Service.

5th – On the site that you want to use the Reporting Services enable the Report Server Integration site collection feature.



How to: Install or Uninstall the Reporting Services Add-in

How to: Create a Report Server Database (Reporting Services Configuration)

How to: Configure Report Server Integration in SharePoint Central Administration