6

我正在尝试从代码中激活一些页面。我已经制定了一个工作流程,只要在引用该页面的其他页面中修改了某些内容时,该工作流程就会修改页面。我试图通过设置激活属性来做到这一点,例如:

parentpage.setProperty("cq:lastModified", Calendar.getInstance());
parentpage.setProperty("cq:lastModifiedBy", session.getUserID());

尽管每次都会设置此属性。但是发布实例中没有发生激活。我们如何在自定义工作流程本身中激活程序化盟友?

4

2 回答 2

9

使用ReplicatorOSGi 服务:

@Component
public class MyComponent {

    @Reference
    private Replicator replicator;

    private void activatePage(Session session) {
    //...
        replicator.replicate(session, ReplicationActionType.ACTIVATE, pathToPage);
    //...
    }
}

您无需设置任何属性。

于 2013-09-23T11:21:37.520 回答
0

如果您没有该组件,那么您可以将服务注入为 -

Replicator replicator = getSling().getService(Replicator.class);
于 2014-12-17T17:45:21.453 回答