All Downloads are FREE. Search and download functionalities are using the official Maven repository.

e.sonataflow.sonataflow-quarkus-integration-test.10.0.0.source-code.expression.sw.json Maven / Gradle / Ivy

{
  "id": "expression",
  "version": "1.0",
  "name": "Workflow Expression example",
  "description": "An example of how to use a JQ expression assignment",
  "constants" : {
    "dog" : {
      "castellano" : "perro",
      "leones": "perru",
      "gallego" : "can",
      "aragones" : "cocho",
      "catalan" : "gos",
      "vasco": "txakurra"
    }
  },
  "dataInputSchema" : "schema/expressionInput.json",
  "extensions" : [ {
      "extensionid": "workflow-output-schema",
      "outputSchema": "schema/expressionOutput.json"
     }
  ],
  "start": "squareState",
  "functions": [
    {
      "name": "max",
      "type": "expression",
      "operation": "{max: .numbers | max_by(.x), min: .numbers | min_by(.y)}"
    },
    {
      "name": "secretMessage",
      "type": "expression",
      "operation": ".message |= \"my name is \"+$SECRET.expression.my_name"
    },
    {
      "name": "constantMessage",
      "type": "expression",
      "operation": ".message |=.+\" and in my native language dog is translated to \"+$CONST.dog.castellano"
    },
    {
      "name": "userMessage",
      "type": "expression",
      "operation": ".user |= $WORKFLOW.identity"
    },
    {
      "name": "contextMessage",
      "type": "expression",
      "operation": ".message |=.+\" and the header pepe is \"+$WORKFLOW.headers.pepe"
    },
    {
      "name": "discardedResult",
      "type": "expression",
      "operation": ".discardedResult |=\"This string won't be added to the data\""
    },
    {
      "name": "printMessage",
      "type": "custom",
      "operation": "sysout"
    }
  ],
  "states": [
    {
      "name": "squareState",
      "type": "operation",
      "actions": [
       {
         "name": "maxAction",
          "functionRef": {
            "refName": "max"
          },
          "actionDataFilter": {
             "results" : ".max.x", 
             "toStateData" : ".number"
          }
        },
        {
          "name": "secretMessageAction",
          "functionRef" : {
             "refName" : "secretMessage"
          }
        }
      ],
      "transition": "finish"
    },
    {
      "name": "finish",
      "type": "operation",
      "stateDataFilter": {
        "input": "{result: .number, message: .message}"
      },
      "actions": [
         {
           "name" : "skippedAction",
           "functionRef" : "discardedResult",
           "sleep" : {
             "before" : "PT0.001S",
             "after" : "PT0.001S"
           },
           "condition": "false"
         },
         {
           "name": "costantMessageAction",
           "functionRef" : "constantMessage"
         },
         {
           "name": "userMessageAction",
           "functionRef" : "userMessage"
         },
         {
           "name": "contextMessageAction",
           "functionRef" : "contextMessage"
         },
         {
          "name": "printAction",
          "functionRef": {
            "refName": "printMessage",
            "arguments": {
              "message": "\"Result is: \"+(.result|tostring)"
            }
          }
         },
         {
           "name": "discardedResultAction",
           "functionRef" : "discardedResult",
            "actionDataFilter" : {
              "useResults" : false 
            }
         }
       ],
      "end": {
        "terminate": true
      }
    }
  ]
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy