通过自定义工作流程触发时不会执行转出

Rollout is not being executed when triggered through a custom workflow

我们有自定义工作流程,其中有一个流程步骤可以触发推出 [标准推出]。流程步骤已成功完成,但未执行推出。

@Component(
    service = WorkflowProcess.class,
    property = {
        "service.description=Workflow description",
        "service.vendor=Project",
        "process.label=Project"
    }
)
public class RolloutProcessStep implements WorkflowProcess {

    private static final Logger LOG = LoggerFactory.getLogger(RolloutProcessStep.class);

    @Reference
    private ResourceResolverFactory resourceResolverFactory;

    @Reference
    private RolloutManager rolloutManager;

    public void execute(WorkItem item, WorkflowSession workflowSession, MetaDataMap args) throws WorkflowException {

        try (ResourceResolver resolver = resourceResolverFactory.getServiceResourceResolver(Collections.singletonMap(
            ResourceResolverFactory.SUBSERVICE, RolloutProcessStep.class.getName()))) {

            triggerRollout(path, resolver);

        } catch (LoginException e) {
            LOG.error("Error in getting the resolver. Aborting.", e);
            throw new WorkflowException("Error in getting the resolver.");
        } catch (Exception e) {
            LOG.error("Error in during the step. Aborting.", e);
            throw new WorkflowException("Error in during the Rollout Process Step.");
        }
    }

    private void triggerRollout(String path, ResourceResolver resolver) {

        Resource source = resolver.getResource(path);
        if (source == null) {
            return;
        }

        try {
            LiveRelationshipManager relationshipManager = resolver.adaptTo(LiveRelationshipManager.class);
            PageManager pageManager = resolver.adaptTo(PageManager.class);
            // Checks if the given source is the source of a Live Copy relationship.
            if (!relationshipManager.isSource(source)) {
                LOG.warn("Resource Not a valid source {}.", source);
                return;
            }

            Page page = pageManager.getPage(source.getPath());
            if (page == null) {
                LOG.warn("Failed to resolve source page {}.", source);
            }

            final RolloutManager.RolloutParams params = new RolloutManager.RolloutParams();
            params.master = page;
            params.isDeep = false;
            params.reset = false;
            params.trigger = RolloutManager.Trigger.ROLLOUT;
            LOG.info("RolloutParams {}.", params.toString());
            rolloutManager.rollout(params);
        } catch (WCMException e) {
            LOG.error("Failed to get live relationships.", e);

        }
    }
}

PS:我们已经配置了蓝图,并且使用触摸 UI 执行的部署正在按预期工作。

如果我遗漏了什么,请告诉我。

问题已通过向服务用户提供访问此流程步骤的权限得到解决。