Обычно вы моделируете каждый документ в состояние, т.е. SalesOrder, Goods, Delivery, Bill
Тогда для каждого действия это просто поток внутри Corda.i.e ApproveSalesOrderFlow, IssueGoodsFlow, ReceiveGoodsFlow, FulfillShipmentFlow, SettleBillFlow etc.
Поскольку некоторые процессы могут занимать недели, вам необходимо смоделировать жизненный цикл / состояние в состояниях. то есть SalesOrder
может иметь жизненный цикл, например ISSUED, APPROVED, DELIVERED, PAID
. После каждого действия (потока) вы переводите состояние из исходного состояния в соответствующие новые состояния, чтобы отслеживать его жизненный цикл. т. е. ApproveSalesOrderFlow
может переместить состояние с ISSUED
на APPROVED
, и вы могли бы отслеживать lastApprovedDate, durationOfSLA, etc
как поля в состоянии.