如何从 JavaDelegate - serviceTask 获取存储在露天存储库中的文件?

How to obtain a file stored in alfresco repository from JavaDelegate - serviceTask?

向社区问好!我正在使用 alfresco community edition 6.0.0,目前我正在尝试实现一个工作流程,其中我有一个 serviceTask 调用自定义 class 实现 JavaDelegate class.

bpmn中的serviceTask代码:

<serviceTask id="delegate"
                 activiti:class="org.nick.java.GenerateDocument"
                 name="Get the document">
</serviceTask>

Java代表class

public class GenerateDocument implements JavaDelegate {
    @Autowired
    RelatedContentService relatedContentService;

    public void execute(DelegateExecution execution) throws Exception {
        ProcessEngine p = ProcessEngines.getDefaultProcessEngine();

    }
}

我想做的是服务任务调用 GenerateDocument class,我可以以某种方式检索存储在我的露天存储库中的文档(我知道它的名称和 ID,以防万一需要的方法)。

理想情况下,如果我检索到该文件,我想对其进行更改并将其作为新文件保存在露天存储库中?以上场景是否可行?根据我目前在网络上的搜索,我可能需要这个 RelatedContentService relatedContentService 来执行此操作,这是正确的吗?

提前感谢您的帮助:)

在嵌入 Alfresco 的 Activiti 中 JavaDelegates 运行ning 很酷的一点是您可以访问 ServiceRegistry。从那里你可以得到任何你可能需要的豆子。

例如,假设您的 Java代表需要 运行 户外活动。您可以使用 ServiceRegistry 获取 ActionService,然后就可以了:

    ActionService actionService = getServiceRegistry().getActionService();
    Action mailAction = actionService.createAction(MailActionExecuter.NAME);
    mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, SUBJECT);
    mailAction.setParameterValue(MailActionExecuter.PARAM_TO, notificationEmailAddress);

在您的情况下,如果您想查找节点,您可能希望使用 SearchService 来 运行 查询或使用其节点引用查找节点。

查看 Alfresco 基础 Java API 以查看可用于查找、更新和创建节点的服务集合。