Advantages and disadvantages of creating workflows in Microsoft SharePoint 2010 Server Visio Services

Michał Bojko

imageMicrosoft SharePoint 2010 Server Visio Services enable users to view and interact with diagrams. Interaction means ability to refresh data linked with diagram elements, analysis of the data using dynamic data graphic indicators and viewing shape metadata taken from various data sources. Visio Services also allows visualizing workflow progress. Diagrams designed with Microsoft Visio are exported to Visio web drawings and rendered with Silverlight with a web browser.  This means, end user does not have to have Microsoft Visio installed – the diagram can be explored on a web page.


Designing diagrams inside Visio can be grouped into two categories:

• One is where you design a diagram with objects that should interact with data from external data sources. Shapes are linked with data source records and can indicate different statuses with various visual indicators like streetlights or bars. Diagrams are visualized as designed by the Microsoft Visio user. 
• Second group is where you design workflows. This functionality is a very good step towards maximizing efficiency of high level designers and architects, as they are able to draw logic of the workflow and export it to SharePoint administrators for configuration. Diagrams in Visio are not functional at all – they contain only basic logic without any links to real SharePoint site. They become alive after exporting them to SharePoint Designer where SharePoint is attached and workflow becomes functional.  Diagrams designed in Visio do not look the same in Visio Services.

In this scenario we shall try to visualize a simplified IT Infrastructure with indicators showing if a machine in the network is online and what is the internet connection utilization. As a result we should get a diagram similar to one below.

In the first step we must prepare a diagram with our infrastructure. To do this we can use a Detailed Network Diagram template from Network templates group. By simple drag and drop the infrastructure can be visualized in few minutes, but the diagram is not yet interactive. To do this we must link the shapes with data source that stores data about machines, users and connection status. For the purpose of this scenario a simplified data repository in SQL Server 2008 R2 was created. In real life I would be more complex to cover all needs.


Data layer stores information about users, machines and current status. Best way to group all information together is to create a view. After it is created we must add it to the diagram. To do this we must go to Data tab in Microsoft Visio and click Link data to shapes. Visio gives ability to connect to various data sources:
• SQL Server 7.0
• SQL Server 2000
• SQL Server 2005 (32- & 64-bit)
• SQL Server 2008 (32- & 64-bit)
• SQL Server 2008 R2 (32- & 64-bit)
• SharePoint Server lists that are hosted on the same farm
• Custom Data Providers implemented as .NET Framework assemblies
• Excel workbook
• Access database

We will pick Microsoft SQL Server database as a general data source and connect to a server where data stored. Then we must pick previously created view and finish the connection creation process. Once it is created, we will see a new window with external data where query results from the view will be presented. Each row can be manually linked with a shape by drag and drop. There is also possibility to link shapes with data automatically. To do this shape has to have a unique name that can be used as a key with corresponding data in external data result set. We can add as many connections as required for the diagram, because some shapes can be covered by different data sources. Machines in network can use data from Active Directory and internet connection utilization will be delivered by the provider in a different way.

Shapes in our diagram are now connected to data from our database. Last thing we must do it to add a dynamic graphical indicator to visualize data in most attractive way. We must click a machine shape with linked data and once again use Data tab and click Data Graphics function and create new data graphic. In few clicks we should get a neat light indicator showing if a machine is online.


The same process must be applied to our ISP, but we must use different indicator – speedometer.

Last step in Microsoft Visio is to export the diagram to w VDW file. To do this, we must save the diagram as a Web Drawing. Once it is exported it must be uploaded to a SharePoint document library. For this we can use a site template named Visio Process Repository and a library Process Diagrams that is created in the site.  Now we can click the diagram and it will be visualized in the web browser.

Using the diagrams is limited by various settings. It is good to know about some of them, as we might be surprised when for example we will try to refresh the diagram and nothing will happen. It is because of Minimum and Maximum Cache Age that defines times between which refresh is possible. Also you are able to define maximum web drawing size, timeout periods for operations inside diagrams. Those settings are global for the service and available through Central Administration.

SharePoint Visio Services with Microsoft Office Visio application gives us a powerful tool. Diagrams can be visualized by web browser using SharePoint Server Visio Services. Data can be presented in another, more attractive way. From the other side all that is presented is basically in read only mode. There are no modifications available, so anything you would like to modify, forces you to use the Office application.  But most of all, it is another tool in your hand and if used wisely, it can bring profits to your company.

alt About author:
Michał Bojko -  Microsoft SharePoint Server MVP, organizer of Time For SharePoint conferences, Time For SharePoint Punch and many other community online and offline events. Professionally project manager, business consultant and a trainer with speciality in team management and process management. Uses SharePoint in day by day work, together with Project Server and SQL Server.