End-of-Life for Anthology Student Activities (V1)
On announcing the General Availability (GA) of a major or minor release version of a software product, Anthology Inc. also announces the End-of-Life (EOL) date and End-of-Support (EOS) date for other versions, if applicable. Anthology’s policy is to support the newly released GA version as well as the two major or minor release versions immediately preceding the new GA version.
With the release of Anthology Student 21.0 in October 2019, the EOL date for Anthology Student Activities (V1) is scheduled for October 2020 and the EOS date is scheduled for April 2021.
During the EOL period, Anthology will only evaluate Severity 1 issues. All other lesser Severity issues will not be addressed. Once a product version reaches its EOS date, assistance or resolution of any issues reported will no longer be provided. Anthology will only provide the recommendation to upgrade to a version of the product that is not currently EOL or EOS.
The EOL and EOS process allows Anthology to focus development and support efforts on a smaller set of releases, thereby increasing the effectiveness and quality of those releases, while enabling customers to take advantage of the latest available enhancements and resolutions. We encourage our customers, especially those who are on an EOS version or a version in an EOL period, to upgrade to the most current version of our software.
For previous releases of Anthology Student, the Package Manager in Workflow Composer provided Activities for the legacy CampusVue object model (V1) and the new object model (V2).
-
Activities that were developed in the legacy object model and are required to support events raised out of Anthology Student were migrated to new namespaces. The migrated activities retain the original activity names and properties but reside in a new namespace.
-
Activities that were developed in the legacy object model and are no longer required to support events raised out of Anthology Student were not migrated to new namespaces. Activities that were not migrated are replaced by different activities in the new object model.
Actions Required
Customers using V1 activities in their workflows will need to replace the V1 activities with V2 activities during the EOL period for V1 Activities. The revised workflows will need to be tested to verify the desired functionality.
The table below identifies V1 activities and their corresponding V2 replacements.
-
For activities that have been migrated, simply replace the V1 activity with the V2 activity with the same activity name but residing in a different namespace.
-
For activities that have not been migrated, remove the V1 activity, insert the suggested V2 activities, and adjust the workflow logic as needed.
V1 Namespaces and Activities | Migrated | V2 Namespaces and Activities |
---|---|---|
Cmc.Nexus.Converters | ||
CVueIdToPersonIdActivity | No | GetEntity / SaveEntity in Cmc.Core.Workflow.Activities.EntityModel |
PersonIdToCVueIdActivity | No | |
Cmc.Nexus.Workflow | ||
CompleteAction | No | N/A |
CreateDocument | Yes | CreateDocument in Cmc.Nexus.Crm.Workflow |
LookupExtendedProperty | No | LookupReferenceItem in Cmc.Nexus.Common.Workflow |
LookupGroup | No | LookupStudentGroup in Cmc.Nexus.Common.Workflow |
LookupListItem | No | LookupReferenceItem in Cmc.Nexus.Common.Workflow |
LookupPerson | No | GetEntity in Cmc.Core.Workflow.Activities.EntityModel |
LookupPersonDocuments | No | LookupStudentDocuments in Cmc.Nexus.Crm.Workflow |
ManageGroupMembership | Yes | ManageGroupMembership in Cmc.Nexus.Common.Workflow |
SaveDocument | Yes | SaveDocument in Cmc.Nexus.Crm.Workflow |
SaveExtendedProperty | No | SaveEntity in Cmc.Core.Workflow.Activities.EntityModel |
SavePerson | No | SaveEntity in Cmc.Core.Workflow.Activities.EntityModel |
Cmc.Nexus.Workflow.Crm | Cmc.Nexus.Crm.Workflow | |
CreateTask | Yes | CreateTask |
LookupStudentTasks | Yes | LookupStudentTasks |
SaveTask | Yes | SaveTask |
Cmc.Nexus.Workflow.Sis | Cmc.Nexus.Common.Workflow | |
AssignStudentAdvisor | Yes | AssignStudentAdvisor |
LookupAdvisor | Yes | LookupAdvisor |
LookupStudent | No | GetEntity in Cmc.Core.Workflow.Activities.EntityModel |
LookupStudentAdvisors | Yes | LookupStudentAdvisors |
Cmc.Nexus.Workflow.Sis.Academics | Cmc.Nexus.Academics.Workflow | |
ConvertApplicantToEnrollment | Yes | ConvertApplicantToEnrollment |
CreateStudentCourse | Yes | CreateStudentCourse |
CreateStudentEnrollmentPeriod | No | N/A |
LookupAreaOfStudy | No | LookupReferenceItem in Cmc.Nexus.Common.Workflow |
LookupClassSections | Yes | LookupClassSections |
LookupCurrentEnrollmentPeriod | Yes | LookupCurrentEnrollmentPeriod |
LookupEnrollmentPeriods | Yes | LookupEnrollmentPeriods |
LookupTerms | Yes | LookupTerms |
SaveStudentCourse | Yes | SaveStudentCourse |
SaveStudentEnrollmentPeriod | No | N/A |
UpdateNsldsWithdrawalDate | No | N/A |
Cmc.Nexus.Workflow.Sis.Academics | Cmc.Nexus.Common.Workflow | |
UpdateStudentStatusToActive | Yes | UpdateStudentStatusToActive |
UpdateStudentStatusToDrop | Yes | UpdateStudentStatusToDrop |
UpdateStudentStatusToEnrolled | Yes | UpdateStudentStatusToEnrolled |
UpdateStudentStatusToGraduate | Yes | UpdateStudentStatusToGraduate |
UpdateStudentStatusToLead | Yes | UpdateStudentStatusToLead |
UpdateStudentStatusToTempOut | Yes | UpdateStudentStatusToTempOut |
Cmc.Nexus.Workflow.Sis.Admissions | Cmc.Nexus.Common.Workflow | |
UpdateStudentStatusToApplicant | Yes | UpdateStudentStatusToApplicant |
Cmc.Nexus.Workflow.Sis.StudentAccounts | Cmc.Nexus.StudentAccounts.Workflow | |
CreateCharge | Yes | CreateCharge |
SaveCharge | Yes | SaveCharge |
Cmc.Nexus.Workflow.Sis.StudentServices | Cmc.Nexus.StudentServices.Workflow | |
CreateStudentDisabilityDetail | Yes | CreateStudentDisabilityDetail |
CreateStudentSportsService | Yes | CreateStudentSportsService |
CreateStudentVeteranDetail | Yes | CreateStudentVeteranDetail |
LookupServiceListItem | No | LookupReferenceItem in Cmc.Nexus.Common.Workflow |
SaveStudentDisabilityDetail | Yes | SaveStudentDisabilityDetail |
SaveStudentSportsService | Yes | SaveStudentSportsService |
SaveStudentVeteranDetail | Yes | SaveStudentVeteranDetail |
Script to Locate V1 Activities
To locate all occurrences of V1 activities in your workflows, you can run the script below. The script identifies the workflows using V1 activities and, on a per-workflow basis, lists the V1 activities that are being used. It also gives a count of how many times each activity occurs in the workflow so that you know how many occurrences to look for in the workflow while updating it.
If you wish to validate the script in an environment, you can do so by opening the XAML for the workflow in a text editor and searching for all occurrences of V1 activity elements in the document. These elements will have the following namespace prefixes:
cnc
cnw
cnwc
cnws
cnwsa
cnwsa1
cnwss
cnwss1
Example:
<cnw:LookupGroup DisplayName="Lookup Pending App Group" Group="[groupadd]" GroupId="314411" sap2010:WorkflowViewState.IdRef="LookupGroup_1" />
LookupGroup is a V1 activity in the XAML because it starts with “
cnw:
” which is the Cmc.Nexus.Workflow namespace.
The results of the manual search should match the results shown by the script in terms of what activities are identified, and how many of each there are.
/****************************************************************** ** ** Find Workflows Using V1 Activities ** ** Author: Mike Carter, Technical Account Manager, Anthology Inc ** Date: 7/16/2021 ** ** Locate enabled workflows which are using V1 activities and, ** on a per-workflow basis, list each Activity name and how ** many occurrences of each activity there are in the workflow ** ** Identify the V1 activites by the following namespaces: ** Cmc.Nexus.Converters ** Cmc.Nexus.Workflow (and also namespaces prefixed by this) ** *******************************************************************/ declare @WorkflowName nvarchar(max) ,@EnabledVersion int ,@xaml xml if object_id('tempdb..#AffectedWorkflows') is not null drop table #AffectedWorkflows select WorkflowDefinition.Name as WorkflowName ,WorkflowDefinitionVersion.Revision as EnabledVersion ,cast(WorkflowDefinitionVersion.Xaml as XML) as xaml into #AffectedWorkflows from WorkflowDefinition inner join WorkflowDefinitionVersion on WorkflowDefinitionVersion.WorkflowDefinitionId = WorkflowDefinition.Id where WorkflowDefinitionVersion.IsEnabled = 1 and ( WorkflowDefinitionVersion.Xaml like '%clr-namespace:Cmc.Nexus.Converters%' or WorkflowDefinitionVersion.Xaml like '%clr-namespace:Cmc.Nexus.Workflow%' ) --select * from #AffectedWorkflows order by WorkflowName if object_id('tempdb..#Output') is not null drop table #Output create table #Output (WorkflowName nvarchar(max), EnabledVersion int, ActivityName varchar(50), Occurrences int) declare Records_Cursor cursor local fast_forward for select WorkflowName, EnabledVersion, xaml from #AffectedWorkflows open Records_Cursor while 1=1 begin fetch next from Records_Cursor INTO @WorkflowName, @EnabledVersion, @xaml if @@FETCH_STATUS <> 0 break ;with walkXML as ( select startNodes.query('./*') curLevelXml ,startNodes.value('local-name(.)', 'varchar(50)') NodeName ,startNodes.value('namespace-uri(.)', 'varchar(500)') NodeNamespaceUri from @xaml.nodes('/*') t(startNodes) --starting with nodes under the root union all select childNodes.query('./*') curLevelXml ,childNodes.value('local-name(.)', 'varchar(50)') NodeName ,childNodes.value('namespace-uri(.)', 'varchar(500)') NodeNamespaceUri from walkXML cross apply curLevelXml.nodes('./*') t2(childNodes) --child nodes descending down into the xml document ) insert into #Output(WorkflowName, EnabledVersion, ActivityName, Occurrences) select @WorkflowName, @EnabledVersion, NodeName, count(1) from walkXML where NodeNamespaceUri like 'clr-namespace:Cmc.Nexus.Converters%' or NodeNamespaceUri like 'clr-namespace:Cmc.Nexus.Workflow%' group by NodeName end close Records_Cursor; deallocate Records_Cursor; select * from #Output order by WorkflowName, ActivityName