Tridion 复制/粘贴页面不';t在同一个SG中启动工作流,在其他SG中启动工作流

Tridion 复制/粘贴页面不';t在同一个SG中启动工作流,在其他SG中启动工作流,tridion,Tridion,最近有一个用户出现了这种行为,这让我很困惑。假设所有SGs都设置了工作流 复制SG A中的第X页,粘贴到同一SG A中。创建了第Y页,但未启动工作流。 复制SG A中的第X页,粘贴到其他SG B中。创建第Z页并启动工作流 现在,当努诺在现场时,我与他确认的第一个场景。我们与商界人士一致认为,我们可以容忍这种行为。然而,我很好奇为什么第二种情况会这样发生。如果#1不启动工作流,为什么#2应该启动工作流?有人能解释为什么吗?是否有任何方法可以通过编程使场景#1启动工作流(正如业务部门所希望的那样)?

最近有一个用户出现了这种行为,这让我很困惑。假设所有SGs都设置了工作流

复制SG A中的第X页,粘贴到同一SG A中。创建了第Y页,但未启动工作流。 复制SG A中的第X页,粘贴到其他SG B中。创建第Z页并启动工作流


现在,当努诺在现场时,我与他确认的第一个场景。我们与商界人士一致认为,我们可以容忍这种行为。然而,我很好奇为什么第二种情况会这样发生。如果#1不启动工作流,为什么#2应该启动工作流?有人能解释为什么吗?是否有任何方法可以通过编程使场景#1启动工作流(正如业务部门所希望的那样)?或者,在最坏的情况下,将其从#2禁用。它应该是一致的。

但在实际场景中,我真的会质疑是否需要在复制相同结构组中的页面时立即启动工作流

当您复制同一结构组中的页面时,它将创建一个标题为<代码>原始页面名称副本<代码>的页面,CMS用户显然希望/需要使用正确的页面名称编辑页面。他们一保存页面,工作流就开始了。此外,CMS用户可能还希望更改页面上的某些组件演示文稿

当您在不同的结构组上复制此文件时,您正在使用其他结构组中的名称创建一个页面,因此工作流将生效,因为它在同一结构组中不是相同的副本

我认为这是一个很好的特点:):

然而,正如Nick所建议的,我也建议提交一份支持票

如果您想为方案第1版考虑一种编程方法,您可以通过将创建该页面的同一用户简单地保存页面来实现EVENT系统强制工作流启动。您需要捕获

CopyEvent

如果您想走这条路线(未测试),请选择EventSystem存根示例:

private void Subscribe()
{
订阅(PostCopyActivity,EventPhases.Processed);
}
私有静态void PostCopyActivity(页面、CopyEventArgs args args、EventPhase阶段)
{
//按逻辑保存页面。。
字符串sourceId=args.CopiedObject.OrganizationalItem.Id;
字符串destinationId=args.Destination.ToString();
if(sourceId.Equals(destinationId))
{
//正在复制到同一位置。因此,现在获取用户会话并更新页面以强制工作流
}
}

希望这些信息能有所帮助。

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

当您复制同一结构组中的页面时,它将创建一个标题为<代码>原始页面名称副本<代码>的页面,CMS用户显然希望/需要使用正确的页面名称编辑页面。他们一保存页面,工作流就开始了。此外,CMS用户可能还希望更改页面上的某些组件演示文稿

当您在不同的结构组上复制此文件时,您正在使用其他结构组中的名称创建一个页面,因此工作流将生效,因为它在同一结构组中不是相同的副本

我认为这是一个很好的特点:):

然而,正如Nick所建议的,我也建议提交一份支持票

如果您想为方案第1版考虑一种编程方法,您可以通过将创建该页面的同一用户简单地保存页面来实现EVENT系统强制工作流启动。您需要捕获

CopyEvent

如果您想走这条路线(未测试),请选择EventSystem存根示例:

private void Subscribe()
{
订阅(PostCopyActivity,EventPhases.Processed);
}
私有静态void PostCopyActivity(页面、CopyEventArgs args args、EventPhase阶段)
{
//按逻辑保存页面。。
字符串sourceId=args.CopiedObject.OrganizationalItem.Id;
字符串destinationId=args.Destination.ToString();
if(sourceId.Equals(destinationId))
{
//正在复制到同一位置。因此,现在获取用户会话并更新页面以强制工作流
}
}

希望这些信息能有所帮助。

我在我的系统上进行了尝试,但它在任何情况下都不会启动工作流(复制/粘贴到同一结构组或不同的结构组)


粘贴时是否触发了事件?

我在我的系统上进行了尝试,但在任何情况下都不会启动工作流(复制/粘贴到同一结构组或不同的结构组)


粘贴时是否触发了事件?

我将为此提交一份支持票证。这种行为很奇怪,可能是个bug。我会为此提交一张支持票。该行为很奇怪,可能是一个bug。请注意,该事件应为CopyEvent。将更新我的帖子。谢谢。我将探索这些代码,以帮助使业务愉快。这里的规则是,所有内容都通过工作流进行发布,而发布仅通过工作流进行。因此,如果工作流在某人创建/编辑页面时不启动(他们考虑复制/粘贴页面创建),那么这会造成作者的困惑。将确认您的代码工作,希望很快:)请注意,事件应为CopyEvent。将更新我的帖子。谢谢。我将探索这些代码,以帮助使业务愉快。这里的规则是,所有内容都通过工作流进行发布,而发布仅通过工作流进行。因此,如果工作流在某人创建/编辑页面时不启动(他们考虑复制/粘贴页面创建),那么这会造成作者的困惑。将确认您的代码工作,希望很快:)将探索。。。支持也不能复制。所以,我正在探索是什么导致了它。当我有更多的洞察力时将更新。抱歉。在去度假之前忘了发这个。显然,这是必须的
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

       }
}