2012-07-18 13 views
10

मैं वर्तमान गतिविधि (स्वचालित निर्णय गतिविधि) से अगली गतिविधि का निर्णय लेने की कोशिश कर रहा हूं नीचे मेरा कोड है। अगली गतिविधि कैसे सेट करें?वर्तमान स्वचालित गतिविधि से अगली गतिविधि कैसे सेट करें?

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); 
    }    

} 

उत्तर

11
के बजाय

ActivityFinishData उपयोग DecisionActivityFinishData

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

धन्यवाद बहुत, अपने काम के – user1428019

संबंधित मुद्दे