My colleague Derya Dönmez and I delivered the Tridion Developer Summit 2017 presentation "SDL Web Extension and Integration Gotchas, User Experience, and You."
This was a chance to:
See the slides: TDS 2017-05-12 Alvin and Derya (community).pdf
Here are some hopefully meme-worthy points to remember in your future implementations and upgrade scans, where you might have better approaches and tools today to tackle yesterday's challenges. I will highlight three points:
I took inspiration from a Lego Serious Play consultant (thanks, Jerome!). Though I've yet to actually do more with Serious Play; I've been using Lego Designer to illustrate some interesting integration challenges and how the latest SDL Web features might help.
Up until SDL Web 8.5, the Content Manager enforced a strict black box view on the contents within an item, not even allowing system users the ability to see in-progress or "minor" versions.
For example this can been seen with:
Exceptions include templating which runs in a special "trusted read-only" mode.
See my post "There is Always a User" for additional context.
These behaviors were mostly by design and make sense when supporting an "embargo" setup. This is still the default behavior for SDL Web 8 as it is important for customers that want to limit who has access to sensitive content such as product launches or press releases.
But if you find you want users to actually see and help each other with the latest changes, consider new configuration settings we introduced in SDL Web 8.5.
The new configuration settings for allowing "workflow as" collaboration and "translating minor versions" can be seen in the documentation:
The collaborative workflow setting makes the dynamic or minor version transparent to users both in the UI and code (remember that the UI uses the same APIs as you do), which means this applies to opening items, version history, and in-context editing.
Though you might opt to leave these settings off by default, you might choose to turn on:
It wouldn't make sense to translate minor versions but prevent users from seeing the latest changes.
Note that these global system-wide settings contrast with the SDL Web 8 granular controls given to users to include minor and/or in-workflow versions when publishing or to exclude items that use the queued items.
Sometimes you want granular control in your automation (Event System) code to let the system act on behalf of users.
I needed a way to illustrate the ElevatePrivileges privileges method introduced in SDL Web 8 and ended up using this.
Maybe I could have added a Goomba to explain RestorePrivileges. Though SDL Web Architect Likhan Siddiquee suggested I could mention that you might want to use ElevatePrivileges with a using statement to "restore" privileges when the code block is done.
Though I've been teased with a name like Alvin, it seems popular enough among other families bearing the name Reyes. My own name is supposedly an acronym for my parents' names (A and L), my grandmother's maiden name (Vi), and the first apartment my parents lived in (N).
For this presentation, since I was on a roll with the A-B-C-Ds of SDL Web implementations, my significant other suggested I dead pan an acronym with my own name. Thus was born:
To summarize, keep in mind that the embargo features in SDL Web were by design and fit historic content management use cases, which are still supported. You can now use new system settings to make dynamic versions transparent to other users for workflow and/or translation. And elevate, don't impersonate in your contenet management automation (event system) code.
The idea for the presentation topic goes back to 2015, where getting my new apartment in the Netherlands conflicted with the presentation schedule (thanks for having me back, Robert!).
Here are the posts that inspired the topic, but could use a rewrite or addendum to account for new features like the minor version translationn and workflow as collaboration settings.
As a final meta remark, maybe it's not a coincidence that I'm a Product Owner for the SDL Web integrations, given my interest in things like SDL Connected (which is not the more recent SDL Connect) and integrations.