I love writing Visio automation code, but I really don’t like writing setup & deployment scripts. There are so many variables : What Visio version, which edition? Which bitness (x86 or x64)? What are the user settings for the paths of stencils or templates?
So, I decided to write myself some C# functions that can be used in custom actions for an installation writing application, such as Advanced Installer. I think of the methods as being in one of three phases, Installation; Functionality and Configuration. The registry has three different areas to search within, Classes Root (HKCR); Local Machine (HKLM) and Current User (HKCU). In addition, the best way to get the true file version of Visio is to use FileInfo on the executable. The following screenshots are from a Cross-Functional Flowchart of the functions that get values for variables, and use them in other functions, until, eventually, the current user settings can be read.
[Read more…] about Reading the registry for Visio settings
Each of the functions I wrote handle the part of the registry that needs to be used. By that I mean that some settings for 64bit Visio on 64bit Windows will be in a different branch than 32bit Visio on 64bit Windows.
The first function gets the current version of the application associated with Visio drawings:
The hardworking Microsoft Visio product development team have worked hard to almost match all of the functionality of the old server-side Visio services control, but they haven’t quite got everything. So I cheered when I hear that support for html overlays are in the roadmap to be supported! All I ask for now (almost) is layer control, and I will be very happy.
They also stated that they will be enabling all this functionality for non-SharePoint web sites in the future!
Go to http://aka.ms/voapireference got more details.
The first slot of the day at the furthest away room from the main conference area is not the ideal time to present anything, but those attendees that made it saw how many new features have been added to Visio recently, and what is soon to be added. The session recording should be available soon, but for those who can’t wait, here is a spoiler! ( View the session here )
Visio is an enormous application with literally millions of lines of code, so it is inevitable that bugs creep in for time to time, and can lay dormant .. until you really need it! Such an incident happened to me during a project for a large organisation where the latest and greatest build and versions are held up by the internal IT departments until they are sure that there is absolutely nothing hidden inside. In this project, I was given a laptop with Visio Pro for Office 365 to work with … not a problem, even though that moniker already told me that this was a seriously out of date edition, since it has been called Visio Online Plan 2 for quite a while. Anyway, I developed a solution that relies heavily on linked SharePoint lists and document libraries, using a view. The automatic name of these views are very verbose, so I consistently renamed them. Also, I had the same SharePoint Document library view linked more than once, so that I could link multiple rows to shapes, so renaming was, and is, absolutely essential. Several weeks went by, and my solution was working fine, until one day last week, my colleague told me that the Data / Refresh All was failing for him, and for other users. A review of his laptop showed that his Visio version had been updated to build 1708 from 1609 and the refresh was reverting the carefully renamed data recordsets back to the underlying SharePoint view name. My own personal laptop, not the client’s, is at build number 1808, so I will get the real fix from Microsoft soon via the normal channel updates for Click-to-Run.
[Read more…] about Temporary Fix for Data Refresh in Visio Click-2-Run
Well, this was disastrous, so I contacted the Microsoft Visio product team to report the issue immediately, stressing the urgency, and using my MVP credentials, of course. They quickly located the bug and fixed in internally, and it will be rolling out soon in the normal manner. There response was absolutely fantastic, and I would like to publicly thank them for reacting so effectively. However … the fix will not help for a while on this particular customer site as they are only just rolling out updates from a year ago! So, in the meantime, I have a problem, and possibly others out there in the wild may have a problem, but not yet realised it. Therefore, I have written some very simple macros that are activated by dragging and dropping one of two shapes onto a page, or from the macros ribbon button, in order to do the refresh, either for the active recordset in the External Data window, or for all data recordsets in the document. They simply get hold of the current name, refresh the recordset, and re-apply the name. Finally, the shapes delete themselves, and the master in the document.
The code is quite short and simple, and called by the drop event of the shapes, using the ShapeSheet formulas
A current project of mine has caused me to look more closely at the use of links and hyperlinks in “modern” SharePoint Online libraries. Every “modern” SharePoint Online library gets the option to create a new Link in addition to any other content types. They are InternetShortcut files with a .url extension. Only the filename is easily editable once created because the target url is within the file, and no editor is provided. However, it does provide a method to create a repository of approved urls. The alternative approach is to create a column of Hyperlink type, which can be edited easily. This article looks at the implications of each when used in SharePoint Online and used within an external data recordset in Visio, with the intention of providing shapes with hyperlinks.
[Read more…] about Using SharePoint Links and Hyperlinks in Visio
The video above shows how a Link is created in SharePoint Online, whilst the video below shows how a Hyperlink can be created (and edited).