Translation Manager Retrieval for Preview AppData Context


Few months ago I worked in a project, in a customization of the default translation process of Translation Manager.

Back then, everything was working good for them, but one day they came with this idea “We want to be able to review the content in Tridion before the Translation Job is completed”. so that mean that they wanted to have in Tridion the translated content from the Translation Management System (TMS) before the TM Workflow is completed (the Translation Job is marked as Completed).

Because of the requirements of the client, the previous implementation was quite complex, having different event system already running in their box.


In order to support this scenario, Tridion has a Translation Manager hotfix that needs to be installed. the hotfix is “Hotfix TT88617“. after you install in the box where TM is running, you need to execute some steps in the TMS side. Basically a new manual activity called “Translated Content Retrieval for Preview” needs to be created in the Translation workflow. so, a very basic workflow would be :



Custom Implementation

Because of the previous complex implementation and having in mind that we wanted to let the user to review the translated content in Tridion. and because this content was already in translation process, we were not able to see the translated content in CME graphic interface. So the solution was to publish the translated content (the current minor version) into the staging (Presentation Server), that way they user could hit the page and see its translated content.

Well, that was the solution in paper, after that we needed to design it and then implement it, here is a very high level design of the solution.


The green boxes were executed in Event system context, the blue ones, in Automatic workflow activities in Tridion.

so, in a nutshell, we created a event system component that was listening for the save event for the components. In that event we validated that the execution was in a translated context, if so, we validated that it was the “Retrieval for Preview” step and not the final step (completed). if the execution met this validations we would publish the content.

we are not going to go in details about the whole implementation, instead we will focus in once specific part of this, the validation to know if the execution was either in the “Retrieval for Preview” or the translation Job was completed. because both scenarios had the exactly the same context.

In order to validate this, we needed to use Core Services to retrieve the application Data, this is an example :


once we were able to get the appData we needed to go through it and locate the value of the RetrieveReasons attribugte and validate if the values was “Review”



Hope if was helpful.


SDL Web Design Pattern: “Slicing”

As a Tridion an SDL Web developer, you’ve very likely converted a single block of HTML design into appropriate Tridion Building Blocks. The idea of breaking a page into types of content, represented in Tridion as Component Presentations, is not new to you. But have you “sliced” a Component by sets of fields?

A few months back, Damian Jewett, explored the idea of multiple Template Layout Building blocks. I’m following up with a potential use case for this approach along with a parallel idea with Component Templates instead. We can call this slicing, where we have a consistently used subset of fields out of a collection of Component fields.*

*I first heard the term “slice,” in a slightly different context, from a French design agency after they learned how Tridion worked.

First read Damian’s post. Continue reading

A Quick Word on Category Webdavs

I’m sure this is well documented somewhere, but I couldn’t for the life of me find it, so I thought I’d try to save someone some time and frustration.

Most people have probably used a WebDav URL to reference a Tridion object sometime in the course of their development. WebDav URLs are usually of the format:

/webdav/030C Account Center Content/Building Blocks/Content Continue reading

Schemas out of sync between environments? Panic!

Content Porter got you down, friend? You’ve got components from a lower environment that need to be migrated to a staging or production environment, but the schema they’re based on has changes that aren’t ready for prime time yet. It’s 1 am, and if you don’t get this solved by the start of business the sky will fall. Panic! Don’t panic. This has a very simple solution.

Continue reading

Website Optimisation using SmartTarget

target_audienceLast week I had the pleasure of attending the SDL Innovate conference in San Francisco. This years event was the best yet, for three (and possibly more) very good reasons:

  • There was an extra day deep diving into SDL technology, looking at what happens under the hood of the suite and ask questions to SDL implementation experts
  • There was a Hackathon day which brought a huge amount of developers out of the woodwork to collaborate on some cool open source SDL modules
  • I was there to present ‘Website optimisation using SDL SmartTarget’

OK maybe that’s not truly a valid reason to claim innovate was better, but if you are interested in SmartTarget and couldn’t make the event, you can find my presentation slides after the jump.

Continue reading

Who’s got that bugger checked out?

So that latest update of Chrome has broken some of the Tridion GUI :( … one consequence of this has been that a number of users have been checking out Components and not quite realizing.

Whilst checking who had a some of the items check-out I realised that one of my colleagues was giving out the wrong person – in disbelief, astonishment and sheer anger I had them show me just how they were retrieving the information… and it turned out to be a perfectly easy mistak.

So, this colleague… he was using a method that I suspect a lot of people do and thus thought I’d write this wee observation. On checking the History of the Component you’re presented with a list of … well a list of stuff.

list of stuff about Component history

As you can see Item [2] would appear to be showing me just who has this bugger checked out… but does it?

On closer observation I see that the last two versions [1] are the same – meaning a minor version hasn’t been added (i.e. the person with this checked out has just checked it out … that’s it… checked out and gone home / on holiday / another place of employment – how rude).

Now note item [3] … this shows me the person that really has this checked-out. And you can see that the user ID x43 is not the same as Damian’s x77 as [2] lead us to rashly believe! It seems that the ‘user’ is actually ‘last user to save this item’ whilst the comment is the important one!

Is there an easier way…

You betchya… open the offending Component and look at the ‘Info’ tab. Here we can see the item is locked as it’s checked out and Tridion is telling us which user this is [1].

Straight-up Component info

There’s no confusion here and I was probably in the Component anyway – additionally I can copy the username form here to enter directly into the email system…

Regards the user IDs … Tridion isn’t obfuscating the user for some crazy-ass security reason but this is the info it gets from the client systems – I can live with this and more importantly I can easily hunt down and get the person to check the item back in (or undo-checkout).


Increasing Load Performance with Content Delivery

In the past decade we’ve experienced a steady increase in the average page’s total resource size. It should come as no surprise to us that the resources that have grown the most belong in the media category; specifically images. While other resources have experienced a similar shift, images remain to be the bottleneck on an initial page load – and in a world that is constantly transitioning to mobile, with providers offering limited mobile bandwidth and data improvements, it is crucial that we prioritize its importance. In this post I will detail how we can minimize the resource payload on the initial load and detail considerations that should be made to accommodate low bandwidth visitors.

Continue reading

Edit AJAX loaded content with Experience Manager… really?

To be honest I had been a bit lazy. In all the conversations I had had on the subject of editing AJAX loaded content with Experience Manager I had been told it could not be done, so I didn’t even try. Until Jaime told me it was possible and I found out that its not even difficult. Continue reading

Developer? You should go to SDL Innovate!

sdl innovateSDL Innovate is a global customer experience event that takes place in Amsterdam, London, San Francisco, Tokyo and Sydney. Each event features industry experts and top brands sharing information about some of the work they’ve done and some of the best practices. You’ll also have access to SDL management and experts.

Continue reading