Add a Link to Manual Workflow

I’m building out a little thing for the company’s recruiters for when we add a friend to the list. An email goes to the boss of all of the recruiters saying one dropped. I have a link to the resume and the item, but I also had all of the pertinent information in the email. So even though the boss would be able to click on the link, go to the list item and click on my custom button to assign a recruiter, I thought I could cut out a step. I just created a link to the workflow I use to assign the recruiter.


The URL for that looks like this:{1519fb4a-ef7b-468f-ad4f-7b0b2fea8f6a}&ID=8&ItemGuid={83D33457-7C55-41F9-938D-69143006E3AC}&TemplateID={B7CB07B2-F62C-49D2-9848-11858888F65F}&WF4=1&Source=https%3A%2F%2Fxxxxxxxxxxxx%2Esharepoint%2Ecom%2FLists%2FReferAFriend%2FAllItems%2Easpx

I know that looks like a crazy URL to build, and it is.

First, you can strip off the source. That is so SharePoint knows were to drop you after you submit. It is coming from an email, so we only really need to build this:{1519fb4a-ef7b-468f-ad4f-7b0b2fea8f6a}&ID=8&ItemGuid={83D33457-7C55-41F9-938D-69143006E3AC}&TemplateID={B7CB07B2-F62C-49D2-9848-11858888F65F}&WF4=1

It comes in a few parts. You know what list this is, so we have the front of the URL, the list GUID, the ID, the ItemGUID, and the template ID. Separating much of these are braces {} so that the URL is constructed correctly. I thought I could use this string:

Well, guess what. There is no way to add those braces to a string. Microsoft will send you back this error:


That is unless you put those into their own variables. So I made all of these variables for the GUID, ID, open bracket, and close bracket:


Then, I changed my string to this:


Now I am able to insert it into my email to the management.


The management doesn’t like going outside of Outlook for anything, so this is the best middle ground I could do until I build an Office Add-in. I might do that in three years.

A Screw Loose

I often complain about neck pain. I usually share this with people soon enough because people ask me why I hurt, so I’ll just save my breath a little and tell everyone. It still hurts, but it isn’t like it used to be. On January 17, 2011, Martin Luther King Jr. Day, a guy pulled out of a parking garage and attempted to make a left on a four-lane road, K Street in DC. There was a bus blocking his view of me coming down the road, so he hit my passenger side. I didn’t notice the pain at first. In fact, it was several weeks later when I was driving on the highway and sneezed. Half a minute later, I felt this electrical pain going down my left arm. Considering my family history, I thought I was having my first heart attack. I pulled over and started to cry. I thought it was over, my life was done, no one could save me now. After two minutes of some excruciating pain, everything was normal again. No pain. Laughing hysterically, I knew I dodged a bullet but needed to see my doctor.

Long story short, my neurosurgeon figured out it was because of the accident. He eventually gave me a cervical fusion of C5, C6, and C7 by going through the front of my neck and pushing my throat to the side. I was off work for six weeks. My daughter was just six months old at the time of my surgery, eight months after the accident. The doctor forbid me from picking her up for months. Some of the drugs made me feel just stupid. I’d stop in the middle of my sentences forgetting what was going on. I went back in periodically to get a check up. Each time I got new X-rays. A little more than a year after the surgery, I was starting to feel a lot more pain without any more activity. My X-ray showed something scarey. One of the bottom screws in C7 had come out a little bit. I literally have a screw loose.

The bottom screw there pokes out 3.5mm.
The bottom screw there pokes out 3.5mm.

The doc decideded I needed another surgery to put to metal rods in my neck from the back instead of the front. Because the penticles (pieces of the vertabra that extend horizontally) at C7 were too thin, he needed to jump down to T1 and T2. C7 essentially floats now like a busted kitchen cabinet hinge. I can feel it sometimes when I turn my head moving when it isn’t supposed to. I feel better, but I still hurt. Most of the day I have a dull pain that gets progressively worse until I can lay down. If I look down too much from reading or cooking, it gets bad quickly. Before the surgeries, I wouldn’t feel much pain at all most of the day, but I’d fall down on the ground and cry like a baby if I sneezed. Successive sneezes were awful.

The scar on the back of my neck is pretty awesome. I want a tatoo of a couple battery symbols or “Warranty void if opened by unlicensed technician” next to it. Any ideas?

It still itches often.
It still itches often.

So you know how the doctor asks you to rank your pain on a scale of 1 to 10? I have a new reference point for what a 10 is. Makes you think about what is important in this world.

Metadata vs Folders

I just came across a group post on LinkedIn this morning about the use of folders in SharePoint document libraries. I made a decent response via my phone, but I wanted to make a proper post.

Current best practice for SharePoint – few folders or no folders?

The last time I looked at SharePoint architecture best practices, the thinking was that it was ok to have a few folders, but that the bulk of data should be in one big pile and filtered through metadata views instead of distinct folder locations.

Has that thinking changed, or is the best practice still to use views predominantly?

You can have the best of both worlds. You have at least two audiences for each library, the ones adding to it and the ones retrieving from it. If you have an old school records manager who works with your paper records, ask them about folder structure. I’d say that if your library has folders, you should do it the same way you would on paper. When was the last time you went to a filing cabinet, opened a folder, and saw more folders inside of it? If you have files at the same tier as folders, it is like putting papers on top of the cabinet because you don’t know where they belong. When you create a folder structure that goes nine nested folders deep, you really hide the content from the person looking for it. Even if you assume that anyone needing this could use search, you’d be fooling yourself. Search is smart enough to know that content that is nine nested folders deep is not as relevant as something that is at the root. That piece of content will end up on page 47 of your search results.

Set up the folder structure, then turn off the ability to add folders. Lock the into that structure so you don’t have the folder sprawl that plagues your shared drives. Then, create all of the views based on metadata and remove the folders from the views except for the view for those putting files in there. You can link to that particular view off the Quick Launch and limit who sees it by audiencing the link.

I’d be certain to invest the energy in creating good content types. You might want the PM’s name for all project plans, but you wouldn’t need it for the office picnic flyer.
Don’t just use one big library. Each library should have like content, not the same content types but similar content. You will end up with libraries that use workflows and libraries with more static content. The main the reasons why you split up your content into more than one library is because the content is very different from the other content, permissions vary, and the use of workflows for approvals and such. Unless a workflow is breaking permission inheritance, don’t break permissions inside of the library. It becomes much uglier to manage and can easily lead to orphaned content.

OneDrive Integration Into Your Blogs

I just figured out something cool. I was reading because I met the blog’s author, Kelly Rusk, at SharePoint Saturday Charlotte over the weekend and wanted to check on some stuff he had mentioned. He pointed out in a recent post that one could use intellisense in OneDrive if you go to open up certain file types. I checked by creating a .js file. The built-in text editor is pretty darn good. Then I spotted something else that drove me to make my own post. Inside of a folder in OneDrive, there is an embed link you can hit. It gives you code to insert on any other page to show people the contents of that folder. Here is the folder I’m going to dedicate to all of the big files for this blog. Check it out folks.

See that? You don’t even need to authenticate because it passes a key along with the link.

PSA: InfoPath and Office 2016

Office 2016 was just released today. I was so excited to download and install it. I have my reasons. Just ask those of you who get annoying junk mail notifications in Outlook 2013 how much you hate it. Yeah, Microsoft never fixed it.

I then started looking into how I should upgrade. Most easily done if you have an Office 365 subscription. Ok, cool. I then noticed that the InfoPath icon wasn’t included among the apps. We all know by now that InfoPath has been deprecated. I thought that maybe Microsoft would include the 2013 version with their 2016 suite, since they wouldn’t be upgrading it.

The answer is NO. If you have Office 2013 suite install with InfoPath 2013, that version of InfoPath will get wiped and removed along with your entire Office 2013 suite and upgraded to 2016. In order to create/modify InfoPath forms on Office 2016, you will need to reinstall InfoPath 2013. This will leave you with two “installations” of Office: 2016 and 2013.

Just a friendly PSA. Check here for more info.

Hidden Titles

The primary purpose for me to start this blog was to highlight a few of those war stories I’ve got of saving the day. I will leave the names of the clients I’ve had out of this.


So here is a rather recent event. A whole lot of us were on a rather large contract, and the client failed to get paperwork completed on time to keep us on site. We were sent home on mandatory vacation. While on vacation, I learned that there might not be funding for my position after we got back. I spent the time looking for another position. Anyway, three weeks pass and we finally get back to work. A few days later, a guy asks me why he can’t see Title on one of his libraries. After looking at that library for a minute, then others on the same site, then all the way to the Title site column of the whole site collection. Yes, you may have guessed it, Title had been set to hidden and cascaded through the whole site collection.


Now, in a happy world, I’d just run to the farm admin and ask him to restore from a backup, but that wasn’t going to be possible. It happened a week after we left the client’s site. It was another three weeks before I learned of this, so all of the documents that had been edited and pages that had been modified would have been lost if we restored from the last good backup. The only other contractor working on SharePoint with me spent seven days going to every single list and library in the site collection, converted all of them to manage content types, and set Title to required, optional, or hidden as required. I spent only two days on the task before I started to work on my last project before leaving to start with a new company.


Lessons Learned

  1. Obviously, never screw with the out of the box (OOTB) site columns.
  2. Don’t let qualified people have full control permissions at the root of a site collection. For the record, I had previously stated the one responsible should not have permissions there, but I’m only a contractor.
  3. Your farm admin should have a list of daily tasks and weekly tasks. Somewhere among them should include a series of tests to check for changes via the audit log. You can never expect communication to work properly even if you think you have a good change management process in place, so you need to have someone checking these logs often.
  4. Don’t expect a lot of love from the ones who enabled the person who did this when you fix it. This was a very public airing of dirty laundry. Just do your job and take notes.

SharePoint Irony

I do find it kind of ironic that this blog is not SharePoint hosted (no pun intended, Scott). Blame Microsoft. They can never seem to figure out what they want to do, so I guess this ended up here on WordPress.

If you would have asked me what SharePoint was 4-5 years ago, my honest answer would have been “a Microsoft product”. One two-day crash course and five clients later, I’m thankful to have been able to make a comfortable living developing in SharePoint exclusively. A lot of this is owed to great SharePoint gurus like Scott himself, who was my co-worker and is my colleague.

SharePoint is a great platform for business process automation. It is not a dumping ground for documents (but you can use it for that if you want). SharePoint can be your friend, and it can be your worst nightmare. It is what you make of it. In application, don’t think of things in a SharePoint-ey way, think of it practically. Then, learn and apply SharePoint to fit that practicality.

Oh, and one more thing Scott. It’s spelled “Tardar Sauce“.

Why SharePointSuperHeroes

Firstly, I wanted to explore a few war stories and tell you about those SharePoint challenges I’ve faced over the years.  I hope to bring on a couple others to share their experiences as well.  I’ve maintained for the last few years, but that was a blog using Office365, which has stopped allowing new public-facing sites.  It was also a domain to cover far more than just SharePoint; it was mainly aimed at hacking and security.  That was the goal nyway.

Secondly, I’m making a new start with a new company.  As a farewell gift, my coworker gave me the coolest picture ever.  She grabbed a little bit of everything about me and had an artist put it all into one graphic that says a lot about who I am.

Scott is the SharePoint Super Hero
Scott is the SharePoint Super Hero
Most of the clients I’ve had over the last several years were tied to the Army and I was in the Army for 10 years. I’m kind of grumpy, like Tartar Sauce (the coolest cat to grace the internet). Lastly, when someone needs help, I’m the hero.

Honestly, I know a lot of people in this business who are far smarter than I am, especially when it comes to adding code to a page to render data better or change the UI/UX; but, I’ve often been the only one for them to come to their aid. I have been in the customer service business my whole life, not just in IT. The truth is that we all are in the customer service business whether we like to admit it or not. Taking the time and patience with the customers, whether you can solve their issue right then or not, goes a long way. You also need to genuinely give a damn, and I do. It isn’t just a job.