Skip to Content

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

To report this post you need to login first.

8 Comments

You must be Logged on to comment or reply to a post.

  1. Gregor Wolf
    Hi David,

    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

    (0) 
    1. David Halitsky
      Hi Gregor – thanks for taking the time to respond. 

      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

      (0) 
    2. Anton Wenzelhuemer
      hi gregor,

      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

      (0) 
      1. Gregor Wolf
        Hi 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

        (0) 
  2. Suresh Datti
    We have a protocol to do a “due diligence” before adopting any Implicit enhancements.ie Look for possible User Exits/BAdIs/OSS Notes and may be even open up a customer message with SAP. I always this look at option as a double edged sword. For ex: If in future you end up opening a customer message for a BOM issue, the 1st question SAP would ask is, have you put in any implicit enhancements? Anyway, SAP  highly recommends using the switch framework for these enhancements.
    (0) 
  3. David Halitsky
    Although I still think the general point was worth making, it turns out that the “problem” is a non-problem.  See below for the explanation I received from our PLP team lead here.  If the correct link to the techs parameters had been established in the AFPO table, the problem would not have arisen.

    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.

    (0) 
    1. David Halitsky
      There’s still an open question of whether CS12 is sufficiently “user-friendly” – i.e. whether it should issue a warning or hard error when you attempt to run it without effectivity parameters.

      But that’s a different question entirely …

      (0) 

Leave a Reply