servicetask获取存储在alfresco存储库中的文件?

qkf9rpyu  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(402)

向社区致意!我正在使用 alfresco community edition 6.0.0 目前我正在尝试实现一个工作流,其中我有一个 serviceTask 调用实现 JavaDelegate 班级。
bpmn代码中的服务任务:

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

java委托类

public class GenerateDocument implements JavaDelegate {
    @Autowired
    RelatedContentService relatedContentService;

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

    }
}

我想做的是服务任务调用generatedocument类,我可以以某种方式检索存储在alfresco存储库中的文档(我知道它的名称和id,以防需要方法)。
理想情况下,如果我检索这个文件,我想对它执行更改,并将其另存为alfresco存储库中的新文件?上述情景可行吗?根据我目前在网上的搜索,我可能需要这个 RelatedContentService relatedContentService 这样做,对吗?
提前感谢您的帮助:)

2g32fytz

2g32fytz1#

运行在alfresco中嵌入的activiti中的javadelegate有一点很酷,那就是您可以访问serviceregistry。从那里你可以得到任何你可能需要的豆子。
例如,假设您的javadelegate需要运行alfresco操作。可以使用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基础javaapi,看看可用于查找、更新和创建节点的服务集合。

相关问题