Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
LaurensDeprost
Contributor

Optimize release cycles by organizing your SAP transports



CTS: Change and Transport System


The Change and Transport System (CTS) is a tool built into SAP systems. CTS helps organize development projects in ABAP Workbench and customizing and then transporting the changes between the SAP systems in the system landscape. Everyone working on developing or maintaining processes within an SAP system works with (parts of) CTS. This includes functional consultants, technical consultants, and system administrators.



Projects


About projects in CTS


Using CTS projects allows planning development work and customizing activities in structured groups. Changes are structured independently of each other in different projects and can be imported independently into target systems. Projects are a valuable tool for going live with different projects at different times, linking development work in a single area, or simply keeping track of all transports for a specific change or release cycle.



Creating Projects


Transaction SPRO_ADMIN


In order to enjoy more extensive project management functionality than just grouping transports, it is best to create a CTS Project based on an IMG (Customizing) Project. Achieve this via transaction SPRO_ADMIN.






    • Execute transaction SPRO_ADMIN, click the left-most button, Create Project (F5), and fill in a project name. Note that project names are limited to 10 characters.


      Creating a project with transaction SPRO_ADMIN






 

  • Add a project title/description. Optionally define other attributes such as scope and team members.

  • Save the project via the Save button or the keyboard combination Ctrl+S.

  • Enable CTS functions for the IMG project to allow managing transport requests. Open the Transp. Requests tab and click the button labeled ‘Active CTS Functions’.


    The button 'Activate CTS Functions' transaction SPRO_ADMIN


     


    Activating CTS project functions in transaction SPRO_ADMIN




That’s it. The newly created project can now be assigned to transport requests.

Report RSWBO_AUX_PROJECT


The report works just as its description suggests: ‘Use CTS Projects Without IMG’. The report allows creating, deleting, and editing CTS projects and their descriptions without creating a corresponding IMG project first.
It’s important to note that customers cannot use these ‘barebone’ CTS projects for fully-fledged project management. The reports' documentation says the following:



This report program was written for temporary usage of the CTS project functions. You normally use the IMG Project System to create CTS projects. This report lets you use the CTS project functions without involving the IMG Project System. You can create, edit and complete test projects. This report is in no way intended to replace a proper project system.

Apart from the above, the report can show a list of all requests for a given project and the Project Piece List. The project piece list contains all of the objects impacted in a project. When requests are released, the object list of the request is added to the piece list.


 


Creating a project with report RSWBO_AUX_PROJECT


 

To create a project with RSWBO_AUX_PROJECT, first, execute the report and press the Create button (1). Next, enter a description for the project (2) and confirm the creation. That’s it. The newly created project can now be assigned to transport requests.



Assigning projects to transport requests


After creating at least one CTS project, transport requests can be assigned to a project in the Transport Organizer during the creation or editing of a project.


Assigning a project during transport request creation in the Transport Organizer


 


Assigning a project when changing a transport request in the Transport Organizer


As mentioned by mfourmy_2016 in the comments below, it is possible to make assigning a project mandatory when creating a transport request. This is achieved by changing the settings for attribute SAP_CTS_PROJECT in transaction SE03 (Transport Organizer Tools) under "Display/Change Request Attributes".





CTS Projects vs IMG Projects


There are two options for CTS projects. Barebone CTS projects are an excellent tool for release management. They allow organizing and bundling transport requests and easily importing them all in one go. IMG projects with CTS functions enabled, on the other hand, offer the same features plus a bunch of extra project management features. These include defining project scope, specifying projects start and end dates, and assigning team members to projects.



In conclusion, creating IMG projects is best practice and recommended when additional project management features are desirable. However, if your organization does not yet use IMG projects and you are looking for a way to organize transports as a development team, then basic CTS projects may well be sufficient. They will allow you to experiment without the extra bells and whistles.


Further reading



Conclusion




This post touches on projects and transports in SAP. You learned how to create projects and how to use them to group transport requests. You also know the difference between IMG projects and CTS projects. Want more information? Be sure to check out the links above.





Are you already using projects to manage releases at your company or customer?
Got any tips to share? Post it in the comments 👇
11 Comments
MaxFou
Explorer
Great blog !

Also if you want to make the Project mandatory when creating a Transport Request, you can do it by changing the settings of attribute SAP_CTS_PROJECT in SE03->Display/Change Request Attributes.

Max
mmcisme1
Active Contributor
I find myself being lazy this morning.  I like many of you have most of my data in a quality box.  It is not in my development box.  Just the basics are in the development box.   So once complete configuration is transported.  Not in a grouped transport because all the configuration might not be able to go.  Development transports are transported via copies.  So we don't have too many transports.  When I think of a project, I can see how I could easily still transport copies, but not how I could get some of my configuration to quality and leave some of it on development.  I still want it to go into PRD as one project.  But I want to test some things in quality before it moves.

So back to being lazy.  I haven't read any of the links.  Is there a way to only transport  some of the configuration in a project?

Another thing I'm thinking about - I was at a company that started using projects.  They quickly stopped because of sorting out the configuration.   Some configuration was needed in Project 1 and Project 2.   Project 2 was ready to go to production before project 1.   Project 2 was expecting the configuration from Project 1 to be there.   And so everything was a tangled mess.  I wonder if they've done anything more detailed to fix that.  Or is it still an issue?
LaurensDeprost
Contributor
Thanks Max.

Great tip, I'll add it to the post 👍
LaurensDeprost
Contributor
c436ae948d684935a91fce8b976e5aa7 well, people do say that good developers are lazy 😉
Is there a way to only transport some of the configuration in a project?

You can always transport one or more transports assigned to your project to quality before moving the whole project into PRD. Doing this allows testing parts of the configuration changes in quality while leaving the rest in development.
Some configuration was needed in Project 1 and Project 2.   Project 2 was ready to go to production before project 1. 

Sharing objects between multiple projects is to be avoided whenever possible. However, when it is unavoidable, one tip is to ensure a technical go-live of the shared objects before any of the projects goes live. If you are lucky and they do not contain any breaking/impactful changes, that is.

You can also make sure the shared objects are contained on one or more independent transports and define dependency relationships between these transports and a transport of each dependant project.

From the request overview in the Transport Organizer select a request and open the menu Goto → Dependency Information.


It will still be a mess but one that is less likely to stay under the radar (too) long 🤷‍♂️

mmcisme1
Active Contributor
Excellent!   When I get a chance, I should try this out.  It's been a REALLY long time since I've done something this way.

But only for the larger projects.   Lately most of them have been internal code to make a 3rd party software working.  The smaller ones are what we are working on with code/config.

There  is an advantage to being the only internal developer/configuration/functional person.  (Yes, all that is me)  I get to write up our standards when I think about it.  Of course we have outside consultants too.  But they don't usually push back much.  And when they do, it's time to stop and listen.
LaurensDeprost
Contributor
0 Kudos
You are a developer as well as a functional analyst?
Does that mean that if the transports go wrong, you have to clean up everything yourself? 😱
That must be fun.
LaurensDeprost
Contributor
0 Kudos
Cool, do let us know how it went after you have had a chance to test it out on a project 👍
Foivos
Participant
Hello Laurens.

 

First of all, thank you for the post, it is quite informative, including the comment here.

I am trying to understand the pros and cons of creating a Project through IMG vs creating a CTS only Project.

Is there any chance you could add this as a section to the main post?
LaurensDeprost
Contributor
0 Kudos
Thanks for the feedback foivosg. I add an extra section to the post concerning the difference between IMG- and CTS-only projects.

Creating IMG projects is best practice and recommended when additional project management features are desirable. However, if your organization does not yet use IMG projects and you are looking for a way to organize transports as a development team, then basic CTS projects may well be sufficient. They will allow you to experiment without the extra bells and whistles.
Foivos
Participant
0 Kudos
Laurens thank you so much!

 

I did not expect such an immediate and to the point response! If I understand this correctly the main advantage of IMG Project is that you can organise it by functionality / area in IMG and also do some time and resource tracking.

The whole Object checking functionality and flagging of dependencies, is brought by CTS Project when you use it in conjunction with IMG.

 

Thank you very much once more dep !
LaurensDeprost
Contributor
That's right, foivosg.
You're welcome. I'm happy to help.
Labels in this area