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: 
vbalko-claimate
Active Participant

Introduction:


Update 27.3.2023: Updated links to standard documentation and details of CTMS destinations.

SAP BTP BUILD platform has recently added a new transport process functionality that has been welcomed with open arms by all developers who have to handle transfers of processed in past. This functionality enables developers to transfer processed data between different tenants such as dev, test, and prod in a more controlled and seamless way. The new transport process setup is described in detail on the help page and takes advantage of two utility services on SAP BTP, namely SAP Cloud Transport Management and SAP Content Agent Service.

The new transport process functionality (which is called promoting) allows to seamlessly move applications and other processed data from one tenant to another, which is a crucial step in the development lifecycle. This is particularly important when working on complex enterprise applications that need to be tested thoroughly before being released into production. The new transport process setup provides developers with more control over their processes and ensures that any changes made to applications are thoroughly tested and vetted before being released into the production environment.

So, let's get started and explore the new transport process functionality in SAP BTP BUILD platform.



Setting up the Environment:


The new transport process functionality in SAP BTP BUILD platform requires the setup of three different tenants - source, target, and CTMS (Cloud Transport Management System) - to function correctly. In this section, we will walk you through the steps required to set up each tenant and configure them to work together to enable the new transport process functionality.

Setting up the CTMS tenant:


It's worth noting that the CTMS (Cloud Transport Management System) tenant needs to be set up in advance before you can use the new transport process functionality in SAP BTP BUILD platform. This tenant is responsible for managing the transport process between the source and target tenants and requires specific configuration.

Best practice is to set up the CTMS on a special subaccount for single tenant applications/services. However, this setup process is beyond the scope of this article. For more information on setting up the CTMS, please refer to the SAP Help page on this link: https://help.sap.com/docs/TRANSPORT_MANAGEMENT_SERVICE/7f7160ec0d8546c6b3eab72fb5ad6fd8/66fd7283c62f.... This setup process may be covered in a future article.

Setting CAS in source tenant


In addition to the SAP BTP BUILD platform, the source tenant also requires an instance of the Content Agent Service (CAS) to work with the CTMS. The CAS serves as a link between BUILD content and the CTMS, providing the necessary functionality to export and import the content from and to the CTMS.

To set up the CAS in the source tenant, you'll need to create an instance of the Content Agent Service in the subaccount. You can find detailed information on how to create an instance of the Content Agent Service in the SAP Help page on this link: https://help.sap.com/docs/CONTENT_AGENT_SERVICE/ae1a4f2d150d468d9ff56e13f9898e07/1f45ddc3d6194886802....

Once you have created the CAS instance, you'll need to create a new destination with the name "TransportManagementService". This destination serves as a connection to the CTMS instance. You can create this destination in the SAP BTP Cockpit by navigating to your subaccount and selecting "Destinations" from the left-hand menu. Detailed info can be found here: https://help.sap.com/docs/CONTENT_AGENT_SERVICE/ae1a4f2d150d468d9ff56e13f9898e07/eed66f35f9d148c8ae5... You should use clientId and clientSecret from the CTMS instance (from Single service tenant).

Next, you'll need to create a new destination in the CTMS subaccount as a connection to the source tenant. This destination will also need to be created in the SAP BTP Cockpit, and it should point to the "TransportManagementService" destination in the source tenant. Detailed info can be found here: https://help.sap.com/docs/CONTENT_AGENT_SERVICE/ae1a4f2d150d468d9ff56e13f9898e07/06bd9e2d55084eaf923...

Keep in mind, that during configuration of CTMS transport nodes and transport path, you have to have defined both destinations (source and target subaccounts). Both of those destinations needs to be configured in subaccount where CTMS is configured.

You should use clientId and clientSecret from the CAS instance (from Source tenant)

This will setup both direction connection between Source tenant (CAS/BUILD) and CTMS tenant/service

Setting up the CAS in target tenant


Setting up the target tenant is a simpler process than the source tenant. Like the source tenant, the target tenant requires an instance of the BUILD platform and a CAS instance. Once these are in place, you'll need to get the credentials from the service key of the CAS instance.

Next, you can create a new destination in the CTMS subaccount that represents the target tenant. If you have multiple target tenants, such as test and prod, you'll need to repeat this process for each tenant.

https://help.sap.com/docs/CONTENT_AGENT_SERVICE/ae1a4f2d150d468d9ff56e13f9898e07/06bd9e2d55084eaf923...

With the required connections set up, you'll be able to take advantage of the new transport process functionality in SAP BTP BUILD platform and transfer content between tenants more easily and in a more controllable way. It's worth noting that the configuration of CTMS transport nodes and routes is outside the scope of this article, but they will need to be set up correctly to take full advantage of the transport process functionality.

 




Promoting the process


Transporting, or promoting as SAP calls it, is a straightforward process.

To transport a process from the source tenant to the target tenant, you need to first release the process on the source tenant. Once the process is released, navigate to the version you want to promote and click on the promote button. This will create a transport request, which you can then import into the target tenant.


 


 

To import the transport request, you'll need to go to CTMS and select the target node where you want to import the transport. Then, click on the Import button and select the transport request you want to import.


Once the transport is imported successfully, go to the target tenant's build lobby. Here, you'll see a new button labeled import queue.


Click on this button, and you'll see the imported process in the import queue.


 

To import the process into the target tenant's build lobby, click on the process and then click on the import button.

 


After the import is complete, the process will be available in the target tenant's build lobby, and you can continue working on it as needed.


Disclaimer: All the pictures and content was created by myself. You can find the same blog post in my second blog page - https://vbalko.blogspot.com/2023/02/transporting-content-in-sap-build.html
17 Comments
JesseSukhbayar
Product and Topic Expert
Product and Topic Expert
Hi Vladimir,

What a great blog post! Very helpful to understand the developer perspective and how the technologies come together.

Best regards,

Jesse
CBasis
Participant
0 Kudos
Hi Vladmir,

thank you for your blog.
„Transporting, or promoting as SAP calls it, is a straightforward process.“

Is „promote“ the new „transport“ in general? 🤔

or a specific term in SAP Build?

Or a specific term in SAP Build ProcessAutomation?

best regards
Christian
vbalko-claimate
Active Participant
0 Kudos
Hello christian.braukmller4 ,

I don't have any internal strategic info, but I guess, that it's just BUILD specific jargon
BorisZarske
Product and Topic Expert
Product and Topic Expert
Hello Christian,

I can confirm Vladimír's assumption that there are no plans to change terms here in general. Also SAP Build works together with the SAP Cloud Transport Management service, where (as the name implies) transports are handled. So, this is a rather local term, as SAP Build in general also addresses citizen developers that might not be familiar with the "transport" term.

Best regards,
Boris
guychapman
Explorer
Hi,

In a couple of place in your blog it says "Detailed info can be found here" but there is no link to follow?

Thanks,

GUy
vbalko-claimate
Active Participant
0 Kudos
Hello guychapman ,

thank you for the notice, about missing links. Those were just hidden in a source html 🙂

They are back there.

Have a nice day
smorenod
Explorer
0 Kudos
Hello experts.

 

it's throwing me this CTS+ process failed. Error: "Error merging descriptors: Unsupported module type "com.sap.lobby.content" for platform type "CLOUD-FOUNDRY" " when I import the artifact to test system.

 

Any idea of what it's failing, I did this configuration:

  • Source system (dev): created TransportManagementService that points to CTMS tenant

  • Source system (dev): created CAS instance

  • Target system (test): created CAS instance

  • CTMS subaccount: created a destination that points to CAS target instance


 
smorenod
Explorer
I solved the issue by my self, thanks
virender123
Explorer
@Sara Moreno,

What was the solution. Could you please share elaborately.

Thanks.

 
smorenod
Explorer
0 Kudos
Sure Virender.

These were the steps I followed:

  • Source system (dev): create TransportManagementService that points to CTMS tenant

  • Source system (dev): create CAS instance as standard (just to assemble the artifact)

  • Target system (test): create CAS instance as application (to import the artifact)

  • CTMS subaccount: create a destination that points to Target system (CAS credentials)


This is my landscape:

dev->test->stage->prod

 
virender123
Explorer
0 Kudos
Hey Sara,

 

Thanks for responding. Tried same but still not working. Possible for you to connect over zoom or meet for a quick connect. I am in IST timezone but flexible for connecting anytime. Please share your availability if possible.

Thanks in advance !

Virender.
ADR
Participant
0 Kudos
Hi virender123 , are you able to solve this? not sure what exactly I am missing.

Thanks,

Anupam
ADR
Participant
0 Kudos
Hi @vbalko_effiis,

Thanks for the blog. I was able to follow along most of the parts described by you. But facing issue while importing from cTMS. The message says "Error merging descriptors: Unsupported module type "com.sap.lobby.content" for platform type "CLOUD-FOUNDRY"

 

The only confusion I have from the following section in the source system:

Could you please help me how to create the destination in cTMS point to another destination (TransportManagementService) in source account? The link you mentioned in this part taking to the target node destination.


Thanks in advance.


Anupam

ADR
Participant
0 Kudos
Hi morensar ,

Did you create any destination in cTMS account with the CAS instance(standard) in Dev? Did you use any additional property to link it with 'TransportManagementService' destination there?

Thanks,

Anupam
smorenod
Explorer
Hello anupamduttaroy

 

This is the configuration I have done:

In source subaccount (where is SPA DEV) :

  • Destination to CTMS with property sourceSystemId = dev node

  • Create a content agent instance type standard to assemble the artifact


In target subaccounts (test, stage, prod...)

  • Create content agent instance type application to import the artifact into target system. Create instance in all target subaccount you need to deploy.


In CTMS subaccount:

  • Configure endpoint destination to Content Agent instance of the target system. Configure destinations for all target systems

ADR
Participant
Thanks Sara for your reply.

I was able to make it working after changing the CTMS nodes pointing to Content Agent Instance. I had been still using the other destinations for CAPM deployment to CF.

By the way, I have one observation; the transport mechanism works perfectly fine even if we have CAS application instance in the SAP DEV. I used both standard and application instances to test this.

 

Regards,

Anupam
Manjunath
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi vladimirblasko

Is there any particular reason for activating the CTMS tenant in a separate sub account?

Best practice is to set up the CTMS on a special subaccount for single tenant applications/services.

Thanks, Manju
Labels in this area