使用basic創建工作流程如下。 未執行自動活動
創建一個calss庫,使用ProgId,設置comvisible true並在Tridion服務器中註冊該程序集。
這是我測試的方式:
- 創建從工作清單完成活動的一個組成部分
- 。
- 導航到「全球工作清單」,並通過選擇「返回作者」步驟完成審閱者活動,並單擊「完成」按鈕。
該項目未移至作者。但是當我從全球工作清單中再次完成活動時,該項目移至作者處。
看來我的代碼沒有執行活動,因爲我試圖刪除下面的VB腳本代碼,並嘗試使用默認的自動腳本代碼。
' Script for Automatic Activity Content Manager Workflow
FinishActivity "Automatic Activity Finished"
它的行爲與上面相同。所以我決定我的代碼沒有工作。任何人都可以幫忙嗎?
下面是我在 「回到作者」 的劇本框使用的VBScript的:
Option Explicit
Dim workflowHandler
Set workflowHandler = CreateObject("CoreComponentWorkflow.WorkflowHandler");
If Not workflowHandler Is Nothing Then
Call workflowHandler.MoveBackToActivity(Cstr(CurrentWorkItem.ID, "Create or Edit Component")
End If
Set workflowHandler = Nothing
下面是C#代碼:
public void MoveBackToActivity(string workitemid, string strActivitytoMove)
{
try
{
Session session = new Session();
WorkItem workitem = new WorkItem(new TcmUri("workitemid"), session);
ActivityInstance currentactivity = workitem.Activity as ActivityInstance;
ProcessInstance procInstance = currentactivity.Process as ProcessInstance;
IEnumerable<ActivityInstance> ieActivities = procInstance.Activities
.Select (s => s)
.Where (w => w.Title.IndexOf(strActivitytoMove) !=-1)
.OrderByDescending(w =>w.StartDate);
if (ieActivities != null && ieActivities.Count<ActivityInstance>() > 0)
{
ActivityInstance targetactivity = ieActivities.ElementAt(0);
User lastperformuser = targetactivity.Performers.ElementAt(targetactivity.Performers.Count<User>() - 1);
ActivityFinish finish = new ActivityFinish(targetactivity.FinishMessage, lastperformuser, workitem.Session);
currentactivity.Finish(finish);
}
}
catch (Exception ex)
{
throw ex;
}
}
活動在沒有按預期移回給作者的地方處於什麼狀態? –
從「審閱」狀態選擇「返回作者」活動。 – user1428019
這不是我所問的。在全球工作清單的狀態欄中查找值... –