One Stop Shopping Plus Mail Order

imageA few weeks ago, I received an email about an old post about managing a walking contest in SharePoint. Ironically, we are preparing to kick off the 2014 version of that contest in about 2 weeks and once again, we are managing it in SharePoint. I like to use these little side projects to demonstrate what SharePoint can do out-of-the-box. Some might ask “why focus on out-of-the-box? SharePoint can be so much more.

Their question is not quite correct and I am lying just a little bit.

The problem with their question is that “SharePoint can be made to be so much more” but the making can take a lot of time.

The lie that I’ve told is a lie of omission. I didn’t tell you that my box is bigger than Microsoft’s box. My box includes things like HarePoint Workflow Extensions and Nintex Workflows. HarePoint’s extensions add some very cool features to SharePoint Designer workflows and Nintex, well Nintex Workflows are like a slice of SharePoint Heaven here on Earth.

So, truth be told, I like to show people what we can do very quickly in SharePoint with the tools that we have available to us. That’s important for a reason that most IT departments don’t consider often enough.

Sometimes, people don’t ask for things because they think those things will be hard to build or expensive or that they will take too long.

They aren’t trying to save my time or my budget; they’re just trying to avoid being told “no, you can’t have that.

In the 2014 version of our SharePoint-driven walking contest, we have added two new features. Both are aimed at improving the user experience and both came at the request of my new young colleague Stacy. Stacy is not only the architect on this project, she’s the user. She’s managing the walking contest and she’s building the site with some help from me.

For those of you who are unfamiliar with a walking contest, it’s pretty much what you would imagine:

  • Our company is divided into teams.
  • Each person tracks and records their steps each day during the contest.
  • At the end of the contest, the team with the most steps wins a team prize and the person with the overall highest number of steps wins an individual prize.

Stacy wanted to make two improvements to the accounting process for the contest. She wanted to add options for mobile entry and she wanted a dashboard of sorts for reporting progress.

Mobile entry was easy but, again, it uses a few tricks from our bigger box. You can send your entry into a SharePoint Remote Entry library by including the subject line “10-11-2014 8,996” i.e. the date and the number of steps. A SharePoint Designer workflow, aided by HarePoint’s Regular Expression actions parses the subject line and adds the steps to your step count. A second workflow adds your step count to your team’s total.

We could do all the processing in one step, but I like breaking things into small chunks. That is a carryover from my history of coding in Smalltalk, but it’s a good practice for SharePoint. Small workflows are easier to test and they are easier to “debug” since there really isn’t a “debugger” available in SharePoint.

Employees with iPhones can also easily enter their steps via a mobile view of the Steps Entry form. Actually, anybody could do this, but “iPhone” is linked with “easy” because our MaaS360 mobile device management software allows us to push that mobile form through our firewall without the need for a VPN connection (which people hate to make on their phones).

Finally, we needed to build that dashboard, but we decided to make it functional instead of just informative – that’s where the “one stop shopping” comes from. We started with a Web Part Page and we added an Announcement part and an Instructions part in those top-of-the-page whole width zones. Then we added three useful parts. On the left, we have “My Steps” which is a view of the Steps list filtered on the current user. In the center, we added a view of Team Status that shows the current ranking of teams and on the right; we added a simple entry form for steps.

image

I have to admit, this is the first time I have ever put an entry form on a dashboard. It works. Having the entry form on the page makes this page the only thing people actually have to look at. My Steps, My Team and, as I look at my steps and realize that I forgot to enter yesterday’s value, I can do it without leaving the page.

Stacy’s homework assignment is to add a chart to graphically display some of these statistics and to make the page a little prettier. Mine is to start walking.

SharePoint Joinery

clip_image002One of the challenging things about working with wood is learning all of the different ways that wood can be joined together. As I said a few weeks ago, it’s not like you can weld it. Joinery is fascinating, labor intensive and meticulous work. The goal is to maximize the surface area for glue and if possible, include a mechanical connection for added strength. I know how to make almost every type of joint, but sometimes I cheat.

If you look at the picture to the right, you will see that it features an interesting joint. With a little fancy cutting, I can create the illusion of a door and a face frame in what is really a solid panel. But, if you look down and to the right, you’ll see a pocket screw.

Pocket screws are a wonderful little cheat. No fancy cutting involved. Drill a hole by running a special kind of bit through a jig, add a bit of glue and whirr whirr whirr, screw the thing together. Fast, easy and ridiculously strong, they only feel like cheating to the guy who knows how to cut the other kind of joints. Email is the pocket screw of SharePoint (see, I do know which blog I’m writing).

Apparently, the fitness freaks in our Human Resources department want us to get healthy. We are going to have an exercise contest where we will form teams, count steps and track calories and the winners will get something like a gift certificate at Dick’s Sporting Goods. Personally, I think that’s like dieting in order to win a case of Tofu, but that’s beside the point. The point is, they want to track this all in SharePoint, which is very cool. Even better, the young woman running the contest wants to build the tracking solution herself. Now that’s exercise I can support.

She will be using a couple of custom lists, some connecting gear and a widget or two:

Team Members – I.E. those of us inclined to walk, run, bike, swim or climb our way to a healthy heart.

Teams – Because some people need a better reason to exercise than living longer. For those people, we introduce peer pressure and the fear of letting your friends down.

Steps – Who, when and how many.

Workflows – She has one that enrolls a person onto a team, and one that adds an individual’s steps to the team total.

Widget – Sooner or later, she’s going to want to make this pretty.

Before we get to making this pretty, she wants to make it easy. I like that. SharePoint should be easy. The problem is that she wants us to walk every day! If we have walk on Saturday and Sunday, we have to have a way to record the steps. We have several:

VPN – Fire up your laptop, connect with VPN, go to the SharePoint site and enter your steps.

Mobile Browser – She’s going to make a nice looking mobile version of the entry page and we will publish that through the MaaS 360 browser. That way, people with iPhones or iPads can enter their steps without having to log in. That’s easy.

Email – Email? Yes, email. SharePoint can receive email. SharePoint workflows can “read” emails and I can enter my steps in a dirt-simple process.

To: TheSharePointLibraryAcceptingSteps@ourDomain.com
From: Me
Subject: Steps 06/01/2014 12,500

I’m going to walk a lot in June.

clip_image004That’s easy to do, and with the help of those HarePoint Extensions for SharePoint workflows, it will be easy to build. HarePoint is like the jig that helps me angle those pocket screws into position.

We use email in several processes where connecting something to SharePoint would otherwise require the equivalent of a hand-cut dovetail. For example, we have a process where SharePoint needs to know about a status change that results from a SQL Server stored procedure. Connecting SharePoint to SQL Server is possible, but running workflows on External Lists is not – the data isn’t in SharePoint. Fortunately, SQL Server can send SharePoint an email and we can read that email.

Of course, SharePoint can send email too. So, if one of our employees doesn’t include enough information on the subject line of that email, our workflow can write them back:

Yo, Stepper. We’re thrilled that you’re getting some exercise, but we do need three things to make those steps count. Please include the word ‘step’ (or steps, or Steppenwolf), an mm/dd/yyyy formatted date and the number of steps on the subject line of your email. They can be in any order, but we need all three.

Thanks,
Step counting robot

Sure, there are other ways to connect SharePoint to the rest of the world, but email works well enough in this case. People like email. People understand email. People can send email from almost anywhere using almost any device. Besides, the goal isn’t to show off our SharePoint prowess, the goal is to make life easy. I think I’ll go walk me some steps.

It’s Alive

iPad Screen shotWell I guess the phrase is actually “it’s now gone live” but that just doesn’t invoke the same emotional response. We have a business process that is now partially running in SharePoint. Even better, the right portion is running in SharePoint and the stuff that shouldn’t be in SharePoint is running somewhere else.

The business process is “payables” – something everybody has to do but something most people do differently than we do. See, we’re small, we don’t have a lot of vendors, we don’t have a complicated (no you can’t have that) procurement process and we don’t have a receiving dock. We buy things. We hire contractors. We incur professional fees. We refund premium on occasion and we reimburse people for things. We do this a bunch of ways. We have Concur (shudder and cue the foreboding music) which I actually kinda like. We do ACH transactions. We do wire transfers and we write checks. We also periodically reimburse people for small purchases with something called cash. I’m sure some of the younger readers are Googling that term.

The payables process, in addition to resulting in many financial outcomes, begins with a variety of financial transactions. Eventually, we will lasso all of these transactions and pull them into the same ring, but we decided to start with Check-Requests and checks. The process is pretty simple. We buy something from a vendor. They send us an invoice. We send them a check. In between step 2 and 3, someone studies the invoice, makes sure it’s legitimate, prepares a check request and then somebody else approves that request. That whole process, the stuff between step 2 and 3, is now done in SharePoint. Below are some of the cool things we (remember ‘we’ now means ‘they’ and stands for the shy people on my team) were able to include:

  • Maintaining a list of vendors that are automatically checked to make sure they aren’t on the US Treasury’s list of bad guys, and then approved by someone in authority in accounting.
  • Create a check request for an invoice(s) from an approved vendor.
  • Attach the image(s) of the receipt(s) to that check request.
  • Allocate the amount of that/those invoice(s) across multiple departments or multiple accounts within a department. For example, I buy a server, but some portion of the invoice is for the warranty.
  • Route the check request to one or more people for approval.
  • Do all the little checks and balances like making sure that the total of the allocations equal the total of the request.
  • Approve individual check requests for payment.
  • Allow the approvers to send the request back to the previous person to correct an error.

The tools used to make this happen include:

  • SharePoint external lists and the ability to impersonate users when working with them
  • InfoPath forms
  • Custom lists and views
  • Data View Web Parts to put the forms, lists and view on a single interactive page.
  • SharePoint Designer workflows to respond to the various activities a user did and to validate the transaction while it is in process
  • HarePoint’s Workflow Extensions to do some of the tricky stuff that SharePoint Designer doesn’t seem to do, like execute SQL Statements or use Regular Expressions to evaluate a sting.
  • Nintex Workflow’s “for each” capability to cycle through each Paid request in an external list to update our detailed custom list with the payment details.
  • All the various widget to widget connections you can establish in SharePoint Designer to get web parts to respond to other web parts.

We decided to use InfoPath instead of other techniques because we wanted a more functional form with less code buried behind it. I’m not sure that we saved on the coding effort, but I like the mix we are left with. We are trying to stay very close to the level where we can establish the action we want by “configuring” parts instead of writing code. It’s a fine-line kind of balancing act, but it works for us.

This just in, yes I know that Microsoft has put InfoPath on the short-line track to obscurity, but it will be around for a while and I feel that we risk very little by using it the way we do.

The reason I said that the right stuff is and isn’t running in SharePoint is central to our use case for having SharePoint and it is something that I think people often overlook – SharePoint runs in a browser. By building the front-end of this application in SharePoint, I can let people who are traveling submit invoices to be paid, approve payment requests and manage their budgets without having to write any web stuff. Also, since we have that Mass360 browser I talked about, I can approve payments on my iPad without a VPN connection.

The stuff that’s not running in SharePoint are those back-room accounting processes that nobody sees and everyone is content just knowing that they get done. Nothing to see here, move along.

Platform Jacking

I first heard the term Newsjacking used by David Meerman Scott. In fact he may have invented the term. That doesn’t surprise me. I have heard David speak several times, and he has been so far ahead of the curve that the future appeared to be a straight line.

I hope that’s enough homage to @dmscott for him to look the other way as I borrow his term and mangle it. I simply couldn’t think of a better way to describe what happens when a company moves in to exploit a hole in what should be another product’s / company’s domain. Think about the way Google stepped into fill the void Apple left when they decided to stop using Google Maps (in favor of their not nearly as accurate maps). Now, instead of Google being passed by, this may have evolved into a normal competition, but that’s a subject for someone else’s blog.

Microsoft, in my opinion has been jacked on at least two (maybe 3) occasions. OK, here’s the difference between me and David Meerman Scott and my blog and a blog written by an analyst – ‘my opinion’ is based on my experience and that’s all. Here are my three candidates:

MaaS360 – Back in the days when we were eagerly awaiting the first beta of SharePoint 2010, I was listening to a presentation by a Microsoft employee who suggested that one of the features of SP2010 would be a way to tunnel into SharePoint without VPN – Something Microsoft does with both Exchange and Lync via an edge Server. Those two features were a tremendous boon to our operation, and left most of our employees not even needing VPN connections on their laptops. If we had that ability for SharePoint, I could forget how to spell VPN, but we don’t. Once again, if we actually do, please explain it to me in a comment and I’ll buy you a beer if we ever meet in person.

Anyway, what I don’t think Microsoft does for my laptop, they clearly don’t do for my iPhone or my iPad – but MaaS360 does. If you’re not familiar with MaaS360, it’s a mobile device management app which allows companies to control mobile access at a very granular level. In addition, there is the MaaS360 Browser that talks to its counterpart server and provides seamless access to SharePoint from my iPhone. We are now planning to build out a collection of nice mobile pages so our employees will have access to SharePoint from their iPhone/iPads without VPN.

Harmon.ie – By far the best example of filling a void is Harmon.ie, the product that fills the chasm between Exchange and SharePoint so brilliantly that I no longer want Microsoft to build the feature into either server. Harmon.ie’s product is so cool, and so robust that I needed a term like Platform Jacking to describe it – some of our employees literally work out of Outlook and the Harmon.ie sidebar as if SharePoint doesn’t even exist. SharePoint, in these cases has simply become the invisible conduit to the even more invisible SQL Server.

I’ve written about Harmon.ie before, but a reader recently asked me to review Harmon.ie’s iPad app. OK, so we have to go back to that whole “not an analyst” thing. Giving a review sort of implies that I know something about Harmon.ie’s competitors – I don’t. Someone on my staff used to, but then we purchased Harmon.ie and we stopped caring about alternatives. Here are a couple of reasons why we still don’t care:

Harmon.ie works – You might be surprised to hear “it works” used as a differentiating statement for products, but it can be. Some products don’t work, or they don’t work as advertised. Harmon.ie works, and if you every find and area where it doesn’t, they will fix it fast.

Harmon.ie fills many holes – Harmon.ie started by filling the hole between Exchange and SharePoint and Lotus Notes and SharePoint. Then, they released Harmon.ie for the iPad and I had a way to connect my Exchange email with SharePoint on my iPad that looked and felt very similar to the way I connect these two essential products on my desktop. Now, I see that Harmon.ie has been released for the OWA client for Office 365. These guys are always one step ahead of demand.

WebEx – I recently received a new laptop at work. Somewhere during the lifespan of my old laptop, we switched to WebEx for hosting public meetings. Check out the picture at the top – That’s from my desktop, and WebEx has attached itself to my Lync client as if to remind me that Lync doesn’t work so well for public meetings. WebEx is jacking Lync right on Microsoft’s front lawn.