Программный триггер ViewFlow HelloWorldFlow StartActivation не сохраняет процесс

Я попытался запустить новый экземпляр процесса HelloWorldFlow (демонстрация из ViewFlow) программно, а не через CreateProcessView, используя следующий код. Однако после выполнения кода я обнаружил, что ничего не сохраняется в базе данных.


        flow_task = flow.Start()
        flow_task.flow_class = HelloWorldFlow

        act = activation.StartActivation()
        act.initialize(flow_task, None)

        # execute and save
        act.prepare()
        act.done()

Когда я попытался принудительно сохранить процесс, добавив act.process.save(), я обнаружил, что данные процесса сохраняются, но нет связанных задач (в отличие от экземпляра процесса, созданного из пользовательского интерфейса, с которым связана задача запуска)

        # execute and explicit save
        act.prepare()
        act.process.save()
        act.done()      

Я попытался проследить код, но нигде в коде StartActivation не было ошибок, и поэтому я не могу найти ничего неправильного. Ценю любые указатели для меня, чтобы исследовать, почему код не ведет себя так, как ожидалось.


person Hoong Shen Wong    schedule 01.07.2020    source источник


Ответы (1)


Чтобы запустить поток программно, вам нужно использовать flow.StartFunction вместо flow.Start.

http://docs.viewflow.io/viewflow_core_node.html#viewflow.nodes.StartFunction

person kmmbvnr    schedule 06.07.2020