Why the Time Has Come for an SAP OSS Ombudsman
<p>In order to really appreciate the point of this blog post, you’ll have to first take a moment to do the following.</p><p> </p><p>1) Set up a simple Production Material BOM (STLAN=1, STLTY = M) with three children.</p><p> </p><p>2) Make changes to it so that entries for the STLNR appear in the STAS table.</p><p> </p><p>Now run CS03 with the usual parameters.</p><p> </p><p>Now run CS12 with the usual parameters.</p><p> </p><p>What you’ll see is that CS03 faithfully reports the three children of the root BOM element, whereas CS12 doesn’t. </p><p> </p><p>Not only that, but CS12 doesn’t even give you an error message – it just comes back with nothing in the ALV.</p><p> </p><p>The reason for this odd difference in the behavior of CS03 and CS12 is that: </p><p> </p><p>1) CS12 DOES call CS_BOM_EXPLOSION via CS_BOM_EXPL_MAT_V2, whereas CS3 just calls the internal function modules GET_STKO and GET_STPO directly.</p><p> </p><p>2) when GET_STPO is invoked during the execution in CS12 of CS_BOM_EXPLOSION, it fires from the form STPO_LESEN_DAT in LCSS4F1B, whereas when GET_STPO is invoked during the execution of CS3, it fires from the function module CS_BT_POSITION_READ.</p><p> </p><p>3) The form STPO_LESEN_DAT and the function module CS_BT_POSITION_READ call GET_STPO with parameters that differ critically in certain ways (compare the values of the VALID and DATUB parametes of GET_STPO.</p><p> </p><p>OK – so let’s analyze the socio-political and socio-economic aspects of this situation pre-ECC 6 and post-ECC 6.</p><p> </p><p>Before ECC 6 and implicit enhancements, the customer had only three choices:</p><p> </p><p>a) ask SAP to fix the way STPO_LESEN_DAT calls GET_STPO during execution of CS_BOM_EXPLOSION;</p><p> </p><p>b) hack the form STPO_LESEN_DAT with an access key to make the fix</p><p> </p><p>c) make a custom BOM explosion “ZCS_BOM_EXPLOSION” with the fix in it.</p><p> </p><p>With the advent of ECC6, on the other hand, the customer has a fourth choice: to do a very simple implict enhancment at the top of GET_STPO that will set parameters correctly based on a simple “pre-check” of what’s in STAS for the stlnr.</p><p> </p><p>So, “cui bono?”, as the Romans used to ask 2000 years ago – “who benefits”?</p><p> </p><p>Obviously, SAP benefits – for the following reason.</p><p> </p><p><ECC6 , a customer in the above situation would have far more reason to keep the pressure on SAP for an official SAP fix, because the alternatives are either dangerous or time-consuming (a hack of SAP code or a custom function module.)</p><p> </p><p>Whereas the >=ECC6 customer might well say “the hell with it” – SAP will never give me the fix in time, and I can do the implicit enhancement myself in about 15 mins, so that’s what I’ll do.”</p><p> </p><p>So, whenever a customer chooses to implicitly enhance instead of keeping the pressure on SAP for an OSS fix, SAP benefits.</p><p> </p><p>And that’s why I think that in the >= ECC 6 world, SAP needs to create an OSS Ombudsman to elevate requests for fixes from customers who have done their part of the heavy lifting – namely, figuring out the root cause of the problem and what kind of minor code change will rectify it.</p><p> </p><p>Otherwise, implict enhancements can turn into a form of corporate welfare for SAP – an odd kind of “after-the-fact” beta program in which customers are not only encouraged to figure out what’s at the root of an SAP problem, but also to fix it for free.</p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p>
first I hope that you've already opened an issue on that problem on the Service Marketplace (According to @luislanz OSS is not an SAP Trademark). With that detailed description it should be easy for SAP to fix the problem. The biggest problem is mainly getting from the 1st level support person to the developer which actually understands the problem and the provided solution.
My mindset is that I will not fix any issues in standard code with enhancements. I raise an issue for every also maybe little problem that I face in the SAP solution. Sometimes that is quite annoying and time consuming but I hope it pays back in the future that I don't have to care about my custom enhancements.
I just had an idea: SAP could come up with an incentive system that depending on your personal issue / note factor your messages get better prioritization. So when you raise 10 issues and 9 of them result into notes, your messages are directly taken into development. When you have 10 issues and only 2 resulting notes than you stick first with the 1st level support.
Best regards
Gregor
Basically - I'm following the route you recommended.
In particular, since I can't implicitly enhance GET_STPO without potentially affecting any SAP transaction that calls CS_BOM_EXPLOSION directly or via the wrapper CS_BOM_EXPL_MAT_V2, I've asked the PLP BOM lead here to do two things: 1) request an official fix thru service marketplace; 2) temporarily approve the implicit enhancement until the patch is received.
But regarding your incentive structure, I propose a different basis. If SAP support can log in to the customer's system and see an actual implicit enhancement that solves the problem, then the request for a fix should go to the top of the heap. (This is basically the same idea as the "ombudsman" idea ... just without the ombudsman to decide whether the customer has or hasn't proven the case with the enhancement ..
Anyway, thanks again for the comments ...
djh
out of couriosity, what do you mean with "OSS is not an SAP trademark"?
Do you think if one of us calls the ticket system OSS, SAP will have to face any litigations? Sounds a bit like Stockholm Syndrom to me.
OSS, OSS, OSS 🙂
cheers, anton
Luis Felipe Lanz tweeted this:
@wolf_gregor did you know that OSS is a non SAP trademark ? we cannot use it any longer :((
So we as Customers still can :-).
Best regards
Gregor
OSS, OSS, OSS, lalala ...
Explanation of problem:
"There is no issue with CS12. It works perfectly fine with the example shown below. You are comparing apples and oranges in the two transactions. CS03 is a BOM display – it shows the BOM in an un-configured state. CS12 is a BOM explosion – the explosion takes place in a configured state meaning that SAP’s effectivity processor configures the BOM based on the configuration parameters.
CS12 can only be executed when a single ship configuration is specified. If you are not passing parameters into the CS12 transaction, you will get nothing back. This is correct functionality.
Try executing CS12 for the selection you specified below. Enter the following parameters in the effectivity parameter pop-up window:
Program: XXX
Model: YYY
Shipset: NNN
The system will return an exploded BOM for that specific configuration. Any explosion transaction (including the call of the FM) MUST include configuration information (parameters) in order for it to work. If nothing is passed, nothing will be returned.
But that's a different question entirely ...