1

我对最近出现这种行为的用户感到困惑。假设所有 SG 都设置了工作流。

在 SG A 中复制页面 X,粘贴到相同的 SG A。页面 Y 已创建,但未启动工作流。在 SG A 中复制页面 X,粘贴到其他 SG B。创建页面 Z 并启动工作流程。

现在,当努诺在现场时,我与他确认的第一个场景。我们同意商界人士的意见,我们可以忍受这种行为。但是,我很好奇为什么第二种情况会按原样发生。如果 #1 不启动工作流程,为什么要 #2?谁能解释为什么?有什么方法可以以编程方式使场景 #1 启动工作流(因为业务希望发生这种情况)?或者,最坏的情况是从 #2 禁用它。它应该是一致的。

4

2 回答 2

1

但在实际情况下,我真的会质疑工作流程是否需要在您复制同一结构组中的页面时立即启动。

当您复制同一结构组中的页面时,它将创建一个带有标题的页面,Copy of original page nameCMS 用户显然希望/需要编辑具有正确页面名称的页面。一旦他们保存页面工作流程就会启动。此外,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

       }
}

希望这些信息有所帮助。

于 2012-10-12T02:02:13.597 回答
0

我继续在我的系统上尝试了这个,它在任何情况下都不会启动工作流(复制/粘贴到相同的结构组或不同的结构组)。

您是否在粘贴时触发了事件?

于 2012-10-12T22:52:06.477 回答