Version Specific Upgrade Notes
Version specific documentation for upgrading to new major versions of Umbraco Workflow.
This page covers specific upgrade documentation for when migrating to Umbraco Workflow version 16.
Version Specific Upgrade Notes History
Version 16 of Umbraco Workflow has a minimum dependency on Umbraco CMS core of 16.0.0. It runs on .NET 9.
Breaking changes
Version 16 contains a number of breaking changes. The details are listed here:
Dependencies
Umbraco CMS dependency was updated to
16.0.0
Code
The list below includes all changes raising validation errors CP0001, CP0002 and CP0006 between versions 15.1.5 and 16.0.0.
Of note are changes to API controller constructors to accept an IWorkflowProcessFactory argument and the removal of IInstancesService.Create (IWorkflowInstanceGenerator.Create should be used instead). Other changes are not typical extension or integration points, but are listed below for reference.
Removed Types
Umbraco.Workflow.Core.Models.GlobalUserVariablesModelUmbraco.Workflow.Core.Models.GlobalVariablesModelUmbraco.Workflow.Core.Models.OptionTypeUmbraco.Workflow.Core.Processes.ICompleteWorkflowInstancesUmbraco.Workflow.Web.Api.Controllers.Settings.GetVersionSettingsController
Removed Members
Umbraco.Workflow.Core.ApprovalGroups.Services.IGroupService.GetUserGroupWithUsers``1(System.Guid)Umbraco.Workflow.Core.ApprovalGroups.ViewModels.ApprovalGroupDetailPermissionConfigModel.get_ApprovalThresholdUmbraco.Workflow.Core.ApprovalGroups.ViewModels.DocumentTypePermissionConfigModel.get_ApprovalThresholdUmbraco.Workflow.Core.Email.Models.HtmlEmailModel.#ctor(Umbraco.Cms.Core.Services.ILocalizedTextService,Umbraco.Cms.Core.Services.IUserService,Umbraco.Workflow.Core.Configuration.ColorSettings)Umbraco.Workflow.Core.Models.Enums.WorkflowType.BothUmbraco.Workflow.Core.Models.GlobalWorkflowVariablesModel.get_DefaultApprovalThresholdUmbraco.Workflow.Core.Models.GlobalWorkflowVariablesModel.get_FlowTypeUmbraco.Workflow.Core.Models.ScaffoldRequestModel.get_ContentTypeKeyUmbraco.Workflow.Core.Models.ScaffoldRequestModel.set_ContentTypeKey(System.Guid)Umbraco.Workflow.Core.Persistence.ITasksRepository.GetActiveByNodeId(System.Int32)Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator.GetProcess(Umbraco.Workflow.Core.Models.Enums.WorkflowType)Umbraco.Workflow.Core.Services.IInstancesService.Create(Umbraco.Workflow.Core.ViewModels.InitiateWorkflowRequestModel)Umbraco.Workflow.Core.Services.ITasksService.GetActiveTasksByNodeId(System.Int32,System.String)Umbraco.Workflow.Core.Services.ScaffoldService.#ctor(Umbraco.Workflow.Core.Services.ITasksService,Umbraco.Workflow.Core.Services.IConfigService,Umbraco.Workflow.Core.ContentReviews.Services.IContentReviewService,Umbraco.Workflow.Core.Persistence.IContentRepository,Umbraco.Workflow.Core.Services.ISettingsService,Umbraco.Cms.Core.Mapping.IUmbracoMapper,Umbraco.Cms.Core.Services.IIdKeyMap,Umbraco.Cms.Core.Services.IContentService)Umbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.get_StatusUmbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.get_TypeUmbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.get_WorkflowStatusUmbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.get_WorkflowTypeUmbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.set_WorkflowStatus(Umbraco.Workflow.Core.Models.Enums.WorkflowStatus)Umbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.set_WorkflowType(Umbraco.Workflow.Core.Models.Enums.WorkflowType)Umbraco.Workflow.Core.ViewModels.LanguageViewModel.get_IsDefaultUmbraco.Workflow.Core.ViewModels.LanguageViewModel.set_IsDefault(System.Boolean)Umbraco.Workflow.Core.ViewModels.UserItemModel.set_Name(System.String)Umbraco.Workflow.Core.ViewModels.UserItemModel.set_Unique(System.Guid)Umbraco.Workflow.Core.ViewModels.WorkflowInstanceViewModel.get_StatusNameUmbraco.Workflow.Core.ViewModels.WorkflowInstanceViewModel.get_TypeDescriptionUmbraco.Workflow.Core.ViewModels.WorkflowInstanceViewModel.set_StatusName(System.String)Umbraco.Workflow.Core.ViewModels.WorkflowInstanceViewModel.set_TypeDescription(System.String)Umbraco.Workflow.Core.ViewModels.WorkflowTaskCollectionViewModel.get_ApprovalsTextUmbraco.Workflow.Core.ViewModels.WorkflowTaskCollectionViewModel.set_ApprovalsText(System.String)Umbraco.Workflow.Core.ViewModels.WorkflowTaskViewModel.get_StatusUmbraco.Workflow.Core.ViewModels.WorkflowTaskViewModel.get_TypeDescriptionUmbraco.Workflow.Core.ViewModels.WorkflowTaskViewModel.get_TypeIdUmbraco.Workflow.Core.ViewModels.WorkflowTaskViewModel.set_TypeDescription(System.String)Umbraco.Workflow.Core.ViewModels.WorkflowTaskViewModel.set_TypeId(System.Int32)Umbraco.Workflow.Web.Api.Controllers.Action.ApproveActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper)Umbraco.Workflow.Web.Api.Controllers.Action.ApproveOrRejectActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper)Umbraco.Workflow.Web.Api.Controllers.Action.CancelActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper)Umbraco.Workflow.Web.Api.Controllers.Action.RejectActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper)Umbraco.Workflow.Web.Api.Controllers.Action.RequiresInstanceActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper)Umbraco.Workflow.Web.Api.Controllers.Action.ResubmitActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator)Umbraco.Workflow.Web.Api.Controllers.ApprovalGroup.DeleteApprovalGroupController.#ctor(Umbraco.Workflow.Core.ApprovalGroups.Services.IGroupService,Umbraco.Cms.Core.Security.IBackOfficeSecurityAccessor,Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Services.INotificationsService,Umbraco.Workflow.Core.Services.IConfigService)Umbraco.Workflow.Web.Api.Controllers.Information.GetInformationController.#ctor(Umbraco.Cms.Core.PublishedCache.IDefaultCultureAccessor,Umbraco.Cms.Core.Security.IBackOfficeSecurityAccessor,Umbraco.Cms.Core.Services.ILanguageService,Microsoft.Extensions.Options.IOptions{Umbraco.Workflow.Core.HistoryCleanup.Configuration.HistoryCleanup},Umbraco.Workflow.Core.Services.ISettingsService,Umbraco.Workflow.Core.SignalR.WorkflowHubRoutes)Umbraco.Workflow.Web.Api.Controllers.Information.GetInformationController.WorkflowInformationResponseModel.get_GlobalVariablesUmbraco.Workflow.Web.Api.Controllers.Scaffold.GetScaffoldController.Get(Umbraco.Workflow.Core.Models.ScaffoldRequestModel)
Added Interface Members (Breaking)
Umbraco.Workflow.Core.Persistence.IDatabaseAccessor.Execute(NPoco.Sql)Umbraco.Workflow.Core.Persistence.IDatabaseAccessor.ExecuteScalar``1(NPoco.Sql)Umbraco.Workflow.Core.Persistence.ITasksRepository.GetActiveByNodeId(System.Int32,System.String)Umbraco.Workflow.Core.Persistence.IWorkflowRepository``1.GetIdForKey``1(System.Guid)Umbraco.Workflow.Core.Services.ITasksService.GetActiveTasksByNodeId(System.Int32,System.String,System.String)
Legacy version specific upgrade notes
You can find the version specific upgrade notes for versions out of support in the Legacy documentation on GitHub.
Last updated
Was this helpful?