Hi all, We need to create a kind of reservation in APO side in order to avoid normal orders to come and to take the entire stock. We cannot use quotations or other requirement in ECC side because those will impact the other systems we have connected (SNP, MRP running in ECC, etc); We cannot use product allocation either because we would need daily buckets with multi-steps and we can not go in that way; To move stock to another storage location is not an option as well because of logistic restrictions. So, the only way I can figure out at this stage is to create a requirement only in APO (we cannot create a forecast because it cannot be included in the ATP basic methods and we don't want to use an extra-step: Forecast check). Is there any function or tool to allow us to create that requirement? Safety stock may be an option too but is there any easy way to manage that safety stock creation?
Thank you, Antonio
Hi, do you have release 5 or later? Starting with release 5 there is a safety stock requirement in ATP  that is dynamic, based on field catalog characteristic values or using a badi.
The typical use case for this safety stock is the stock protection for rush orders. The system is configured with a planning book with different values for different order types. For rush orders a value of zero is set for safety stock. For other order the safety stock is set to the amount to protect (for example 100). When normal orders are created then a temporary dummy requirement of 100 is set in the ATP timeseries to protect 100 units from the sales order being saved. When rush order are created there will be no dummy requirement so the "protected stock" is used.
In this case the field catalog and planning book allow to configure the wanted logic. For more complex calculations the badi /SAPAPO/ATP_PSS can be used to set the value of safety stock.
Although the docs say this functionality is only for CRM, this can be easily used from R3. You just need to set a parameter in requirement data. For example in the ATP inbound BADI APO_BAPI_BUS10400
DATA: ls_req TYPE bapi10400req.
LOOP AT requirements INTO ls_req.
ls_req-safety_stock_parameter = 'P'.
MODIFY requirements INDEX sy-tabix FROM ls_req.
The advantage of using this safety stock over the creation of a requirement is that ATP creates and deletes the requirement during the ATP calculation. So besides not having to create requirements manually, these requirements do not have side-effects on the MRP calculation.
answered 19 Oct '09, 12:36
Thank you very much.
I was checking that solution and I got an error during the sales order creation telling that some location depenedent parameter are missing. Anyway, something probably is missing in the product master data and I didn't find yet the reason... This is in fact a good solution but I think it won't solve our case. Why? Because we are using BOP (and EDQA/ROC) to make the stock distribution and, if you look in the help: http://help.sap.com/saphelp_scm50/helpdata/en/22/977941a51a1809e10000000a155106/frameset.htm You will see: Constraint Interactive backorder processing does not take account of any PASS. This means that interactive backorder processing does not protect any PASS quantity.
I made a short test to check if badi /SAPAPO/ATP_PSS was called during the ATP check in iBOP and BOP and I found it is not. Thru the previous BADI we wanted to manipulate the ATP PASS value.
So, probably we will have to create a requirement using other BADI and creating it as a Z ATP category.
answered 19 Oct '09, 13:20
This program will help me to create sales orders (reservations) with a Z ATP category: /SAPAPO/CTMTESTDATACREATE
answered 20 Oct '09, 10:59