当前位置 : 主页 > 网络安全 > 测试自动化 >

tridion – 如何从当前的自动化活动设置下一个活动?

来源:互联网 收集:自由互联 发布时间:2021-06-19
我正在尝试从当前活动中决定下一个活动(自动决策活动)以下是我的代码.如何设置下一个活动? public void DebugUserCheck(string workitemid){ CoreServiceSession client = new CoreServiceSession(); SessionAware
我正在尝试从当前活动中决定下一个活动(自动决策活动)以下是我的代码.如何设置下一个活动?

public void DebugUserCheck(string workitemid)
{
  CoreServiceSession client = new CoreServiceSession();
  SessionAwareCoreServiceClient csClient = client.GetClient();
  var readoption = new ReadOptions();
  WorkItemData workitem = (WorkItemData)csClient.Read(workitemid, readoption);          


  ActivityInstanceData currentactivity = (ActivityInstanceData)csClient.Read(workitem.Activity.IdRef, readoption);
  TridionActivityDefinitionData activitydefinition = (TridionActivityDefinitionData)csClient.Read(currentactivity.ActivityDefinition.IdRef, readoption);
  ProcessDefinitionData processdefinition = (ProcessDefinitionData)csClient.Read(activitydefinition.ProcessDefinition.IdRef, readoption);
  IList<ActivityDefinitionData> activityDefinitions = new List<ActivityDefinitionData>(processdefinition.ActivityDefinitions);

  string superuseractivitytitle = "";
  string superuseractivityid = "";
  string normaluseractivitytitle = "";
  string normaluseractivityid = "";

  foreach (var activity in activityDefinitions)
  {
    if (activity.Title == "Override")
    {
      superuseractivitytitle = activity.Title;
      superuseractivityid = activity.Id;                    
    }
    if (activity.Title == "Author Decision")
    {
      normaluseractivitytitle = activity.Title;
      normaluseractivityid = activity.Id;
    }
  }


  UserData user = csClient.GetCurrentUser();

  if (user.Id == "tcm:0-141-65552")
  {
    ActivityDefinitionData nextactivity = (ActivityDefinitionData)csClient.Read(superuseractivityid, readoption);
    ActivityFinishData finishdata = new ActivityFinishData();
    finishdata.Message = "Automatic decision activity finished";
    csClient.FinishActivity(currentactivity.Id, finishdata, readoption);
  }
  else
  {
    ActivityDefinitionData nextactivity = (ActivityDefinitionData)csClient.Read(normaluseractivityid, readoption);
    ActivityFinishData finishdata = new ActivityFinishData();
    finishdata.Message = "Automatic decision activity finished";
    csClient.FinishActivity(currentactivity.Id, finishdata, readoption);
  }            

}
而不是ActivityFinishData使用DecisionActivityFinishData

var decisionActivityFinishData = new DecisionActivityFinishData
{
  NextActivity = new LinkToActivityDefinitionData{IdRef = "next activity ID"}
};
csClient.FinishActivity(currentactivity.Id, decisionActivityFinishData, 
                        readoption);
网友评论