I need to get a component related to activity in an event system.
I am trying to get the component id using:
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) { } } } }
we will try different options:
Component comp = (Component)activityInstance.ProcessInstance.Item;
But this solution returns zero.
Then I found the following solution on the Internet:
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;
But the ProcessHistory object is null.
How to determine the component associated with ActivityInstance?
Thanks.
source share