It’s common for companies to use different software solutions in the warehouse, sales, and production. Naturally, these companies often stumble because their solutions are incompletely integrated. For example, in production, data from a non-SAP warehouse system can appear in SAP R/3 two or three days after the receipt of materials. Because of this system misfit, data from the raw materials warehouse for production orders in SAP software doesn’t correspond to reality – the current and available stock of a material for production is incorrect. The information in the warehouse system doesn’t match the reality in production, where a goods receipt can’t be hidden from the staff. To avoid a production standstill, they build the required units and fulfill all orders. A check rule, called Dynamic ATP check, balances out the data and the reality of production.
ATP is active too early
Here’s an example. On August 30 in the raw materials warehouse, inventory consists of eight units. This information is also present in SAP R/3. On the same day, eight new units are received for production in September. Now 16 units are available to production, but at this point, only the non-SAP warehouse software knows that. After the data of product one and two has been updated in SAP R/3 on September 1, production has the following status: production one used four units and is closed; production two should have taken eight units. The result of a backflush is erroneous because only four units are available according to SAP R/3. The backflush waits in an SAP queue and is characterized in transaction COGI as a goods movement error. SAP R/3 issues a reservation and holds back the ROH material. The procedure can be traced with warehouse requirements list MD04. Production three, which requires four material units, starts on September 2. To SAP R/3, these units were still available in August, so production is given the status of completed.
The error results because the goods receipt system did not post the goods receipt of eight units on August 30 to SAP R/3 in a timely manner. According to the ATP logic of SAP R/3, a material availability check ensures that requirements are covered by stock or goods that go to the warehouse.
ATP checks occur when production orders are generated. The function determines the available quantity of a product that is currently needed to process new incoming orders. The standard functionality of SAP R/3 doesn’t distinguish between an unrestricted and reserved status for the stock that is present.
The issue is particularly critical at the end of one month and the beginning of the next. In the example, production has insufficient stock available because the new goods receipt of eight units has not yet been captured in SAP R/3. SAP R/3 creates a reservation for eight units for production two, but still allows production three to backflush four units. With the backflush, production three “steals” the stock reserved for production two from the previous month.
Eliminating theft by backflushing
The additional check rule Dynamic ATP check queries the stock in the warehouse a second time, when goods are issued – not when a production order is created. This check rule distinguishes between unrestricted and reserved stock.
The temporal sequence distinguishes the two approaches. When applied to this example, the additional check rule affects production: Production three also fails – even though SAP R/3 reports inventory of four units – because the inventory is reserved for production two and is held back. One day later, when the goods receipt is updated in SAP R/3, inventory increases (particularly the available stock). If production two and three are restarted in SAP R/3, the postings are correct and in the right sequence. The additional check rule ensures that production orders that can’t be executed correctly in standard SAP R/3 (because of the theft of issued goods) actually are correctly posted. The extra check rule also ensures that warehouse stocks are up-to-date.
Configuration for ATP and additional check rules
From a technical point of view, the problem is solved by running an ATP check when the production order is created and during goods issue in combination with the Dynamic ATP check. Two additional configurations were performed. First, ATP was configured for production order creation so that raw material commitments are generated from unallocated, unrestricted stock.
Second, to perform the ATP check before the backflush, backflush movement 261 must be made relevant for the new procedure. Before the goods issue, the software must check to see if the commitments cover the requirements. If they don’t, the software stops the movement and issues an error message. In the next step, a new check rule must be defined to compare stock on hand with the existing open reservations and reservations that can be withdrawn (transaction OMCP). The check rule must then be assigned to the existing check group. The check group is assigned to the material in the MRP 2 view, transaction OMCP. At the very least, the check rule must be activated for transaction CO15, confirmation of production orders, and transaction SM30, maintain entry in table view V_158_P.