Trying Out Visio Services in SharePoint

Task lists in SharePoint 2010 have a button on the List tab in the ribbon’s Connect & Export section, called Create Visio Diagram.  Thought I’d try this out, and see what I could mock up using this, so I created several tasks in a list, and clicked the button.  It’s the one on the right of “Sync to SharePoint Workspace”, that looks like a little diagram.

CropperCapture[67]

Clicking the Create Visio Diagram button launches Visio 2010 and automatically creates a diagram with the following tabs:

  • Tasks Status
    CropperCapture[68]
  • Workload Distribution
    CropperCapture[69]
  • Incomplete Tasks by Assigned To
    CropperCapture[70]
  • And if there are workflows on the site that utilize this Tasks list, there will be a tab called “Workflow Tasks Status”

Interesting.  This generated diagram seems to be static, though, meaning changes in the data won’t change the diagram.  Here are the steps to make the data dynamic:

  1. In Visio, click the <Data> tab in the ribbon.  Click <Link Data to Shapes>
  2. In the Data Selector, choose “Microsoft SharePoint Foundation Services List”.  Click <Next>
    CropperCapture[72]
  3. Enter the URL for your SharePoint site.  Not a URL to a list, just the root of the site that the tasks list is in.  Click <Next>
  4. On the Select a List screen, choose “Tasks” and click <Next> and click <Finish>
    CropperCapture[73]
  5. Now a list of the tasks will be displayed at the bottom of the diagram in Visio.  You now have the ability to manually drag each item in the task list up to the matching item in the diagram.  The other way to match up the data is AUTOMATICALLY.
  6. On the Data tab in the ribbon, click the <Automatically Link> button.
  7. A wizard will pop up.  “All shapes on this page” will be selected.  Click <Next>.
  8. The next screen will allow you to pick the field to match up the items in the diagram with the items in the Tasks list.  By default, ID is selected.  That’s a good one, since it’s unique.  Click <Next> and then click <Finish>
    CropperCapture[74]
  9. Now, in the data table at the bottom of the diagram, there will be a little link icon next to each task row item, as so:
    CropperCapture[76]
  10. In Visio, click the <File> button, choose the <Share> tab on the left, and then click <Save to SharePoint> in the middle.  In this demo, I chose a document library on the same site as the tasks list.  Choose Web Drawing, and then click <Save to SharePoint>
    CropperCapture[71]
  11. When prompted, a pertinent name for this diagram would be “Tasks”.

Now, the data and the diagram are linked, so that viewing the diagram will always represent the current information in the tasks list.  Nice!

The next thing to try out is the Visio Web Access web part with this task list, and see what happens when connecting web parts.

  1. On the tasks list (all items view), click <Site Actions> and choose <Edit Page>
  2. In the middle of the page, click <Add a web part>, choose “Office Client Applications” in the web part categories, choose the Visio Web Access web part, and click <Add>
    CropperCapture[77]
  3. In the Visio Web Access tool pane, the URL to the Visio diagram is needed, to enter as the “Diagram URL”.  Simply click the ellipses next to the Diagram URL text box, to navigate to and select the Tasks.vdw that was just created.Note that you could just click OK and stop right here, and you would still have a good graphical representation of the tasks in the Visio diagram above the task list.  Further steps entail web part connections, for filtering of data… just to get a little more fancy.
  4. For “Shape Data items to make available to Web Part connections”, type ID
    Remember when we did that “automatically link” thing and chose the ID as the common field?  Well, that’s why we’re using that field here.  Click OK in the web part tool pane.
    CropperCapture[79]
  5. Next is the creation of a web part connection between Just like we’ve always created web part connections, click the little drop-down box at the top right of the Visio web part, choose “Connections”, then “Send Shape Data To”, then TASKS.
    CropperCapture[81]
  6. For the connection type, choose “Get Filter Values From” and click <Configure>
  7. For the Provider and Consumer field names, choose ID for both.  Click <Finish>
    (if step 4 above was skipped, ID will not be an option from the Provider)
    CropperCapture[82]
  8. In the Visio web part, switch over to the Workload Distribution tab, as so:
    CropperCapture[83]

NOW, on that Workload Distribution tab, when you click on individual tasks, it will automatically filter the tasks list to that one task!  See in the screenshot below, I clicked on Molly’s In Progress task, which put a blue box around it and filtered the task list to that one item.

CropperCapture[84]

Also, take a look again at that screenshot at #5 above.  Look at all the many different ways that you can connect this Visio Web Access web part to other web parts!  Seems like some pretty neat little solutions could be created with Visio incorporated.  Also, think about SharePoint workflows, and how they’re now tightly integrated with Visio.  I’m sure we’ll be able to come up with creative ways to display the live diagrams of workflows as they’re running!

If you’re interested in reading more about Visio Web Services, Toni Frankola has written a great article for the SDN E-magazine SharePoint 2010 special.  The PDF of this magazine can be downloaded here:

http://www.sdn.nl/FreeMagazine

20 comments

  • michaelgannotti@live.com

    Great post Laura! You continue to raise the bar in delivering practical real world content that your readers can take and run with. Michael Gannotti

  • jmackenzie@intelligenceamong.us

    Excellent post Laura.

  • schaefergf@teng.com

    Laura, Do you know if MOSS 2007 has any possibilities to be integrated with Visio? Looking at creating a Visio diagram and pull dynamic information from Sharepoint (and display in SP) Greg

  • Fantastic article! Pivot Diagrams are an amazing new feature of Visio 2010. I don’t know how I would have gotten started without this post. Thank you so much!

  • I noticed that if you assign more tasks to one person, the ID field for “Shape Data items to make available to Web Part connections” would not work properly. However, if you change it to Member and then in Connection Settings set Provider Field Name to Member and Consumer Field Name to Assigned To, it will work.

  • If you reassign task to someone else, the drawing will not update, will it?

  • abinay.km@gmail.com

    I do not have “Share” button in “File” tab in my Visio Premium 2010. Instead it shows “Save and Send” through which I am not able to save directly on SharePoint site. Can any one please help me on this.

  • Abinay, In the Beta, the tab was called Share, and when they released RTM they changed it to “Save and Send”. Same thing.

  • Good article.I have one query is that possible for us to select 1 visio shape in diagram and set that shape’s id or name to a list column value? Is that possible without any code? I mean can we done this with using connections only??

  • Nimisha, I think that’s possible, but not positive. Besides writing this blog post a long time ago, I haven’t done much with Visio services. My colleague Jennifer may know, though. http://blogs.sharepoint911.com/blogs/jennifer

  • Hi Laura, nice article. One question: what happens when I add new task on the list? Is it possible to make somehow that diagram also automatically generates the new item? Thanks, Luka

  • Luka, Unfortunately, new tasks will not dynamically be added to the diagram, which is a huge drawback.

  • Hi Laura, This is awesome post and very informative. However as we have a limitation of not updating this web diagram dynamically, Is there any programming way to add those into a diagram in event handler? Although seems very difficult. But just wanted to know, if you have any info on that. 🙂

  • Malay, Sorry, I don’t know of any workaround to this limitation. Also, I don’t know what an event handler is, since I’m not a developer.

  • Hi Laura, I am trying to enable the “Create Visio Diagram” button in a custom list. Any ideas in this direction? I am anticipating custom coding, but I am not sure where to start. Any help will be greately appreciated. Thanks a bunch. I have posted the question in stackexchange.com as well: http://sharepoint.stackexchange.com/questions/19063/how-to-enable-create-visio-diagram-in-a-custom-list

  • Hi Laura, Is it possible to create a Office-Layout that use SharePoint List for SharePoint 2007? (Reference: http://sharepoint.stackexchange.com/questions/19126/visio-diagram-link-to-sharepoint-2007)

  • Tom and Wilson, You can go into Visio Premium 2010 and on the Data tab, click “Link Data to Shapes”. That’s when it will let you pick any sharepoint list or library. Unfortunately Tom, the Task list is the only one that has the built in button in the ribbon. (Wilson, Visio 2007 also lets you link data to shapes, I just don’t remember where the button is, off the top of my head)

  • Thanks for a great post on visio integration with SharePoint. I tried the steps you defined in the post. But after doing Automatically Link steps, I am not seeing link icon. Also on updating the list data, the diagram is not updating even after clicking Refresh button.

  • Supar,
    That’s strange, maybe it’s an authentication problem? It usually just works, so that seems odd.

Leave a Reply