Model: Flow Type
A flow type consists of entity instances and relation instances. Flow types are not runnable by itself, but you can create flow instances out of them.
Wrapper Entity Instance
Flow types can have input and output properties. These are provided by a so-called wrapper-entity-instance. The wrapper entity instance is the only mandatory entity instance of a flow type.
For the outside view, the input properties of the wrapper entity instance are the inputs. Inside the flow the input properties are output properties which can be consumed by the entity instances and relation instances within the flow type.
On the other hand, the output properties of the wrapper entity instance are outputs for the outside view. But inside the flow the output properties of the wrapper entity instance are inputs for the entity instances and relation instances within the flow type.
Nested Flow Types / Subflows / Subprograms
Nested flow types are possible. The outer flow type contains entity instances and relation instances which can interact with the wrapper entity instance and their properties of the inner flow type. This way it is possible to "call" subprograms / subflows / subactivities. The entity instances and relation instances of the inner flow type are hidden for the outer flow type.
Data Model
Field | DataType | Description | Example |
---|---|---|---|
Namespace | String | The namespace | logical |
Name | String | The name of the flow type | and3 |
Description | String | Textual description of the flow type | If all three input booleans are true, the output is true. |
Wrapper Entity Instance | Entity Instance | The wrapper entity instance | |
Entity Instances | Vec<Entity Instance> | The entity instances which are contained in this flow | |
Relation Instances | Vec<Relation Instance> | The relation instances which are contained in this flow | |
Variables | Vec<Property Type> | The variables. Variables will be replaced by instantiation of a flow instance | |
Extensions | Vec<Extension> | A list of extensions which contains additional information |
ER Diagram
erDiagram Flow-Type { string namespace string name } Entity-Type { string namespace string name } Entity-Instance { string id string label } Extension { string namespace string name JSON extension } Component { string namespace string name } Property-Type { string name enum DataType enum SocketType } Relation-Type { string namespace string name } Relation-Instance { string instanceId } Property-Instance { string name JSON value } Component ||--}o Property-Type : defines Entity-Type o{--}o Component : composes Entity-Type ||--}o Property-Type : defines Entity-Type ||--}o Extension : has Entity-Type ||--}o Relation-Type : outbound Entity-Type ||--}o Relation-Type : inbound Component ||--}o Extension : has Relation-Type ||--}o Property-Type : defines Relation-Type o{--}o Component : composes Relation-Type ||--}o Extension : has Property-Type ||--}o Extension : has Entity-Instance ||--}o Entity-Type : is-a Relation-Instance ||--}o Property-Instance : stores Entity-Instance ||--}o Property-Instance : stores Relation-Instance o{--|| Relation-Type : is-a Property-Instance o{--|| Property-Type : is-a Flow-Type ||--|| Entity-Instance : has-wrapper Flow-Type o{--}o Entity-Instance : has Flow-Type o{--}o Relation-Instance : has Flow-Type ||--}o Property-Type : has-variables Flow-Type ||--}o Extension : has