Versioning & migration of components of an Integration Flow in SAP Cloud Platform Integration’s Web Application
In SAP Cloud Platform Integration, it is our guiding principle to ensure that we release features without breaking existing running scenarios in customer systems or in other words we make every effort to ensure that the features are always backward compatible. Based on this, new features to components (like flow steps, adapters or pools) are always released through a new version.
Versioning of Components
I am sure you are all aware of the term versioning but would anyway like to start with a definition that I like and fits well with what we are doing in SAP Cloud Platform Integration.
“Versioning is the creation and management of multiple releases of a software/component, all of which have the same general function but are improved, upgraded or customized.” (according to SearchSoftwareQuality.TechTarget.com)
In SAP Cloud Platform Integration, new version is created when a component, which is already shipped and is being used by the customers needs to be improved or updated. New features are offered via the minor version updates and small fixes like label changes or UI alignments are offered via micro version updates.
Each component in SAP Cloud Platform Integration has a version and this version is defined using the paradigm <major>.<minor>.<micro> as depicted below:
Image 1: Version paradigm
You can find the version of a component by clicking on the info icon as shown below. Details of the micro versions are not shown in the design time, as these changes doesn’t affect the scenario and are auto migrated after every software update.
Image 2: Info icon on the component
Image 3: Version shown in the Technical Information popup
It is also very important to understand about “Product Profiles” in SAP Cloud Platform Integration as it is related to versioning of components.
A product profile defines a set of component versions (adapters, flow steps or pools) supported by the target runtime that is available for integration content design.
Product profile allows you to model an integration flow using only those component versions which are supported in that particular profile.
Currently SAP Cloud Platform Integration web tooling supports these product profiles in the design time:
- SAP Cloud Platform Integration
- SAP Process Orchestration
If you have the license for SAP Cloud Platform Integration, you will find only this specific profile in your tenant, but if you have both SAP Process Orchestration and SAP Cloud Platform Integration license, then you will see all profiles available for these products.
You can find the available product profiles by going to the “Runtime Configuration” tab of the Integration Flow configuration:
Image 4: Product profile configuration
Every change of product profile (in case you have more than one), triggers an update of palette with the latest version of components available within that particular profile and runs a validation check on your integration flow for version incompatibilities.
Migration allows you to move to the latest version of the component available in the particular profile.
All micro version changes to the components are pushed automatically with every software update and you don’t need to do anything about it as they are always compatible. Minor version changes are not pushed automatically but requires an user action.
With regards to the consuming minor version changes, integration developer can perform one of these actions:
- Click on “Migrate” button from the property sheet (wherever available) or
- Delete the component from the integration flow and add it again from the palette, which will bring in the latest version of the component
Image 5: “Migrate” button to consume the latest version
For migrating your component using the “Migrate” button, requires you to edit your integration flow, which means this is not possible for Configure-only content and for all other types of content it would mean that you have to opt out of Content Update.
On clicking of “Migrate” button, you will get a confirmation dialog which gives details of the source and target version. Upon confirmation, the component is migrated to the respective version, which is the latest version available in the profile.
Image 6: Confirmation dialog
Once the migration is complete, you will find new features made available to you for consuming it in your integration flow. You need to save your integration flow to persist the migration.
It is also possible that while consuming the new features after migration, there are incompatibilities with existing version of other components within your integration flow. These incompatibilities are shown as check errors on the respective components after saving the integration flow.
After migrating a component and saving your integration flow, it is not possible to revert back to the old version of the component, so it is recommended to create a version of your integration flow before you perform the migration. This would allow you to move back to the older version of the integration flow in case of issues.
Image 7: Save as version for integration flow
We do not do any major version changes to ensure that the components are always backward compatible.
Currently migration using the “Migrate” button is supported only for Integration Process, Local Integration Process and Integration flow. This would enable you to consume the Session Handling and Transaction Handling features without the need to delete and remodel the entire integration flow again.
In the next increments, we would support the migration of adapters and flow steps.