ho bisogno di ottenere il componente associato ad un'attività al sistema di eventi.Tridion flussi di lavoro - Come ottenere il componente alla attività di Event Handler
cerco di ottenere l'ID componente utilizzando:
public void OnActivityInstanceFinishPost(ActivityInstance activityInstance, string finishMessage, string nextActivity, string dynamicAssignee)
{
if (activityInstance.ProcessInstance.ProcessDefinition.Title.Equals("Component Process IESE"))
{
if (activityInstance.ActivityDefinition.Title.Equals("Create or Edit Component"))
{
WFE workflow = tdse.GetWFE();
try
{
Component comp = (Component)activityInstance.ProcessInstance.Item;
XMLReadFilter filter = new XMLReadFilter();
String processHistoryId = activityInstance.ProcessInstance.ID.Replace("131076", "131080");
ProcessHistory hist = (ProcessHistory)tdse.GetObject(activityInstance.ProcessInstance.ID, EnumOpenMode.OpenModeView, Constants.URINULL, filter);
}
catch (Exception e)
{ }
}
}
}
cerchiamo diverse opzioni:
Component comp = (Component)activityInstance.ProcessInstance.Item;
Ma questa soluzione restituisce un valore null.
poi ho trovato in internet la soluzione successiva:
XMLReadFilter filter = new XMLReadFilter();
String processHistoryId = activityInstance.ProcessInstance.ID.Replace("131076", "131080");
ProcessHistory hist = (ProcessHistory)tdse.GetObject(activityInstance.ProcessInstance.ID, EnumOpenMode.OpenModeView, Constants.URINULL, filter);
Component comp = hist.Item as Component;
Ma l'oggetto ProcessHistory è nullo.
Come posso determinare il componente associato al activityInstance?
Grazie.
Quale versione TCM è questo? –
Tridion 2009 SP1 – Guskermitt