{"id":45670,"date":"2026-03-02T13:37:24","date_gmt":"2026-03-02T12:37:24","guid":{"rendered":"https:\/\/www.blue.works\/?p=45670"},"modified":"2026-03-19T13:16:38","modified_gmt":"2026-03-19T12:16:38","slug":"alm-coffeeparty-xi","status":"publish","type":"post","link":"https:\/\/www.blue.works\/en\/alm-coffeeparty-xi\/","title":{"rendered":"ALM\u00a0Coffeeparty\u00a0XI &#8211; Dual Landscape: Retrofit from the Cloud"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/Disclaimer11en.png\" alt=\"\" class=\"wp-image-41360\" style=\"aspect-ratio:8.32455868689997;width:613px;height:auto\"\/><\/figure>\n\n\n\n<p class=\"has-text-align-left\">Now&nbsp;it&#8217;s&nbsp;finally here!&nbsp;<\/p>\n\n\n\n<p>The SAP Cloud ALM team has implemented the retrofit functionality also in the successor to SAP Solution Manager, SAP Cloud ALM.&nbsp;<\/p>\n\n\n\n<p>Spoiler:&nbsp;<\/p>\n\n\n\n<p>The most&nbsp;important features&nbsp;are&nbsp;there,&nbsp;the retrofit categorization is in place, but there are still a few dark spots that we would like to shed some light on here. Of course, some capabilities are still missing, such as cross-release retrofits, etc., but we are patient and can wait.&nbsp;<\/p>\n\n\n\n<p>We already discussed the topic of retrofitting\u00a0<a href=\"https:\/\/www.blue.works\/en\/alm-coffee-party-v-dual-landscape-part-4\/\" target=\"_blank\" rel=\"noreferrer noopener\">during our fifth Coffee Party (part 4), in the chapter entitled \u201cRetrofitting basics.\u201d<\/a>\u00a0As\u00a0before, we are using our sandbox system, on which we simulate a five-system landscape with the help of different clients:\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic20-1920x623.png\" alt=\"\" class=\"wp-image-41269\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Setup&nbsp;<\/h2>\n\n\n\n<p>If you already have the&nbsp;<a href=\"https:\/\/help.sap.com\/docs\/cloud-alm\/setup-administration\/sap-netweaver-application-server-for-abap\" target=\"_blank\" rel=\"noreferrer noopener\">ABAP Transport-Use Case f\u00fcr Cloud ALM up and running<\/a>, setting up the CALM retrofit is surprisingly easy. The SAP Help pages&nbsp;contain&nbsp;all the necessary information.&nbsp;&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Managed Systems&nbsp;<\/h3>\n\n\n\n<p>The setup in the managed systems (development in maintenance and in project) has been given its&nbsp;<a href=\"https:\/\/help.sap.com\/docs\/cloud-alm\/setup-administration\/setting-up-managed-systems#setting-up-retrofit\" target=\"_blank\" rel=\"noreferrer noopener\">own section<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Implement&nbsp;SAP Notes&nbsp;that&nbsp;contain&nbsp;the software;&nbsp;from&nbsp;<a href=\"https:\/\/me.sap.com\/notes\/539977\" target=\"_blank\" rel=\"noreferrer noopener\">ST-PI 740 SP33, which will be released in January 2026<\/a>, this should no longer be necessary&nbsp;<\/li>\n\n\n\n<li>Implement PFCG roles from the notes<\/li>\n\n\n\n<li>Create new technical users or&nbsp;modify&nbsp;existing ones with these roles<\/li>\n\n\n\n<li>Set up an RFC connection from maintenance to project<\/li>\n\n\n\n<li>Control tables must be&nbsp;maintained&nbsp;in both systems.&nbsp;<\/li>\n\n\n\n<li>If you&nbsp;haven&#8217;t&nbsp;already done so, activate the CTS_BROWSER service with SICF.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Comments<\/h3>\n\n\n\n<p>As with the&nbsp;SolMan&nbsp;retrofit, it is still necessary for both systems to be able to see each other at the transport level (same TMS domain or TMS domain link).&nbsp;<\/p>\n\n\n\n<p>The SAP_SDF_CALM_CDM_RETROFIT_RFC role for the project development system&nbsp;contains&nbsp;a&nbsp;somewhat naive&nbsp;authorization&nbsp;with regard to&nbsp;the transport directory\u2014<a href=\"https:\/\/help.sap.com\/docs\/ABAP_PLATFORM_NEW\/4a368c163b08418890a406d413933ba7\/3dad5dbf4ebc11d182bf0000e829fbfe.html\" target=\"_blank\" rel=\"noreferrer noopener\">ABAP Windows Server biotopes still exist<\/a>, and some SAP administrators love to be creative with directory names:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic01.png\" alt=\"\" class=\"wp-image-41271\"\/><\/figure>\n\n\n\n<p>This role must be enhanced anyway, as unfortunately the S_RFC authorization for the RFCPING function module, which is necessary to test the connection for authorizations in SM59 of the maintenance system, is missing.&nbsp;<\/p>\n\n\n\n<p>Maintaining the maintenance-dialog-free table \/SDF\/CDM_PARAM, which specifies the target production system, is amusing, but at least it keeps us from getting bored: With SE16, you&nbsp;have to&nbsp;add an entry like this:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic02.png\" alt=\"\" class=\"wp-image-41273\"\/><\/figure>\n\n\n\n<p>If you have more than one production system in the transport path (in the old&nbsp;SolMan, these were the Sites) then you have to add each additional production system separated by commas. I admit, I once programmed such&nbsp;a&nbsp;amusing DNO_CUST04 parameter, because&nbsp;it&#8217;s&nbsp;fun to show the world how&nbsp;virtuosically&nbsp;you can master the ABAP string functions &#8230;&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cloud ALM&nbsp;<\/h3>\n\n\n\n<p>This&nbsp;<a href=\"https:\/\/help.sap.com\/docs\/cloud-alm\/applicationhelp\/retrofit-landscape-configuration\" target=\"_blank\" rel=\"noreferrer noopener\">documentation<\/a>&nbsp;is also completely sufficient. We will therefore briefly summarize the steps in the style of a recipe:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Take two projects, one for maintenance (retrofit source) and one for project work (retrofit target).&nbsp;&nbsp;<\/li>\n\n\n\n<li>Create\/maintain&nbsp;two system groups accordingly.&nbsp;<\/li>\n\n\n\n<li>Connect the target deployment plan to the target project.<\/li>\n\n\n\n<li>Create\/maintain&nbsp;the source deployment plan, configuring retrofit to the target project here.<\/li>\n\n\n\n<li>Connect the source deployment plan to the maintenance project.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">First inspection<\/h2>\n\n\n\n<p>The new Retrofit app welcomes us with an overview of existing retrofit-enabled projects,&nbsp;similar to&nbsp;the Focused Build entry via a list of task lists.&nbsp;<\/p>\n\n\n\n<p>As expected, transports for existing features of the maintenance project are not added to the retrofit queue retroactively:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic03.png\" alt=\"\" class=\"wp-image-41275\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic04.png\" alt=\"\" class=\"wp-image-41277\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Here we go<\/h3>\n\n\n\n<p>To keep our experience here concise, we will look at two cases: \u201c<em>Automatic<\/em>\u201d and \u201c<em>Manual<\/em>.\u201d However, mixed variants, in which a maintenance transport&nbsp;contains&nbsp;both, are also supported (in Focused Build, this was the Full Scope (AUTO_FULL) scenario).&nbsp;<\/p>\n\n\n\n<p>We create a feature in the maintenance project and populate it with&nbsp;a transport, record our maintenance change in the famous&nbsp;<a href=\"https:\/\/community.sap.com\/t5\/technology-blog-posts-by-sap\/first-steps-to-work-with-sap-cloud-alm-deployment-scenario-for-sap-abap\/ba-p\/13627068\" target=\"_blank\" rel=\"noreferrer noopener\">table T005a<\/a>, and release the transport.&nbsp;<\/p>\n\n\n\n<p>The release triggers the export and,&nbsp;immediately&nbsp;afterwards, the retrofit categorization in the ABAP maintenance system (here BSS.811), the result of which will be visible in the new Retrofit app.&nbsp;<\/p>\n\n\n\n<p>You still have to&nbsp;<a href=\"https:\/\/www.youtube.com\/shorts\/kngZUFeMOt0\" target=\"_blank\" rel=\"noreferrer noopener\">wait blindly<\/a>&nbsp;until the job has started on the maintenance system and exported the transport.&nbsp;<\/p>\n\n\n\n<p>After a finite amount of time and a few \u201c<em>Refresh<\/em>,\u201d&nbsp;it\u2019s&nbsp;ready:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic07.png\" alt=\"\" class=\"wp-image-41279\"\/><\/figure>\n\n\n\n<p>The new \u201c<em>Retrofit Status<\/em>\u201d column shows that we are ready to go.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Die Retrofit App&nbsp;<\/h3>\n\n\n\n<p>It&#8217;s&nbsp;great that you can open the Retrofit app directly from the feature.&nbsp;It&#8217;s&nbsp;also nice that you can use the back button to return to the feature.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic10-1920x723.png\" alt=\"\" class=\"wp-image-41281\"\/><\/figure>\n\n\n\n<p>When we click on the detail arrow, we get a detailed view, and when we click on \u201c<em>Show More per Row<\/em>\u201d there, we learn the reasons for the categorization:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic11.png\" alt=\"\" class=\"wp-image-41283\"\/><\/figure>\n\n\n\n<p>To enjoy the automation, we need to specify a feature in the target project in the Retrofit app and select the appropriate&nbsp;transports&nbsp;for it.&nbsp;<\/p>\n\n\n\n<p>Since this is our first retrofit, we decide to create everything from scratch, as there is a convenient way to do this:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic12-1920x936.png\" alt=\"\" class=\"wp-image-41285\"\/><\/figure>\n\n\n\n<p>Unfortunately, there is no \u201c<em>Refresh<\/em>\u201d button here:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic13-1920x881.png\" alt=\"\" class=\"wp-image-41287\"\/><\/figure>\n\n\n\n<p>So&nbsp;we wait blindly and without tools for the usual CALM feature&nbsp;<a href=\"https:\/\/www.youtube.com\/shorts\/a3Ju2t3-7QE\" target=\"_blank\" rel=\"noreferrer noopener\">memorial minutes<\/a>&nbsp;and eventually press \u201c<em>Edit<\/em>\u201d to force an update of the display. Lo and behold, the setup is finally complete; the text of the feature is assigned automatically:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic14-1920x533.png\" alt=\"\" class=\"wp-image-41289\"\/><\/figure>\n\n\n\n<p>When creating the transports, the technical user for Cloud ALM Integration (here: BG_CALM) is used as the owner:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic21.png\" alt=\"\" class=\"wp-image-41291\"\/><\/figure>\n\n\n\n<p>One could say that only the&nbsp;<a href=\"https:\/\/help.sap.com\/docs\/Focused_Build_Focused_Insights\/53cb8e90c8504f31bb44d4f0029b4b98\/534e48deac2044f5ad257d3fad1223d1.html\" target=\"_blank\" rel=\"noreferrer noopener\">Focused Build Retrofit Automation scenario AUTO_CD<\/a>&nbsp;is supported here. We hope that the quiet, stable, and uncomplicated AUTO_TOC scenario will be supported again at some point.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Automatic?&nbsp;<\/h3>\n\n\n\n<p>We are delighted and, spoiled by Focused Build, expect the automation to do the work now.&nbsp;<\/p>\n\n\n\n<p>But nada happens.&nbsp;<\/p>\n\n\n\n<p>Disappointed, we take a closer look at the documentation and realize: \u201cOh, this is a manual automatic\u201d (an oxymoron, if you like). I remember how&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Citro%C3%ABn_DS\" target=\"_blank\" rel=\"noreferrer noopener\">the goddess<\/a>&nbsp;offered a similar semi-automatic system: to change gears, you had to&nbsp;<a href=\"https:\/\/youtu.be\/byqGs6KrgjM?t=44\" target=\"_blank\" rel=\"noreferrer noopener\">tap a small lever on the steering wheel<\/a>, but at least the clutch was automatically engaged when changing gears.&nbsp;<\/p>\n\n\n\n<p>Oh well.&nbsp;<\/p>\n\n\n\n<p>We select our transport and tap the \u201c<em>Start Retrofit<\/em>\u201d button:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic15-1920x254.png\" alt=\"\" class=\"wp-image-41293\"\/><\/figure>\n\n\n\n<p>And once again, we miss the&nbsp;Refresh button:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic16-1920x234.png\" alt=\"\" class=\"wp-image-41295\"\/><\/figure>\n\n\n\n<p>Here, you can at least help yourself by opening and closing the detail window.&nbsp;<\/p>\n\n\n\n<p>But nothing happens, and we are getting nervous. We use SM37 in the ABAP system to check whether we can find any canceled jobs (see below).&nbsp;<\/p>\n\n\n\n<p>This occupational therapy helps us pass the empty waiting time, and finally we can admire the result:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic18-1920x1293.png\" alt=\"\" class=\"wp-image-41297\"\/><\/figure>\n\n\n\n<p>Our first semi-automatic Cloud ALM retrofit was a success!<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><em>Warning!&nbsp;Consolidate&nbsp;results<\/em><\/h4>\n\n\n\n<p>The target feature created with the Retrofit app has the&nbsp;initial&nbsp;status \u201c<em>In Specification<\/em>\u201d:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic22.png\" alt=\"\" class=\"wp-image-41299\"\/><\/figure>\n\n\n\n<p>As a result, the feature can be&nbsp;deleted&nbsp;again, even though maintenance&nbsp;transports have&nbsp;already been retrofitted into the target&nbsp;transports&nbsp;of this feature.<\/p>\n\n\n\n<p>We tried it out, of course, with tragic success:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic23.png\" alt=\"\" class=\"wp-image-41301\"\/><\/figure>\n\n\n\n<p>So&nbsp;you should set the target feature \u201c<em>In Implementation<\/em>\u201d as early as possible!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Where are the collisions?&nbsp;<\/h3>\n\n\n\n<p>We try to generate a collision&nbsp;in order to&nbsp;examine the manual retrofit.&nbsp;<\/p>\n\n\n\n<p>We create a new transport in our maintenance feature, populate it with the same key and a new key&nbsp;in table&nbsp;T005a, and release the transport.&nbsp;<\/p>\n\n\n\n<p>The result is also an automatic retrofit.&nbsp;<\/p>\n\n\n\n<p>Subsequent&nbsp;release of the target transport BSSK902202 and creation of a new target transport (BSSK902218) in the retrofit app does not change this categorization:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic24-1920x530.png\" alt=\"\" class=\"wp-image-41303\"\/><\/figure>\n\n\n\n<p>We start the semi-automatic retrofit, which still runs smoothly.&nbsp;<\/p>\n\n\n\n<p>We would have expected the categorization to be repeated and a retrofit error to be generated (we will force this a little later).&nbsp;<\/p>\n\n\n\n<p>This confuses&nbsp;us somewhat, as the&nbsp;<a href=\"https:\/\/help.sap.com\/docs\/cloud-alm\/applicationhelp\/retrofit-categories\" target=\"_blank\" rel=\"noreferrer noopener\">documentation<\/a>&nbsp;states: \u201c<em>This means that target transports, containing the same objects as source transports, which have been released in the last 6 months are included in conflict determination.<\/em>\u201d Could this be related to the fact that the target transport belongs to the \u201c<em>Default Target Feature for Retrofit<\/em>\u201d?&nbsp;<\/p>\n\n\n\n<p>We would have liked to repeat the categorization to force a change in the retrofit status, but you can see that \u201c<em>Regenerate Retrofit<\/em>\u201d is inactive because, unlike&nbsp;SolMan&nbsp;Retrofit, you can only regenerate the retrofit data once an error has already occurred.&nbsp;<\/p>\n\n\n\n<p>This is unfortunate because in the&nbsp;SolMan&nbsp;past, the \u201c<em>Create Retrofit Data Again<\/em>\u201d function was often a lifesaver if an action was interrupted midway, e.g., due to RFC connection problems, and everything got tangled up.&nbsp;<\/p>\n\n\n\n<p>But&nbsp;maybe there&nbsp;will be no more ugly interruptions in the new SAP Cloud ALM world!&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic35-1920x1248.jpg\" alt=\"\" class=\"wp-image-41305\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Finally, we have a collision!&nbsp;<\/h3>\n\n\n\n<p>So&nbsp;we make a second attempt to generate a&nbsp;conflict&nbsp;transport. This time, we create a new feature in the implementation project and record a change to the same object in project transport BSSK902220 \u201c<em>6-242: RE Retrofit Test &#8211; Project Work.<\/em>\u201d&nbsp;<\/p>\n\n\n\n<p>And lo and behold, the status has turned red:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic25-1920x1412.png\" alt=\"\" class=\"wp-image-41307\"\/><\/figure>\n\n\n\n<p>\u201c<em>Start Retrofit<\/em>\u201d is now inactive.&nbsp;<\/p>\n\n\n\n<p>We&nbsp;have to&nbsp;open the detail window of the individual retrofit entry in change mode and select a target transport for each manual object. If there is a mass assignment here, I&nbsp;have missed&nbsp;it. Luckily, there are only two entries!&nbsp;<\/p>\n\n\n\n<p>Selecting the respective target transport is quite confusing because it displays&nbsp;all (!)&nbsp;changeable transports that have the project QA system (803) as their target, even those without features, but it does not reveal the transport number or which Cloud ALM project they belong to!&nbsp;<\/p>\n\n\n\n<p>What&nbsp;I also find problematic&nbsp;is that we are not given any&nbsp;indication&nbsp;as to which transport from the implementation project is the&nbsp;conflict&nbsp;transport. If it were still changeable, wouldn&#8217;t it be the ideal candidate for&nbsp;selection&nbsp;as the target transport? You could even pre-fill the input field with this changeable&nbsp;conflict&nbsp;transport.&nbsp;<\/p>\n\n\n\n<p>Furthermore, we can specify any different transports as manual targets, as has been done here as a test case.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic26.png\" alt=\"\" class=\"wp-image-41309\" style=\"aspect-ratio:0.8274460913330562;width:608px;height:auto\"\/><\/figure>\n\n\n\n<p>Well, these Target Transport entries are only for documentation purposes.&nbsp;<\/p>\n\n\n\n<p>But we see some pretty serious clouds of error gathering on the horizon and hear a lot of sand crunching in the gears, in case one day a productive software malfunction makes it necessary to search for&nbsp;possible causes&nbsp;&#8230;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic27-1920x1440.jpg\" alt=\"\" class=\"wp-image-41311\" style=\"width:559px;height:auto\"\/><\/figure>\n\n\n\n<p><em>Photo&nbsp;by&nbsp;<\/em><a href=\"https:\/\/unsplash.com\/@extrateurestrial?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Elise Teur<\/em><\/a><em>&nbsp;on&nbsp;<\/em><a href=\"https:\/\/unsplash.com\/photos\/-k9bQcrAxSU?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Unsplash<\/em><\/a>&nbsp;<\/p>\n\n\n\n<p>Fortunately&nbsp;(?), the entries for the target transports and their implementation status can still be changed, even though the manual retrofit has long been considered complete:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic28-1920x689.png\" alt=\"\" class=\"wp-image-41313\"\/><\/figure>\n\n\n\n<p>The status \u201c<em>Manually Retrofitted<\/em>\u201d&nbsp;remains&nbsp;unchanged even if entries are marked as \u201c<em>Not Implemented<\/em>.\u201d<\/p>\n\n\n\n<p>As a prankster, you can even specify a target transport number in which \u201c<em>Not Implemented<\/em>\u201d has been implemented. This reminds me of the nice mathematician&#8217;s joke about set theory: \u201c<em>If there are 5 people in a room and 6 people&nbsp;leave,&nbsp;one person has to go back in so that the room becomes empty.<\/em>\u201d&nbsp;<\/p>\n\n\n\n<p>Update: This was the status at the end of January&nbsp;2026. Now, during proofreading at the beginning of February, the retroactive edit button has disappeared. Training material for an agile application is a challenge!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">We are receiving a retrofit error!<\/h3>\n\n\n\n<p>But how&nbsp;accurate&nbsp;is this categorization?&nbsp;<\/p>\n\n\n\n<p>We set up a small test. In our maintenance feature, we create a new transport, record a change that is guaranteed not to conflict with the project, and release the task and transport.&nbsp;<\/p>\n\n\n\n<p>As expected, the retrofit status glows beautifully green under the CALM sun:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic29.png\" alt=\"\" class=\"wp-image-41315\" style=\"aspect-ratio:1.0090658257784786;width:652px;height:auto\"\/><\/figure>\n\n\n\n<p>Meanly, the implementation team decides that the project needs&nbsp;new content&nbsp;for this exact entry, changes it accordingly, and records the change in project transport BSSK902220.&nbsp;<\/p>\n\n\n\n<p>There is no longer a CSOL warning as there was in Solution Manager!&nbsp;<\/p>\n\n\n\n<p>This increases the demands on project management to plan regular communication with the maintenance team from the very beginning and not just at the end&nbsp;in&nbsp;the&nbsp;hypercare&nbsp;or operational phase of the project.&nbsp;<\/p>\n\n\n\n<p>We start the retrofit of the still \u201cgreen\u201d transport entry:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic30.png\" alt=\"\" class=\"wp-image-41317\"\/><\/figure>\n\n\n\n<p>After a few&nbsp;<a href=\"https:\/\/www.youtube.com\/watch?v=T3to8QdXlpU\" target=\"_blank\" rel=\"noreferrer noopener\">CALM waiting minutes<\/a>, we get this result:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic31-1920x940.png\" alt=\"\" class=\"wp-image-41319\"\/><\/figure>\n\n\n\n<p>Very good! The categorization is robust and captures&nbsp;subsequent&nbsp;conflicting changes! However, we find it&nbsp;somewhat irritating&nbsp;that the <em>\u201cRegenerate Retrofit\u201d<\/em> button is still inactive.&nbsp;<\/p>\n\n\n\n<p>Only after completely reloading the application in the browser (!) do we get our chance to reevaluate:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic32.png\" alt=\"\" class=\"wp-image-41321\"\/><\/figure>\n\n\n\n<p>From now on, we will continue with the \u201c<em>Manual<\/em>.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Reject&nbsp;Retrofit&nbsp;<\/h2>\n\n\n\n<p>This action&nbsp;<a href=\"https:\/\/help.sap.com\/docs\/cloud-alm\/applicationhelp\/performing-retrofit\" target=\"_blank\" rel=\"noreferrer noopener\">behaves quite differently than in SolMan ChaRM<\/a>: In Cloud ALM, you can only&nbsp;<em>reject<\/em>&nbsp;\u201c<em>Automatic<\/em>\u201d retrofits.&nbsp;<\/p>\n\n\n\n<p>And the&nbsp;ToC&nbsp;that has already been generated and released must then also be manually&nbsp;deleted&nbsp;from the import queue of the project development system. Do we have permission to do this? Or do we need to contact system administration?&nbsp;<\/p>\n\n\n\n<p>As a result, the source transport is given the status \u201c<em>Manually Retrofitted<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic33.png\" alt=\"\" class=\"wp-image-41323\" style=\"aspect-ratio:1.2422302839845645;width:702px;height:auto\"\/><\/figure>\n\n\n\n<p>We find this unfortunate.&nbsp;<\/p>\n\n\n\n<p>This is because very few projects affect the entire production system. Very often, they aim to introduce&nbsp;additional&nbsp;components or country rollouts.&nbsp;<\/p>\n\n\n\n<p>We have seen several cases with customers where a retrofit into the project landscape was expressly and justifiably refused: The installation of SAP notes necessary for production, which would only disrupt project work; customizing changes to interfaces to non-SAP systems that were not even set up in the project landscape; authorization roles; BRF+ rules that were not intended for the project landscape; etc.&nbsp;<\/p>\n\n\n\n<p>This means that we lose track of which source transports in the Retrofit App have the status \u201c<em>Manually Retrofitted<\/em>\u201d because they were \u2018<em>Rejected<\/em>\u2019 and which ones are \u201c<em>Manually Retrofitted<\/em>\u201d because the maintenance change was indeed manually transferred to the project landscape.&nbsp;<\/p>\n\n\n\n<p>The only small&nbsp;indication&nbsp;for manual, red objects could be the empty field for the target transport, but this is a very weak clue, and there is no reporting&nbsp;option&nbsp;for this.&nbsp;<\/p>\n\n\n\n<p>With mixed&nbsp;transports, it becomes even more unclear.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic34.png\" alt=\"\" class=\"wp-image-41325\" style=\"aspect-ratio:1.9448665074886042;width:788px;height:auto\"\/><\/figure>\n\n\n\n<p>The \u201c<em>Reject<\/em>\u201d function was used for two&nbsp;transports&nbsp;here. With a great deal of attention and knowledge, it could be determined that the penultimate transport (BSSK902234) was \u201c<em>Rejected<\/em>\u201d because only then could the transport be simultaneously \u201c<em>Automatic<\/em>\u201d and \u201c<em>Manually Retrofitted<\/em>.\u201d&nbsp;<\/p>\n\n\n\n<p>But who could have guessed that the \u201c<em>Reject<\/em>\u201d function also rejected the automatic part of the last, mixed transport (BSSK902237)?&nbsp;<\/p>\n\n\n\n<p>We can only hope&nbsp;<a href=\"https:\/\/influence.sap.com\/sap\/ino\/#\/campaign\/3501\" target=\"_blank\" rel=\"noreferrer noopener\">that the old SolMan retrofit status \u201c<em>Rejected<\/em>\u201d will return<\/a>.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A look under the hood&nbsp;<\/h2>\n\n\n\n<p>Due to the high frequency of CALM synchronization jobs in the ABAP system, it is quite difficult to&nbsp;identify&nbsp;the relevant logs. A monitor report that only displays the application log of job executions with content is currently lacking.&nbsp;<\/p>\n\n\n\n<p>With SM37, you can try client-independent to pinpoint the job. Here is an example:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic05.png\" alt=\"\" class=\"wp-image-41327\"\/><\/figure>\n\n\n\n<p>The corresponding application log, on the other hand, is client-dependent, so we search in client 811. The only way to&nbsp;tell&nbsp;that something has happened is by the higher number of messages. Here is an example for a creation of a transport in client 811:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic06-1920x841.png\" alt=\"\" class=\"wp-image-41329\"\/><\/figure>\n\n\n\n<p>An overview of the \u201c<em>External&nbsp;Identification<\/em>\u201ds&nbsp;used can be found in the&nbsp;<a href=\"https:\/\/help.sap.com\/docs\/cloud-alm\/setup-administration\/solutions-setup-check#analyze-application-log\" target=\"_blank\" rel=\"noreferrer noopener\">documentation<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Export<\/h3>\n\n\n\n<p>Here is an example for the release of a transport request:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic08.png\" alt=\"\" class=\"wp-image-41331\" style=\"aspect-ratio:1.7756052449053736;width:794px;height:auto\"\/><\/figure>\n\n\n\n<p>Immediately after export (1), the job was started (2) that launches the report for retrofit categorization (3). If the result of the categorization is green, this report also creates the&nbsp;ToC&nbsp;(Transport of Copies) for the target project system and releases it.&nbsp;<\/p>\n\n\n\n<p>Incidentally, this is the only place where we were able to&nbsp;identify&nbsp;the \u201cinterim&nbsp;ToC.\u201d&nbsp;<\/p>\n\n\n\n<p>Here you can see that the&nbsp;ToC&nbsp;was released&nbsp;immediately&nbsp;after creation:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic09.png\" alt=\"\" class=\"wp-image-41333\"\/><\/figure>\n\n\n\n<p>It is nice that the \u201c<em>Owner<\/em>\u201d of the source transport (here RE) has been&nbsp;retained&nbsp;in the&nbsp;ToC&nbsp;creation.&nbsp;<\/p>\n\n\n\n<p>However, the release of the&nbsp;ToC&nbsp;leaves no traces in the application log. One wonders what it will look like if the release of the&nbsp;ToC&nbsp;fails during the \u201c<em>Pre-Export Methods<\/em>,\u201d which happens from time to time.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Automatic&nbsp;Retrofit&nbsp;<\/h3>\n\n\n\n<p>We find the retrofit job for the automatic retrofit, and the log looks reassuring:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic17-1920x585.png\" alt=\"\" class=\"wp-image-41335\"\/><\/figure>\n\n\n\n<p>We were somewhat surprised that the application log for the retrofit, which after all has to import a&nbsp;ToC&nbsp;into the target system and transfer the parts list to the \u201creal\u201d transport of the target system, could only be found in the source system (in our sandbox system, this is client 811):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/02\/pic19.png\" alt=\"\" class=\"wp-image-41337\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>The most\u00a0important features\u00a0are\u00a0there,\u00a0the retrofit categorization is in place, but there are still a few dark spots that we would like to shed some light on here.<\/p>\n","protected":false},"author":16,"featured_media":45669,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[351],"tags":[352,206],"class_list":["post-45670","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-alm-coffee-party-the-alm-magazine","tag-coffee-party","tag-sap-cloud-alm"],"acf":[],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/www.blue.works\/wp-content\/uploads\/2026\/03\/pic00.jpg","_links":{"self":[{"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/posts\/45670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/comments?post=45670"}],"version-history":[{"count":4,"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/posts\/45670\/revisions"}],"predecessor-version":[{"id":46230,"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/posts\/45670\/revisions\/46230"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/media\/45669"}],"wp:attachment":[{"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/media?parent=45670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/categories?post=45670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blue.works\/en\/wp-json\/wp\/v2\/tags?post=45670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}