SAP ERP – kontrola dostępności materiałów ATP, część 1
Bardzo istotnym zagadnieniem SAP, z punktu widzenia modułu SD i PP, jest obiecana dostępność materiałów do sprzedaży bądź produkcji (ATP – Available To Promise). Nie jest to temat łatwy, choć w obrębie organizacji poruszany bardzo często. Dlaczego? Ponieważ powoduje wiele nerwów, niejasności i problemów. Myślę, że wielu pracowników firm produkcyjnych przechodzi, bądź przechodziło przez proceder „podkradania” komponentów do zleceń „pilniejszych” (w ich mniemaniu). Dla jednego użytkownika ważniejsze są zlecenia produkcyjne, którymi on się zajmuje a dla innego pilniejsze są jeszcze inne. Często dział sprzedaży obiecuje klientom dostawę zamówionych wyrobów w czasie, który według SAP jest niemożliwy do realizacji, po czym „przepina” dostępne zapasy pod „swoje” zlecenia, krzywdząc w ten sposób innych klientów. Każdy musi rozliczyć się ze sprzedaży, z wyprodukowanych jednostek, po to by mógł ze spokojem wrócić do domu.
Bardzo częstym powodem zamieszania w tym temacie jest niewystarczająca wiedza na temat zagadnienia ATP w SAP ERP lub brak chęci jej zrozumienia. Zawsze gdy poruszam tą kwestię to słyszę zarzuty, że zamiast stać po stronie ludzi zaciekle bronię systemu, który nie działa jak powinien i rządzi się swoimi prawami. Ale czy tak jest naprawdę? Postaram się w bardzo obiektywny sposób przedstawić sytuację z życia wziętą a ocenę pozostawiam Wam drodzy czytelnicy. Ciekaw jestem ilu z Was miało podobne doświadczenia.
Zanim jednak zaczniemy powinniśmy przejść przed solidną dawkę teorii, ale spokojna głowa też musiałem przez to przebrnąć, dwa tygodnie zajęło mi poskładanie tej układanki w całość. Czym zatem jest kontrola dostępności materiału ATP? Szczegółowo, z punktu widzenia sprzedaży, opisał te zagadnienie Rafał Konieczny na stronie Polskiej Grupy Użytkowników SAP – to jest obowiązkowa lektura dla każdego. Po kilkukrotnym przeczytaniu serii artykułów Rafała, wciąż nurtowały mnie pewne kwestie, np. dlaczego niektórzy twierdzą, że analizując dostępność ATP uzyskują odmienny wynik analizy niż jeszcze inni użytkownicy w zależności od tego z jakiej transakcji korzystają. Zacząłem więc wszystko od początku.
Czym zatem jest ATP i jaki jest cel tej funkcjonalności? Celem Available To Promise (ATP) jest określenie czy wprowadzane zlecenia do systemu mogą być obiecane klientom w żądanym przez nich terminie. ATP daje nam możliwość sprawdzenia terminów dostępności zaproponowanych przez SAP a także pomaga użytkownikom podjąć decyzję w jaki sposób ułożyć plany zaopatrzeniowe i produkcyjne tak aby wynik był jak najbardziej satysfakcjonujący. Pierwszym powodem niejasności związanych z tematem ATP okazał się podział pomiędzy metodyką użycia tej funkcjonalności w dwóch różnych obszarach, tj. w dziale sprzedaży i w dziale planowania produkcji. Okazuje się, że dla tych dwóch modułów SAP, reguły sprawdzania dostępności mogą być skonfigurowane zupełnie inaczej. Zarówno dla jednego jak i drugiego obszaru wynik kontroli ATP opiera się na bieżącej sytuacji magazynowej oraz przyszłych, przewidywanych lub planowanych wejściach towarów na magazyn oraz wydaniach do zleceń przyszłych oraz aktualnie przetwarzanych.
W wielkim skrócie zasadę działania ATP można by określić wzorem -> ATP = posiadany zapas + (planowane przyjęcia – planowanie wydania). Oczywiście, wraz z rozwojem produktów SAP, ten wzór mocno ewoluował, chociażby za pośrednictwem Global ATP jako składnika produktu SAP APO, a następnie AATP (Advanced ATP) wraz z wprowadzeniem wersji SAP S/4 HANA. Każda z tych ewolucji wprowadziła dodatkowe kryteria i reguły sprawdzania dostępności (więcej o ewolucji ATP możecie poczytać tutaj).
Głównym zadaniem funkcji ATP jest generowanie propozycji potwierdzeń dla żądanego materiału i zakładu, w tym potwierdzenia ilości i daty. Należy pamiętać o tym, że kontrola dostępności może inaczej działać w różnych transakcjach, ponieważ może wykorzystywać odmienne reguły podczas tworzenia zlecenia sprzedaży, dokumentu dostawy wychodzącej, tworzenia zamówienia lub zlecenia produkcyjnego. Co powoduje te różnice?
Otóż konfigurując funkcjonalność ATP bierze się pod uwagę następujące elementy:
- Regułę kontroli
- Grupę kontrolną – I te dwa punkty składają się na trzeci element tj.
- Zakres kontroli ATP (zakres kontroli ATP = Reguła kontroli + grupa kontrolna)
Spis treści
Reguła kontroli ATP
A więc zacznijmy od reguły kontroli. Element ten jest zależny od transakcji w której jest wykorzystywany. Oznacza to, że jeśli tworzymy zlecenie sprzedaży to system automatycznie wykorzystuje odpowiednio skonfigurowaną regułę kontroli (w standardzie jest to reguła A). W przypadku tworzenia zlecenia produkcyjnego system stosuje natomiast odmienną regułę (w standardzie – reguła PP) i tak samo zupełnie inna reguła może zostać użyta podczas tworzenia dokumentu dostawy wychodzącej (w standardzie będzie to B). Konfiguracji reguły kontroli wykonuje się w ścieżce menu: SPRO->Produkcja->Sterowanie produkcją->Operacja->Kontrola dostępności->Definiowanie reguły kontroli (w menu Sprzedaż i dystrybucja również znajdziemy to działanie IMG).

Grupa kontrolna ATP
Drugim elementem jest grupa kontrolna do której przypisuje się każdy materiał, dla którego taka kontrola powinna być przeprowadzana. Celem tej grupy, jak sama nazwa wskazuje, jest zgrupowanie materiałów w jedną pulę, która będzie rządziła się swoimi własnymi kryteriami sprawdzania. Materiały mogą być zgrupowane w oparciu o rodzaj materiału lub np. typy MRP. Grupa kontrolna może również zostać wykorzystana do decyzji na temat tego czy: potwierdzone ilości w kontroli dostępności mają być zablokowane oraz czy podczas sprawdzania system powinien uwzględniać normalną ilość ATP czy ilość skumulowaną. Konfiguracji grupy kontrolnej wykonuje się w ścieżce menu: SPRO->Produkcja->Sterowanie produkcją->Opearcja->Kontrola dostępności->Definiowanie grupy kontrolnej.

Grupa kontrolna odnosi się do danych podstawowych materiału, a dokładniej do pola „kontrola dostępności” we wglądzie MRP3 (np. w transakcji MM02). Jeśli pozostawimy to pole puste to system po prostu nie będzie uwzględniał tego materiału podczas kontroli dostępności ATP. Ten wskaźnik jest jednym z przyczyn błędnych wyników kontroli dostępności części.

Często jestem pytany: dlaczego system nie wykazał braku komponentu w zleceniu produkcyjnym podczas jego zwalniania/tworzenia? odpowiedź często brzmi: źle zdefiniowane dane podstawowe materiału. Wracając do zarzutu o negatywnej postawie do ludzi (wstęp wpisu), mamy już wynik 1:0 dla systemu – jednak działa dobrze, to my (użytkownicy) definiujemy dane podstawowe materiału 😉
Zakres kontroli ATP
Jak już wspomnieliśmy wcześniej, posiadając skonfigurowaną regułę kontroli oraz grupę kontrolną, możemy zdefiniować już zakres kontroli. Konfiguracji zakresu kontroli możemy dokonać poprzez menu: SPRO->Produkcja->Sterowanie produkcją->Operacja->Kontrola dostępności->Definiowanie zakresu kontroli.

W tym obiekcie konfiguracji możemy określić które elementy MRP będą brane pod uwagę podczas sprawdzania dostępności, (np. zgłoszenia zapotrzebowania, zamówienia, awiza dostawy, zlecenia planowe itd.) a także jakie rodzaje zapasów mają być objęte jaką regułą i czy sprawdzany jest czas uzupełnienia. Poza tym bardzo istotna rzecz: czy kontrola dostępności powinna odbywać się na poziomie całego zakładu czy może na poziomie poszczególnych składów.
Na podstawie dotychczas omówionego zakresu teorii wiemy już, że sprawdzanie dostępności ATP może odbywać się w różny sposób w zależności od tego jaka grupa kontrolna przypisana jest do danych podstawowych materiału. Poza tym w zależności od tego jaka reguła kontroli została użyta (może to być inna reguła w przypadku sprawdzania dostępności materiału w momencie tworzenia zlecenia sprzedaży i zupełnie inna w momencie sprawdzania dostępności tego samego materiału podczas tworzenia zlecenia produkcyjnego). Żeby tego było mało! To jeszcze nie koniec, ponieważ tylko w obrębie modułu produkcyjnego mamy kolejne kryteria, w których to przypisuje się wspomnianą wcześniej regułę kontroli do rodzaju zlecenia produkcyjnego (o tym w dalszej części wpisu).
Kolejnym pytaniem, które często otrzymuje od innych użytkowników jest: dlaczego podczas sprawdzania dostępności ATP system „głupieje” i pokazuje odmienny wynik w różnych transakcjach. Poza tym dlaczego czasami jest tak, że podczas zwalniania zlecenia produkcyjnego system wykazuje brak materiału zaksięgowanego jako zapas zablokowany. A czasami nie. Tutaj pojawia się kolejna runda, w której powinniśmy zdecydować czy winę za ten fakt ponosi system „który działa jak chce”, czy może brak dostatecznej wiedzy użytkownika z zakresu ATP? Oczywiście system wykonuje to co sami skonfigurowaliśmy i to od użytej reguły sprawdzania zależy jak nasz wynik będzie wyglądał. W momencie automatycznej kontroli ATP podczas zwalniania zlecenia system korzysta z reguły PP (w standardzie). Jeśli dla tego samego materiału sprawdzimy dostępność w transakcji CO06 to możemy otrzymać odmienny wynik, ponieważ dla tej transakcji może być zdefiniowana zupełnie inna reguła (o tym będzie dalej). Myślę, że można zaliczyć kolejny punkt dla systemu (czyli mamy wynik 2:0).
Sterowanie kontrolą ATP w zleceniach produkcyjnych.
W tej samej ścieżce konfiguracji co poprzednio, czyli: SPRO->Produkcja->Sterowanie produkcją->Operacja->Kontrola dostępności mamy kolejny obiekt do customizacji a jest nim definiowanie sterowania kontrolą.
W tym działaniu konfiguracyjnym możemy ustawić sposób funkcjonowania sprawdzania dostępności biorąc pod uwagę regułę kontroli + rodzaj zlecenia produkcyjnego + zakład + operację dostępności. Operacją dostępności jest po prostu czynnik, który wyzwala procedurę sprawdzania, czyli może to być moment utworzenia zlecenia produkcyjnego, albo moment jego zwolnienia.

Zarówno dla operacji „tworzenia zlecenia produkcyjnego” lub „zwolnienia zlecenia” system daje nam możliwość ustawienia czy w momencie tworzenia/zwalniania zlecenia system sprawdzi dostępność tylko w przypadku zlecenia ze statusem FMAT (brakujący materiał) czy może za każdym razem bez względu na status. Dodatkowo możemy zdefiniować, ze w przypadku sieci zleceń, system automatycznie sprawdzi dostępność części dla całej sieci po zapamiętaniu (wciśnięciu przycisku zapisz). Taka kontrola może być automatycznie wywoływana po każdym zapamiętaniu, tj. po dodaniu lub usunięciu komponentu a nawet po zmianie składu, daty, partii, wskaźnika „wydania końcowego” itp. Dodatkowo możemy ustalić, czy pomimo stwierdzonego braku komponentu w zleceniu, użytkownik może zdecydować o zwolnieniu zlecenia z brakiem, czy może jednak całkowicie wyłączyć możliwość zatwierdzenia zlecenia z brakiem.
ATP w przetwarzaniu zleceń zaległych.
Odmienną metodą sprawdzania system może sugerować się podczas przetwarzania transakcji CO06 – przetwarzania zleceń zaległych i dla tego właśnie celu przeprowadza się konfigurację w tej samej sekcji przewodnika konfiguracji SPRO w ścieżce: SPRO->Produkcja->Sterowanie produkcją->Operacja->Definiowanie reguły kontrolnej dla przetwarzania zleceń zaległych. SAP rekomenduje aby w procesie przetwarzania zleceń zaległych korzystać z tej samej metody jak robi się to dla standardowego sprawdzania dostępności. Jak zdążyłem się jednak zorientować w przykładzie „z życia wziętym” właśnie nie zastosowanie się do tej rady powodowało wiele zamieszania.
Podczas uruchamiania transakcji CO06 system automatycznie podstawie regułę sprawdzania:

Reguła ta może być całkowicie inna niż ta, którą zdefiniowano wybranych rodzajów zleceń w przypadku standardowego sprawdzania. Sprawdźmy zatem jak wygląda reguła sprawdzania BO i porównajmy ją z metodą sprawdzania podczas tworzenia zlecenia (w moim przypadku jest to ZW).

A o to wynik sytuacji kontroli dostępności dla losowo wybranego materiału w transakcji CO06. Po lewej stronie wybrałem standardową regułę (w moim przypadku ZW) a po prawej regułę domyślną dla transakcji CO06:

Tutaj pojawia się kolejna runda decydująca o tym czy w całym zamieszaniu dotyczącej dostępności komponentów do zleceń winny jest człowiek, który „podkrada” części do rezerwacji? Czy może system. Użytkownikowi uruchamiającemu transakcję CO06 nawet nie przychodzi do głowy by na ekranie startowym sprawdzić jaką regułę kontroli proponuje system, po prostu odpala transakcję po to by „podebrać” część do swojego zlecenia. Reguła BO w tym przypadku skonfigurowana jest w taki sposób aby uwzględniać wszystko co możliwe podczas sprawdzania, aby tylko umożliwić realizację zlecenia zaległego. Proszę spojrzeć na koniec listy na zdjęciu nr 9. Po lewej stronie dochodzi do momentu, w którym ilość materiału schodzi poniżej zera a po prawej ilość jest bardzo duża.

Ta sama transakcja i ten sam materiał a zupełnie inny wynik. Teraz użytkownik „podkradający” część (po uruchomieniu transakcji CO06 z regułą BO) jest w stanie z powodzeniem podkraść część, której obietnica dostępności jest tylko efektem wróżenia z fusów. W łańcuchu dostaw może wszystko się wydarzyć, nie koniecznie ta część może zostać dostarczona na czas. Gdyby transakcja CO06 została uruchomiona metodą „ZW” (po lewej) to taka „kradzież” nie byłaby możliwa, ponieważ system na to nie pozwala dla wartości minusowych. Mało tego! Jeśli dla zlecenia produkcyjnego, do którego przypisaliśmy „podkradzioną część”, nie zresetuje się już dostępności ATP w późniejszym czasie to będzie ono już zawsze tę 1 szt. materiału zabierać (a w między czasie mogą pojawić się zlecenia pilniejsze z dużo wcześniejszą datą). Działy sprzedaży często tworzą zlecenia z datą bardzo odległą, następnie podkradają części z innych zleceń tylko po to aby „trzymać” zapasy dla wybranych klientów. To ma być taki AS w rękawie, ale czy dla firmy na pewno jest to dobra taktyka?. System, działając automatycznie, nigdy by na coś takiego nie pozwolił. Powstaje więc pytanie: czy odpowiedzialność za takie nieprzemyślane ruchy ponosi system? czy użytkownik? Wydaje mi się, że można zaliczyć kolejny punkt dla systemu (3:0 dla SAP).
Konfiguracja ATP w module SAP SD i PP
Temat ATP jest bardzo szeroki. W ogromnym skrócie przyjrzeliśmy się konfiguracji istotnej tylko dla zleceń produkcyjnych. Z punktu widzenia modułu SD ta konfiguracja wygląda podobnie, z tą różnicą, że obiektów do customizacji jest dwa razy więcej 😉 Proszę spojrzeć na porównanie działań konfiguracji dla modułu SD i PP:

W module Sprzedaży i Dystrybucji procedura przeprowadzania kontroli ATP może być skonfigurowana oddzielnie dla zleceń sprzedaży (dla każdej pozycji osobno) bądź dostaw. Procedura sprawdzania dostępności zależy od kilku czynników:
- Klasy zapotrzebowań
- Typu linii harmonogramu
- Grupy kontrolnej
- Reguły sprawdzania
- Typu pozycji dostawy
- Grupy strategii
- Strategii planowania
Konfigurując SAP ATP musimy zdefiniować dla którego typu linii harmonogramu (dla dokumentu sprzedaży) ta kontrola ma być wykonywana. Następnie kontrola dostępności powinna być aktywowana na poziomie klasy zapotrzebowań oraz na poziomie typu linii harmonogramu dla zlecenia sprzedaży. Można zdefiniować grupę kontroli, która będzie proponowana automatycznie, w zależności od typu materiału, którego ma dotyczyć (w momencie tworzenia materiału). Każdy z użytych typów wymagań/zapotrzebowań musi być przypisany do klas wymagań.
Konfiguracja ATP wymaga bardzo dużej wiedzy technicznej oraz starannego zdefiniowania wymagań biznesowych, na podstawie których strategia ATP zostanie zaimplementowana. Poza ustawieniami w systemie, niezwykle ważna jest wiedza na temat tego jak kontrola ATP powinna być używana. Czasami w przypadku pozytywnej kontroli ATP (dla zlecenia produkcyjnego) jednorazowe sprawdzenie dostępności nie wystarcza. Jeśli zlecenie produkcyjne nie wykazało brakujących części to czy kontrola ATP powinna być dla niego wciąż sprawdzana? Temat ten budzi wiele wątpliwości i powoduje wiele pytań. W kolejnej części wpisu przyjrzymy się codziennej, automatycznej kontroli ATP dla grupy zleceń za pomocą okresowo wykonywanego zadania w tle. Opowiem o kilku niedopatrzeniach w definiowaniu zadania wykonywanego w tle, które powodowały opóźnienia w dostawach. Wspomnę również o definiowaniu profilu statusu, który ułatwia selekcję zleceń przez transakcję wykonującą ATP-checking.
Jako ciekawostkę dodam, że wgląd do konfiguracji SAP, o której była mowa w tym wpisie, uzyskałem dzięki metodzie wyświetlania obiektów SPRO w transakcji SM30, o czym możecie poczytać tutaj: https://sps-blog.pl/podglad-konfiguracji-sap-z-poziomu-uzytkownika-koncowego/
Do następnego razu!!
Świetny artykuł! Czekam na kolejne, gratuluje i dziękuje 😉
Dziękuje pięknie za komentarz! Niebawem druga część 🙂
Bardzo dobry tekst. Dobrze, że pojawiają się takie poradniki po polsku! Gratuluje! W artykule wspomniał Pan o transakcji CO06 w której można sprawdzić dostępność ATP dla jednego materiału, a gdybym potrzebował zrobić takie coś dla wielu materiałów na raz? Chciałbym wyświetlić interesujace mnie zlecenia produkcyjne wraz z ich składnikami i informacją o brakującym materiale? Jest do tego jakaś transakcja?
Dzień dobry! Dziękuje za komentarz 😉 W celu wyświetlenia zleceń produkcyjnych, wraz ze składnikami i informacją o braku można skorzystać z transakcji COOIS – (trzeba na ekranie selekcji wybrać „składniki”a później po prostu dodać odpowiednie kolumny w raporcie – jest kolumna „brakujący materiał”) – wspomnę o tym w kolejnej części wpisu. Jeśli chce Pan wyświetlić tylko brakujące części to można skorzystać z transakcji CO24.
Pozdrawiam
Marek
A co z transakcją MDVP by sprawdzić ATP dla zleceń planowanych?
Używam jej na co dzień by sprawdzić dostępność materiałów do zleceń na kolejne miesiące.
Na forach często używane COOIS, COHV a o MDVP nie spotkałem się w komentarza, a szkoda bo z transakcji MDVP można uzyskać informacje oprócz braków także o nieopracowanych numerach SAP.
Dziękuje Pięknie za komentarz! Faktycznie – słuszna uwaga. Artykuł skupia się na zleceniach produkcyjnych i w ogóle pomija kwestie sprawdzania dostępności dla zleceń planowych. Nie opisywałem tej funkcjonalności z tego względu, iż w firmie, w której pracuje prawie w ogóle nie pracuje się na planowych tylko od razu przekształca w produkcyjne i na tych drugich opiera się dalsze przetwarzanie zleceń 😉
[…] Funkcjonalność aATP jest dość zaawansowana i więcej o niej możecie przeczytać tutaj – link. Dla potrzeb naszego przykładu Zlecenie Sprzedaży zaklepuje towar w magazynie dla naszego […]