Just recently I bumped into an issue which I’ve not seen before after gearing up a productive SAP Solution Manager 7.2 system. I decided to share the outcome of my small quest to resolve this issue.
While I was trying to save an ojbect into a transport request, the above error message occured.
I thought “ok no big deal”, let’s Google this one and if that fails I’ll check SAP support portal. SAP Support Portal which is more down than up nowadays but I had my fingers crossed so I was hoping it was actually up and running and I can do my job properly as an effect. It’s like a bad dice roll wihle playing a board game really, hoping that I can actually use the functionality to find and read SAP notes.
Result: 0 hits
Grrr … Annoying when you don’t get a decent answer back huh. So I need to figure out where this error message comes from. For the sake of sharing, I’m going to share what maybe lots of community members already know and do but still I would imagine many perhaps don’t yet do this so it can be of interest to show this.
So I clicked on “Technical Information” to figure out the message text and number that is behind this error message.
You can see here the message class is /TMWFLOW/TRANSPORT_N and the message number is 871.
We can then use this information to check in transaction SE91 (message maintenance) where this message is used in terms of programs etc.
So next step, navigate to SE91
Insert the message class and message number and then use the “where used button” on the top left in navigation bar to figure out where this is used.
Select Programs, Classes and Web Dynpro Components
Click the green “confirm” button to continue
The message text is used in above program, ok, sounds interesting, let’s check what this thingy does. I already see here “Retrofit” … mm we are not using that in this system so this already sounds slight “off”. Register and assign, sounds like my transport request is registered somehow by tihs program, anyway, let’s dig into the code. … deep … no I’m just kidding, shallow will do just fine.
Double click on the program to get the line where this message text is used on the right. Wow, this doesn’t say anything more. Yes, you are right it doesn’t so we need to go into the actual coding, double click on that line code again on the right side.
The code is in function module /TMWFLOW/REGISTER_AND_ASSIGN. This can be useful later on when I need to search for “information”.
Scroll up just a little bit and you’ll notice in the coding how the table “/tmwflow/cts_map” is being read.
So I checked out this table in our system and it has, surprise, surprise, 0 records in it.
Looking at the table field, I kind of get the idea of what this table seems to be meant for, mapping a “real” CTS project ID, sounds kinda wrong, love it haha with a “mapped” CTS project ID. Sounds like the “real” CTS project ID = non CHARM and the mapped one = CHARM but anyways, pretty irrelevant still at this point. Something I need to check out later on because it does sound interesting.
Ok, enough playing around in this coding and stuff, we need to fix this.
Based on the above, I’ve got enough “ammo” right now I believe to start looking for a solution.
So I start on SAP Support Portal with a search in the knowledge database (SAP notes) on keywords: “/TMWFLOW/CTS_MAP” and another search on “/TMWFLOW/REGISTER_AND_ASSIGN” and I find the grand number of results: 1 hit
Owke … at this point it’s like sitting in airplane and experiencing the touchdown of an airplane while there is a storm, the wheel almost nudges off and a little boy asks his mom “are we going to die?”; A swift sigh of relief as the plane hits the ground (that 1 hit I just found), you’re relieved, you’re just not sure that the plane won’t still go off the landing strip and crash into the decor.
No no, there is hope, positive thinking is key. We got this (I’m starting to talk “we” – where is my magic ring off to).
1483276 – Use of Customizing Parameters in DNO_CUST04, AGS_WORK_CUSTOM, and ICT_CUSTOM
Ok, this might actually work out. Lets search this note for those keywords then.
When you save objects to a transport request in the managed development system, the system calls the SAP Solution Manager system via RFC. In turn, function /TMWFLOW/REGISTER_AND_ASSIGN is called. It checks switch REGISTER_STANDALONE_TR_ON_SAVE as to whether standalone transport requests can be automatically registered into Change Request Management even with standalone retrofit being switched off. This means if one of the switches (REGISTER_STANDALONE_TR_ON_SAVE or standalone retrofit) is active and the transport request is contained in a mapped CTS project (table /TMWFLOW/CTS_MAP), the transport request will be registered into Change Request Management.
Value: Set to ‘X’ to activate
Information reference from SAP note 1483276 (now, when SAP support portal is down you can read at least a small piece of this SAP note, perhaps the relevant thing you need to know)
So here I found that parameter REGISTER_STANDALONE_TR_ON_SAVE actually controls the behavior in the coding that the table that I found is checked to register transport requests for later use in CHARM. Ok, we don’t need this so I need to check transaction DNO_CUST04 if this is enabled.
Yes, this parameter is set !@!
Ok ,remove this parameter.
Oh wait, that doesn’t work? You cannot add object to transport requests because then the system complains about it? Change the SAP client settings in SCC4 to be able to make changes in the system “without recording” so you can get rid of this and change it back to normal.
Stay tuned for the next blog, I’ve been away from writing way too long it seems, I kinda dig it, I enjoy doing this, life is good 🙂