How to check which release strategy characteristic values are being used in a purchasing document
You know those cases where the release strategy is not being triggered in purchasing documents, or it is being triggered but not correctly or as you expect? Well, many of these issues are caused due to incorrect values in the documents for the characteristics defined in customizing.
Today I am going to share with you tips on how to check which values are being used for the characteristics in purchasing documents. This will make it easier to figure out the cause for release strategy issues and will also help you to correct them!
For this, I will be using a Purchase Order from an internal system as an example.
Here we were expecting the PO to trigger the release strategy RB 03 and we want to check why the system is no longer triggering it.
1. Checking the characteristics values
The first thing we need to check is the characteristics that are being used in the class defined in customizing for the POs.
By going to transaction OLME -> Purchase Order -> Release Procedure for Purchase Orders -> Define Release Procedure for Purchase Orders -> Release Strategies, we select the group and strategy (in this case RB 03) and click on ‘Classification’.
Here we will see all the characteristics that are being used and it’s values:
In this example the release strategy only has one characteristic defined, which is the Total net order value, and the characteristic has been defined to trigger release strategy RB 03 when the value is higher or equal to 2000,00 CAD.
Now we need to check which table and field this characteristic is referring to. For that we will click on the Characteristic Description in blue font (as in the screenshot above) and then press F1 on our keyboard.
This will take us to the next screen:
Here we can see that the characteristic for Total net order value is storing the information in CEKKO-GNETW, which is correct.
*Please note that for Purchase Requisitions the table is CEBAN and for other purchasing documents the table is CEKKO. If we use any other tables here, there will be issues with the release strategy*
2. Checking if the values defined in customizing are matching the values in the Purchasing document.
The next step is to check whether the value in the characteristic (in this case >= 2000,00 CAD) is matching the one in the PO.
For this, we will set a Breakpoint (BP) in include MM06EF0S_STRATEGIE_CEKKO:
A good idea is to set a BP right before calling the user exit EXIT_SAPLEBND_002, because this way we can check if any custom codes are changing any values.
*Please set a BP in FM ME_REL_GENERAL_STRATEGY_EBAN for PR overall release and FM ME_REL_STRATEGIE_EBAN for PR item release. For the other purchasing documents (PO, contract, SA…) use include MM06EF0S_STRATEGIE_CEKKO *
After we have set our BP, it is time to trigger the debugger for the PO.
On the Variables section we will enter all the characteristics that we found in customizing. In this case it is only CEKKO-GNETW.
In the debugger we found that CEKKO-GNETW has value 15.00 and after passing the user exit this value remains the same, so no custom codes are changing the value.
3. Checking the results in transaction CL30N:
Once we have collected the values stored in CEKKO for the PO we need to confirm if there are any release strategies defined in customizing for the values.
In transaction CL30N, we first enter the class and the class type 032. Then we enter the characteristic value that we found in the debugger and click on ‘Find in initial class’ button:
For this example, we can see that no results returned. This means that no release strategy was found for the total net order value 15,00.
*CL30N must return one result only. If zero, two or more results are found it is not correct*
4. Fixing the issue
Now, we know that for the values being used in the PO, no release strategies exist. So, to fix this, we have a few options like:
a) Make changes in customizing so the characteristic for total net order value considers values >=15,00 CAD.
b) Change the net price value in the PO.
c) Make use of user exit EXIT_SAPLEBND_002 and implement our own logic.
*the user exits for PRs are EXIT_SAPLEBND_001 (item release) and EXIT_SAPLEBND_004 (overall release). For all other purchasing documents, the user exit is EXIT_SAPLEBND_002*
In this example I will be changing the Net Price in the PO:
After changing the net price to 2000, the system was able to trigger the correct release strategy RB 03.
Now, if we check the results in transaction CL30N, we get one result only:
I hope this post helps you analyze release strategy issues. See you soon 🙂