| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 
 | {"Name": "purchaseProcess",
 "Comment": "用户下单流程-saga流程",
 "StartState": "CreateOrderNo",
 "Version": "1.0.0",
 "States": {
 "CreateOrderNo": {
 "Comment": "生成订单号服务",
 "Type": "ServiceTask",
 "ServiceName": "com.fly.seata.api.OrderApi",
 "ServiceMethod": "createOrderNo",
 "CompensateState": "CompensationCanalOrder1",
 "Catch": [
 {
 "Exceptions": [
 "java.lang.Throwable"
 ],
 "Next": "CompensationTrigger"
 }],
 "Output": {
 "orderNo":"$.#root"
 },
 "Next": "CreateOrder",
 "Status": {
 "$Exception{java.lang.Throwable}": "UN",
 "#root != null": "SU",
 "#root == null": "FA"
 }
 },
 "CreateOrder": {
 "Comment": "创建订单服务",
 "Type": "ServiceTask",
 "ServiceName": "com.fly.seata.api.OrderApi",
 "ServiceMethod": "createOrder",
 "CompensateState": "CompensationCanalOrder2",
 "Next": "ReduceStorage",
 "Input": [{
 "orderNo": "$.[orderNo]",
 "userId": "$.[order].userId",
 "productId": "$.[order].productId",
 "count": "$.[order].count",
 "price": "$.[order].price"
 }],
 "Catch": [{
 "Exceptions": [
 "java.lang.Throwable"
 ],
 "Next": "CompensationTrigger"
 }],
 "Status": {
 "$Exception{java.lang.Throwable}": "UN",
 "#root != null": "SU",
 "#root == null": "FA"
 }
 },
 "ReduceStorage": {
 "Comment": "扣减库存服务",
 "Type": "ServiceTask",
 "ServiceName": "com.fly.seata.api.StorageApi",
 "ServiceMethod": "reduce",
 "CompensateState": "CompensatingReduceStorage",
 "Next":"Succeed",
 "Input": [{
 "orderNo": "$.[orderNo]",
 "productId": "$.[order].productId",
 "count": "$.[order].count"
 }],
 "Catch": [{
 "Exceptions": [
 "java.lang.Throwable"
 ],
 "Next": "CompensationTrigger"
 }]
 },
 "CompensationCanalOrder1": {
 "Comment": "取消订单补偿服务1--用于订单号生成失败",
 "Type": "ServiceTask",
 "ServiceName": "com.fly.seata.api.OrderApi",
 "ServiceMethod": "canalOrder",
 "Input": [
 "$.[orderNo]",
 1
 ]
 },
 "CompensationCanalOrder2": {
 "Comment": "取消订单补偿服务2--用于订单生成失败",
 "Type": "ServiceTask",
 "ServiceName": "com.fly.seata.api.OrderApi",
 "ServiceMethod": "canalOrder",
 "Input": [
 "$.[orderNo]",
 2
 ]
 },
 "CompensatingReduceStorage": {
 "Comment": "库存补偿服务",
 "Comment": "扣减库存服务",
 "Type": "ServiceTask",
 "ServiceName": "com.fly.seata.api.StorageApi",
 "ServiceMethod": "compensateReduce",
 "Input": [{
 "orderNo": "$.[orderNo]",
 "productId": "$.[order].productId",
 "count": "$.[order].count"
 }]
 },
 "CompensationTrigger": {
 "Type": "CompensationTrigger"
 },
 "Succeed": {
 "Type":"Succeed"
 },
 "Fail": {
 "Type":"Fail",
 "ErrorCode": "STORAGE_FAILED",
 "Message": "purchase failed"
 }
 }
 }
 
 |