We have a requirement to capture, in workflow, any Translation errors and provide the appropriate redirection of workflow control and/or notifications.
The problem is that the public API for Translation Manager Tridion.TranslationManager.DomainModel
does not expose information about the errors that occur while translating.
We have a Tridion Workflow that creates a translation job and suspends an activity, then a Translation Manager plugin resumes such activity when the job is completed. However, the completion of the job might have not been successful (an error occurred) and we need a way to determine what caused the error to act accordingly in the workflow.
With the current API we cannot tell which error took place or what was the cause (or see the stack trace for that matter).
Apparent Reason: The API itself can access such errors internally, however the Members which could potentially expose such information are either internal or within an internal class, hence can't be accessed.(See below)
Possible Solution: One possible solution we've considered (which would require the source to be updated so not ideal ... Tridion Support) ... could be to implement one or multiple public members in the Tridion.TranslationManager.DomainModel.Api.TranslationJob
class that exposes such information, something like:
public TranslationJobErrorDocumentCollection Errors
{
get
{
return this._job.Errors;
}
}
Current internal members/classes:
namespace Tridion.TranslationManager.DomainModel
{
internal class TranslationJob
{
...
public TranslationJobErrorDocumentCollection Errors
{
get
{
return this._errors;
}
}
namespace Tridion.TranslationManager.DomainModel.Api
{
public class TranslationJob
{
...
internal Tridion.TranslationManager.DomainModel.TranslationJob InternalTranslationJob
{
get
{
return this._job;
}
}
...
SDL Tridion 2013 SP1 HR1