| { |
| "id": "qaservice", |
| "version": "1.0", |
| "name": "Query Answer Service", |
| "description": "A simple SW example that coordinates the formulation of a query and it's resolution by using an external service", |
| "errors": [ |
| { |
| "name": "execution error", |
| "code": "javax.ws.rs.ProcessingException" |
| } |
| ], |
| "start": "Initialization", |
| "events": [ |
| { |
| "name": "queryResultEvent", |
| "source": "", |
| "type": "query_response_events" |
| } |
| ], |
| "functions": [ |
| { |
| "name": "sendQuery", |
| "type": "rest", |
| "operation": "specs/query-service.yaml#sendQuery" |
| }, |
| { |
| "name": "registerQuery", |
| "type": "custom", |
| "operation": "service:java:org.acme.QueryAnswerServiceHelper::registerQuery" |
| }, |
| { |
| "name": "registerAnswer", |
| "type": "custom", |
| "operation": "service:java:org.acme.QueryAnswerServiceHelper::registerAnswer" |
| }, |
| { |
| "name": "registerError", |
| "type": "custom", |
| "operation": "service:java:org.acme.QueryAnswerServiceHelper::registerError" |
| } |
| ], |
| "states": [ |
| { |
| "name": "Initialization", |
| "type": "operation", |
| "actions": [ |
| { |
| "name": "registerQueryAction", |
| "functionRef": { |
| "refName": "registerQuery" |
| } |
| } |
| ], |
| "transition": "Send Query and Wait For Answer" |
| }, |
| { |
| "name": "Send Query and Wait For Answer", |
| "type": "callback", |
| "action": { |
| "name": "sendQueryAction", |
| "functionRef": { |
| "refName": "sendQuery", |
| "arguments": { |
| "processInstanceId": "$WORKFLOW.instanceId", |
| "query": ".query" |
| } |
| } |
| }, |
| "eventRef": "queryResultEvent", |
| "transition": "Register Answer", |
| "onErrors": [ |
| { |
| "errorRef": "execution error", |
| "transition": "Process query service error" |
| } |
| ] |
| }, |
| { |
| "name": "Register Answer", |
| "type": "operation", |
| "actions": [ |
| { |
| "name": "registerAnswerAction", |
| "functionRef": { |
| "refName": "registerAnswer" |
| } |
| } |
| ], |
| "end": true |
| }, |
| { |
| "name": "Process query service error", |
| "type": "inject", |
| "data": { |
| "error": "The query service invocation failed, please try at another time" |
| }, |
| "transition": "Register error" |
| }, |
| { |
| "name": "Register error", |
| "type": "operation", |
| "actions": [ |
| { |
| "name": "registerErrorAction", |
| "functionRef": { |
| "refName": "registerError" |
| } |
| } |
| ], |
| "end": true |
| } |
| ] |
| } |