2014-02-16 60 views
0

工作流程这是我目前在按下激活按钮事件的理解:的Adobe CQ/AEM:自上激活

如果用户拥有复制权限,内容发送给调度员。 如果用户没有复制,则运行请求激活工作流程。开箱即可执行两个步骤,这两个步骤都发送到管理员组。

如果我将OOB请求激活工作流更改为分配给另一个组,则该组将在其收件箱中获取该消息。

我的要求是我有多个网站属于公司内部的不同部门,这意味着每个网站对于只能创作内容的用户以及可批准/激活该内容的用户都有单独的组。在一种情况下,职业部门的内容还需要获得人力资源团队的批准。

如何更改工作流程以实现这些要求?

回答

0

我能想到的这样做的方法有两种:

1)改变OOB盒工作流程使用或步骤切换到基于内容的路径不同的充群体。处理页面和资产的页面以及像careers示例这样的特殊条件时,这会变得非常复杂。

2)创建一个运行Java代码的自定义步骤,该步骤使用AccessControlManager类在节点上查找复制权限,如果没有任何可以遍历该树直到找到具有权限的节点。

0

我已经选择了1)对于类似的问题。

如果您的主要担心是在您的OR拆分中有太多分支机构,也许有机会将工作流程的决策分解为多个步骤,而不是有一个决策点分支到许多不同的路径。

例如,您可能首先根据负载所在的站点进行拆分,然后根据用户类型或站点部分再次拆分。所以,像这样:

网站1

  • 部分1
    • 作用1
    • 作用2
  • 第2

网站2

...等等,其中缩进的每个级别代表一个单独的或分裂。

如果您在每个决策点使用容器步骤来触发子工作流程,这可能有助于使您的工作流更加有条理。

因为我不爱改变OOB请求激活流程的想法,我最小化,通过使第一步的或拆分,做一个普通的检查 - 基本上是:

Pseudo-code: 
if (we're in one of the sites that's subject to my custom workflows) { 
    Container step that points to my main custom workflow; 
} else { 
    Continue with the default Request for Activation workflow steps; 
} 

这样,你对OOB工作流进行最小限度的更改,如果您在同一实例上设置了新站点,并且不希望它受制于您的自定义工作流程,则可以自行开启运行默认工作流程。

0

我们已经在每个页面“页面所有者”中创建了一个自定义属性,它实际上是一个指向组的指针(我希望自从开始以来我们已经通过树来继承它)。然后对工作流进行了自定义,以便页面所有者组在收件箱中接收此内容以供审批。