Как сопоставить довольно сложный бизнес-процесс, такой как заказ, наличные и Corda Flow (s) - PullRequest
0 голосов
/ 01 ноября 2018

Представьте себе, что бизнес-процесс реального мира, который может занимать недели, должен отображаться на один или несколько потоков Corda. Поскольку длительные жизненные потоки влияют на жизненный цикл ПО (см. https://docs.corda.net/upgrading-cordapps.html#flow-drains). Интересно, существуют ли рекомендации по проектированию для потоков, касающихся времени жизни или других аспектов, таких как управление версиями / совместимость / зависимости от подпотоков / ...).

1 Ответ

0 голосов
/ 02 ноября 2018

Обычно вы моделируете каждый документ в состояние, т.е. SalesOrder, Goods, Delivery, Bill

Тогда для каждого действия это просто поток внутри Corda.i.e ApproveSalesOrderFlow, IssueGoodsFlow, ReceiveGoodsFlow, FulfillShipmentFlow, SettleBillFlow etc.

Поскольку некоторые процессы могут занимать недели, вам необходимо смоделировать жизненный цикл / состояние в состояниях. то есть SalesOrder может иметь жизненный цикл, например ISSUED, APPROVED, DELIVERED, PAID. После каждого действия (потока) вы переводите состояние из исходного состояния в соответствующие новые состояния, чтобы отслеживать его жизненный цикл. т. е. ApproveSalesOrderFlow может переместить состояние с ISSUED на APPROVED, и вы могли бы отслеживать lastApprovedDate, durationOfSLA, etc как поля в состоянии.

...