I’ll get to what’s awesome in a minute, but first I’d like to take this opportunity to tell SharePoint “it’s not me, it’s you.” I recently transitioned from holding up SharePoint’s database back end, to part of my new job involving consuming SharePoint services. Having been a giant fan of SharePoint infrastructure, I’m deeply hurt by the fact that, from the consumer side, it seems to make every little thing more complex, but also, more limited -- like the difference between Chrysler cars and the Chrysler Building – the product is functionally lacking but the house is the prettiest in the world (that analogy may have worked better pre-1950s when Chrysler actually occupied the building). The HA integration in SP2010 is a thing of beauty; it’s very sophisticated, but not overly complex, and really, really, resilient. Turn that sentence backwards, that pretty much sums up how I feel about trying to do even the simplest data related tasks from the consumer side. Grammar aside, I really do mean the simplest tasks imaginable. I can see why it would seem absurd that anyone would want to create a conditional drop down from a SQL DataSource…I probably would have thought that kind of functionality was overkill too (note: if you’re using a list, rather than a Database as the DataSource, the jQuery libraries for SharePoint can help you with that). It’s almost certainly due to my ignorance, but I genuinely don’t get the use case for external content types simplifying anything, or reducing admin overhead, or closing any security holes, unless all your external content type sources are Kerberos integrated. That seems like it defeats the purpose of giving power users access to that functionality.
Dear Power-User Pat in Purchasing:
External content types are here. You are endlessly empowered by them…but make sure you have a thorough understanding of delegation w/respect to your data…also, no Oracle unless you’re crazy experienced with Open Kerberos platforms…oh…you’re not? Then you’ll need to have the SharePoint Admin build everything for you.
Yours, Sally in SharePoint Services
You could fill a world with what I don’t know about external content types, so I would be thrilled to eat my words (although many of them are alliterative and poorly punctuated, so I’ll need ketchup or something). Actually, two months ago I would have been thrilled; since then, SharePoint hurt my feelings one too many times and we have broken up. I’ll never forget the good times with that amazing HA, and awesome PowerShell interface, and wicked DPM integration. It was even cute when you appended everything with a GUID, and ignored the AutoGrow settings on the model DB if the Admin didn’t check with me before adding a content or service DB, or that weird thing you do silently with auto update statistics: it made you quirky, like collecting vinyl or growing an ironic mullet. I’ll always cherish the memory of how Highly Available you were, but I think HA is generally most useful when it applies to something I have a use for.
For example: I have a dog who has a thing for a particular pair of shoes. She ate the heel off the left shoe of the pair, but I loved them so much I bought another pair. She promptly ate the left heel off the new pair. I was left with redundant, right-foot, patent-leather pumps. They’re Highly Available, I’m totally set if I lose one, and they’re very pretty, but they are useless to me, and only serve as a cruel reminder of how great they used to be. So what I’m saying, SharePoint, is if you don’t quit eating my shoes, maybe we should have a conversation about what your life was like before you landed in a pile of pillows and delicious shoes…actually, wait…I think I lost my train of thought.
Things that could also be considered Highly Available if the definition of HA didn’t have some sort of utility based bar to entry:
- Computing architectures built around n+1 buckets of plastic marbles in order to ensure consistent availability of n buckets of marbles (note to self: make sure they’re kind of melted together a bit so no-one gets any ideas about designing a manual computing system with them, because that might be close to useful)
- Ant density > 30:1 per any given square foot at a picnic (unless you are an anteater, in which case, it’s your lucky day and also, unlikely to stay HA for long)
- Kardashians – I’m sure they’re nice girls; there are just so many of them and I still don’t know why they’re famous.
All that whining aside, I wanted to post a shout out/thank you to the people who wrote
the SharePoint list adapters for SSIS. I know they’re not new, or even news, but in the few days before I archived this entry and decided not to post it (because I just sound bitter about my breakup with SharePoint, and also most people don’t share my deep concern for shoes and the Boxers who find them delicious) I had talked to several people who have been beating their heads against getting data from SharePoint as a WebService and were super excited that these adapters exist, so I’m posting a link to them (not that they’re hard to find, but some of us live in a cave). After fighting all kinds of stuff that doesn’t quite work, it’s so great to find something that…just…works. I have far less to say about them than SharePoint in General, because they do exactly what they say they’re going to do, nothing more, nothing less, and they just work. Really, you’re just setting us up for disappointment when the rest of the world doesn’t live up to impossibly high expectations. But yeah, mostly, just thank you!
It’s well documented on the
codeplex site, but just to recap how ridiculously user-friendly they are. You install the adapters, they show up as SharePoint List Source and SharePoint List Destination in your Data Flow tasks. You’ll probably need to run it through a Data Conversion Transform, but from there, right into the Database! Nice! The red x and lack of flow in the example below are because my working packages show system specific info, so I figured maybe less with the screenshots of my production environment. Once configured, it works like a charm!