Как получить файл, хранящийся в хранилище под открытым небом из JavaDelegate - serviceTask? - PullRequest
0 голосов
/ 06 декабря 2018

Приветствую сообщество!Я использую alfresco community edition 6.0.0, и в настоящее время я пытаюсь реализовать рабочий процесс, где у меня есть serviceTask, вызывающий пользовательский класс, реализующий класс JavaDelegate.

serviceTask в коде 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?Возможен ли приведенный выше сценарий?Согласно моему поиску в Интернете, мне может понадобиться это RelatedContentService relatedContentService, чтобы сделать это, это правильно?

Заранее спасибо за любую помощь:)

1 Ответ

0 голосов
/ 07 декабря 2018

Что здорово в JavaDelegates, работающем в Activiti, встроенном в Alfresco, так это то, что у вас есть доступ к ServiceRegistry.Оттуда вы можете получить любой bean-компонент, который вам может понадобиться.

Например, предположим, что ваш JavaDelegate необходим для запуска действия Alfresco.Вы можете использовать ServiceRegistry, чтобы получить ActionService, и тут же вы:узел, использующий его ссылку на узел.

Взгляните на базовый API Java Alfresco, чтобы увидеть набор служб, доступных для поиска, обновления и создания узлов.

...