Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member181923
Active Participant
0 Kudos

<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>

8 Comments