【发布时间】:2012-07-11 12:30:25
【问题描述】:
我正在尝试在从工作流发布组件后完成活动。
发布已完成,在设置完成活动消息后出现错误(“对象实例未设置为实例对象”)。
ActivityFinishData activityfinish = new ActivityFinishData();
activityfinish.Message = "Published to WIP Publication Target";
logdetails("Finish Message able to Set using Code,the below is the finish message");
logdetails(activityfinish.Message);
ProcessInstanceData processInstance = new ProcessInstanceData();
ActivityInstanceData activityInstance = (ActivityInstanceData)processInstance.Activities[0];
logdetails(activityInstance.Title.ToString());
logdetails(activityInstance.Id.ToString());
csClient.FinishActivity(activityInstance.Id, activityfinish, readoption);
logdetails("Workflow Finished");
【问题讨论】:
-
在过去的两周里,您已经就同一领域提出了十几个问题。在这个阶段你应该知道“Object instance not set to an instance object”是什么意思以及如何调试它。这并不意味着您不会在此过程中陷入困境,但您应该能够为我们提供更好的信息来帮助您。
-
您真的坚持每次都使用新流程,不是吗? - ProcessInstanceData processInstance = new ProcessInstanceData();
-
这是 Nuno 提出的一个非常的好点 - 当您实际上应该获取现有对象(或至少代表事物的对象时)您正在获取适当对象的新实例存在的)。如果您获得一个新的 ProcessInstanceData 对象,那么它将没有活动实例,因此您将没有任何事情要完成...
-
Nuno 已经写过,由于下一行,您将收到此异常: ProcessInstanceData processInstance = new ProcessInstanceData(); ActivityInstanceData activityInstance = (ActivityInstanceData)processInstance.Activities[0];因为您正在创建一个还没有任何活动的新流程实例。很可能您需要通过下一次调用 csClient.Read("SOMEID", readOption) 来读取现有流程实例
标签: tridion tridion-2011