Šablona dat pro plánování výroby
Šablona dat pro plánování výroby
- Doporučené atributy pro analýzu plánování výroby
- Důležité aktivity plánování výroby ke sledování
- Podrobný návod k získání dat ze SAP S/4HANA
Atributy plánování výroby
| Název | Popis | ||
|---|---|---|---|
| Aktivita Activity | Název konkrétní události nebo úkolu, který v určitém okamžiku nastal v procesu plánování výroby. | ||
| Popis Tento atribut zaznamenává jednotlivé kroky a milníky životního cyklu výrobní zakázky. Patří mezi ně například „Vytvoření výrobní zakázky“, „Kontrola dostupnosti materiálu“, „Zahájení výroby“ a „Finanční uzavření zakázky“. Každá aktivita představuje konkrétní úkon nebo změnu statusu zaznamenanou v systému. Analýza pořadí a četnosti těchto aktivit je základem process mining. Pomáhá znázornit tok procesu, odhalit odchylky od standardního postupu a určit aktivity, které způsobují zpoždění nebo vyžadují časté opakování, například „Úprava výrobního plánu“. Proč je to důležité Určuje jednotlivé kroky procesu a umožňuje odhalit a znázornit skutečný průběh výroby i jeho varianty. Kde data získat Odvozuje se ze změn statusů v tabulkách, jako jsou JEST a JCDS, z použitých transakčních kódů (například CO01 pro vytvoření) nebo z konkrétních záznamů o potvrzení v AFRU. Příklady Vytvoření výrobní zakázkyUvolnění výrobní zakázkyZahájení výrobyZadání závěrečného potvrzeníZaúčtování příjmu hotových výrobků | |||
| Čas zahájení StartTime | Časové razítko označující, kdy konkrétní aktivita nebo událost začala. | ||
| Popis Tento atribut uvádí datum a čas každé zaznamenané události ve výrobním procesu. Je základem všech časových analýz procesu. Čas zahájení je důležitý pro výpočet doby mezi aktivitami, celkové doby průchodu výrobní zakázky i pro pochopení časové posloupnosti událostí. Umožňuje analyzovat úzká místa, čekání a dodržení plánu porovnáním skutečných časových razítek s plánovanými termíny. Proč je to důležité Udává časovou posloupnost událostí a umožňuje analyzovat výkonnost procesu, jeho trvání i úzká místa. Kde data získat Tyto údaje se obvykle nacházejí v tabulkách změnových dokladů (CDHDR/CDPOS) pro změny statusů, v tabulkách potvrzení (AFRU) pro kroky realizace a v hlavičkových tabulkách (AFKO) pro data vytvoření. Příklady 2023-10-26T09:00:00Z2023-10-26T14:30:00Z2023-10-27T08:15:00Z | |||
| Výrobní zakázka ProductionOrder | Jedinečný identifikátor výrobní zakázky, který slouží jako hlavní identifikátor případu v procesu plánování výroby. | ||
| Popis Číslo výrobní zakázky je jedinečný klíč, který SAP S/4HANA generuje pro správu a sledování všech činností souvisejících s výrobou určitého množství produktu. Propojuje související události od plánování a uvolnění zakázky až po realizaci a závěrečné vyúčtování. V process mining je tento atribut nezbytný pro seskupení souvisejících událostí do jedné instance procesu od začátku do konce. Analýza podle výrobní zakázky umožňuje měřit KPI, například dobu průchodu a dodržení plánu, a odhalovat úzká místa, která ovlivňují konkrétní výrobní série. Proč je to důležité Tento základní atribut propojuje všechny kroky procesu a umožňuje analyzovat celý životní cyklus výroby na úrovni případu, od začátku do konce. Kde data získat Jde o číslo výrobní zakázky, které se obvykle nachází v tabulkách SAP, jako jsou AFKO (pole AUFNR) a AFPO. Příklady 100056710008341001299 | |||
| Poslední aktualizace dat LastDataUpdate | Časové razítko označující, kdy byla data naposledy obnovena nebo extrahována ze zdrojového systému. | ||
| Popis Tento atribut zaznamenává datum a čas posledního načtení dat. Jde o důležité metadata, která uživatelům ukazují, jak aktuální jsou analyzovaná data. Znalost času poslední aktualizace je nezbytná pro správnou interpretaci analýzy. Uživatelé díky ní vědí, zda pracují s aktuálními informacemi, nebo se snímkem dat z určitého okamžiku. To ovlivňuje relevanci zjištění i rozhodnutí založených na těchto datech. Proč je to důležité Uživatelé vědí, jak aktuální data jsou, což je důležité pro přesná a relevantní obchodní rozhodnutí. Kde data získat Toto časové razítko se vytváří a přidává při procesu extrakce, transformace a načítání dat (ETL). Příklady 2024-05-21T02:00:00Z2024-05-22T02:00:00Z2024-05-23T02:00:00Z | |||
| Zdrojový systém SourceSystem | Systém, ze kterého byla extrahována data o plánování výroby. | ||
| Popis Tento atribut určuje původ dat, což je důležité v prostředí s více propojenými systémy. V tomto procesu půjde obvykle o konkrétní instanci SAP S/4HANA. Při širší analýze dat pomáhá znalost zdrojového systému ověřit jejich integritu a správně interpretovat data sloučená z různých zdrojů. Jde o základní metadata pro správu a dohledatelnost dat. Proč je to důležité Poskytuje důležitá metadata pro správu dat a pomáhá jednoznačně určit původ i kontext procesních dat. Kde data získat Obvykle jde o statickou hodnotu přidanou při extrakci dat, která identifikuje klienta SAP S/4HANA a ID systému (SID). Příklady S4P_100S4H_PRD_200S4Q_300 | |||
| Číslo materiálu MaterialNumber | Jedinečný identifikátor produktu vyráběného v rámci výrobní zakázky. | ||
| Popis Číslo materiálu určuje položku, kterou má výrobní zakázka vyrobit. Propojuje výrobní proces s kmenovými daty materiálu, včetně kusovníku (BOM) a technologického postupu. Analýza podle čísla materiálu pomáhá zjistit, zda se u některých produktů častěji objevují zpoždění, přepracování nebo nedostatek materiálu. Na základě toho lze upravit plánovací parametry nebo zlepšit dodavatelský řetězec pro konkrétní komponenty. Proč je to důležité Umožňuje filtrovat a analyzovat proces podle vyráběného produktu a odhalit neefektivitu nebo úzká místa typická pro konkrétní výrobky. Kde data získat Nachází se v tabulce položek výrobní zakázky AFPO (pole MATNR). Příklady RM-1001FG-2050SA-3100-B | |||
| Plánované datum dokončení PlannedEndDate | Datum, kdy má být výrobní zakázka podle původního plánu dokončena. | ||
| Popis Plánované datum dokončení je termín, do kterého mají být dokončeny všechny výrobní činnosti dané zakázky. Stanovuje se při plánování výroby. Tento atribut je nezbytný pro měření dodržení plánu. Porovnáním plánovaného data dokončení se skutečným časem dokončení lze vypočítat KPI míry dodržení výrobního plánu a určit zakázky, které mají zpoždění. Tato analýza pomáhá zpřesnit plánování a zvýšit spokojenost zákazníků. Proč je to důležité Slouží jako základ pro měření dodržení plánu a pomáhá vyhodnotit přesnost plánování i efektivitu realizace. Kde data získat Nachází se v hlavičkové tabulce výrobní zakázky AFKO (pole GLTRP). Příklady 2023-11-152023-12-012024-01-20 | |||
| Pracoviště WorkCenter | Konkrétní stroj, skupina strojů nebo montážní prostor odpovědný za operaci. | ||
| Popis Pracoviště je konkrétní provozní jednotka v závodě, kde se provádí výrobní krok. Může jít o jeden stroj, výrobní linku nebo skupinu zaměstnanců. Analýza procesních dat podle pracoviště pomáhá odhalit kapacitní úzká místa a lépe rozdělit zdroje. Ukáže, která pracoviště jsou přetížená nebo málo využívaná a kde při realizaci výroby nejčastěji dochází ke zpožděním. Tyto údaje jsou důležité pro dashboard Identifikace kapacitních úzkých míst. Proč je to důležité Pomáhá určit konkrétní stroje nebo výrobní linky, které představují úzké místo, a zaměřit zlepšení na kapacitu a využití zdrojů. Kde data získat Nachází se v datech operací výrobní zakázky, v tabulce AFVC (pole ARBPL). Příklady WC-ASSEMBLY-01WC-MILLING-05WC-PACKING | |||
| Status zakázky OrderStatus | Aktuální status zpracování výrobní zakázky, například vytvořena, uvolněna nebo technicky dokončena. | ||
| Popis Status zakázky označuje aktuální fázi jejího životního cyklu. Shrnuje různé systémové a uživatelské statusy přiřazené zakázce. Mezi běžné statusy patří CRTD (vytvořena), REL (uvolněna), CNF (potvrzena), TECO (technicky dokončena) a CLSD (uzavřena). Analýza aktuálního statusu zakázek pomáhá zjistit, jaká práce právě probíhá. V process mining se sledují změny těchto statusů v čase. Z nich se vytváří záznam aktivit, který umožňuje podrobně analyzovat tok procesu a dobu strávenou v jednotlivých fázích. Proč je to důležité Poskytuje přehled o fázi životního cyklu zakázky a slouží jako základ pro odvození posloupnosti aktivit v process mining. Kde data získat Odvozuje se ze systémového statusu uloženého v tabulce JEST, propojené přes číslo objektu v AFKO (pole OBJNR). Příklady CRTDRELTECOCLSD | |||
| Závod Plant | Výrobní závod nebo místo, kde se realizuje výrobní zakázka. | ||
| Popis Závod je organizační jednotka v SAP, která představuje výrobní provoz nebo závod. Každá výrobní zakázka je přiřazena ke konkrétnímu závodu, kde bude výroba probíhat. Tento atribut je důležitý pro porovnání různých výrobních míst. Rozdělení procesních dat podle závodu umožňuje porovnávat výkonnost, odhalovat problémy nebo osvědčené postupy v jednotlivých provozech a sledovat regionální rozdíly v efektivitě, kapacitě či dodržování standardů. Proč je to důležité Umožňuje porovnávat výkonnost různých výrobních míst, sdílet osvědčené postupy a řešit problémy konkrétních provozů. Kde data získat Nachází se v hlavičkové tabulce výrobní zakázky AFKO (pole DWERK). Příklady 100017102000 | |||
| Čas dokončení EndTime | Časové razítko označující, kdy byla konkrétní aktivita nebo událost dokončena. | ||
| Popis Tento atribut uvádí datum a čas dokončení každé zaznamenané události. Spolu s časem zahájení určuje dobu trvání aktivit. Čas dokončení je důležitý pro přesný výpočet doby zpracování jednotlivých aktivit. Tento údaj se používá při analýze kapacity a využití zdrojů. Pomáhá rozlišit aktivní práci od prostojů a čekání, a přesněji tak určit úzká místa. Proč je to důležité Umožňuje přesně vypočítat dobu trvání aktivit, což je nezbytné pro analýzu efektivity zdrojů a odhalování úzkých míst v procesu. Kde data získat U kroků realizace se údaj nachází v tabulkách potvrzení (AFRU). U ostatních událostí může být stejný jako čas zahájení, pokud událost proběhla okamžitě. Příklady 2023-10-26T09:45:00Z2023-10-26T15:00:00Z2023-10-27T10:30:00Z | |||
| Dokončeno včas IsOnTime | Příznak označující, zda byla výrobní zakázka dokončena v plánovaném termínu nebo dříve. | ||
| Popis Tento vypočítávaný logický atribut přímo měří dodržení plánu porovnáním skutečného data dokončení s plánovaným datem dokončení. U každé výrobní zakázky poskytuje jednoznačný výsledek, zda byla dokončena včas. Tento atribut slouží jako základ pro KPI míry dodržení výrobního plánu. Usnadňuje rozdělení zakázek na dokončené včas a se zpožděním a pomáhá odhalit společné znaky nebo průběhy procesu spojené se zpožděním. Proč je to důležité Poskytuje jednoduchý a jednoznačný ukazatel dodržení plánu pro každou zakázku a usnadňuje analýzu příčin zpoždění. Kde data získat Vypočítávané pole. Nastaví se na true, pokud je časové razítko aktivity „Technické dokončení zakázky“ menší nebo rovno hodnotě atributu „Plánované datum dokončení“. Příklady truefalse | |||
| Plánované datum zahájení PlannedStartDate | Datum, kdy má být podle původního plánu zahájena výroba v rámci zakázky. | ||
| Popis Plánované datum zahájení je termín, kdy mají podle plánu začít výrobní činnosti zakázky. Jde o jeden z výstupů plánování. Tento atribut poskytuje výchozí bod pro analýzu dodržení plánu. Porovnání plánovaného data zahájení se skutečným časem zahájení pomáhá odhalit zpoždění v přípravných fázích, například při přípravě materiálu nebo uvolnění zakázky. Ta mohou následně ovlivnit celý harmonogram výroby. Proč je to důležité Slouží jako základ pro měření dodržení plánovaného času zahájení a pomáhá odhalit zpoždění v přípravných fázích, například při uvolnění zakázky nebo zajištění materiálu. Kde data získat Nachází se v hlavičkové tabulce výrobní zakázky AFKO (pole GSTRP). Příklady 2023-11-102023-11-252024-01-15 | |||
| Potvrzené množství TotalConfirmedQuantity | Celkové množství materiálu, jehož výroba byla v rámci zakázky potvrzena. | ||
| Popis Tento atribut představuje souhrnné množství hotových nebo polotovarů vykázané prostřednictvím výrobních potvrzení. Sleduje postup zakázky směrem k cílovému množství. Porovnání potvrzeného a plánovaného množství pomáhá sledovat postup výroby a odhalovat problémy s výtěžností nebo nesrovnalosti. Jde o základní ukazatel výstupu, který se používá při výpočtu různých ukazatelů výkonnosti, včetně míry zmetkovitosti a efektivity. Proč je to důležité Sleduje skutečný výstup výrobní zakázky, což je důležité pro kontrolu postupu, výpočet výtěžnosti a odhalování nesrovnalostí. Kde data získat Agreguje se ze záznamů potvrzení v AFRU (pole LMNGA pro množství výstupu). Příklady 9801000501200 | |||
| Přepracování IsRework | Příznak označující, zda výrobní zakázka zahrnovala přepracování nebo významné úpravy plánu po zahájení výroby. | ||
| Popis Tento logický atribut označuje výrobní zakázky, u kterých po zahájení výroby došlo k nápravným opatřením nebo změnám plánu. Může se nastavit při zaznamenání aktivity přepracování nebo události „Úprava výrobního plánu“ po události „Zahájení výroby“. Tento příznak je důležitý pro výpočet KPI míry přepracování ve výrobě a pro dashboard Přepracování a změny ve výrobě. Umožňuje snadno filtrovat a analyzovat problematické případy a hledat příčiny problémů s kvalitou nebo odchylek od procesu, které vedou k nákladnému přepracování. Proč je to důležité Odděluje případy s přepracováním a umožňuje cíleně analyzovat, jak omezit problémy s kvalitou, odchylky od procesu a související náklady. Kde data získat Vypočítávané pole. Nastaví se na true, pokud v rámci stejného případu následuje aktivita „Úprava výrobního plánu“ po aktivitě „Zahájení výroby“ nebo pokud je použit konkrétní typ zakázky na přepracování. Příklady truefalse | |||
| Priorita výroby ProductionPriority | Kód nebo hodnota přiřazená výrobní zakázce, která vyjadřuje její naléhavost nebo důležitost. | ||
| Popis Plánovači používají prioritu výroby k určení pořadí zakázek, zejména při omezených zdrojích. Zakázka s vyšší prioritou by se měla zpracovat před zakázkou s nižší prioritou. Analýza tohoto atributu ukazuje, zda se při výrobě přiřazené priority dodržují. Dashboard Konzistence priorit výroby porovnává pořadí zpracování s přiřazenými prioritami a odhaluje nesrovnalosti. Výsledky mohou pomoci zlepšit disciplínu při plánování a sladit plánování s realizací. Proč je to důležité Pomáhá ověřit, zda plánování výroby odpovídá obchodním prioritám a zda se naléhavé zakázky zpracovávají přednostně. Kde data získat Často jde o vlastní pole nebo hodnotu odvozenou z jiných parametrů zakázky. Konkrétní umístění závisí na konfiguraci. Příklady VysokáStředníNízká15 | |||
| Status dostupnosti materiálu MaterialAvailabilityStatus | Udává, zda jsou k dispozici všechny materiály potřebné pro výrobní zakázku. | ||
| Popis Tento status vyjadřuje výsledek kontroly dostupnosti materiálu pro výrobní zakázku. Může označovat, že jsou k dispozici všechny materiály, některé chybí nebo kontrola ještě neproběhla. Status „nedostatek“ může signalizovat možné zpoždění. Tento atribut je důležitý pro dashboard Analýza dopadu nedostatku materiálu. Pomáhá vyčíslit zpoždění způsobená nedostupností materiálu tím, že porovnává status nedostatku s dobou mezi uvolněním zakázky a zahájením výroby. Zlepšení tohoto ukazatele přispívá k plynulejšímu průběhu výroby. Proč je to důležité Přímo vysvětluje zpoždění mezi uvolněním zakázky a zahájením výroby a pomáhá vyčíslit dopad problémů v dodavatelském řetězci na výrobu. Kde data získat Jde o status, který se často odvozuje ze souhrnného statusu materiálových komponent. Může být uveden v systémových statusech v tabulce JEST, například jako „MSPT“ (nedostatek materiálu). Příklady DostupnýNedostatekNezkontrolováno | |||
| Typ zakázky OrderType | Klasifikace výrobní zakázky, která určuje její účel a způsob zpracování. | ||
| Popis Typ zakázky je konfigurační prvek v SAP PP, který určuje, jak systém výrobní zakázku zpracuje. Ovlivňuje číselné řady, výběr kmenových dat, parametry kalkulace nákladů a pravidla vyúčtování. Patří sem například standardní výrobní zakázky, zakázky na přepracování nebo prototypy. Analýza podle typu zakázky umožňuje porovnat výkonnost a průběh různých výrobních procesů. Může ukázat, zda přepracování trvá výrazně déle nebo zda se u některých typů zakázek častěji upravuje plán. Tato zjištění pomáhají zacílit zlepšování procesů. Proč je to důležité Umožňuje rozdělit analýzu podle obchodního účelu zakázky a porovnat standardní výrobu, přepracování a další procesy. Kde data získat Nachází se v hlavičkové tabulce výrobní zakázky AFKO (pole AUART). Příklady PP01PP03ZP01 | |||
| Uživatel User | ID uživatele systému, který vytvořil, změnil nebo potvrdil událost výrobní zakázky. | ||
| Popis Tento atribut zachycuje ID uživatele SAP spojené s konkrétní transakcí nebo změnou statusu, například s uvolněním zakázky nebo zadáním potvrzení. Umožňuje dohledat úkony provedené v systému. Analýza aktivit podle uživatele pomáhá porozumět rozložení pracovní zátěže, určit potřeby školení a ověřit dodržování postupů. Může například ukázat, zda se někteří uživatelé často podílejí na úpravách plánu nebo zda jsou zpoždění spojena s konkrétními týmy. Proč je to důležité Umožňuje určit odpovědnost a analyzovat pracovní zátěž, chování jednotlivých uživatelů i potřeby školení. Kde data získat Obvykle se nachází v hlavičkách změnových dokladů (CDHDR, pole UNAME) nebo v záznamech potvrzení (AFRU, pole PERNR pro osobní číslo). Příklady CB9980000021JSMITHPLANNER01 | |||
Aktivity plánování výroby
| Aktivita | Popis | ||
|---|---|---|---|
| Technické dokončení zakázky | Jde o administrativní krok uzavření, který zakáže další logistické změny zakázky, například pohyby materiálu nebo potvrzení. Z logistického hlediska se zakázka považuje za dokončenou. | ||
| Proč je to důležité Stav TECO představuje konečný bod výrobního procesu a je důležitý pro výpočet celkové doby cyklu výrobní zakázky. Označuje dokončení všech logistických činností a připravenost zakázky k finančnímu vypořádání. Kde data získat Událost spustí uživatel nastavením stavu TECO (Technically Completed). Změna stavu s odpovídajícím časovým údajem se zaznamená v tabulce JCDS. Zachycení Časový údaj změny stavu na „TECO“ v tabulce JCDS. Typ události inferred | |||
| Úprava výrobního plánu | Označuje významnou změnu výrobní zakázky po jejím uvolnění, například změnu množství, termínů nebo kusovníku. Událost se zjišťuje analýzou dokumentů změn. | ||
| Proč je to důležité Časté úpravy mohou signalizovat nestabilní plánování nebo proměnlivou poptávku. Tato činnost je základem KPI míry změn výrobního plánu a pomáhá odhalit zdroje kolísání procesu. Kde data získat Událost se odvozuje ze záznamů změn v tabulkách CDHDR (hlavička dokumentu změn) a CDPOS (položky dokumentu změn) pro objekt výrobní zakázky (AUFK nebo AFPO). Za úpravy se považují změny provedené po datu uvolnění. Zachycení Po události uvolnění vyhledejte změny důležitých polí, například množství nebo termínů, v CDHDR/CDPOS. Typ události inferred | |||
| Uvolnění výrobní zakázky | Jde o důležitý milník, při kterém se výrobní zakázka schválí a zpřístupní k realizaci ve výrobě. Po uvolnění mohou začít výdej materiálu, potvrzování operací a další kroky realizace. | ||
| Proč je to důležité Tato událost označuje oficiální začátek realizace výroby a je důležitým bodem pro měření průběžné doby. Doba mezi vytvořením a uvolněním je důležitým KPI efektivity přípravy výroby. Kde data získat Uvolnění spustí uživatel nebo systémová úloha a zakázka získá stav REL. Změna stavu s časovým údajem se zaznamená v tabulce JCDS. Datum uvolnění se často ukládá také do AFKO-FTRMI. Zachycení Časový údaj změny stavu na „REL“ v tabulce JCDS. Typ události inferred | |||
| Vytvoření výrobní zakázky | Jde o první vytvoření výrobní zakázky v systému. Zakázka představuje formální požadavek na výrobu stanoveného množství výrobku. Tato událost se zaznamená při uložení nové zakázky uživatelem a nastaví její počáteční stav na CRTD (Created). | ||
| Proč je to důležité Označuje začátek životního cyklu výrobní zakázky. Analýza doby od vytvoření po uvolnění pomáhá odhalit administrativní nebo plánovací zdržení před oficiálním zařazením výroby do plánu. Kde data získat Událost se zaznamenává v tabulce AUFK (kmenová data zakázky) s datem vytvoření (ERDAT). Stav vytvoření (CRTD) se ukládá v tabulkách JEST a JCDS a propojuje se pomocí čísla objektu zakázky (OBJNR). Zachycení Časový údaj z AUFK-ERDAT nebo záznamu změny stavu na „CRTD“ v JCDS. Typ události explicit | |||
| Zadání závěrečného potvrzení | Tato činnost označuje potvrzení poslední operace v technologickém postupu výrobní zakázky. Znamená, že byly ve výrobě dokončeny všechny plánované výrobní kroky. | ||
| Proč je to důležité Závěrečné potvrzení je důležitým milníkem, který označuje konec fyzické výroby. Často slouží jako přesnější koncový bod pro měření cyklu výroby před konečným příjmem hotových výrobků. Kde data získat Událost se odvozuje z údajů o potvrzeních v tabulce AFRU. Jde o záznam potvrzení poslední operace v pořadí (AFVC-VPLNR), u kterého je nastaven příznak závěrečného potvrzení (AFRUD-AUERU). Zachycení V tabulce AFRU najděte potvrzení poslední operace se zapnutým příznakem závěrečného potvrzení. Typ události inferred | |||
| Zahájení výroby | Označuje začátek fyzické výroby v rámci zakázky. Událost se obvykle odvozuje od prvního potvrzení z výroby nebo prvního výdeje komponent pro danou zakázku. | ||
| Proč je to důležité Tato činnost označuje přechod od plánování k realizaci. Je nezbytná pro sledování dodržování plánu, protože umožňuje porovnat skutečné datum zahájení s plánovaným. Kde data získat Jde o odvozenou událost. Obvykle se určuje podle nejstaršího časového údaje zaúčtování pohybu materiálu (tabulka MSEG, druh pohybu 261) nebo potvrzení času (tabulka AFRU) přiřazeného k zakázce. Zachycení Nejstarší časový údaj z AFRU (potvrzení) nebo MSEG (pohyby materiálu) pro danou zakázku. Typ události inferred | |||
| Zaúčtování příjmu hotových výrobků | Tato událost zaznamenává příjem hotového výrobku z výrobní linky na sklad. Formálně zvyšuje skladovou zásobu vyrobeného materiálu. | ||
| Proč je to důležité Jde o důležitý milník, který označuje dokončení výroby. Často se považuje za konec výrobního cyklu při měření včasnosti dodávek a celkové průběžné doby. Kde data získat Jde o výslovné finanční zaúčtování zaznamenané v tabulkách dokladů materiálu MSEG (úroveň položky) a MKPF (úroveň hlavičky), obvykle s druhem pohybu 101. Tyto doklady jsou propojené s výrobní zakázkou. Zachycení V tabulce MSEG najděte doklad materiálu propojený se zakázkou a s druhem pohybu 101. Typ události explicit | |||
| Finanční uzavření zakázky | Závěrečný krok, při kterém se zakázka finančně vypořádá a další finanční zaúčtování již není možné. Z pohledu controllingu a účetnictví tím končí životní cyklus zakázky. | ||
| Proč je to důležité Tato činnost často přesahuje rámec samotné analýzy výroby, ale poskytuje úplný přehled od začátku do konce. Pomáhá analyzovat dobu mezi logistickým dokončením (TECO) a finančním uzavřením. Kde data získat Událost spustí uživatel nastavením stavu CLSD (Closed). Změna stavu s odpovídajícím časovým údajem se zaznamená v tabulce JCDS. Zachycení Časový údaj změny stavu na „CLSD“ v tabulce JCDS. Typ události inferred | |||
| Kontrola dostupnosti materiálu | Označuje činnost systému nebo uživatele, který ověřuje, zda jsou všechny potřebné komponenty pro výrobní zakázku dostupné ve správném množství a včas. Kontrola se obvykle provádí automaticky při vytvoření nebo uvolnění zakázky, případně ručně, a aktualizuje její stav. | ||
| Proč je to důležité Včasné odhalení nedostatku materiálu je zásadní pro plánování s předstihem. Sledování této činnosti pomáhá zjistit, jak dostupnost materiálu ovlivňuje možnost uvolnit zakázky a zahájit výrobu včas. Kde data získat Událost se odvozuje ze stavu zakázky. Provedenou kontrolu může signalizovat například stav MACM (Material committed) nebo změna data dostupnosti materiálu (AFKO-MSERF). Dostupnost lze odvodit také z toho, že není nastaven stav nedostatku materiálu (MSPT). Zachycení Událost se odvozuje ze změn stavu souvisejících s rezervací materiálu nebo ze spuštění transakce COMAC. Typ události inferred | |||
| Naplánování kapacitních požadavků | Tato činnost zahrnuje plánování operací výrobní zakázky a kontrolu dostupné kapacity na potřebných pracovištích. Systém vyhodnotí vytížení pracovišť a podle nastavení ho vyrovná, čímž určí termíny výroby. | ||
| Proč je to důležité Tento krok je zásadní pro sestavení proveditelného výrobního plánu. Analýza jeho délky a výsledků pomáhá odhalit kapacitní úzká místa a zpřesnit plánování zdrojů. Kde data získat Událost se obvykle odvozuje ze systémového stavu, který potvrzuje naplánování zakázky, například SETC (Scheduling carried out). Dokončení této činnosti signalizuje také vyplnění plánovaných dat zahájení a ukončení (AUFK-GSTRP, AUFK-GLTRP). Zachycení Událost se odvozuje z vyplnění plánovaných termínů v AUFK/AFKO nebo ze stavu souvisejícího s plánováním v JEST. Typ události inferred | |||
| Nedostatek materiálu | Tato událost označuje, že nedostupnost jedné nebo více potřebných komponent ovlivnila nebo zastavila výrobu. Systém tuto skutečnost zaznamená nastavením konkrétního stavu zakázky. | ||
| Proč je to důležité Sledování nedostatku materiálu je zásadní pro analýzu jeho dopadu. Pomáhá vyčíslit zpoždění způsobená problémy v dodavatelském řetězci a zlepšit plánování materiálu. Kde data získat Událost se odvozuje od aktivace stavu „MSPT“ (nedostatek materiálu) u výrobní zakázky. Časový údaj změny stavu najdete v tabulce JCDS. Zachycení Časový údaj změny stavu na „MSPT“ v tabulce JCDS. Typ události inferred | |||
| Neplánované přerušení výroby | Tato vypočítaná událost označuje významnou dobu nečinnosti během realizace výroby. Nejde o výslovnou systémovou událost, ale odvozuje se z dlouhých časových mezer mezi po sobě jdoucími potvrzeními výroby. | ||
| Proč je to důležité Pomáhá sledovat neplánované výpadky, například poruchy strojů nebo problémy s kvalitou. Odhalení častých nebo dlouhých přerušení je důležité pro stabilnější výrobu a vyšší průchodnost. Kde data získat Událost se vypočítá analýzou časových údajů po sobě jdoucích činností „Zadání potvrzení výroby“ z tabulky AFRU. Časová mezera delší než předem stanovený limit se označí jako neplánované přerušení. Zachycení Vypočítejte časový rozdíl mezi po sobě jdoucími časovými údaji potvrzení (AFRU-BUDAT/UZEIT). Typ události calculated | |||
| Zadání potvrzení výroby | Označuje zaznamenání průběhu konkrétní operace výrobní zakázky. Zahrnuje evidenci vyrobeného množství, zmetků a času stráveného na pracovišti. | ||
| Proč je to důležité Potvrzení poskytují aktuální přehled o průběhu výroby a jsou důležitá pro sledování stavu výroby. Analýza jejich četnosti a načasování pomáhá sledovat plynulost výroby a odhalit zpoždění mezi operacemi. Kde data získat Každé potvrzení se výslovně zaznamená jako záznam v tabulce AFRU (potvrzení dokončení zakázky), včetně časového údaje (BUDAT, UZEIT) a podrobností o operaci. Zachycení Zaznamenáno jako doklad v tabulce AFRU. Typ události explicit | |||
| Zrušení výrobní zakázky | Označuje zrušení výrobní zakázky před jejím dokončením. Jde o alternativní, neúspěšný koncový stav procesu. | ||
| Proč je to důležité Analýza zrušených zakázek může odhalit problémy v plánování poptávky, kmenových datech nebo prodejním procesu. Vysoký podíl zrušených zakázek může signalizovat systémové problémy, které je třeba řešit. Kde data získat Událost se odvozuje od nastavení systémového stavu CACL (Cancellation) v tabulce JCDS. Zrušení může označovat také příznak smazání (AUFK-LOEKZ). Zachycení Časový údaj změny stavu na „CACL“ v JCDS nebo nastavení příznaku smazání v AUFK. Typ události inferred | |||
Návody k získání dat
Kroky
- Ověření předpokladů: Ověřte, že máte v SAP S/4HANA uživatele s příslušnými oprávněními k požadovaným pohledům Core Data Services (CDS). Patří mezi ně
I_ProductionOrder,I_ProdOrdConfirmation,I_MaterialDocumentItem,I_ObjectStatusaI_ChangeDocument. Potřebujete také přístup k prostředí pro spouštění SQL připojenému k databázi SAP HANA, například SAP HANA Studio, DBeaver nebo externímu nástroji ETL. - Zjištění podrobností o systému: Poznamenejte si identifikátor zdrojového systému, který použijete pro atribut
SourceSystem. Jde o logický název, který určíte pro označení původu dat, napříkladS4H_PROD. - Nastavení parametrů extrakce: Před spuštěním dotazu určete hlavní parametry. Zadejte počáteční a koncové datum období extrakce a případné filtry, například
PlantneboProductionOrderType, které omezí rozsah dat. - Příprava dotazu SQL: Zkopírujte celý dotaz SQL z části
querytohoto dokumentu do zvoleného klienta SQL nebo nástroje pro extrakci dat. - Nastavení zástupných hodnot: Nahraďte zástupné hodnoty v dotazu vlastními parametry. Jde o
_StartDate,_EndDatea identifikátor zdrojového systému. Upravte také limit pro událost „Unplanned Halt Occurred“, například'24:00:00', podle podmínek ve vaší organizaci. - Spuštění dotazu pro extrakci: Spusťte nakonfigurovaný skript SQL nad databází systému SAP S/4HANA. U rozsáhlých datových sad za dlouhé období zvažte rozdělení extrakce na menší části, například po měsících, abyste předešli problémům s výkonem.
- Prvotní kontrola dat: Po dokončení dotazu rychle zkontrolujte výstup. Ověřte počet řádků, přítomnost všech sloupců a to, zda sloupec
Activityobsahuje různé očekávané události. - Ověření dat: Podrobnější kontrolu proveďte podle kroků v části
validationSteps. Porovnejte několik výrobních zakázek s jejich údaji v systému SAP pomocí transakceCO03a ověřte správnost extrahovaného záznamu událostí. - Export do CSV: Exportujte konečnou sadu výsledků do souboru CSV. Použijte kódování UTF-8, abyste předešli problémům se znaky.
- Příprava k nahrání: Ověřte, že záhlaví sloupců v souboru CSV odpovídají požadovaným názvům atributů:
ProductionOrder,Activity,StartTime,SourceSystemaLastDataUpdate. Před nahráním do nástroje process mining zkontrolujte, že sloupecStartTimepoužívá standardní formát časového razítka, například ISO 8601 (YYYY-MM-DDTHH:MM:SS).
Konfigurace
- Základní CDS View: Extrakce vychází především ze standardních CDS View, které poskytují strukturovaný pohled na podkladové tabulky přizpůsobený potřebám firmy. Mezi důležitá zobrazení patří:
I_ProductionOrder: Data na úrovni hlavičky a události vytvoření.I_ProdOrdConfirmation: Všechna potvrzení operací.I_MaterialDocumentItem: Pohyby zboží, například výdej a příjem.I_ObjectStatus: Změny stavu výrobní zakázky.I_ChangeDocumenta související zobrazení: Změny důležitých polí zakázky.
- Filtrování podle období: Pro řízení objemu dat je zásadní nastavit filtr období. Dodaný dotaz používá datum vytvoření výrobní zakázky (
CreationDate). Pro první analýzu se obvykle hodí data za 3 až 6 měsíců. - Důležité firemní filtry: Datovou sadu můžete dále zúžit pomocí důležitých organizačních atributů nebo kmenových dat. Běžné filtry zahrnují:
Plant: Analýza konkrétního výrobního závodu.ProductionOrderType: Zaměření na standardní výrobu, přepracování nebo jiné typy zakázek.CompanyCode: Omezení dat na konkrétní právní subjekt.
- Limit pro neplánované přerušení: Dotaz obsahuje logiku pro odvození událostí
Unplanned Halt Occurred. Tato logika vyžaduje časový limit, který určuje, jak dlouhá prodleva mezi operacemi se považuje za významnou. Hodnotu nastavte podle obvyklé délky výrobních cyklů a firemních pravidel. - Požadovaná oprávnění: Uživatel SAP, který dotaz spouští, musí mít oprávnění k zobrazení všech CDS View a jejich podkladových tabulek. Bez potřebných oprávnění může být výsledek prázdný nebo neúplný.
Ukázkový dotaz sql
WITH BaseOrders AS (
SELECT
ProductionOrder,
Material AS MaterialNumber,
ProductionPlant AS Plant,
CreationDate,
CreationTime,
BasicEndDate AS PlannedEndDate,
TechnicalCompletionDate,
LastChangeDateTime
FROM I_ProductionOrder
-- P_CreationDateFrom and P_CreationDateTo are placeholders for your date range
WHERE CreationDate BETWEEN '[_StartDate]' AND '[_EndDate]'
-- Add other filters as needed, for example:
-- AND ProductionPlant IN ('[Your_Plant_1]', '[Your_Plant_2]')
-- AND ProductionOrderType = '[Your_Order_Type]'
)
SELECT
bo.ProductionOrder,
'Production Order Created' AS Activity,
TO_TIMESTAMP(bo.CreationDate || ' ' || LPAD(bo.CreationTime, 6, '0'), 'YYYYMMDD HH24MISS') AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
'CRTD' AS OrderStatus
FROM BaseOrders bo
UNION ALL
-- System status changes like Released, Technically Completed, Closed, Cancelled, Material Shortage
SELECT
os.ObjectInternalID AS ProductionOrder,
CASE os.SystemStatus
WHEN 'I0002' THEN 'Production Order Released'
WHEN 'I0043' THEN 'Material Availability Checked' -- Status: MACM (Material committed)
WHEN 'I0045' THEN 'Order Technically Completed'
WHEN 'I0046' THEN 'Order Financially Closed'
WHEN 'I0047' THEN 'Production Order Cancelled'
WHEN 'I0010' THEN 'Material Shortage Occurred' -- Status: MSPT (Material shortage)
END AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus IN ('I0002', 'I0043', 'I0045', 'I0046', 'I0047', 'I0010') AND os.StatusIsInactive = ''
UNION ALL
-- Production Started, inferred from the first goods issue or first confirmation
SELECT
s.ProductionOrder,
'Production Started' AS Activity,
s.StartEventTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
s.MaterialNumber,
s.Plant,
NULL AS WorkCenter,
s.PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
bo.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime)) AS StartEventTime,
ROW_NUMBER() OVER(PARTITION BY bo.ProductionOrder ORDER BY MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime))) as rn
FROM BaseOrders bo
LEFT JOIN I_MaterialDocumentItem gm ON bo.ProductionOrder = gm.ProductionOrder AND gm.GoodsMovementType IN ('261', '262') -- Goods Issue
LEFT JOIN I_ProdOrdConfirmation cf ON bo.ProductionOrder = cf.ProductionOrder
WHERE gm.ProductionOrder IS NOT NULL OR cf.ProductionOrder IS NOT NULL
GROUP BY bo.ProductionOrder, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate
) s
WHERE s.rn = 1
UNION ALL
-- Production Confirmation Entered (for each confirmation)
SELECT
cf.ProductionOrder,
'Production Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
UNION ALL
-- Final Confirmation Entered
SELECT
cf.ProductionOrder,
'Final Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
WHERE cf.IsFinalConfirmation = 'X'
UNION ALL
-- Unplanned Halt Occurred (derived from gaps between confirmations)
SELECT
ProductionOrder,
'Unplanned Halt Occurred' AS Activity,
PreviousConfirmationTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
MaterialNumber,
Plant,
WorkCenter,
PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
cf.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
cf.WorkCenter,
cf.ConfirmationDateTime,
LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime) AS PreviousConfirmationTime,
(SECONDS_BETWEEN(LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime), cf.ConfirmationDateTime) / 3600.0) as HoursDiff
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
) AS gaps
WHERE gaps.HoursDiff > 24 -- Configurable threshold in hours, e.g. 24 hours
UNION ALL
-- Goods Receipt Posted
SELECT
gm.ProductionOrder,
'Goods Receipt Posted' AS Activity,
gm.PostingTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_MaterialDocumentItem gm
JOIN BaseOrders bo ON gm.ProductionOrder = bo.ProductionOrder
WHERE gm.GoodsMovementType = '101'
UNION ALL
-- Capacity Requirements Planned (using Release event as a proxy)
SELECT
os.ObjectInternalID AS ProductionOrder,
'Capacity Requirements Planned' AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus = 'I0002' AND os.StatusIsInactive = '' -- Status 'REL' (Released)
UNION ALL
-- Production Plan Adjusted
SELECT
ch.ObjectValue AS ProductionOrder,
'Production Plan Adjusted' AS Activity,
ch.CreationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL as WorkCenter,
bo.PlannedEndDate,
NULL as OrderStatus
FROM I_ChangeDocument AS ch
JOIN BaseOrders bo ON ch.ObjectValue = bo.ProductionOrder
WHERE ch.ChangeDocumentObject = 'PRODORDER'
-- Monitoring changes in key fields like Total Quantity (GAMNG) or Basic Finish Date (GLTRP)
AND ch.FieldName IN ('GAMNG', 'GLTRP')
GROUP BY ch.ObjectValue, ch.CreationDateTime, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate Kroky
- Ověřte, že máte přímý přístup pro čtení ke schématu SAP HANA s daty výrobních zakázek. Zjistěte vlastníka schématu, způsob práce s klientem, konvence pro časová razítka a model oprávnění. Použijte SAP HANA Database Explorer nebo schváleného klienta SQL. Před dokončením dotazu ověřte příslušnou verzi SAP S/4HANA a aktivovaný rozsah plánování výroby.
- Nastavte připojovací řetězec, přihlašovací údaje, název schématu, hodnotu klienta, počáteční a koncové datum extrakce a filtry specifické pro společnost. Níže uvedený dotaz používá tabulky AUFK, AFPO, JEST a JCDS a odkazuje také na AFKO, AFVC, AFRU, RESB, MSEG, CDHDR a CDPOS. Před spuštěním ověřte, že jsou tyto objekty ve vašem systému dostupné a že jejich pole odpovídají očekávání. Mohou se uplatnit rozšíření, kompatibilní pohledy a rozdíly mezi verzemi.
- Spusťte dotaz v SAP HANA Database Explorer nebo ve schváleném nástroji pro spouštění SQL. Dotaz vytvoří jeden řádek pro každou výslovně extrahovanou aktivitu a spojí řádky aktivit pomocí UNION ALL. Nevyužívá ProcessMind k odvozování událostí.
- Zkontrolujte zdrojová data a podle potřeby upravte označené výrazy specifické pro váš systém. Ověřte zejména stavové kódy používané pro dostupnost materiálu, plánování kapacit, technické dokončení, finanční uzavření a zrušení. Zkontrolujte také názvy objektů a polí změnových dokladů, které slouží k identifikaci úprav výrobního plánu.
- Ověřte převod časových razítek a filtrování podle klienta. Systémy SAP mohou ukládat datum a čas do samostatných polí. Některé instalace používají UTC, jiné místní čas závodu nebo systému. Zajistěte, aby výsledné hodnoty
StartTimepoužívaly jednotné časové pásmo a aby byly vyloučeny neplatné nebo výchozí hodnoty data SAP. - Exportujte výsledek jako plochý soubor podporovaný nástrojem ProcessMind, nejlépe CSV nebo textový soubor s oddělovači v kódování UTF-8. Zachovejte přesné názvy výstupních sloupců: ProductionOrder, Activity, StartTime, SourceSystem, LastDataUpdate, MaterialNumber, Plant, WorkCenter, PlannedEndDate a OrderStatus.
- Seřaďte exportované řádky podle ProductionOrder a StartTime. Pokud to proces nahrávání umožňuje, nastavte pro shodná časová razítka také jednoznačné sekundární řazení. Zachovejte jeden řádek pro každou událost, včetně opakovaných potvrzení a změn stavu, pokud představují samostatné zdrojové záznamy.
- Nahrajte soubor do ProcessMind a namapujte ProductionOrder jako identifikátor případu, Activity jako aktivitu a StartTime jako časové razítko události. Zbývající sloupce namapujte jako atributy události nebo případu podle nastavení importu v ProcessMind. Ověřte, že všech 14 názvů aktivit zůstalo přesně tak, jak je vytvořil dotaz.
Konfigurace
- Časové období: Začněte průběžným obdobím tří až šesti měsíců. Pro prvotní testování zvolte kratší období a prodlužte ho až po ověření počtu řádků a výkonu dotazu.
- Parametry extrakce: Nahraďte hodnoty [Your schema name], [Your client], [Extraction start date], [Extraction end date] a [Your source system name] údaji z vašeho prostředí. Filtry specifické pro společnost použijte až po ověření příslušných organizačních polí a hodnot.
- Nastavení stavů: Ověřte přesné stavové kódy SAP a identifikátory stavových objektů používané ve vašem systému pro CRTD, uvolnění, dostupnost materiálu, plánování kapacit, technické dokončení, finanční uzavření a zrušení. Profily stavů a vlastní rozšíření mohou dostupné kódy měnit.
- Změnové doklady: Ověřte objekt změnového dokladu výrobní zakázky, názvy tabulek a polí a formáty hodnot používané pro změny množství, dat, kusovníku a technologického postupu. Dotaz považuje odpovídající záznamy CDHDR a CDPOS za doklad o úpravě plánu.
- Práce s časovými razítky: Sjednoťte všechna zdrojová časová razítka do jednoho časového pásma. Ověřte, zda jsou pole data a času uložena odděleně, zda jsou časová razítka místní nebo v UTC a jak se zapisují výchozí hodnoty data.
- Výkon: Omezte extrakci podle data vytvoření zakázky nebo jiného indexovaného data výrobní zakázky, filtrujte podle klienta, vybírejte pouze potřebné sloupce a dotaz spouštějte ve vhodném čase pro tvorbu reportů. U rozsáhlých datových sad extrahujte data po měsících nebo rozsazích výrobních zakázek a průběžně ukládejte výsledky.
- Databázové objekty: Ověřte, že jsou ve vybraném schématu dostupné tabulky AUFK, AFPO, JEST, JCDS, AFKO, AFVC, AFRU, RESB, MSEG, CDHDR a CDPOS a že k nim máte přístup pro čtení. Pokud se pohled nebo pole ve vaší verzi liší, nahraďte je odpovídajícím zveřejněným nebo schváleným objektem.
- Oprávnění: Potřebujete oprávnění ke čtení vybraného schématu a objektů SAP HANA a také oprávnění ke spouštění SQL. Váš proces správy může vyžadovat také oprávnění k aplikacím SAP.
- Funkční rozsah: Za vybrané období musí být zachována data plánování a realizace výroby, pohybu zásob, historie stavů a změnových dokladů. Archivované nebo smazané záznamy se nevrátí.
- Mapování v ProcessMind: Nastavte ProductionOrder jako identifikátor případu, Activity jako aktivitu a StartTime jako časové razítko události. Neočekávejte, že ProcessMind odvodí chybějící aktivity z atributů.
Ukázkový dotaz sql
WITH
params AS (
SELECT
'[Your client]' AS mandt,
TO_DATE('[Extraction start date]', 'YYYY-MM-DD') AS date_from,
TO_DATE('[Extraction end date]', 'YYYY-MM-DD') AS date_to,
'[Your source system name]' AS source_system,
CURRENT_UTCTIMESTAMP AS last_data_update
FROM DUMMY
),
orders AS (
SELECT
a.mandt,
LTRIM(a.aufnr, '0') AS production_order,
a.aufnr AS production_order_raw,
a.erdat AS order_created_date,
a.erfzeit AS order_created_time,
a.auart AS order_type,
a.werks AS plant,
a.objnr AS object_number,
a.ktext AS order_text,
p.matnr AS material_number,
p.psmng AS planned_quantity,
p.wemng AS delivered_quantity,
k.gstrp AS planned_start_date,
k.gltrp AS planned_end_date,
k.ftrmi AS release_date,
k.ftrmp AS release_time,
k.gamng AS total_order_quantity,
k.plnbez AS header_material_number,
k.plnty AS task_list_type,
k.plnnr AS task_list_group,
k.plnal AS task_list_group_counter
FROM [Your schema name].AUFK a
LEFT JOIN [Your schema name].AFPO p
ON p.mandt = a.mandt
AND p.aufnr = a.aufnr
LEFT JOIN [Your schema name].AFKO k
ON k.mandt = a.mandt
AND k.aufnr = a.aufnr
CROSS JOIN params x
WHERE a.mandt = x.mandt
AND a.erdat >= x.date_from
AND a.erdat < ADD_DAYS(x.date_to, 1)
),
status_history AS (
SELECT
o.*,
j.stat,
j.inact,
j.chgnr,
j.udate AS status_date,
j.utime AS status_time,
c.usnam AS status_user,
c.chind AS status_change_indicator
FROM orders o
INNER JOIN [Your schema name].JEST j
ON j.mandt = o.mandt
AND j.objnr = o.object_number
LEFT JOIN [Your schema name].JCDS c
ON c.mandt = j.mandt
AND c.objnr = j.objnr
AND c.stat = j.stat
AND c.chgnr = j.chgnr
WHERE COALESCE(j.inact, '') <> 'X'
),
operations AS (
SELECT
o.production_order,
o.mandt,
v.vornr,
v.arbid,
v.steus,
v.ltxa1,
v.aufpl,
v.aplzl,
cr.name1 AS work_center
FROM orders o
LEFT JOIN [Your schema name].AFVC v
ON v.mandt = o.mandt
AND v.aufpl = (SELECT MAX(k2.aufpl) FROM [Your schema name].AFKO k2 WHERE k2.mandt = o.mandt AND k2.aufnr = o.production_order_raw)
LEFT JOIN [Your schema name].CRHD cr
ON cr.mandt = v.mandt
AND cr.objty = 'A'
AND cr.objid = v.arbid
),
confirmations AS (
SELECT
o.production_order,
o.mandt,
r.rmzhl,
r.vornr,
r.budat AS confirmation_date,
r.ersda AS entry_date,
r.erzet AS entry_time,
r.ism01,
r.ism02,
r.ism03,
r.ism04,
r.ism05,
r.ism06,
r.xmnga,
r.stzhl,
r.stzhl AS reversal_counter,
r.lmnga AS confirmed_quantity,
r.xmnge AS scrap_quantity,
r.aufpl,
r.aplzl,
op.work_center
FROM orders o
INNER JOIN [Your schema name].AFRU r
ON r.mandt = o.mandt
AND r.aufnr = o.production_order_raw
LEFT JOIN operations op
ON op.production_order = o.production_order
AND op.mandt = r.mandt
AND op.vornr = r.vornr
),
first_confirmation AS (
SELECT production_order, MIN(TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS start_time
FROM confirmations
GROUP BY production_order
),
last_confirmation AS (
SELECT production_order, MAX(TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS final_time
FROM confirmations
GROUP BY production_order
),
first_goods_issue AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(m.budat_mkpf, 'YYYYMMDD') || LPAD(TO_VARCHAR(m.cputm_mkpf), 6, '0'), 'YYYYMMDDHH24MISS')) AS start_time
FROM orders o
INNER JOIN [Your schema name].MSEG m
ON m.mandt = o.mandt
AND m.aufnr = o.production_order_raw
AND m.bwart IN ('261', '262')
GROUP BY o.production_order
),
first_receipt AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(m.budat_mkpf, 'YYYYMMDD') || LPAD(TO_VARCHAR(m.cputm_mkpf), 6, '0'), 'YYYYMMDDHH24MISS')) AS receipt_time
FROM orders o
INNER JOIN [Your schema name].MSEG m
ON m.mandt = o.mandt
AND m.aufnr = o.production_order_raw
AND m.bwart IN ('101', '102')
GROUP BY o.production_order
),
plan_changes AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(h.udate, 'YYYYMMDD') || LPAD(TO_VARCHAR(h.utime), 6, '0'), 'YYYYMMDDHH24MISS')) AS adjustment_time
FROM orders o
INNER JOIN [Your schema name].CDHDR h
ON h.mandant = o.mandt
AND h.objectid = o.production_order_raw
INNER JOIN [Your schema name].CDPOS p
ON p.mandant = h.mandant
AND p.objectclas = h.objectclas
AND p.objectid = h.objectid
AND p.changenr = h.changenr
WHERE h.objectclas IN ('ORDER', 'PP_ORDER')
AND p.tabname IN ('AFKO', 'AFPO', 'AFVC', 'RESB')
AND p.fname IN ('GAMNG', 'PSMNG', 'GSTRP', 'GLTRP', 'MATNR', 'BDMNG', 'VORNR')
GROUP BY o.production_order
),
status_times AS (
SELECT
production_order,
MIN(CASE WHEN stat IN ('I0001', 'CRTD') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS created_status_time,
MIN(CASE WHEN stat IN ('I0002', 'REL') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS released_time,
MIN(CASE WHEN stat IN ('I0003', 'MATC', 'MANC') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS material_available_time,
MIN(CASE WHEN stat IN ('I0004', 'CAPC', 'CAPA') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS capacity_planned_time,
MIN(CASE WHEN stat IN ('I0045', 'TECO') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS technically_completed_time,
MIN(CASE WHEN stat IN ('I0046', 'CLSD') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS financially_closed_time,
MIN(CASE WHEN stat IN ('I0076', 'DLFL', 'CANC') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS cancelled_time
FROM status_history
GROUP BY production_order
),
material_shortages AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(j.status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(j.status_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS shortage_time
FROM status_history j
INNER JOIN orders o
ON o.production_order = j.production_order
WHERE j.stat IN ('I0042', 'MANC', 'MSHT')
GROUP BY o.production_order
),
capacity_times AS (
SELECT
production_order,
MIN(COALESCE(released_time, created_status_time)) AS capacity_time
FROM status_times
GROUP BY production_order
),
base_attributes AS (
SELECT
o.production_order,
o.material_number,
o.plant,
COALESCE(op.work_center, '') AS work_center,
o.planned_end_date,
COALESCE(st.stat, '') AS current_status
FROM orders o
LEFT JOIN status_history st
ON st.production_order = o.production_order
AND st.inact = ''
LEFT JOIN operations op
ON op.production_order = o.production_order
AND op.vornr = (SELECT MIN(op2.vornr) FROM operations op2 WHERE op2.production_order = o.production_order)
),
events AS (
SELECT o.production_order, 'Production Order Created' AS activity, COALESCE(st.created_status_time, TO_TIMESTAMP(TO_VARCHAR(o.order_created_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(o.order_created_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS start_time FROM orders o LEFT JOIN status_times st ON st.production_order = o.production_order
UNION ALL
SELECT production_order, 'Material Availability Checked', material_available_time FROM status_times WHERE material_available_time IS NOT NULL
UNION ALL
SELECT production_order, 'Capacity Requirements Planned', capacity_time FROM capacity_times WHERE capacity_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Order Released', released_time FROM status_times WHERE released_time IS NOT NULL
UNION ALL
SELECT o.production_order, 'Production Started', LEAST(COALESCE(fc.start_time, TO_TIMESTAMP('99991231235959', 'YYYYMMDDHH24MISS')), COALESCE(fg.start_time, TO_TIMESTAMP('99991231235959', 'YYYYMMDDHH24MISS'))) FROM orders o LEFT JOIN first_confirmation fc ON fc.production_order = o.production_order LEFT JOIN first_goods_issue fg ON fg.production_order = o.production_order WHERE fc.start_time IS NOT NULL OR fg.start_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Confirmation Entered', TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS') FROM confirmations
UNION ALL
SELECT production_order, 'Material Shortage Occurred', shortage_time FROM material_shortages WHERE shortage_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Plan Adjusted', adjustment_time FROM plan_changes WHERE adjustment_time IS NOT NULL
UNION ALL
SELECT c.production_order, 'Unplanned Halt Occurred', ADD_SECONDS(c.confirmation_time, 1) FROM (SELECT production_order, TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS') AS confirmation_time, LEAD(TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS')) OVER (PARTITION BY production_order ORDER BY entry_date, entry_time, rmzhl) AS next_confirmation_time FROM confirmations) c WHERE c.next_confirmation_time IS NOT NULL AND SECONDS_BETWEEN(c.confirmation_time, c.next_confirmation_time) >= 86400
UNION ALL
SELECT production_order, 'Final Confirmation Entered', final_time FROM last_confirmation WHERE final_time IS NOT NULL
UNION ALL
SELECT production_order, 'Goods Receipt Posted', receipt_time FROM first_receipt WHERE receipt_time IS NOT NULL
UNION ALL
SELECT production_order, 'Order Technically Completed', technically_completed_time FROM status_times WHERE technically_completed_time IS NOT NULL
UNION ALL
SELECT production_order, 'Order Financially Closed', financially_closed_time FROM status_times WHERE financially_closed_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Order Cancelled', cancelled_time FROM status_times WHERE cancelled_time IS NOT NULL
)
SELECT
e.production_order AS "ProductionOrder",
e.activity AS "Activity",
e.start_time AS "StartTime",
p.source_system AS "SourceSystem",
p.last_data_update AS "LastDataUpdate",
b.material_number AS "MaterialNumber",
b.plant AS "Plant",
NULLIF(b.work_center, '') AS "WorkCenter",
b.planned_end_date AS "PlannedEndDate",
b.current_status AS "OrderStatus"
FROM events e
INNER JOIN base_attributes b
ON b.production_order = e.production_order
CROSS JOIN params p
WHERE e.start_time IS NOT NULL
ORDER BY e.production_order, e.start_time, e.activity; Chcete začít?
Udělejte první krok ke zlepšení plánování výroby. Připravte data pomocí této šablony a získejte podklady pro optimalizaci.
Začněte zlepšovat plánování výroby ještě dnes
Najděte a odstraňte úzká místa a zkraťte výrobní cyklus o 30 %.
Platební kartu nepotřebujete