Difference between revisions of "Workflow Designer"
(→{{UBIK}} activities) |
(→Standard activities) |
||
| Line 13: | Line 13: | ||
! Activity!! Category !! Purpose | ! Activity!! Category !! Purpose | ||
|- align="left" | |- align="left" | ||
| − | | AddToCollection<T>|| | + | | AddToCollection<T>|| Collection || - |
|- align="left" | |- align="left" | ||
| − | | | + | | ClearCollection<T>|| Collection || - |
|- align="left" | |- align="left" | ||
| − | | | + | | ExistsInCollection<T>|| Collection || - |
|- align="left" | |- align="left" | ||
| − | | | + | | RemoveFromCollection<T> || Collection || - |
|- align="left" | |- align="left" | ||
| − | | | + | | DoWhile|| ControlFlow || - |
|- align="left" | |- align="left" | ||
| − | | | + | | ForEach<T> || ControlFlow || - |
|- align="left" | |- align="left" | ||
| − | | | + | | If|| ControlFlow || - |
|- align="left" | |- align="left" | ||
| − | | | + | | Parallel|| ControlFlow || - |
|- align="left" | |- align="left" | ||
| − | | | + | | ParallelForEach<T>|| ControlFlow || - |
|- align="left" | |- align="left" | ||
| − | | | + | | Pick|| ControlFlow || - |
|- align="left" | |- align="left" | ||
| − | | | + | | PickBranch|| ControlFlow || - |
|- align="left" | |- align="left" | ||
| − | | | + | | Sequence|| ControlFlow || - |
|- align="left" | |- align="left" | ||
| − | | | + | | Switch<T>|| ControlFlow || - |
|- align="left" | |- align="left" | ||
| − | | | + | | While|| ControlFlow || - |
|- align="left" | |- align="left" | ||
| − | | | + | | Rethrow|| ErrorHandling || - |
|- align="left" | |- align="left" | ||
| − | | InvokeMethod || - || - | + | | Throw|| ErrorHandling || - |
| + | |- align="left" | ||
| + | | TryCatch|| ErrorHandling || - | ||
| + | |- align="left" | ||
| + | | FlowChart|| FlowChart || - | ||
| + | |- align="left" | ||
| + | | FlowSwitch<T>|| FlowChart || - | ||
| + | |- align="left" | ||
| + | | FlowDecision|| FlowChart || - | ||
| + | |- align="left" | ||
| + | | Assign|| Primitives || - | ||
| + | |- align="left" | ||
| + | | Assign<T>|| Primitives || - | ||
| + | |- align="left" | ||
| + | | Delay|| Primitives || - | ||
| + | |- align="left" | ||
| + | | InvokeMethod || Primitives || - | ||
| + | |- align="left" | ||
| + | | WriteLine|| Primitives || - | ||
| + | |- align="left" | ||
| + | | Persist|| Runtime || - | ||
| + | |- align="left" | ||
| + | | TerminateWorkflow|| Runtime || - | ||
| + | |- align="left" | ||
| + | | CancellationScope|| Transaction|| - | ||
| + | |- align="left" | ||
| + | | CompensableActivity|| Transaction|| - | ||
| + | |- align="left" | ||
| + | | Compensate|| Transaction|| - | ||
| + | |- align="left" | ||
| + | | Confirm|| Transaction|| - | ||
| + | |- align="left" | ||
| + | | TransactionScope|| Transaction|| - | ||
|} | |} | ||
Revision as of 06:18, 22 July 2013
The Workflow Designer is a component in UBIK® which appears on many occasions, namely every time when there is a Workflow to be displayed or edited. It features a full re-hosted version of the designer for the Microsoft Workflow Foundation, extended with manipulation capabilities for UBIK® objects.
Contents
Basics
Toolbox
The Toolbox features a wide range of Activities that cane be used within your Workflows. There are generic activities as well as activities specific for the manipulation of UBIK® objects.
Standard activities
| Activity | Category | Purpose |
|---|---|---|
| AddToCollection<T> | Collection | - |
| ClearCollection<T> | Collection | - |
| ExistsInCollection<T> | Collection | - |
| RemoveFromCollection<T> | Collection | - |
| DoWhile | ControlFlow | - |
| ForEach<T> | ControlFlow | - |
| If | ControlFlow | - |
| Parallel | ControlFlow | - |
| ParallelForEach<T> | ControlFlow | - |
| Pick | ControlFlow | - |
| PickBranch | ControlFlow | - |
| Sequence | ControlFlow | - |
| Switch<T> | ControlFlow | - |
| While | ControlFlow | - |
| Rethrow | ErrorHandling | - |
| Throw | ErrorHandling | - |
| TryCatch | ErrorHandling | - |
| FlowChart | FlowChart | - |
| FlowSwitch<T> | FlowChart | - |
| FlowDecision | FlowChart | - |
| Assign | Primitives | - |
| Assign<T> | Primitives | - |
| Delay | Primitives | - |
| InvokeMethod | Primitives | - |
| WriteLine | Primitives | - |
| Persist | Runtime | - |
| TerminateWorkflow | Runtime | - |
| CancellationScope | Transaction | - |
| CompensableActivity | Transaction | - |
| Compensate | Transaction | - |
| Confirm | Transaction | - |
| TransactionScope | Transaction | - |
UBIK® activities
| Activity | Category | Purpose (Short) |
|---|---|---|
| DebugMessage | UBIK Control Flow | Writes a debug Text |
| InvokeInterface | UBIK Control Flow | Invokes a UBIK® Interface component |
| InvokeWorkflow | UBIK Control Flow | Invokes a UBIK® Workflow object |
| SendEmail | UBIK Control Flow | Sends an Email To recipients via an SMTP Host |
| CreateCSVScope | UBIK Data Exchange | Creates a new csv document for flat data export |
| CreateCSVRow | UBIK Data Exchange | Creates a single row in a csv file |
| CreateCSVValue | UBIK Data Exchange | Creates a single value (column) in a csv row |
| CreateXMLScope | UBIK Data Exchange | Creates a new xml document for hierarchical data export |
| CreateXMLElement | UBIK Data Exchange | Creates a new xml element in an xml document |
| CreateXMLAttribute | UBIK Data Exchange | Creates a new xml attribute on an xml element |
| ReadCSVDocument | UBIK Data Exchange | Reads a csv file for flat data import |
| ReadXPathDocument | UBIK Data Exchange | Reads an xml file for hierarchical data import |
| GetXPathResult | UBIK Data Exchange | Evaluates an XPath-expression in a csv or xml document |
| AssignToNamedRelation | UBIK Object Primitives | Assigns a Child object via the named RelationName to a Parent object |
| AssignToSystemRelation | UBIK Object Primitives | Assigns a Child object via the given Relation to a Parent object |
| CreateInstance | UBIK Object Primitives | Creates a new instance of a given MetaClass |
| DeleteObject | UBIK Object Primitives | Deletes a UBIKObject (Deep delete by default, ShallowDelete optional) |
| GetObjectsByPropertyValue | UBIK Object Primitives | Queries instances of MetaClass where PropertyName has a certain value |
| GetObjectsByQuery | UBIK Object Primitives | Delivers the result of Query |
| RemoveFromNamedRelation | UBIK Object Primitives | Removes a Child object via the named RelationName from a Parent object |
| RemoveFromSystemRelation | UBIK Object Primitives | Removes a Child object via the given Relation from a Parent object |
| SaveObject | UBIK Object Primitives | Saves the UBIKObject (Deep save by default, ShallowSave optional) |
| SetPropertyValue | UBIK Object Primitives | Sets the Value to the property named PropertyName of the UBIKObject |
| AssignIconToBaseClass | UBIK UI Primitives | Assigns a selectable icon image to the UBIKObject |
| SelectSourceFile | UBIK UI Primitives | Brings up an open file dialog |
| SelectTargetFile | UBIK UI Primitives | Brings up a save file dialog |
| ShowUnsavedObjectsHierarchy | UBIK UI Primitives | Brings up the Unsaved Objects dialog |
| UserDecisionYesNo | UBIK UI Primitives | Brings up a Yes/No dialog with configurable Title and Text |
| UserInputText | UBIK UI Primitives | Brings up an input box with configurable Title and Text |
Design canvas
Property window
Working with the designer
Toolbar
| Item | Purpose |
|---|---|
| Open file | Opens a dialog to load a previously saved UBIK® workflow file (.uwf) into the design canvas |
| Save to file | Saves the current design canvas into a file (.uwf) |
| Toggle breakpoint | Sets/Removes a breakpoint at the currently selected activity (async execution only) |
| Resume | Resumes execution if a breakpoint was hit (async execution only) |
| Delay between activities | Execution delay in Milliseconds between activities (async execution only) |
This control doesn't feature any context menu yet.
Designing workflows
Designing a workflow is fairly easy and typically involves placing, configuring and connecting various Activities. All available activities are listed in the Toolbox on the left side. Use Drag&Drop to place an Activity on the canvas in the middle. Select an activity on the canvas and use the context menu or the Del key to remove it again.
| Unless the activity is of type FlowChart or Sequence, you will not be able to add more than one Activity to the canvas |
Typically we want to start with a Sequence or a Flowchart, which are both able to host child (nested) Activities
- The Sequence executes its nested Activities sequentially, one after the other
- The FlowChart executes its nested Activities in the order you link them with connecting lines
