最近,用户出现了这种行为,我感到很困惑。假设所有SG都有工作流程设置。
复制SG A中的页面X,粘贴到相同的SG A.页面Y已创建,但未启动任何工作流程。 复制SG A中的页面X,粘贴到其他SG B中。创建页面Z并启动工作流程。
现在,我在现场时与Nuno确认了第一个场景。我们同意业务人员的意见,我们可以接受这种行为。但是,我很好奇为什么第二种情况按原样发生。如果#1没有启动工作流程,为什么#2?有谁能解释为什么?有没有什么办法可以通过编程方式让方案#1启动工作流程(因为业务希望这种情况发生)?或者,最坏的情况是从#2禁用它。它应该是一致的。
答案 0 :(得分:1)
但在实际情况中,我真的会质疑在您在同一结构组中复制页面时工作流程的启动。
当您在同一结构组中复制页面时,它将创建一个标题为Copy of original page name
的页面,CMS用户显然希望/需要使用正确的页面名称编辑该页面。一旦他们保存页面工作流程就会启动。此外,CMS用户可能也想要更改页面上的某些组件演示文稿。
当您在另一个结构组上复制它时,您正在创建一个在其他结构组中具有名称的页面,因此工作流程会启动,因为它不是同一结构组中的相同副本。
我认为这是一个不错的功能:) :)。
然而,尼克建议我也建议提交支持票。
如果您想考虑针对您的场景#1的编程方法,您可以通过简单地使用创建它的同一用户再次保存页面来实施EventSystem以强制启动工作流程。您需要捕获CopyEvent
。
如果你想要这条路线(未经测试),请使用示例EventSystem存根:
private void Subscribe()
{
EventSystem.Subscribe<Page, CopyEventArgs>(PostCopyActivity, EventPhases.Processed);
}
private static void PostCopyActivity(Page page, CopyEventArgs args, EventPhases phase)
{
// do your logic to save page..
string sourceId = args.CopiedObject.OrganizationalItem.Id;
string destinationId = args.Destination.ToString();
if (sourceId.Equals(destinationId))
{
// copying to the same location .. so now get the User Session and Update the page to force workflow
}
}
希望这些信息有所帮助。
答案 1 :(得分:0)
我继续在我的系统上尝试这个,并且它在任何情况下都没有启动工作流程(复制/粘贴到相同的结构组或不同的结构组)。
您是否在粘贴时触发了事件?