Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
moritzgysler
Advisor
Advisor
In this blog post I'd like to explain how to create transport requests in your SAP NetWeaver Application Server for ABAP on-premise or SAP S/4HANA Cloud, private edition, development clients from within a feature.

Prerequisites



  1. The basic configuration to enable transport management for SAP S/4HANA on-premise, SAP S/4HANA Cloud, private edition, and SAP NetWeaver Application Server for ABAP on-premise must be done --> SAP Cloud ALM Setup & Admin Guide or blog post Enabling change & deployment management in SAP Cloud ALM for SAP S/4HANA and SAP S/4HANA Cloud, priv....

  2. To enable the creation of transports from SAP Cloud ALM you must install SAP Note 3322679 and execute the program /SDF/NOTE_3322679 as mentioned.

  3. Check, whether you've activated the "Feature Deployment: Read Transport Landscape" use case in transaction /SDF/ALM_SETUP in client 000 of your domain controller.

  4. Execute ALM Setup transaction (/n/sdf/alm_setup) in each development client you'd like to create transports for. The service key of your SAP Cloud ALM API instance you used already for registering client 000 to your SAP Cloud ALM tenant can be used to maintain the HTTP destination. Make sure that the use case "Feature Deployment: Manage Transports per Client" is activated. We recommend to use 1 minute as collection interval.



Configuration



Nice to know: For releasing transports for a certain export client from within Features the same prerequisites must be met.

Enablement step in CALM


System group with the respective development clients assigned must be available within your project. In application Projects & Setup create a system group and assign it to a deployment plan.


System Group setup



Assignment to deployment plan


Make sure that the deployment plan is assigned to your project you would like to create transport requests for.


Assign deployment plan to project



How to handle transport creation


Use the Create button in a feature of the given project and select "Transport" from the drop down.


Create transport


In the creation dialog following fields must be filled:

  1. Fill in a meaningful title for the transport request. We recommend a naming convention.

  2. Select whether it should be a customizing or a workbench transport request.

  3. Enter a User ID existing in the managed system for the transport owner. This field is optional - in case you do not enter a user or the user does not exist in the managed system we use the background user of your registration as fallback transport owner.

  4. Select the export client which is read from the system group assigned to the project as described before.

  5. Select the consolidation target fetched from the TMS configuration.



Creation dialog


By confirming the dialog by hitting the "create" button a transport creation is scheduled. The job on the managed system will provide feedback as soon as the Transport is created. During this time the status of the transport shows as "Creation Pending".


Creation pending


In the history you will see two entries, one with the user scheduling the creation and the system action providing the transport information.The modifiable transport can be used by the developer to do the requested change.


History entry and transports section



Nice to know: Transport creation is possible in feature statuses "In Specification", "In Implementation" and "In Testing" and you must have the project lead role assigned.

Wrap Up


To ensure that a feature is utilized as starting point for your change you can withdraw the authorizations to create transports in the managed system. This leads to a better organization of your development team activities.

Looking forward to receiving feedback. For latest updates and notifications you can follow me by clicking mgysler.
41 Comments
christoph03
Explorer
0 Kudos
Hi Moritz,

great blog. Looking forward to manage Transports in CALM projects.

Do I have run /n/sdf/alm_setup in Client 000 for Transport integration, too, or is the working client sufficient?

Export Tennant and Target are not found in "create Transport" option.


Working client is added System group as DEV System and added to deployment plan.

Best regards,
Christoph
moritzgysler
Advisor
Advisor
Hi Christoph,

Thanks a lot for your feedback.

How to enable the Transport Integration in general is described in the Setup & Administration Guide for SAP Cloud ALM. Therefore the setup transaction has to be executed in client 000 as well.

In client 000 the following use cases must be activated:

  • Feature Deployment: Manage Transports (in development system)

  • Feature Deployment: Read Landscape (preferably in domain controller)

  • Feature Deployment: Import Transports (in all target systems)


In order to create transports the setup transaction must be executed in the working client and the use case "Feature Deployment: Manage Transports per Client" has to be activated there.

I have added a note in the prerequisites section which must be installed on the managed system on top.

Hope that helps.

Best regards,

Moritz
christoph03
Explorer

Hi Moritz,

Thank you very much for your fast response and checking the issue in our Cloud ALM system.

Feature-Transports could be enabled for the first three Cloud ALM customers, now.

Great help, looking forward to our next Cloud ALM session.

Kind regards from Lake Constance

Christoph

stefanthomann
Participant
May I already say: Works like CharRM? 🤠

Anyway - it may not be all there yet, as we are used to from ChaRM, but it looks very good already...and the features that are there, are working: I just tested it. Even a proper orchestration of transports of different development systems is already possible.
obarbashyn
Discoverer
0 Kudos
Hi Moritz,

Thank you very much for this very helpful blog.

We have an error during release of transport request for one of our features in ALM.

The error is: "Release Failed in DER~100"

Can you please tell where can we see the logs for this error?

Thank you.
moritzgysler
Advisor
Advisor
0 Kudos
Hi Oleksii,

Thanks for your query.

You can click on the status of the transport. There you should see the error in a popover.


Most likely it is due to the fact that the corresponding transport tasks of the transport request have not been released.

Hope that helps.

Best regards,

Moritz
Sycntegral
Active Participant
0 Kudos

Hi Moritz


I could see the Transports and Assign Features to the Transports created in my S4HANA 2022 managed system from the Cloud ALM, but still could not create the Transport from Cloud ALM due to the same missing tenants - FYI - I have completed all possible prerequisites mentioned in your documents according to my best knowledge. Funny that I could see TRs that were created in the Managed System and could assign features to already created TRs there, but I still could not create the TR initially from Cloud ALM - where is the missing point?


 

I could not create a new TR but could assign to already created in the managed system

 

moritzgysler
Advisor
Advisor
0 Kudos
Hi Adi,

Did you make sure that the use case “Feature Deployment: Manage Transports per Client” is activated in your working client.

In addition you have to create a system group in SAP CLoud ALM. This system group must be assigned to a deployment plan and the deployment plan must be assigned to your project you are working in.


If this is not fixing the issue maybe the job to read the landscape data is not running properly.

Hope that helps.

Best regards,

Moritz
Sycntegral
Active Participant
0 Kudos
Hi Moritz

Thank you for your information - how could we check teh batch job that you have kindly mentioned?

I checked all other points hereafter - looks legit:


 

Please see hereafter:



 


 


 

moritzgysler
Advisor
Advisor
0 Kudos
Hi Adi,

We are not yet supporting 1-system landscapes, that's most likely the problem.

Why is it a problem for your use case? Because we do not receive proper landscape data for a 1-system landscape.

Please check blog post Enabling change & deployment management in SAP Cloud ALM for SAP S/4HANA and SAP S/4HANA Cloud, priv....

Here it is mentioned:

  • Currently supported landscapes:

    • Landscapes with at least two systems per route (also virtual systems)

    • Landscapes with basic consolidation and/or delivery targets (no target groups, delivery confirmation procedures, workflow-driven transports)

    • Landscapes with client-specific transport routes (CTC, optional)




We are working on an enhancement here. Will be delivered next week .

Best regards,

Moritz
Sycntegral
Active Participant
0 Kudos
Hi Moritz

Thank you for your comment. @Sumit Shankar and @Xavier Dupeyrat have organised a call tomorrow - we think there is more than just this issue..

Have a great rest of the evening.

Adi
itsrajchava
Explorer
0 Kudos

Hello Moritz,

We are performing a PoC for Features and as part of it, we have configured multiple clients in one system and configured the Transport Routes accordingly. Client1 as Dev, Client2 as Quality & Client3 as Prod.

We have performed the setup transaction client 000 as well and activated the below settings

Feature Deployment: Manage Transports
Feature Deployment: Read Landscape
Feature Deployment: Import Transports

We have also performed the setup transaction in all clients(client 1,2 & 3) and the use case "Feature Deployment: Manage Transports per Client" has been activated.

Unfortunately we are unable to see any option in the dropdown menu of Export Tenant and also no transports in the Assign option.

We have implemented the Note 3322679 and implemented the manual activity in the managed system.

Note: We have created the System Group and Deployment Plan and also the Project.

We see that there is a message in the job SDF/CALM_CDM_TR_PROC_CL_DEP-20 as below

Post request returned with status 403
Post request failed with status 403

Kindly assist us on the same.

Thanks
Raj

moritzgysler
Advisor
Advisor
0 Kudos
Hi Raj,

Have you added the authorization scopes during the maintenance of your SAP Cloud ALM API instance in the SAP BTP subaccount?

It's explained in step 7 of "Maintain an Instance" in the Setup Guide - Enabling SAP Cloud ALM API.

Her is the JSON snippet.

{
"xs-security": {
"xsappname": "<Your Instance Name>",
"authorities": [
"$XSMASTERAPPNAME.imp-cdm-feature-display-ui",
"$XSMASTERAPPNAME.imp-cdm-feature-manage-ui"
]
}
}

 

Hope that helps.

Best regards,

Moritz
amontella96
Active Contributor
0 Kudos
hey mgysler your hint made me solve my issue with CTMS on CALM so thank you for that! To improve your blog:

  • Your snippet didnt work to me , God knows why , below what did the trick to me


{
"xs-security": {
"xsappname": "<Your Instance Name>",
"authorities": [
"$XSMASTERAPPNAME.imp-cdm-feature-display-ui",
"$XSMASTERAPPNAME.imp-cdm-feature-manage-ui"
]
}
}



  • What nobody explain is that the field xsapname refers to the instance name of CALM not to the manually created instance name where you also create the service key

  • Lastly for whoever reads this blog, don't be afraid if the destination test returns 404 ( i was expecting a 401 as per cloud integration but hey, this is sap after all 😉


There s a lot of copy and paste of same documentation point regarding how to create the essential TransportManagementService but i could not find a nice screenshot of a successful working destination so here i come 🙂 :



moritzgysler
Advisor
Advisor
0 Kudos
Hi amo,

Thanks for the code snippet and the screenshot of the destination. It's all about the style. 😉

The field xsappname refers to the SAP Cloud ALM API instance name which has been created, totally right.

Regarding the 404 error I have added a note in blog post Enabling Change & Deployment Management in SAP Cloud ALM for SAP Integration Suite – Cloud Integrati... some time back:
Note: The connection test can lead to an “404: Not found” error due to the fact that the endpoints address will only be completed by the actual export call, hence no resource can be found at the root address. This error can be ignored and you can go ahead. 

Best regards,

Moritz
itsrajchava
Explorer
0 Kudos
Hello Moritz,

I have performed the step 7 of "Maintain an Instance" in the Setup Guide - Enabling SAP Cloud ALM API. and the error message in the job log is disappeared, but unfortunately the creation of Transport is still not happening.

I am still unable to the option in the dropdown menu of Export Tenant and also no transports in the Assign option.

Kindly assist us

Thanks

Raj Chava
amontella96
Active Contributor
0 Kudos
AWESOME! hope to deal with you again around CALM! cheers!A
amontella96
Active Contributor
0 Kudos
itsrajchava what about the following equally important 🙂 steps after 7? mgysler this is for your in theory 🙂
moritzgysler
Advisor
Advisor
0 Kudos
Hi Raj,

Please make sure to go through all the configuration steps to enable change & deployment management as described in this blog post.

Furthermore you can execute program /SDF/CALM_CDM_DIAGNOSTICS in your development system or check whether the corresponding job is released and executed.

As last step don't forget to assign your development client to a system group and the system group via deployment plan to your SAP Cloud ALM project.

Best regards,

Moritz
itsrajchava
Explorer
0 Kudos

Hello Moritz,

 

Please find the below activities that were done to enable the Feature.

Pre-Req
-> TMS is done in single system with multiple clients - Dev as 200, QA as 201, Prod as 202
-> Implemented ST-PI SP22
-> Latest version of Note 3322679 – SAP Cloud ALM – CDM: Create Transport from Feature has been implemented and manual activity report has been run "/SDF/NOTE_3322679"
-> icm parameters have been set accordingly
-> Certificates have been imported to the system

Setup
-> Subaccount is created and has the Cloud ALM subscription
-> Space is created and assigned the role of Space Developer
-> Authorities have been assigned to the space ""$XSMASTERAPPNAME.imp-cdm-feature-manage-ui""
-> SAP Cloud ALM API is selected under the standard plan.
-> key has been created and the same has been used for all the clients (000,200,201,202) to register to Cloud ALM

 

SAP System

-> Setup T-code has been executed and registered all the clients and also pushed the data successfully to LMDB of Cloud ALM.

->Use-case : Feature Deployment: Read Transport Landscape has been enabled in 000 client of same system.
->Use-case : Feature Deployment: Manage Transports has been activated in the Dev - 200 client
->No Use-case is enabled for the clients 201 & 202 as the only option available is "Feature Deployment: Manage Transport per Client"

->/SDF/CALM_CDM_DIAGNOSTICS Job is running 000 client.

->System Group is created with different clients as Dev -200,QA-201 & Prod-202.
->Deployment plan is created and assigned to a Project.

After performing all these activities, I am still not able to see any options in the dropdown menu of "Export Tenant" while creating the Transport.

 

Thanks

Raj Chava

moritzgysler
Advisor
Advisor
0 Kudos
Hi Raj,

Can you please check whether you have applied the version 11 of the master note 3322679.

There we have a fix in for the one system landscape:

  1. Support of CTS landscapes consisting of only one system


Apart from that the configuration looks good.

Best regards,

Moritz
itsrajchava
Explorer
0 Kudos
Hello Moritz,

Yes, I have implemented the version 11 of SAP Note 3322679 in our env.

Please be noted that our system is on-premise.

Thanks

Raj Chava
moritzgysler
Advisor
Advisor
0 Kudos
Hi Raj,

Can you please activate the use case Feature Deployment: Manage Transports in client 000 as well.

And then deactivate and activate the Read Transport Landscape use case once again.

Best regards,

Moritz
itsrajchava
Explorer
Great! It worked Moritz.

Thanks a lot for your assistance. Nice to work with you on this.

Thanks

Raj Chava

 

 
0 Kudos
Hello Moritz,

Thanks for such a nice blog. Would a 4 system landscape be supported? DEV --> QA --> Pre-PRD --> PRD?

If so,

  • when creating system group, would the PRE-PRD system act as a test system?

  • When creating a transport we would select as target the QA based on TMS, but when the transport is moving thru the landscape, will this be applied into Pre-PRD before PRD?


Looking forward to hearing from you. Thanks much in advance.

 

 
moritzgysler
Advisor
Advisor
0 Kudos
Hi Ricardo,

Thanks for the feedback.

We support 4-tier landscapes since we are considering the TMS configuration in your managed systems.

  • PRE-PRD can be added as QA system in the system group but it does not really affect anything since the transports follow the configured transport route in TMS.

  • When creating a transport you can select the target tenant from the list of consolidation targets provided by the TMS configuration. The transports will be moved according to your transport route and hence will be applied to PRE-PRD before PRD.


Hope that helps.

Best regards,

Moritz
0 Kudos
Hi Moritz,

Thanks much for your answer. It is so helpful. I'll reach out in case any further doubts.
0 Kudos
Hi Moritz,

One more question, I see in your system groups' screenshot, the systems show the working clients O11-100, O12-200 and O13-100. Do I need to register any client for non-Developments systems? Per Say, register QA-200, PRD400? and if so, which feature shall I select?

Asking this since the SAP guides says to select the feature "manage transport per client" only in Development systems where options to Create transports, Delete empty transports,Release transports, Transport of copies are required.

Hope you can clarify this question. Thanks
moritzgysler
Advisor
Advisor
0 Kudos
Hi Ricardo,

Indeed it is only needed to add the respective development clients you want to create transports for to the development role in system groups.

Activating the use case "manage transports per client" must be done in the development client only.

Best regards,

Moritz
0 Kudos
Thanks much. Then, I will just register client 000 for Non Development systems.
Sycntegral
Active Participant
0 Kudos
How could we recreate Trust in case that SSL cwertificates on our S4HANA system were corrupted and we are getting this error:

 

SSL handshake with synctegral-pty-ltd-cloudalm.authentication.eu10.hana.ondemand.com:443 failed: SSSLERR_PEER_CERT_UNTRUSTED (-102)


Peer's X.509 certificate (chain) validation failed (missing trust?)

 

SapSSLSessionStartNB()==SSSLERR_PEER_CERT_UNTRUSTED

SSL:SSL_read() failed  (536872221/0x2000051d)

OTR-Based Exception of Class: /SDF/CX_CALM_CONNECTOR
bastian_kautzsch1
Discoverer
0 Kudos
Hi Moritz,

 

thanks for your great blog entry!

 

Hopefully you can help us on one question. We are currently struggling with the creation of transport requests in our managed system (On-Premise S/4 HANA). When trying to create a transport request we get the following error message:


Creation of Transport error


 

We followed the administration guide here and your blog entry but the error is persistent.

Our Landscape is defined by two systems (1 DEV, 1 PRD) here:


Landscape


Do you or someone else have an idea what the issue can be?

 

Thank you very much & Best Regards

Bastian
moritzgysler
Advisor
Advisor
Hi Bastian,

I suspect the use case in the working client of your dev system is not active or the diagnostic job is not running.

Can you please check the Troubleshooting guide.

Hope that helps.

Best regards,

Moritz
SDS
Explorer
0 Kudos
Hi,

We get also the error when trying to create a transport in a feature.Same as Bastian.

We ran the connection test report /SDF/CALM_CDM_CONN_DIAGNOSTIC in our development system (S4 private cloud) and see that token scopes are empty.

In the troubleshooting guide is said:

Token Scopes must contain the following entries:
• imp-cdm-feature-manage-ui
• imp-cdm-feature-display-ui
If that’s not the case, you need to update the SAP Cloud ALM API instance with the corresponding
scope describe here

 

But we don't understand what exactly needs to be done then.

Our service key was generated automatically.

Can you please advise?

 

Thx
moritzgysler
Advisor
Advisor
0 Kudos
Hi Sigrid,

I assume your tenant was provisioned before October 16, 2023. In this case I would recommend to delete the existing SAP Cloud ALM API instance (if not yet used for monitoring purposes through SAP CLoud ALM, then I would create an additional one) and create a new one following the section "Maintain an Instance" in the Procedure area.

For the Transport Management integration especially step 5 is important since you need to add the authorization scopes as parameters:
{
"xs-security": {
"xsappname": "<your-instance-name>",
"authorities": [
"$XSMASTERAPPNAME.imp-cdm-feature-display-ui",
"$XSMASTERAPPNAME.imp-cdm-feature-manage-ui"
],
"oauth2-configuration": {
"credential-types": [
"binding-secret"
]
}
}
}

Don't forget to replace <your-instance-name> with the name of your SAP Cloud ALM API instance as

"xsappname". The double quotes must be kept.


Hope that helps.

Best regards,

Moritz
SDS
Explorer
0 Kudos
Thanks Moritz,

 

So than we need to replace our service key JSON-file in Cloud ALM right? And reconfigure the PUSH data in all managed systems?

 
moritzgysler
Advisor
Advisor
0 Kudos
Hi Sigrid,

This would be my recommendation, yes.

Best,

Moritz
SDS
Explorer
0 Kudos
I did everything as requested and still don't see the entries in Token Scopes when I run the diagnostic program.
moritzgysler
Advisor
Advisor
0 Kudos
Did you update the destinations per client in /SDF/ALM_SETUP with the new Service Key JSON? What result is the diagnostics report showing?
SDS
Explorer
Hi Moritz,

 

We didn't create the new instance correctly, redid it and now it works. Thanks for your help. Excited to start using it !
bastian_kautzsch1
Discoverer
0 Kudos
Hey Moritz,

 

we checked this and the jobs on the managed system were not running correctly! Thanks for the guide & thank you very much for that hint!

 

Best Regards 🙂

Bastian