Tridion 2011工作流次要版本使用事件处理程序自定义代码递增

时间:2012-12-10 18:56:06

标签: events workflow version tridion tridion-2011

我们还有Tridion 2011和页面处理工作流程。我们在页面预保存上有事件处理程序。当用户保存页面时,调用事件处理程序来修改页面元数据并启动工作流程。因此,对于每个编辑器保存点击,页面的次要版本控制将变为0.3。所以基本上: 0.1 - 页面保存的Tridion版本 0.2 - 为保存页面元数据而执行的事件处理程序代码,由于Save()调用,此代码再次被调用以导致下一个次要版本 0.3 - 执行相同的事件处理程序代码。

我想要实现的是在每个用户保存点击时将次要版本保持为0.1。

我已尝试过Pre Save Post Save,Pre Check in和Post Check in并更改了执行顺序,即事件系统订阅调用的最后一个参数,但没有任何帮助。所以pl。帮助:)

1 个答案:

答案 0 :(得分:6)

为什么要在活动中调用Save()?如果您在保存页面之前进行了更改,那么它应该一次性存储所有内容,而无需您调用“保存”。

public PageEvent()
{
    EventSystem.Subscribe<Page, SaveEventArgs>(ChangePageTitle, EventPhases.Initiated);
}
private void ChangePageTitle(Page page, SaveEventArgs args, EventPhases phases)
{
    page.Title = "Nuno was here " + page.Title;
}

这会改变页面标题,如你所见,我不会调用Save,因为编辑器已经这样做了。