我需要在事件系統中獲取與活動關聯的組件。Tridion工作流程 - 如何在事件處理程序的活動中獲取組件
我嘗試使用,以獲取組件ID:
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)
{ }
}
}
}
我們嘗試不同的選擇:
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);
Component comp = hist.Item as Component;
但ProcessHistory對象爲null。
如何確定與activityInstance關聯的組件?
謝謝。
哪個中醫版本是這樣? – 2013-02-13 08:43:06
Tridion 2009 SP1 – Guskermitt 2013-02-13 12:20:10