Topic
Prev Next

Migrate BPMN 1.1 Model to BPMN 2.0

It is possible to migrate a BPMN 1.1 model (or part of a model) to BPMN 2.0, using the Automation Interface function Migrate(). This function updates the Tagged Values and, if required, stereotypes to BPMN 2.0 for all elements, attributes, connectors and diagrams under the selected Package or element.

Example

This VB script calls the Migrate() function to migrate the Package or element to BPMN 2.0:

Sub MigrateElement (sGUID, lngPackageID)

     Dim proj as EA.Project

     set proj = Repository.GetProjectInterface

     proj.Migrate sGUID, "BPMN1.1", "BPMN2.0"

     'refresh the model

     If lngPackageID<>0 Then

          Repository.RefreshModelView (lngPackageID)

     End If

End Sub

Sub MigrateSelectedItem

     Dim selType

     Dim selElement as EA.Element

     Dim selPackage as EA.Package

     selType = GetTreeSelectedItemType

     If selType = 4 Then 'means Element

          set selElement = GetTreeSelectedObject

          MigrateElement selElement.ElementGUID, selElement.PackageID

          MsgBox "Element Migration Completed",0,"BPMN 2.0 Migration"

     ElseIf selType = 5 Then 'means Package

          set selPackage = GetTreeSelectedObject

          MigrateElement selPackage.PackageGUID, selPackage.PackageID

          MsgBox "Package Migration Completed",0,"BPMN 2.0 Migration"

     Else

          MsgBox "Select a Package or Element in the Project Browser to initiate migration",0,"BPMN 2.0 Migration"

     End If

End Sub

Sub Main

     MigrateSelectedItem

End Sub

Main

Notes

  • Please backup your project before you run the BPMN 2.0 Migrator
  • Normalization occurs on these tags:
         -  BPMN1.1::Activity::InMessageRef
         -  BPMN1.1::Activity::OutMessageRef
         -  BPMN1.1::Activity::IORules
         -  BPMN1.1::Activity::InputSets
         -  BPMN1.1::Activity::OutputSets
         -  BPMN1.1::Activity::ComplexMI_FlowCondition
         -  BPMN1.1::Activity::Performers
         -  BPMN1.1::BusinessProcess::InputSets
         -  BPMN1.1::BusinessProcess::OutputSets
         -  BPMN1.1::BusinessProcess::Performers
         -  BPMN1.1::EndEvent::ErrorCode
         -  BPMN1.1::IntermediateEvent::ErrorCode

    Taking BPMN1.1::Activity::InMessageRef as an example, these steps take place:

    (1)  Create a new element BPMN2.0::Operation (this is the bridging element)
    (2)  Insert the reference tag 'BPMN2.0::Activity::operationRef'
    (3)  Migrate BPMN1.1::Activity::InMessageRef to BPMN2.0::Operation::InMessageRef
  • Denormalization occurs on these tags:
         -  A BPMN1.1::Transaction referenced by a BPMN1.1::Activity::TransactionRef
              >  BPMN1.1::Transaction::TransactionMethod
              >  BPMN1.1::Transaction::TransactionProtocol
         -  A BPMN1.1::WebService referenced by a BPMN1.1::Activity::WebServiceRef, BPMN1.1::StartEvent::WebServiceRef,
            BPMN1.1::IntermediateEvent::WebServiceRef, BPMN1.1::EndEvent::WebServiceRef
              >  BPMN1.1::WebService::Operation
              >  BPMN1.1::WebService::Interface
              >  BPMN1.1::WebService::ParticipantRef
         -  A BPMN1.1::Condition referenced by a BPMN1.1::StartEvent::ConditionRef, BPMN1.1::IntermediateEvent::ConditionRef
              >  BPMN1.1::Condition::ConditionExpression

    Taking BPMN1.1::Activity::TransactionRef as an example, these steps take place:

    (1) Find element BPMN1.1::Transaction by BPMN1.1::Activity::TransactionRef
    (2) Migrate this referenced BPMN1.1::Transaction::TransactionMethod's value to BPMN2.0::Activity::transactionMethod
    (3) Migrate this referenced BPMN1.1::Transaction::TransactionProtocol's value to BPMN2.0::Activity::transactionProtocol
  • If a BPMN1.1 stereo tag is discarded in BPMN2.0, it is preserved if the tag has a value

Learn more