无法获得手动活动的所有者和执行者
我正在创建一个事件处理程序以获取所有活动的活动实例详细信息。无法获得手动活动的所有者和执行者
EventSystem.Subscribe<ActivityInstance, FinishActivityEventArgs>(NotifyUser, EventPhases.TransactionCommitted);
在“NotifiyUser”功能,我试图让activityinstance细节,如(标题,FinishMessage,老板,演员,等等。)
我能够得到所有的细节“自动活动“的”手动活动“,我无法获得”所有者“和”表演者“的价值观。
private void NotifyUser(ActivityInstance activityInstance, FinishActivityEventArgs args, EventPhases phase)
{
_session = activityInstance.Session;
logdetails("Activity Owner--->" + activityInstance.Owner.Title);
foreach (var performer in activityInstance.Performers)
{
logdetails("Activity Performer--->" + performer.Title);
}
}
这很奇怪,我不能重现它。
在我的代码我这样做(相同的订阅你)
private void LogSomething(ActivityInstance instance, FinishActivityEventArgs args, EventPhases phases)
{
User owner = instance.Owner;
File.AppendAllLines("c:\\temp\\info.log", new[]
{
string.Format("Activity ID: {0} owned by: {1}({2}", instance.Id, owner.Title, owner.Id)
});
List<User> performers = new List<User>(instance.Performers);
foreach (var performer in performers)
{
File.AppendAllLines("c:\\temp\\info.log", new[]
{
string.Format("Activity ID: {0} Performer: {1}({2}", instance.Id, performer.Title, performer.Id)
});
}
}
道歉我粗记录。
这是我得到info.log建立:
Activity ID: tcm:3-923-131104 owned by: T2011GURUV3\Administrator(tcm:0-11-65552
Activity ID: tcm:3-923-131104 Performer: T2011GURUV3\Administrator(tcm:0-11-65552
Activity ID: tcm:3-924-131104 owned by: NT AUTHORITY\SYSTEM(tcm:0-3-65552
Activity ID: tcm:3-924-131104 Performer: NT AUTHORITY\SYSTEM(tcm:0-3-65552
Activity ID: tcm:3-925-131104 owned by: T2011GURUV3\Administrator(tcm:0-11-65552
Activity ID: tcm:3-925-131104 Performer: T2011GURUV3\Administrator(tcm:0-11-65552
Activity ID: tcm:3-926-131104 owned by: T2011GURUV3\Administrator(tcm:0-11-65552
Activity ID: tcm:3-926-131104 Performer: T2011GURUV3\Administrator(tcm:0-11-65552
Activity ID: tcm:3-927-131104 owned by: NT AUTHORITY\SYSTEM(tcm:0-3-65552
Activity ID: tcm:3-927-131104 Performer: NT AUTHORITY\SYSTEM(tcm:0-3-65552
Activity ID: tcm:3-928-131104 owned by: T2011GURUV3\Administrator(tcm:0-11-65552
Activity ID: tcm:3-928-131104 Performer: T2011GURUV3\Administrator(tcm:0-11-65552
如此看来,这可能是与你的环境?也许是特定版本的缺陷?我在SDL Tridion 2011 SP1上使用修补程序汇总1
感谢Nuno,我无法让我的工作流程中的最后活动的执行者。并得到错误“The item tcm:56-1723-131104 does not exist”我试着用Transactioncommited和Processed阶段。我甚至不能使用启动阶段,因为我需要生成FinishMessage。 – user1428019 2012-07-31 09:38:56
我认为我没有尝试过,直到工作流过程结束,并且现在无法继续测试。你可以在活动完成之前尝试(EventPhase.Initiated)并检查它是否可用?也许这是预期的,我不确定这一点。 – 2012-07-31 09:47:02
在“已启动”阶段能够获得执行者,但是我还需要特定活动的完成消息,如果我使用启动阶段,则不会收到完成消息。 – user1428019 2012-07-31 09:55:51
您是否尝试过这样做_before_该活动已提交?尝试启动阶段,也许这些属性不再可用? – 2012-07-31 05:46:27
肯努诺,我会检查。但是,我能够为第一个手动活动(分配给每个人)以及所有剩余的自动活动获取这些属性,但不能用于手动活动。背后有什么理由? – user1428019 2012-07-31 06:04:02
不会这么想,这很奇怪。我会在我的盒子上尝试 – 2012-07-31 06:07:29