Tridion 返回到作者,不工作,不给出任何错误

Tridion 返回到作者,不工作,不给出任何错误,tridion,tridion-2011,Tridion,Tridion 2011,下面的返回作者代码在基于核心服务的工作流中不起作用 并且没有给出任何错误。有什么建议吗 public void返回给作者(字符串工作项ID) { var client=新的CoreServiceSession(); var csClient=client.GetClient(); var readoption=new ReadOptions(); var workitem=(WorkItemData)csClient.Read(workitemid,readoption); var proces

下面的返回作者代码在基于核心服务的工作流中不起作用

并且没有给出任何错误。有什么建议吗

public void返回给作者(字符串工作项ID)
{
var client=新的CoreServiceSession();
var csClient=client.GetClient();
var readoption=new ReadOptions();
var workitem=(WorkItemData)csClient.Read(workitemid,readoption);
var processInstance=(ProcessInstanceData)csClient.Read(
workitem.Process.IdRef,readoption);
var ieActivities=processInstance.Activities;
如果(ieActivities!=null)
{
var targetactivity=(ActivityInstanceData)csClient.Read(
processInstance.Activities[0].Id,readoption);
var finishData=新活动finishData();
finishData.Message=“自动完成”;
finishData.NextAssignee=newlinktotrusteedata{
IdRef=processInstance.Activities[0]。执行者[0]。IdRef,
Title=processInstance.Activities[0]。执行者[0]。Title};
csClient.FinishActivity(targetactivity.Id、finishData、readoption);
日志详细信息(“完成活动”);
csClient.Close();
}
}

我认为您必须将活动发回给表演者,而不是所有者(第一个活动的“所有人”)。您可能必须更改以下代码行

finishData.NextAssignee = new LinkToTrusteeData { 
        IdRef = processInstance.Activities[0].Performer.IdRef, 
        Title = processInstance.Activities[0].Performer.Title };

我认为您必须将活动发送回表演者,而不是所有者(第一个活动的“所有人”)。您可能必须更改以下代码行

finishData.NextAssignee = new LinkToTrusteeData { 
        IdRef = processInstance.Activities[0].Performer.IdRef, 
        Title = processInstance.Activities[0].Performer.Title };

能否检查
ActivityInstanceData.ActivityState
processInstance.Activities[0]
)属性?当它已经完成时,您将得到您提到的异常。在这种情况下,您需要重新启动活动:
ICOService2011.RestartActivity(activityInstanceId,readBackOptions)


那么,您的流程定义看起来如何?在流程定义中的第一个活动之后,是否从自动活动调用BackToAuthor?

是否可以检查
ActivityInstanceData.ActivityState
processInstance.Activities[0]
)属性?当它已经完成时,您将得到您提到的异常。在这种情况下,您需要重新启动活动:
ICOService2011.RestartActivity(activityInstanceId,readBackOptions)



那么,您的流程定义看起来如何?在流程定义中的第一个活动之后,是否从自动活动调用BackToAuthor?

我建议首先在调试器下运行代码,并验证ID是否符合预期。例如,流程实例是否正确,各种活动和执行者是否符合您的预期

我建议首先让代码在调试器下运行,并验证ID是否符合预期。例如,流程实例是否正确,各种活动和执行者是否符合您的预期

这可能不是问题的原因,但我建议不要捕获异常,而是让它逃逸。无论是谁调用了你的代码,都可能比你的自定义
logdetails
做得更好。弗兰克,你的意思是,代码是正确的?如果是,那么为什么不将项目移回作者?有什么线索吗?代码中的一个错误是捕获了一个您无法处理的异常。这与您报告的问题无关(否则,我将提供答案而不是评论),但一旦您将其投入生产,将伤害您的用户。好的,我已将代码更改为assing to performer而不是owner,但在事件日志“工作流活动已完成”中出现错误而且该项仍然没有移动到最后一个执行者,它位于全局工作列表本身(在自动活动“返回到作者”中)。这可能不是问题的原因,但我建议不要捕获异常,而是让它逃逸。无论是谁调用了你的代码,都可能比你的自定义
logdetails
做得更好。弗兰克,你的意思是,代码是正确的?如果是,那么为什么不将项目移回作者?有什么线索吗?代码中的一个错误是捕获了一个您无法处理的异常。这与您报告的问题无关(否则,我将提供答案而不是评论),但一旦您将其投入生产,将伤害您的用户。好的,我已将代码更改为assing to performer而不是owner,但在事件日志“工作流活动已完成”中出现错误项目仍然没有移动到最后一个执行者,它位于全局工作列表本身(在自动活动“返回到作者”中)我已将代码更改为assing to performer而不是owner,但在事件日志“工作流活动已完成”中出现错误,项目仍然没有移动到最后一个执行者,它位于全局工作列表本身(在自动活动“返回作者”中),您收到的错误消息是什么?请发布堆栈跟踪或完整事件日志。执行工作流脚本时出错。脚本引擎返回了以下信息:SOURCE:Line=6 Column=4 Number=-2146233087 SOURCE=mscorlib Description=工作流活动已完成。HelpContext=0,原因:mscorlib和说明:工作流活动已完成。来源:LogScriptError是第6行VBScript,您在其中调用BackToAuthor函数?是的,Ram,我正在从VBScript调用BackToAuthor函数我已将代码更改为assing to performer而不是owner,但在事件日志“工作流活动已完成”中出现错误,并且该项仍未移动到最后一个执行者,它位于全局工作列表本身(在自动活动“返回作者”中),您收到的错误消息是什么?您能发布堆栈跟踪或完整事件日志吗