ReleaseUpdateDB60_Basic.updateWorkflowConfiguration Upgrade Script

Applies To: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012

Class

ReleaseUpdateDB60_Basic

Method

updateWorkflowConfiguration

Description

Upgrades the Microsoft Dynamics AX 2009 workflow configurations into Microsoft Dynamics AX 2012 workflow models. Moves packed structures into new tables, resolves duplicate sequence numbers and configuration IDs by using ID mapping table, generates links between workflow elements, and upgrade sub-workflows by introducing conditional gateways and parallel branch containers.

Affected Modules and Tables

Affected Modules

Basic

CRM

Expense management

General ledger

Affected Tables

WorkflowConfigurationTable

WorkflowConfigurationTableNotes

WorkflowTable

WorkflowVersionTable

WorkflowVersionTableNotes

WorkflowVersionNotificationTable

WorkflowElementTable

WorkflowElementNotificationTable

WorkflowStepTable

WorkflowElementLinkTable

WorkflowElementOutcomeTable

WorkflowSubWorkflowTable

WorkflowSubWorkflow

WorkflowMessageText

WorkflowIdRelationshipMapping

WorkflowAssignmentTable

WorkflowTimeSpanTable

WorkflowEscalationPathTable

WorkflowEscalationTable

WorkflowMaxRuntimeTable

WorkflowActionTable

ExpressionTable

SysWorkflowTable

WorkflowWorkItemDelegationParameters

WorkflowTrackingStatusTable

WorkflowTrackingTable

WorkflowWorkItemTable

TrvPolicyTable

SmmProcessStage

LedgerJournalName

Remarks

The WorkflowConfigurationTable table is re-factored into the WorkflowTable and WorkflowVersionTable tables. All duplicate sequence numbers in the WorkflowConfigurationTable table are resolved in the new WorkflowTable by setting the WorkflowTable.SequenceNumber value equal to the WorkflowConfigurationTable.RecID value. All duplicate configuration IDs in the WorkflowConfigurationTable table are resolved in the WorkflowVersionTable table by setting a new GUID. New GUIDs are also generated for all elements, such as the WorkflowElementTable table, and steps, such as the WorkflowStepTable table, for all configurations that have duplicate IDs. Fields in any other table that references the configuration IDs, sequence numbers, or expressions are also updated with the new IDs. The old and new values are maintained in a mapping table to be used by the runtime to complete in-flight workflow instances. The upgrade also removes any packed structures that are present in any of the workflow tables and writes them into new tables. Some of the de-normalized data was also normalized into new tables. Links relationships are created between every element in a configuration. Sub-workflows are upgraded by introducing conditional gateways that represent the guard conditions for the container or line and parallel branch container elements if the sub-workflows are to be executed in parallel.

Data Migration Section

From Table: WorkflowConfigurationTable

To Table: WorkflowTable

TemplateName

TemplateName

Name

Name

Module

Module

SequenceNumber

SequenceNumber

Type

Type

DefaultConfiguration

DefaultConfiguration

CategoryName

CategoryName

DocumentTableName

DocumentTableName

From Table: WorkflowConfigurationTable

To Table: WorkflowVersionTable

ConfigurationID

ConfigurationID

Enabled

Enabled

Owner

Owner

ActivationConditionType

ActivationConditionType

ActivationConditionID

ActivationConditionID

VersionIDMajor

VersionIDMajor

VersionIDMinor

VersionIDMinor

VersionIDBuild

VersionIDBuild

VersionIDRevision

VersionIDRevision

From Table: WorkflowConfigurationTable

To Table: WorkflowVersionNotificationTable

NotificationList

Enabled

NotificationList

Action

From Table: WorkflowConfigurationTable

To Table: WorkflowAssignmentTable

NotificationList

AssignmentType

NotificationList

ActorValue

NotificationList

UserValue

NotificationList

ParticipantProviderName

NotificationList

ParticipantTokenName

NotificationList

HierarchyProviderName

NotificationList

HierarchyTokenName

NotificationList

HierarchyFilterType

NotificationList

HierarchyFilterId

NotificationList

HierarchyStopId

From Table: WorkflowConfigurationTableNotes

To Table: WorkflowVersionTableNotes

ConfigurationID

ConfigurationID

Notes

Notes

From Table: WorkflowElementTable

To Table: WorkflowActionTable

ElementOutcomes

Name

ElementOutcomes

Enabled

From Table: WorkflowElementTable

To Table: WorkflowElementNotificationTable

NotificationList

Action

NotificationList

Enabled

From Table: WorkflowElementTable

To Table: WorkflowAssignmentTable

NotificationList

AssignmentType

NotificationList

ActorValue

NotificationList

UserValue

NotificationList

ParticipantProviderName

NotificationList

ParticipantTokenName

NotificationList

HierarchyProviderName

NotificationList

HierarchyTokenName

NotificationList

HierarchyFilterType

NotificationList

HierarchyFilterId

NotificationList

HierarchyStopId

From Table: WorkflowElementTable

To Table: WorkflowMaxRuntimeTable

UseMaxRuntime

Enabled

MaxRuntimeTime

Time

MaxRuntimeTimezone

Timezone

MaxRuntimeOutcome

Outcome

From Table: WorkflowElementTable

To Table: WorkflowTimespanTable

MaxRuntime

DateType

MaxRuntime

HourValue

MaxRuntime

HourCalendar

MaxRuntime

DailyValue

MaxRuntime

DailyCalendar

MaxRuntime

MonthlyDayOfWeek

MaxRuntime

MonthlyWeekInMonth

MaxRuntime

WeeklyDayOfWeek

MaxRuntime

WeeklyValue

MaxRuntime

YearlyDayOfWeek

MaxRuntime

YearlyMonthInYear

MaxRuntime

YearlyWeekInMonth

From Table: WorkflowStepTable

To Table: WorkflowAssignmentTable

AssignTo

AssignmentType

AssignTo

ActorValue

AssignTo

UserValue

AssignTo

ParticipantProviderName

AssignTo

ParticipantTokenName

AssignTo

HierarchyProviderName

AssignTo

HierarchyTokenName

AssignTo

HierarchyFilterType

AssignTo

HierarchyFilterId

AssignTo

HierarchyStopId

EscalationPath

AssignmentType

EscalationPath

ActorValue

EscalationPath

UserValue

EscalationPath

ParticipantProviderName

EscalationPath

ParticipantTokenName

EscalationPath

HierarchyProviderName

EscalationPath

HierarchyTokenName

EscalationPath

HierarchyFilterType

EscalationPath

HierarchyFilterId

EscalationPath

HierarchyStopId

From Table: WorkflowStepTable

To Table: WorkflowTimespanTable

Duration

DateType

Duration

HourValue

Duration

HourCalendar

Duration

DailyValue

Duration

DailyCalendar

Duration

MonthlyDayOfWeek

Duration

MonthlyWeekInMonth

Duration

WeeklyDayOfWeek

Duration

WeeklyValue

Duration

YearlyDayOfWeek

Duration

YearlyMonthInYear

Duration

YearlyWeekInMonth

EscalationPath

DateType

EscalationPath

HourValue

EscalationPath

HourCalendar

EscalationPath

DailyValue

EscalationPath

DailyCalendar

EscalationPath

MonthlyDayOfWeek

EscalationPath

MonthlyWeekInMonth

EscalationPath

WeeklyDayOfWeek

EscalationPath

WeeklyValue

EscalationPath

YearlyDayOfWeek

EscalationPath

YearlyMonthInYear

EscalationPath

YearlyWeekInMonth

From Table: WorkflowStepTable

To Table: WorkflowEscalationTable

EscalationAction

Action

EscalationPathAction

PathAction

EscalationType

EscalationType

From Table: WorkflowStepTable

To Table: WorkflowEscalationPathTable

EscalationPath

Level

From Table: WorkflowSubWorkflowTable

To Table: WorkflowSubWorkflow

Name

Name

DocumentKeyField

DocumentKeyField

DocumentKeyTable

DocumentKeyTable

WaitForComplete

WaitForComplete

From Table: WorkflowElementTable

To Table: WorkflowElementTable

Name

Name

ConfigurationID

ConfigurationID

ExecuteSubWorkflowID

ConditionalID

From Table: WorkflowSubWorkflowTable

To Table: WorkflowElementTable

ExecuteWorkflowID

ConditionalID

New Tables or Fields

Table

Field

Extended Data Type

-or- Base Enum

WorkflowTable

WorkflowVersionTable

WorkflowVersionTableNotes

WorkflowVersionNotificationTable

WorkflowAssignmentTable

WorkflowActionTable

WorkflowMaxRuntimeTable

WorkflowTimespanTable

WorkflowEscalationTable

WorkflowEscalationPathTable

WorkflowElementLinkTable

WorkflowElementOutcomeTable

WorkflowElementNotificationTable

WorkflowSubWorkflow

WorkflowParallelBranchTable

WorkflowIDRelationshipMapping

WorkflowElementTable

ConditionalID

WorkflowElementTable

ParallelBranchTable

Deleted Tables or Fields

Table

Field

WorkflowConfigurationTable

*

WorkflowConfigurationTableNotes

*

WorkflowElementTable

UseMaxRuntime

WorkflowElementTable

ElementOutcomes

WorkflowElementTable

NotificationList

WorkflowElementTable

MaxRuntime

WorkflowElementTable

MaxRuntimeOutcome

WorkflowElementTable

MaxRuntimeTime

WorkflowElementTable

MaxRuntimeTimezone

WorkflowElementTable

DataAreaID

WorkflowStepTable

AssignTo

WorkflowStepTable

EscalationType

WorkflowStepTable

EscalationAction

WorkflowStepTable

EscalationPathAction

WorkflowStepTable

EscalationPath

WorkflowStepTable

Duration

WorkflowStepTable

DataAreaID

WorkflowSubWorkflowTable

DataAreaID