WorkflowEngine v4.0 Release Notes

    • Designer usability improvement. Transition info will now be displayed in a fuller, more comprehensive form. You can now switch between full screen and normal edit window display modes. Toolbars design has been changed.
    • you can customize Activity ΠΈ Transition rendering in the Designer.
    • 🏁 you can customize Designer windows.
    • 🐎 Designer performance has been optimized.
    • πŸ‘ Scheme inlining. Now you can check a scheme as a scheme that can be inlined and embed it into another scheme. Thus you can re-use typical parts of your processes many times, without copying them between schemes. Multi-layered inlining is supported.
    • πŸ–¨ Process Info window has been added into the specific process view mode. It allows you to view this process parameters, transition history, launched timers. Here full information on subprocesses is also displayed.
    • You can specify annotations for Activity and Transition. Annotations are a dictionary (key - value) which you can set in the Designer individually for each Activity ot Transition. You can read annotation value in the code, using the following methods: activityDefinition.GetAnnotation<T>(name), transitionDefinition.GetAnnotation<T>(name), processInstance.ProcessScheme.GetActivityAnnotation<T>(activityName, name), processInstance.ProcessScheme.GetTransitionAnnotation<T>(transitionName, name)
    • πŸ”§ For the string parameter, which is transferred into Actions, Conditions and Rules, you can specify the structure which will define the form in which this parameter will be displayed in edit mode in the Designer. Form field contents can be specified in the Designer in the CodeActions section. Or you can create a class implementing IDesignerParameterFormatProvider interface on the server and configure your WorkflowRuntime in the following way: workflowRuntime.WithDesignerParameterFormatProvider(new YourDesignerParameterFormatProvider()). Thus you can specify the appearance of the string parameter which is transferred into Action, Condition or Rule.
    • πŸ‘» In the event handler workflowRuntime.OnWorkflowError you can now cancel exception throwing, using event arguments args.SuppressThrow = true;. Also you can specify the Activity, which will be set after error processing. For example, it can be initial activity: args.ActivityToSet = args.ProcessInstance.ProcessScheme.InitialActivity;
    • For simple execution of complex business cases in WorkflowRuntime use two of the following methods: workflowRuntime.GetAvailableCommandsWithConditionCheck(...) - get the list of available commands with additional conditions check, and workflowRuntime.ExecuteCommandWithRestrictionCheck(...) - execution of the command with additional restrictions check.
    • πŸ”€ Correct merging of the subprocess ΠΈ parent process has been added, when a subprocess is merged with its parent process immediately after launch. In other words, if a subprocess contains only Auto triggered transitions. Now merge will be correct, and the subprocess will wait till the parent process is unlocked.
    • πŸ”§ Process execution can be cancelled using CancellationToken. Such cancellation will be activated automatically if you configure your WorkflowRuntime in the following way: workflowRuntime.SetCancellationTokenHandling(CancellationTokenHandling.Throw).

    ⬆️ The following additional actions must be taken to upgrade to Workflow Engine 4.0:

    • ⚑️ Don't forget to update packages or dlls, and the Designer javascript, css and all designer related images.
    • Run the SQL script update_4_0.sql for all relative databases. You will find this script in your provider's archive.
    • πŸš€ If you have used process status change (for example args.ProcessStatus = ProcessStatus.Idled;) to cancel exception release after the event has been processed workflowRuntime.OnWorkflowError, you will need to use the following code args.SuppressThrow = true;. Status change hack won't work, custom status will be installed, but the exception will still be thrown.