1

我们知道,当任务被激活时,应该为n项目启动子流程,但是,在NSubprocess任务的生命周期中,可以找到其他项目。

假设我们有OrderOrderItem。当客户提交订单并且流程到达fulfill_orderitems( NSubprocess-flow FulfillOrderItem) 任务时,我们为每个订单项目启动子流程。

但是,在此fulfill_orderitems任务的生命周期内,客户可以联系我们为订单添加额外的项目。在这一点上,我们被迫创建Order一个有点乏味的新进程;而如果我们可以简单地启动一个新的FulfillOrderItem子流程,那么事情就会变得简单得多。

显然,一旦fulfill_orderitems完成并且客户随后致电以添加其他项目,那么我们将不得不回滚(不切实际)或进行新Order流程。

这只是一个简单的示例,但一般来说,这种行为非常有用。有人可能会争辩说这应该是一个核心功能NSubprocess(即能够n+1在任务的提升时间内添加额外的子流程)。怎么做呢?

我们需要处理两件事(据我所知):

  1. 启动此附加过程的函数。据我了解,它可能很简单:
    @Activation.status.transition(source=STATUS.STARTED)
    def start_subprocess(self, item):
        self.flow_task.subflow_task.run(self.task, item)

  1. item通过表单提交的视图。或者直接通过代码提交。这一点我很难想出。它应该相对简单,因为它与StartSubprocess...非常相似(但我们需要调用前面提到的start_subprocess(item)?但是,我更感兴趣的是能够直接调用该方法(例如通过DRF)。
4

0 回答 0