1

タスクがアクティブ化されたときにアイテムのサブプロセスを開始する必要があることはわかっていnますが、タスクの有効期間中にNSubprocess追加のアイテムが見つかる可能性があります。

Orderと があるとしましょうOrderItem。顧客が注文を送信し、フローがfulfill_orderitems( NSubprocess-FulfillOrderItemフロー) タスクに到達すると、注文アイテムごとにサブプロセスを開始します。

ただし、このタスクの有効期間中、fulfill_orderitemsお客様は当社に連絡して注文に追加のアイテムを追加することができます。この時点でOrder、少し面倒な新しいプロセスを作成する必要があります。一方、新しいサブプロセスを単純に開始できればFulfillOrderItem、物事ははるかに単純なままです。

明らかに、いったんfulfill_orderitems完了し、顧客が追加のアイテムを追加するために後で電話をかけると、ロールバックする (非現実的) か、新しいOrderプロセスを作成する必要があります。

これは簡単な例ですが、一般的に言えば、この動作は非常に便利です。これはコア機能であるべきだと主張する人もいるかもしれません (つまり、タスクのリフトタイム中にNSubprocess追加のサブプロセスを追加できるようにするため)。n+1これを行うにはどうすればよいでしょうか?

2つのことを処理する必要があります(私が見ることができるものから):

  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