cancel
Showing results for 
Search instead for 
Did you mean: 

Transports in PI when multiple developers working with same Interface

former_member217029
Participant
0 Kudos

Hello,

I have a general question that is running in my mind related to how PI transports works when multiple developers are working on the same interface. Let me illustrate the cases here...

Let us say Material master extraction interface Proxy->PI->Legacy(fixed length) is in production and running since long.Below 2 cases are related this same interface.

Case 1: CR1 is Developer1 to add an extra 3 fields to existing proxy structure of 10 fields and now it is total 13 fields with one to one mapping only.

This is moved to QA for further end to end testing and did not moved to prod immediately because of other reasons. This Transport #1 contains extra new 3 fields.

Case2: So now CR2 is Developer2 to implement a small logic to the 5th field from proxy structure and moved to QA-PROD as well. This transport #2 contains extra 3 fields and also logic of the 5th field.

Now it's time for CR1(Transport #1)  to be moved to Prod, if we move Transport #1 to Prod, 5th field logic related to CR2 will be there or over written with Transport #1 ?

Would like to understand how the transports in PI works if multiple developers are working on the same object (it could be mapping, ICO add/remove receiver).

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

former_member182412
Active Contributor
0 Kudos

Hi Bhavana,

  • For example when you made the first change then one version will be created for your objects, example version 8 created, this version 8 will be attached to your first transport which is Transport#1
  • When you do the next change the system will create the separate version, this time version 9 will be created, this version 9 will be attached to transport which is Transport#2
  • When you move Transport#1 to QA then version 8 will be updated in QA.
  • When you move Transport#2 to QA then version 9 will be updated in QA.
  • When you move only Transport#1 to production, only your first change which is adding 3 fields updated in production because Transport#1 contains only version 8 not version 9.
  • Only when you move Transport#2 to production your 5th field logic updated in production because Transport#2 contains version 9 which is your second change.
  • If you move Transport#2 without Transport#1 both your changes will be in production because Transport#2 contains both changes.

Regards,

Praveen.

former_member217029
Participant
0 Kudos

Hello Praveen,

  • If you move Transport#2 without Transport#1 both your changes will be in production because Transport#2 contains both changes.

What happens if i move Transport#2 first and then Transport#1 later ? Transport#2 contains 3 new fields as well as logic on 5th field. Transport#1 contains only new 3 fields.

Will Transport#1 overwrite Transport#2 changes when i do Transport#2 first and then Transport#1? so that new 3 fields change only will be there and 5th field logic will be gone???

former_member182412
Active Contributor
0 Kudos

Hi Bhavana,

  • If you move Transport#2(version 9 of the mapping object) first then both your changes will be updated in production.
  • So production contain version 9 of the mapping object.
  • Later if you move Transport#1(contain version 8 of the mapping object) then system will ignore this because you already got higher version which is 9 in the system.
  • When you import the repository objects if the version is lower then system will ignore, it will not update the system. If you send the higher version then system will update.
  • When you import the directory objects the system will always overwrite the objects.

Regards,

Praveen.

former_member217029
Participant
0 Kudos

Hello Praveen,

Nice explanation. I got it now the concept how transports works in ESR case. I have another question

Let's take another example - CR#1 is to implement RFC lookup to ECC and based on the return value create target structure in message mapping as part of quarterly release it should go to prod and is transported Transport#1( contains version2 of mapping object) to QA for further testing.

Incident came in as urgent fix for the same mapping to adjust some mapping related to field 10 and Transport#2 (version3 of mapping object) is created and moved to QA->Prod.

So when i move Transport#2(version3 of mapping object) to production it will contain RFC lookup logic as well as incident related change. Since RFC lookup related changes are also moved to prod along with incident changes it will create issues as it could be RFC lookup table might not be transported to Prod ECC as it scheduled in quarterly release.

What happens in this case? how to take care of such issues while working with quarterly release and immediate incident fixes ?

Also why configuration objects overwrite instead of take latest version how it does in ESR case.

former_member182412
Active Contributor
0 Kudos

Hi Bhavana,

Regards,

Praveen.

former_member217029
Participant
0 Kudos

Hello Praveen,

  • In your case you need to select the previous version which is before RFC lookup change, Version 2 is RFC lookup so you need to select version 1 of the mapping object.

Developer1 worked on RFC look up change and moved till QA & then Developer2 need to work on emergency change on the same mapping. So in this case it would be difficult to check is there any latest changes that made to mapping and not yet moved to prod / what is the status of the transport related to it and all. Main thing is coordination issues.

  • After transporting the emergency change to production, you can select the version 2 which is RFC lookup change and add the emergency requirement change or Add the RFC lookup logic to latest mapping which version 3 of the object, it is based on which one takes less time.

If it is the same developer handling both the changes, yes can be applied these thoughts but still it involves lot of thoughts.

Answers (4)

Answers (4)

marksmyth
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hello Bhavana,

Check out this SAP doc -

It contains a lot of good advice on how to manage your PI transport infrastructure.

The situation you describe in your original post will inevitably lead to problems with PI object versioning and possibly you will lose some of the changes which have been made to the objects. See the recommendations in the above doc, for more details.

Regards
Mark

former_member194786
Active Contributor
0 Kudos

Hi Bhavana,

If I understand your query correct, TR#2 contained changes for both CR#1 and CR#2. This means that the relevant changes for CR#1 are already there in prod. So, it would already be behaving in the way that you expect after both changes going through in proper sequence.

Coming back to your main query, If you try to import the ESR related changes, PI will ignore the older version as it can relate from the version history which are the latest changes. Here is an expert from SAP help document:

When older object versions are imported to a target repository, any existing newer object versions are not overwritten. The older version being imported is visible in the object history  following the import. The more recent version remains the current version.


Relevant link:

ESR Content Transports - Transporting ESR Content and Objects of Integration Directory - SAP Library


Regards,

Sanjeev

former_member217029
Participant
0 Kudos

Hello Sanjeev,

Thanks for understanding my question exactly the way in my mind.

Let me ask you this question...How it works in case of xslt mappings with my initial examples? because the code file will be imported to ESR.

Also how it works in case of Integration directory objects like ICO changes.

So this transports basically happens in a update mode? not overwrite mode ?

Thanks

former_member194786
Active Contributor
0 Kudos

Hi Bhavana,

XSLT's versioning using imported archives will be handled just as any other objects(DT,MT etc).

Regarding the directory objects, I really am not sure, as I haven't tried it. Easiest way to revert the changes, if transport overwrites it in prod, would be then to go to the version history and retrieve the previous version and save and activate it.

Cheers,

Sanjeev.

Former Member
0 Kudos

Hello Bhavana,

In future to avoid situations you can create transport of copies and test the code in QA. After testing

successfully in QA then you can release the original transport and move it production.

Thanks,

Hardeep

former_member217029
Participant
0 Kudos

Hello Hardeep,

I didn't get your concept of creating copies of transports. Could you please take an example and throw some inputs?

Ryan-Crosby
Active Contributor
0 Kudos

Hi Bhavana,

Are you talking about ABAP transports for the proxy stuff or the PO transports related to data definitions, mappings, etc.?  If you are referring to ABAP transports for the proxy logic then yes that means you have two developers that have started a game of leap frog and some work will have to be done to correct the missing fifth field logic.

Regards,

Ryan Crosby

former_member217029
Participant
0 Kudos

Hello Ryan,

This i am talking about purely PI related transports only. Case 1 & 2 illustrated are related to PI mapping.

Ryan-Crosby
Active Contributor
0 Kudos

Hi Bhavana,

What transport mechanism are you using in your PI system to move the mappings through the landscape?

Regards,

Ryan Crosby

former_member217029
Participant
0 Kudos

CTS transport mechanism.

Ryan-Crosby
Active Contributor
0 Kudos

Hi Bhavana,

Unfortunately we are just now switching to CTS+ so I'm not familiar with whether or not you can leap frog.  Maybe some other users on the forum are using it and know if that is possible for mapping content.

Regards,

Ryan Crosby

Ryan-Crosby
Active Contributor
0 Kudos

Based on what my BASIS person just shared with me I would assume it is possible to leap frog.

Regards,

Ryan Crosby

former_member217029
Participant
0 Kudos

Hello Ryan,

How does it work in practical? could you take the example that i mentioned and give me a clear picture?

Ryan-Crosby
Active Contributor
0 Kudos

Hi Bhavana,

Unfortunately I cannot give an example as we are just about to start using it but since it looks similar to ABAP transports in how it is managed then I think it is something you have to worry about.  In the case of any of our ABAP systems, developers are not allowed to release transports for objects with a currently open change without working with the other developer(s) to ensure leap frogging does not happen.

Regards,

Ryan Crosby

former_member217029
Participant
0 Kudos

Hello Ryan,

Thanks for your inputs. Let others comment on this topic how PI transports works in case of multiple developers working on same object.

I am thinking if SAP could have some object lock kind of thing when there is already a open change request with that object so that if any developer need to work on the same object can contact other developer and coordinate.