如何从当前自动化活动中设置下一个活动? [英] How to set the next activity from the current automated activity?
本文介绍了如何从当前自动化活动中设置下一个活动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从当前活动中决定下一个活动(自动决策活动)下面是我的代码.如何设置下一个活动?
I am trying to decide the next activity from the current activity (Automatic decision activity)The below is my code. How to set the next activity?
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);
这篇关于如何从当前自动化活动中设置下一个活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文