cancel
Showing results for 
Search instead for 
Did you mean: 

Versioning on SAP PI

robert_warde4
Active Participant
0 Kudos

Hello PI gurus

I have been asked to look at versioning on PI. Specifically how we maintain multiple versions of an interface for our various Landscape rollouts and ensure that both versions can be used.  I have researched the options, run a few tests and my conclusions are below but I am looking for a second opinion and would appreciate your feedback

Options

1) Create a new SWCV.

According to SAPs documentation a software component version is a shipment unit for design objects in the ES Repository. You use a SWCV to group together objects that are shipped or installed together.SAP uses this approach for the majority of their standard content. You cannot copy objects between different releases of a SWCV. You have to use the Transfer Design Objects Function (ESR Menu under tools). It is a neat tool that will transfer objects only if the source objects are more recent or the target objects do not exist. You can preview the changes and it will tell you what will be updated (source version is more recent), what cannot be transferred (the target version is more recent) or what does not need to be transferred (the versions are the same).

This is appropriate for deploying different versions of a particular software package but does not allow us to actually use both versions. The majority of the ID objects refer to the interface/namespace and not the SWCV. If you try and add two identical interfaces from separate SWCV to the same Communications Component you get an error.

2) Create a new namespace with a version number

SAP has used this approach for the NFE updates and it works.

3) Ensure that the interface is backwards compatible.

Backwards compatibility is not always easy to achieve. The functional requirements we are given evolve over time and it may be the case that what seems to be a simple change that may not have any impact may will change significantly.

4)  Add a version number to the object names

Not the most elegant approach but it would work.

5) Stand up a separate PI landscape.

Not my preferred approach as it introduces additional costs, maintenance, monitoring and development. It seems to overkill.

Summary

Using different SWCV allows new releases to be created and deployed but you can only have a single release active at any moment in time. Using Namespaces allows multiple releases to be deployed. If you look at the SWCV for NFE, SAP SLL-NFE you can see they have taken this approach. I have hecked the SAP support sites and cannot find anything on versioning.

My preferred option is number 2. Using a different namespace works but will require the calling system to update their configuration to support this.

Accepted Solutions (1)

Accepted Solutions (1)

Dimitri
Active Contributor
0 Kudos

Hello Robert,

I should also go for putting the version number into the namespace.

There, you can group all relevant objects together and use them into the ID.

Having 2 version up and running in parallel is, I guess, just temporarily?

After the new version is on production, you can delete the old version on a clean way.

But indeed, the calling system has some changes to do, but you do not go live with new versions of interfaces every week I think.

Kind regards,

Dimitri

robert_warde4
Active Participant
0 Kudos

Hi Dimitri,

The purpose is to implement new versions of global interfaces and allow the existing users to continue with their versions until such time as they can upgrade. So we would have multiple versions in place for some time. At some point everyone would upgrade to the latest release but that may take a while. Hence the need to have multiple versions.

From what I can see there are no other options but I am open to suggestions.


Regards

Rob

Dimitri
Active Contributor
0 Kudos

Hi Robert,

With new versions, I mean versions of scenarios and not SAP PI versions.

From my experience, running 2 scenarios in different versions in parallel, lasts several weeks.

After the new version is OK and everybody is happy with it, the old version (all objects and namespace) can be deleted.

A PI upgrade should not have any effect on the versions or setup in the ESR, except for SAP PI 7.0 -> 7.1(1), because you need to move from message interfaces to service interfaces.

Kind regards,

Dimitri

robert_warde4
Active Participant
0 Kudos

Dimitri,

My other concern is that there is no relationship between the versions. For example assume we have version 1 and 2 of an interface and both need to be in production for several weeks. Then, for example, the end users identify a bug that can be found in both versions. We then have to apply that fix to both versions independently. What that means is while we have both versions available we would then have dual maintenance.

I've look at versioning with SWCV and SAP have a great tool for copying code between the releases. However, from what I can see you can only configure one version in place at any one time.

Is this really the only solution.

Regards

Rob

Dimitri
Active Contributor
0 Kudos

Hi Robert,

Indeed, there is no relationship between versions and that could cause some extra work.

As far as I know, this is the most 'flexible' way, but I suggest to keep the time running versions in parallel as short as possible and get people acquainted with the new version as soon as possble.

Just to avoid double maintenance and errors.

Kind regards,

Dimitri

Answers (1)

Answers (1)

robert_warde4
Active Participant
0 Kudos

Just bumping this to see if anyone has a response.

For further details please see my blog entry http://scn.sap.com/community/process-orchestration/blog/2013/01/25/versioning-in-sap-pi