I’m on-site in Vietnam with a customer who is starting their SharePoint journey as well the wider journey to becoming a data driven business. We’ve been running through business and technical discovery sessions for over a week now and something came out of one of the meetings which was begging to have SharePoint step in and save the day.
The business problem
In this furniture design and manufacturing company, the product development team produce CAD drawing of parts and assembled components which then get issued to the production team. These hardcopy drawings are used to build the components to specification.
What happens from time to time is a breakdown in communication where a drawing gets revised, but the production team don’t get informed quickly enough and items continue to get made from out of date drawings wasting time, money and therefore profit.
The technical solution
What is needed is a solution to easily and quickly bridge the divide between the digital information of a drawing revision and quickly halt the work on a component or product while the correct drawings are found.
The solution was to create a tracking list on SharePoint which the product development team maintain, this defines whether a drawing is valid or invalid. Each row in the list has a unique QR code which gets created and encodes the URL to the display form. This image is then pasted onto the CAD drawing and then printed and issued allowing production staff in instantly validate a drawing as valid or not and with nothing more than a cheap smart phone or their own personal smart phone.
There was one blog post mentioning exactly what was needed but for SharePoint 2007.
Our solution was slightly different to his, mostly due to SharePoint 2010 behaviour –
- Create a custom list
- Create a column called QRCodeImage of type Picture/HyperLink, format the URL as a picture
- Create a workflow that runs when a new item is added performing the following:
- Create a Workflow variable called “GoogleChartAPIURL”, type string
- Calculate “CurrentItemID” minus 1 (output to variable:calc)
- Calculate “Variable:Calc” plus 1 (output to variable: calc1)
- Set the variable “GoogleCharAPIURL” to https://chart.googleapis.com/chart?cht=qr&choe=UTF-8&chs=100×100&chl=”http://yoursharepointsite/site/list/DispForm.aspx?ID= and add a lookup to the workflow variable “calc1”. This will generate the URL with parameters for your QR code and encode the direct link to the SharePoint list item.
- Set “QRCodeImage” field to the “GoogleChartAPIURL” variable.
- Save and publish the workflow.
This is what it looks like in a list item –
This solution is pretty widely applicable to most requirements to bridge the physical and digital worlds together such as; Document Tracking, Asset Tracking, or going event further not encoding URL’s at all and encoding Business contacts or other data which is dynamically generated off the list columns by the workflow.
It also has the following benefits:
- Cheap consumer hardware to do the scanning. Any smartphone will do.
- Free chart API from Google to convert the list item URL into a QR Code (although the API is officially deprecated it will continue to function until April 20, 2015).
- Easy to implement on SharePoint.
Once this type of system has proved itself you can easily move onto a more robust approach by stopping using Google’s API by running your own QR code generating web service on site but for most customers this is a quick and reliable way of leveraging this technology in the quickest and cheapest way possible.
There are commercial SharePoint add-on’s that also provide similar functionality too but for my case, they either didn’t have a SP2010 version or relied on SharePoint Standard features. This solution was build on SharePoint Foundation and should work with hosted versions including Office 365… at least until Google pulls the plug on the service in two years.