Enabling Declarative Workflows for Anonymous Users in SP2010/2007

Christophe asked a question about how to allow anonymous users to start workflows in SharePoint 2010. The question spread on both Twitter and SharePointOverflow before I had a chance to answer directly, so I’m posting the response here rather than trying to chase all the locations Smile

By default, anonymous access to run declarative workflows are disabled. This only affects anonymous users because a workflow started by an anonymous user would need to be assigned special credentials that would exceed the normal permissions of the anonymous user. For authenticated users, the workflows run with the credentials of that user, but there are no such credentials for anonymous users.

This situation occurs when you’re trying to email enable lists that have automatically launched workflows attached. In these scenarios, anonymous users can send emails to a list and have a workflow start, regardless of their permissions on the list.

It’s actually a very useful feature, and I’ve described such a scenario as part of a solution in an article I wrote several years ago on SharePoint Designer Workflows. Back then, anonymous access was enabled by default. In WSS3 SP1, Microsoft changed the behavior to not allow anonymous access at all, but allowed it if you set a special property in WSS SP2.

You can enable anonymous workflow access by setting the declarativeworkflowautostartonemailenabled property on the farm, either using SharePoint Manager 2010 or through PowerShell or STSADM:

stsadm -o setproperty -pn declarativeworkflowautostartonemailenabled -pv true

Found this article valuable? Want to show your appreciation? Here are some options:

a) Click on the banners anywhere on the site to visit my blog's sponsors. They are all hand-picked and are selected based on providing great products and services to the SharePoint community.

b) Donate Bitcoins! I love Bitcoins, and you can donate if you'd like by clicking the button below.

c) Spread the word! Below, you should find links to sharing this article on your favorite social media sites. I'm an attention junkie, so sharing is caring in my book!

Pin It

If you learn only one thing about SharePoint…

A few days ago… Frankly, that makes absolutely no sense because the majority of people will read this article at an arbitrary point in time, in which ‘a few days ago’ will likely be weeks, months, or years ago. Let me start again.

I was talking to a non-SharePoint friend who was fascinated with SharePoint and its raving success. Being an IT person, he does understand tech stuff, but seeing SharePoint as it is most commonly presented, he never saw the huge killer-app that many SharePoint professionals know it is.

“So”, he asked me, “in a single statement, can you tell me what SharePoint is?”

I’ve thought a lot about this in the past and have read a lot of suggestions. I’m not saying that everyone is wrong, but all the explanations I’ve seen are still not accounting for the success of SharePoint.

My response this time, as I think I’ve responded every time, is this:

SharePoint is a database.

It is nothing more and it is nothing less.

You can call it a lot of things, a collaborative solution, a development platform, an enterprise content management system… None of these, however, are accurate, any more than you can say that SQL Server is a game, just because someone uses SQL Server to store game data. Nor do these explanations explain why SharePoint is so powerful and has received the adoption it has.

So how does the glorified database explanation account for these thousands of end users, developers and other professionals loving so passionately a series of bits? I think it has to do with simplicity.

I think, and this is just my personal opinion, that when you want to understand something, you need to understand the basics first and then move from that basic to the more advanced. You can’t understand quantum physics unless you know the basics of Newtonian physics. You can’t understand graph mathematics unless you understand basic math.

Building on that analogy, there’s nothing preventing you from using both quantum physics and graph mathematics, or at least reap their benefits, even if you don’t know the first thing about why that damn cat is both dead and alive. To use something, you don’t necessarily need to understand how it works. You flip a switch and light comes on. You dial a number and someone answers. Who cares what electricity really is or why your voice travels thousands of miles in a fraction of a second.

This accounts for SharePoint as a user adoption thing. Users merely see it work. They click a button and some poor bastard gets a new task. They drag an icon and an invoice gets sent to a recipient.

I’m starting to lose myself a bit from the original statement, that SharePoint is a glorified database, so let me get back to what the heck I was talking about.

You see, all of the stuff that SharePoint does is related to information, which is just a marketing term for data. A page is at its core just information. An invoice is just a series of columns defined in a schema we call ‘Invoice’. Tasks, contacts, documents, everything that we see as complex entities with behavior, appearance, and all the other stuff, it’s all just data.

Now, I’ve made this claim to some pretty hard-core SharePoint experts, and they immediately start comparing SharePoint to SQL Server and claim that SharePoint is nothing like that, and although there are technical differences that makes the use of these two types of databases different, at its core, SharePoint is very much the same as SQL Server is at its core. It’s a matter of data, stored in lists in the case of SharePoint or in tables in the case of SQL Server. Items in lists are rows in tables. Columns in items are columns in rows. Views in SharePoint are views in SQL Server.

The similarities do not extend forever, and both SQL Server and SharePoint has distinct differences that makes them each suitable for a specific type of task. For example, SQL Server has nothing that compares to content types, while SharePoint lacks a clear counterpart to stored procedures. These are just features of the platform, however, and doesn’t change the fact that both platforms serve one purpose, which is to store, manipulate, and retrieve data.

Once you understand that SharePoint is a database, you can start to understand why it is so powerful. SharePoint takes data driven application development and solves all the ugly stuff that you’d normally need to consider as a developer. Further, it takes all of this and makes it readily available to users of all skill levels. This is where SharePoint clearly distinguishes itself from anything else; it is equally friendly and powerful to end users and first tier developers as it is to hard-core programmers like myself.

So, despite what many of my colleagues claim, I’ll still stick by my simple explanation that SharePoint is, at its very heart, a database.

Why is this a critical factor in SharePoint’s success? Well, we live in what is lovingly called the Information Age. Much of our society revolves around gathering and processing data. If you have a tool that makes that process easy, stable, and understandable to a lot of people, you have a winner. That’s exactly what SharePoint does, and that is why I argue that SharePoint is the killer app that it is.

Agree or disagree? Let me know… You know where the comment box is.


Pin It

Looking Back at SharePoint 2010

Now that we’re close to the end of 2014 and almost ready to start 2015, I thought it would make sense to look back five years to see what has gone on for the past half-decade since the release of SharePoint 2010. I’ll try to cover just the important events and leave out the lottery numbers. After all, who’d benefit from remembering the winning numbers some afternoon in 2012?

SharePoint 2013 Release

Obviously, for us SharePoint geeks, the release of SharePoint 2013 and its massive changes has taken a lot of the attention this year. The change to .NET 4.0 went better than feared by most developers, and opened up entirely new applications of SharePoint. After Microsoft promised that 95% of all existing code would keep working, many developers began reading up on .NET 4.0 and were better prepared. During the launch, Microsoft asked a representative selection of the 800,000 worldwide SharePoint developers, and over 60% answered that they had done real .NET 4.0 work lately, including myself, I might add.

The improved performance of SP2013 was welcomed by all. Contrary to the close to disastrous requirements of SP2010 at the time that launched, at least compared to the commonly used hardware at the time, SP2013 was much better in tune with what was available. Back in 2010, people were shocked that they’d need up to 32 GB of RAM to run SP2010, but when 2013 launched, you could barely find a server with as little as 32 GB.

Another welcomed feature was the database restructuring that allowed for much more flexibility on permissions. I’ll cover SQL Server 2012 and the new improvements later, but I remember in 2007 and 2010, if you would even mention item-level permissions, the server would crawl into a corner and cry for euthanasia. With 2013, those same servers, at least the ones that aren’t retired, can safely come back from the asylum and return to regular service. The new database performance is absolutely brilliant and I cannot find enough good things to say about the full relational data model.

Oh, and not to mention, the new SharePoint for Web offering, both in the cloud and for server installs. Finally, we could all put our SharePoint sites publicly without paying an arm and a leg. Completely rewriting the horrible Publishing framework into a separate product was likely the best thing that happened to SharePoint that year. Now all they need to do is remove or rewrite that activity feed thing, and I’ll be a happy camper.

Nowadays, light-weight SharePoint sites run an increasing number of public facing websites. Some have suggested that even WordPress 5.0 won’t be safe, even with the new WP content management engine. Certainly, with almost 5% market share worldwide and almost 75% of the IIS-based websites, SharePoint is gaining ground as a usable alternative to other open-sourced alternatives.

Steve Ballmer’s Retirement

After Steve announced his retirement in 2011 and moved on to found his own Steve B Foundation for technology in developing nations, Microsoft shares plummeted. Everyone thought that Microsoft was left without leadership, but the new team rose to the challenge, and within 6 months had recovered the former share price. After 12 months, they had caught up with Apple, and now again reign as the supremely largest company in the world, at least by market cap, after dethroning PetroChina late in 2013.

The huge initial failure of Windows Phone 7 likely triggered Steve Ballmer’s retirement, but that may not be the entire reason. I mean, when a man goes on stage during the 2011 SharePoint Conference and saying that SharePoint developers needed to use only Microsoft development tools, you’ve pretty much signed your own death warrant. C’mon, everyone uses WSPBuilder, even today.

It’s perhaps not coincidental, however, that SharePoint 2010 R2 came out just after the turn of 2012 and just weeks after Steve Ballmer quit. Fixing 90% of all the issues known at the time and vastly improving everything from performance to usability, it was like Steve was saying goodbye and everyone at Microsoft suddenly released all the goodies they didn’t dare do while he walked the halls of Redmond.

I’m just kidding Steve, you did a great job getting us as far as you did, and you certainly have deserved your retirement. I look forward to your keynote on next year’s SharePoint Conference 2015 in Orlando.

Windows Phone 8

Who’d have imagined the success of WP8 after the disastrous WP7 launch? I mean, taking on iPhone in the US and Android world-wide takes some serious balls. You don’t mess with 90% combined market share. On the other hand, Microsoft did so in the browser wars of the 90s, taking an almost complete dominance by Netscape and turning it into an equal dominance for Internet Explorer.

To us SharePoint folks, the native SharePoint client combined with the improved client object model finally made it feasible to bring corporate solutions to the mobile. Business users could finally take their work with them anywhere and have the same experience on their mobile devices as they have on the screen. With the new built-in projectors that most phones have now, you don’t even need to carry a laptop.

The default WPF interface in SharePoint still leaves a lot to be desired when viewed on a 900×600 resolution that most mobile devices have these days. The mPad, Microsoft’s attempt to gain ground on the tablet market, is a bit better, but I can’t imagine why they would put just 16 GB of memory in that thing. You can fallback to the old Ribbon based navigation, but frankly, that’s just so 2010 and makes me feel old.

Now if they could only fix that battery problem, we’d get more than the normal 8 hours of meeting time before we’d need to recharge.

SQL Server 2012

None of the cool new SharePoint features would be possible, however, without SQL Server 2012. With the new flexible data model, storing SharePoint-type data is as easy as brushing your teeth. What strikes me, however, is why nobody thought of this before. I mean, people have been asking for more flexible ways of storing data that combines the performance and scalability of SQL with the flexibility and easy of use of SharePoint-style data. Why didn’t the SQL Server team give us this before?

Further, we could finally and reliably put our data in the cloud with Azure, at least after Microsoft introduced their new Azure for Appliances, giving everyone their own little cloud with seamless integration with online clouds. In short, you’d put your data in SQL Server 2012 for Azure, and you could stop caring where the data was. No backups, no downtime, just data.

I’m not sure if you remember, but there was one guy (I tried Googling it, but can’t find it) that said that when the world was about to end, according to some, in December in 2012, that the only place he felt safe was if he could make himself into a BLOB and store himself in SQL Server 2012 for Azure.

The only bad thing I have to say about SQL Server 2012 is the hardware requirements. Even today, a 32 core server running 256 GB of RAM is a bit steep for a minimum requirement SME server, not to mention the 1 TB recommended minimum for the Azure edition. Still, if you’re prepared to shell out the roughly 4,000 dollars it would cost for that RAM, I’m sure you’ll get everything you could possibly need for eternity.

So, What’s to Come?

Well, we’re all waiting for SharePoint 2013 R2 to come out early next year. The improved scalability options should be cool, allowing you to extend your SharePoint farms to new VMs using SCVMM 2014 directly from Central Admin. Further, it will be interesting to see if the Office Live Apps will keep improving to a usable level. The new SMART web part that adapts to you and your current work patterns will certainly prove whether the new AI department at Microsoft is up to par.

And of course, we’re all looking forward to the Live Designer to r
eplace SharePoint Designer, and thus integrate all the online editing and design tools from Microsoft. I can’t wait to write WPF applications that works both online and on SharePoint without a single change to code. The barriers for end users to create compelling applications will certainly get smaller.

I hope you’ve enjoyed this little trip down memory lane. I hope that in five years, I can write a similar article about SharePoint 2016, still on the planning stage, and talk about all the wonderful new features it brought us.

If you have comments, just use the new voice-to-blog interface by speaking into your keyboard.

Now, if I could only get _that_ for my SharePoint 2013 R2 website, I’d forgive Microsoft for most of its transgressions.


Pin It