Comprendo que esto es una vieja pregunta, pero recientemente he luchado con este mismo tema desde una perspectiva Servicio básico y quería compartir la ruta Tomé (y posiblemente alguien me indique dónde podría haber ido mal antes de implementarlo en la producción).
Después de intentar algunos enfoques diferentes con Core Service, decidí agregar una actividad manual final a mis flujos de trabajo y lógica personalizada a la actividad automática anterior. En la lógica del servicio principal de la actividad automática, termino la actividad automática actual (que devuelve la instancia de actividad manual final), represento al autor original, comienzo la instancia de actividad final (como autor) y termino esa instancia de actividad final (nuevamente, como autor).
Estoy utilizando el SessionAwareCoreServiceClient y ejecutándose en el mismo gestor de contenido. He tenido que añadir "NT AUTHORITY \ SYSTEM" para los usuarios de suplantación en la utilidad de configuración de Content Manager Tridion (que podría haber implicaciones de seguridad utilizando Impersonate, así que asegúrese de que tiene sentido para su entorno):

el código se ve algo como esto (aunque he dejado fuera algunas cosas como conseguir la instancia de actividad actual, recuperando el autor original de la primera actividad manual y he añadido el uso de SessionAwareCoreServiceClient para dar un poco de contexto):
using (SessionAwareCoreServiceClient client = new SessionAwareCoreServiceClient())
{
ActivityFinishData activityFinish = new ActivityFinishData()
{
Message = message,
NextAssignee = new LinkToTrusteeData() { IdRef = authorUser.IdRef }
};
// Finish current automatic activity
ActivityInstanceData finalActivity = client.FinishActivity(activityInstance.Id, activityFinish, new ReadOptions());
// Impersonate original author
client.Impersonate(authorUser.Title);
// Start final (manual) activity as author - if you don't start it, then non-Administrators can't finish them.
client.StartActivity(finalActivity.Id, null);
// Finish final (manual) activity as author
client.FinishActivity(finalActivity.Id, activityFinish, null);
}
Espero no estar haciendo nada terriblemente estúpido y, posiblemente, esta respuesta ayudará a alguien como yo que tuvo que improvisar de varias otras preguntas/blogs/referencias y realizar un poco de ensayo y error (que puede ser tedioso con el flujo de trabajo).
¿Podría ser que el último tipo en su flujo de trabajo es la actividad automática? –
@Igor Exactamente, las actividades automáticas normalmente las realiza el sistema local, eso sin duda explicaría al autor. – Quirijn
La última actividad en mi flujo de trabajo es automática. Eso significa que cada componente que pasa por el flujo de trabajo no tiene un historial de versiones preciso. ¿Hay alguna forma de hacer que el autor del componente aparezca en el historial de la versión cuando se usa un proceso de flujo de trabajo como este? –