Šablona dat pro řízení skladu
Šablona dat pro řízení skladu
- Doporučené atributy pro důkladnou analýzu
- Důležité aktivity, které je třeba v procesu sledovat
- Pokyny k extrakci dat ze SAP EWM
Atributy řízení skladu
| Název | Popis | ||
|---|---|---|---|
| Warehouse Order WarehouseOrder | Jedinečný identifikátor skladové objednávky, která sdružuje skupinu skladových úloh přidělených pracovníkovi nebo jinému zdroji. | ||
| Popis Warehouse Order slouží jako hlavní identifikátor případu pro sledování celého procesu manipulace se zbožím ve skladu. Představuje pracovní balíček, například vychystání položek pro odchozí dodávku nebo zaskladnění přijatého zboží. Každý Warehouse Order obsahuje jednu nebo více skladových úloh. Analýza podle Warehouse Order poskytuje v process miningu ucelený přehled o životním cyklu konkrétního pracovního balíčku. Pomáhá odhalit úzká místa, měřit celkovou dobu průchodu procesem od vytvoření po dokončení a porozumět celému průběhu činností spojených s jedním logistickým pokynem. Proč je to důležité Jde o hlavní identifikátor, který propojuje všechny související skladové aktivity. Umožňuje analyzovat proces od začátku do konce a měřit dobu průchodu pro jednu pracovní jednotku. Kde data získat Tento identifikátor se obvykle nachází v tabulce záhlaví skladových objednávek SAP EWM, například /SCWM/WHO. Příklady 200000145200000146200000147 | |||
| Čas zahájení EventTime | Časové razítko označující začátek aktivity nebo události. | ||
| Popis Tento atribut zaznamenává přesné datum a čas konkrétní skladové aktivity. Slouží jako hlavní časový údaj pro řazení událostí a výpočet doby mezi nimi. V process miningu je čas zahájení nezbytný pro sestavení chronologického pořadí událostí v každém případu. Používá se k výpočtu doby průchodu, čekání a zpracování. Tyto údaje jsou důležité pro analýzu výkonnosti, odhalování úzkých míst a sledování SLA. Proč je to důležité Toto časové razítko je zásadní pro chronologické řazení událostí a výpočet všech časových ukazatelů výkonnosti, například doby průchodu a trvání aktivit. Kde data získat Obvykle se nachází v tabulkách událostí nebo potvrzení, například /SCWM/ORDIM_C (například v poli CONF_TIMESTAMP), případně v protokolech změn stavu souvisejících se skladovými objednávkami a úlohami. Příklady 2023-10-26T10:00:00Z2023-10-26T10:15:30Z2023-10-26T11:20:00Z | |||
| Název aktivity ActivityName | Název konkrétní aktivity nebo události ve skladovém hospodářství, například „Vytvoření úlohy vychystávání“ nebo „Zaúčtování výdeje zboží“. | ||
| Popis Tento atribut popisuje jednotlivý krok nebo událost v procesu skladového hospodářství. Tyto aktivity tvoří základ procesní mapy a představují úkony, jako je vytvoření, potvrzení, balení, nakládka nebo přesun zboží. Analýza pořadí a četnosti těchto aktivit je základem process miningu. Pomáhá zobrazit průběh procesu, odhalit běžné i méně časté varianty, zjistit odchylky od standardního postupu a určit konkrétní kroky, které způsobují prodlevy nebo nutnost opakované práce. Proč je to důležité Určuje jednotlivé kroky procesu, tvoří základ procesní mapy a umožňuje analyzovat průběh procesu, odchylky i úzká místa. Kde data získat Lze odvodit ze změn stavů, zpráv o událostech nebo transakčních protokolů souvisejících se skladovými objednávkami a úlohami, například z tabulky /SCWM/ORDIM_C (potvrzení), nebo interpretací polí stavu v tabulkách /SCWM/WHO a /SCWM/ORDIM_O. Příklady Potvrzení úlohy vychystáváníVytvoření úlohy zaskladněníZaúčtování příjmu zbožíDokončení Warehouse Order | |||
| Poslední aktualizace dat LastDataUpdate | Časové razítko označující, kdy byla data tohoto záznamu naposledy aktualizována ze zdrojového systému. | ||
| Popis Tento atribut zaznamenává, kdy byla data naposledy načtena ze zdrojového systému. Poskytuje důležitý kontext o aktuálnosti analyzovaných dat. V každé analýze nebo dashboardu je pro informované rozhodování důležité vědět, jak jsou data aktuální. Časové razítko uživatelům ukazuje, zda pracují s aktuálními informacemi, nebo se snímkem dat z určitého okamžiku. Mohou tak lépe posoudit jejich stáří. Proč je to důležité Udává aktuálnost dat, aby uživatelé věděli, jak současný je jejich přehled o procesu. Kde data získat Jde o pole metadat, které se obvykle vytváří a přidává při extrakci dat (ETL). Udává čas načtení dat. Příklady 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Zdrojový systém SourceSystem | Označuje zdrojový systém, ze kterého byla data načtena, například produkční instanci SAP EWM. | ||
| Popis Tento atribut určuje systém, ve kterém vznikají data o skladovém hospodářství. V prostředí s více systémy je důležité označit původ dat, aby bylo možné je dohledat a správně interpretovat. Při analýze pomáhá rozlišit procesy, které mohou probíhat ve více systémech, nebo porovnat procesy z různých instancí, například ze samostatných systémů pro jednotlivé regiony. Díky tomu je původ dat přehledný a lze jej ověřit. Proč je to důležité Zajišťuje dohledatelnost a kontext, zejména v prostředí s více instancemi SAP nebo integrovanými systémy, a pomáhá udržet přehled o původu dat. Kde data získat Obvykle jde o statickou hodnotu přidanou při extrakci, transformaci a načítání dat (ETL), která označuje konkrétní instanci SAP S/4HANA nebo EWM. Příklady SAP_EWM_PROD_EUS4H_US_100EWM_APAC_PRD | |||
| Čas dokončení EventEndTime | Časové razítko označující dokončení aktivity nebo události. | ||
| Popis Tento atribut zaznamenává datum a čas dokončení konkrétní skladové aktivity. U jednotlivých událostí bývá stejný jako čas zahájení, u činností s měřitelnou dobou trvání, například balení nebo nakládky, se však může lišit. Samostatný čas dokončení umožňuje přesně vypočítat dobu zpracování jednotlivých aktivit. To je důležité pro dashboardy výkonnosti, které sledují dobu konkrétních kroků, například efektivitu vychystávání a balení. Pomáhá určit, které úlohy zabírají nejvíce času. Proč je to důležité Umožňuje přesně vypočítat dobu jednotlivých aktivit a určit kroky, které trvají dlouho, i úlohy náročné na zdroje. Kde data získat U jednotlivých událostí bývá stejný jako čas zahájení. U déle trvajících úloh může být uložen v samostatném poli tabulek, jako je /SCWM/ORDIM_C, nebo odvozen z následné změny stavu. Příklady 2023-10-26T10:05:00Z2023-10-26T10:25:45Z2023-10-26T11:20:00Z | |||
| Číslo materiálu MaterialNumber | Jedinečný identifikátor produktu nebo materiálu, se kterým se ve skladové úloze manipuluje. | ||
| Popis Tento atribut určuje materiál, který se přesouvá, vychystává, balí nebo přijímá. Jde o důležitý rozměr pro členění a analýzu výkonnosti skladu podle vlastností produktů. Analýza podle čísla materiálu pomáhá zjistit, které produkty se zaskladňují nejdéle, u kterých nejčastěji dochází k chybám při vychystávání nebo které vyžadují kontrolu kvality. Tyto údaje jsou důležité pro dashboardy „Výkonnost příjmu a zaskladnění“ a „Doba kontroly kvality“. Proč je to důležité Umožňuje filtrovat a členit procesní data podle produktu, což pomáhá odhalit problémy při manipulaci, skladování nebo kontrole kvality konkrétních produktů. Kde data získat Tyto informace jsou obvykle dostupné v tabulkách skladových úloh, například /SCWM/ORDIM_O, a jsou propojené s kmenovými daty materiálu. Příklady FIN-1001RAW-2050SFIN-300-A | |||
| ID uživatele User | Identifikátor skladníka nebo uživatele, který aktivitu provedl nebo potvrdil. | ||
| Popis Tento atribut zaznamenává ID uživatele odpovědného za provedení skladové úlohy. Může jít o pracovníka, který potvrdil vychystání, baliče na balicím pracovišti nebo řidiče vysokozdvižného vozíku, který potvrdil zaskladnění. Tyto údaje jsou důležité pro dashboard využití pracovníků a vybavení. Umožňují analyzovat výkon jednotlivců i týmů, odhalit potřebu školení a lépe rozdělit pracovní zátěž mezi zaměstnance skladu. Proč je to důležité Přiřazuje práci konkrétnímu člověku, takže lze analyzovat výkon uživatelů a týmů, spravovat zdroje a vyrovnávat pracovní zátěž. Kde data získat Obvykle se nachází v datech potvrzení skladové úlohy, například v poli UNAME tabulky /SCWM/ORDIM_C. Příklady JSMITHARODRIGUEZOPERATOR_05 | |||
| Priorita Priority | Úroveň priority skladové objednávky, která vyjadřuje její naléhavost, například vysoká, střední nebo nízká. | ||
| Popis Tento atribut třídí skladové objednávky podle jejich obchodní důležitosti nebo naléhavosti. Objednávky s vysokou prioritou mohou například souviset s expresní zásilkou nebo kritickým zásobováním výroby a vyžadovat přednostní zpracování. Priorita je důležitým rozměrem dashboardu a KPI pro sledování plnění objednávek podle priority. Umožňuje filtrovat a rozdělovat výsledky podle výkonnosti a ověřit, zda jsou nejdůležitější objednávky zpracovány v požadovaném termínu. Skladový provoz tak lze lépe sladit s obchodními cíli. Proč je to důležité Umožňuje zaměřit analýzu a sledování na objednávky s vysokou naléhavostí a ověřit, zda splňují požadovanou úroveň služeb. To má přímý vliv na spokojenost zákazníků. Kde data získat Prioritu lze nastavit v příslušném dodacím dokladu a přenést ji do skladové objednávky. Může být uvedena například v tabulce /SCWM/WHO. Příklady VysokáStředníNízká | |||
| Stav Warehouse Order WarehouseOrderStatus | Aktuální nebo konečný stav Warehouse Order, například „Completed“ nebo „Canceled“. | ||
| Popis Tento atribut udává konečný výsledek skladové objednávky. Informace o tom, zda byla objednávka úspěšně dokončena, nebo zrušena, pomáhá vyhodnotit úspěšnost procesu a zjistit příčiny nedokončení. Jde o důležitý filtr pro řadu analýz. Při výpočtu celkové doby průchodu skladovou objednávkou se například obvykle analyzují pouze dokončené objednávky. Atribut také pomáhá sledovat četnost zrušených objednávek a zjišťovat jejich příčiny. Proč je to důležité Udává výsledek případu a umožňuje filtrovat dokončené a zrušené objednávky. To je důležité pro přesnou analýzu doby průchodu a průchodnosti. Kde data získat Pole se stavem se obvykle nachází v tabulce hlaviček skladových objednávek /SCWM/WHO. Příklady DokončenoProbíháZrušeno | |||
| Typ Warehouse Order WarehouseOrderType | Klasifikuje Warehouse Order podle účelu, například jako zaskladnění, vychystávání nebo interní doplnění zásob. | ||
| Popis Typ Warehouse Order rozděluje objednávky podle jejich logistické funkce. Toto rozlišení je důležité, protože různé typy objednávek mají odlišný průběh procesu i očekávanou výkonnost. Při analýze slouží tento atribut jako hlavní rozměr pro filtrování a porovnávání. Dashboard „Propustnost a objem Warehouse Order“ jej například používá k oddělenému vyhodnocení příjmových procesů (zaskladnění) a expedičních procesů (vychystávání). Výsledkem je užitečnější přehled o provozu skladu. Proč je to důležité Umožňuje členit analýzu podle kategorie procesu, například na příjem a expedici, a provádět tak smysluplnější srovnání. Kde data získat Určuje se podle typu skladového procesu, který se obvykle nachází v tabulce záhlaví Warehouse Order /SCWM/WHO. Příklady VychystáváníZaskladněníDoplnění zásobUskladnění | |||
| Celková doba průchodu EndToEndCycleTime | Celková doba od vytvoření skladové objednávky do jejího dokončení. | ||
| Popis Tento KPI měří celkovou dobu životního cyklu skladové objednávky. Poskytuje souhrnný přehled o efektivitě a rychlosti skladového provozu. Tato metrika je základem dashboardu „Celková doba průchodu skladovou objednávkou“. Sledování KPI v čase a rozdělení výsledků podle typu objednávky nebo materiálu pomáhá odhalit systémové nedostatky a vyhodnotit dopad zlepšování procesů na celý provoz. Proč je to důležité Jde o hlavní KPI pro měření celkové efektivity skladového procesu, které poskytuje souhrnný přehled o výkonnosti provozu. Kde data získat Vypočítá se na úrovni případu odečtením časového razítka první události („Skladová objednávka vytvořena“) od časového razítka poslední události („Skladová objednávka dokončena“). Příklady 8640017280043200 | |||
| Odchylka množství QuantityVariance | Rozdíl mezi plánovaným a skutečným potvrzeným množstvím u úkolu. | ||
| Popis Tato vypočítaná metrika vyjadřuje rozdíl zjištěný při plnění skladového úkolu. Nenulová hodnota znamená, že skutečný stav neodpovídá záznamu v systému. Může jít například o chybu při vychystávání nebo příjmu zboží či o poškozenou položku. Atribut přímo podporuje dashboard „Analýza rozdílů v zásobách“, protože ukazuje rozsah chyb. Analýza četnosti a velikosti odchylek pomáhá odhalit systémové problémy ve správě zásob a při provádění skladových činností a určit, kde je třeba zlepšit přesnost. Proč je to důležité Přímo vyjadřuje nepřesnosti v evidenci zásob a provozu, takže lze snadno odhalit a analyzovat rozsah rozdílů. Kde data získat Vypočítá se pro každý příslušný úkol odečtením PlannedQuantity od ActualQuantity. Příklady 0-15 | |||
| Plánované množství PlannedQuantity | Očekávané množství materiálu pro daný skladový úkol. | ||
| Popis Tento atribut udává cílové množství materiálu, které se má podle pokynů ke skladovému úkolu přesunout, vychystat nebo přijmout. Slouží jako základ pro porovnání se skutečně zpracovaným množstvím. Plánované množství je důležité pro dashboard „Analýza rozdílů v zásobách“ a KPI „Míra přesnosti zásob“. Porovnáním se skutečným množstvím lze odhalit rozdíly, které mohou ukazovat na chyby při vychystávání nebo příjmu zboží či na chyby při zadávání dat. Tyto informace pomáhají zvyšovat přesnost evidence zásob. Proč je to důležité Slouží jako základ pro výpočet přesnosti zásob a odhalování rozdílů, což je důležité pro udržení správných skladových zásob. Kde data získat Najdete ho v datech skladových úkolů, například v tabulce /SCWM/ORDIM_O, často v poli jako NISTA (cílové množství). Příklady 10050250 | |||
| Plánovaný čas odjezdu PlannedDepartureTime | Plánovaný čas odjezdu zásilky ze skladu. | ||
| Popis Tento atribut udává cílový čas odeslání zásilky po dokončení vychystávání, balení a nakládky. Slouží jako měřítko včasnosti závěrečné fáze procesu expedice. Toto časové razítko je důležité pro dashboard „Včasnost expedice zásilek“. Porovnáním skutečného a plánovaného času expedice lze odhalit zpoždění při nakládce, koordinaci s dopravcem nebo přípravě dokumentace. Analýza tak poskytuje informace o efektivitě plánování logistiky a přepravy. Proč je to důležité Slouží jako základ pro měření včasnosti expedice, která je důležitá pro plánování logistiky a dodržení harmonogramu dopravců. Kde data získat Tyto informace bývají součástí přepravního nebo zásilkového dokladu propojeného se skladovými objednávkami. Další informace najdete v dokumentaci k SAP Extended Warehouse Management. Příklady 2023-10-27T18:00:00Z2023-10-28T14:00:00Z | |||
| Použité zařízení EquipmentUsed | Identifikátor zařízení, například vysokozdvižného vozíku nebo paletového vozíku, použitého při plnění skladového úkolu. | ||
| Popis Tento atribut určuje manipulační techniku přiřazenou ke skladovému úkolu nebo použitou při jeho plnění. Může jít o konkrétní vysokozdvižný vozík, automaticky naváděné vozidlo (AGV) nebo určitý typ vozíku. Tato data jsou základem dashboardu „Využití zdrojů a zařízení“ a KPI „Míra využití zařízení“. Sledováním toho, jaké zařízení se používá pro jednotlivé úkoly a jak dlouho, mohou vedoucí pracovníci analyzovat jeho vytížení, plánovat údržbu a rozhodovat o velikosti a složení vozového parku. Proč je to důležité Umožňuje analyzovat využití a efektivitu zařízení, lépe řídit vozový park a odhalovat nedostatek zdrojů. Kde data získat Pokud je v SAP EWM nastavena správa zdrojů, mohou být tyto informace uložené v podrobnostech skladového úkolu nebo objednávky. Další informace najdete v dokumentaci k SAP Extended Warehouse Management. Příklady VYSOKOZDVIŽNÝ VOZÍK 07AGV 02VOZÍK 15 | |||
| Požadované datum dokončení RequestedCompletionDate | Datum, do kterého má být podle požadavku dokončena skladová objednávka s vysokou prioritou. | ||
| Popis Tento atribut určuje dohodnutou úroveň služeb (SLA) nebo cílové datum dokončení skladové objednávky. Skutečný čas dokončení se porovnává s tímto termínem, aby bylo možné zjistit, zda byla objednávka vyřízena včas. Toto datum je důležité pro výpočet KPI „Míra včasného vyřízení objednávek s prioritou“. Porovnáním skutečného času dokončení s požadovaným datem lze vyhodnotit plnění úrovně služeb a odhalit objednávky, u kterých hrozí zpoždění nebo které už jsou po termínu. Proč je to důležité Určuje SLA objednávky a slouží jako měřítko včasného vyřízení, zejména u položek s vysokou prioritou. Kde data získat Toto datum se často odvozuje od plánovaného data výdeje zboží nebo dodání uvedeného v odchozí dodávce, která vyvolala skladovou objednávku. Další informace najdete v dokumentaci k SAP Extended Warehouse Management. Příklady 2023-10-27T17:00:00Z2023-10-28T12:00:00Z | |||
| Skladová pozice StorageLocation | Konkrétní místo ve skladu, například skladová přihrádka, odkud se zboží přesouvá nebo kam se ukládá. | ||
| Popis Tento atribut určuje fyzické místo, kterého se skladový úkol týká, například výchozí pozici při vychystávání nebo cílovou pozici při zaskladnění. Může označovat širší oblast i konkrétní místo na regálu. Analýza podle skladové pozice může odhalit užitečné informace o provozu, například vytížené zóny s vysokým počtem vychystání nebo místa, kde často dochází ke zpožděním či chybám. V analýze dodržování vychystávacích tras lze tento atribut využít také ke sledování pohybu pracovníků skladem. Proč je to důležité Určuje polohu v rámci skladu a umožňuje analyzovat efektivitu přesunů, dostupnost skladových pozic a optimalizaci vychystávacích tras. Kde data získat Obvykle se nachází v tabulkách skladových úkolů, například /SCWM/ORDIM_O, kde jsou uvedeny informace o výchozí (VLPLA) a cílové (NLPLA) skladové pozici. Příklady 01-02-03BALICÍ STANICE 01ZÓNA VÝDEJE A | |||
| Skutečné množství ActualQuantity | Skutečné množství materiálu potvrzené uživatelem u skladového úkolu. | ||
| Popis Tento atribut udává množství, se kterým pracovník skladu skutečně manipuloval a které potvrdil. Může jít například o množství vychystané ze skladové pozice, uložené do skladu nebo spočítané při příjmu zboží. Porovnání skutečného a plánovaného množství je základem analýzy rozdílů v zásobách. Odchylka mezi těmito hodnotami přímo upozorňuje na výjimku v procesu, kterou je třeba prověřit. Jde o přímé měřítko přesnosti provozu a důležitý vstup pro KPI „Míra přesnosti zásob“ a „Míra chyb při vychystávání“. Proč je to důležité Udává skutečné množství, se kterým se fyzicky manipulovalo. Jeho porovnání s plánovaným množstvím přímo měří přesnost provozu a pomáhá odhalovat chyby. Kde data získat Najdete ho v datech potvrzení skladových úkolů, například v tabulce /SCWM/ORDIM_C, často v poli jako NDIFF (rozdílové množství) nebo jako hodnotu odvozenou z potvrzených množství. Příklady 10049250 | |||
| Včasné dokončení IsOnTime | Logická hodnota, která udává, zda byla skladová objednávka dokončena do požadovaného data. | ||
| Popis Tento příznak jednoduše vyjadřuje, zda byla dodržena SLA. Ověřuje, zda k poslední události dokončení skladové objednávky došlo v požadovaném datu dokončení nebo před ním. Atribut je důležitý pro dashboard „Dodržování termínů u objednávek s prioritou“. Usnadňuje tvorbu KPI a vizualizací, protože umožňuje snadno spočítat a filtrovat včas dokončené a opožděné objednávky. Výkonnost vůči cílové úrovni služeb tak lze rychle vyhodnotit bez složitých výpočtů dat v analytické vrstvě. Proč je to důležité Usnadňuje analýzu plnění SLA, protože u každé objednávky jasně uvádí, zda byla vyřízena včas, nebo se zpožděním. Kde data získat Jde o vypočítaný atribut. Logika porovnává časové razítko aktivity „Skladová objednávka dokončena“ s atributem „RequestedCompletionDate“. Příklady truefalse | |||
| Warehouse Task WarehouseTask | Jedinečný identifikátor jednotlivé skladové úlohy, která je součástí skladové objednávky. | ||
| Popis Warehouse task je pokyn k provedení konkrétního pohybu zboží, například přesunu produktu ze skladové pozice na balicí pracoviště. Warehouse order sdružuje jeden nebo více takových úkolů. Analýza na úrovni úkolů poskytuje podrobnější pohled na provoz skladu. Pomáhá porozumět výkonnosti zdrojů při konkrétních přesunech, najít obtížně dostupné skladové pozice nebo vyhodnotit efektivitu jednotlivých činností při vychystávání a zaskladňování. Proč je to důležité Poskytuje podrobnější údaje pro analýzu jednotlivých přesunů a kroků v rámci větší skladové objednávky. Kde data získat Nachází se v tabulkách skladových úloh, například /SCWM/ORDIM_O (data úloh) a /SCWM/ORDIM_C (data potvrzení). Příklady 300000451300000452300000453 | |||
Aktivity při řízení skladu
| Aktivita | Popis | ||
|---|---|---|---|
| Dokončení balení | Tato aktivita označuje zabalení všech položek zásilky do manipulační jednotky, která je nyní uzavřená a označená štítkem. Zboží je připravené k dalšímu kroku, například k přípravě k expedici nebo nakládce. | ||
| Proč je to důležité Tento milník uzavírá fázi balení. Je podmínkou pro přípravu k expedici a odeslání, takže případné prodlevy přímo prodlužují celkovou dobu průchodu procesem i KPI doby balení a přípravy k expedici. Kde data získat Údaj lze získat při změně stavu manipulační jednotky (HU) na „Closed“ nebo při potvrzení posledního skladového úkolu souvisejícího s balením pro danou WO. Informace o stavu HU obsahuje tabulka /SCWM/HUHDR. Zachycení Určete čas, kdy se konečná přepravní manipulační jednotka spojená s objednávkou uzavře nebo dokončí. Typ události inferred | |||
| Dokončení Warehouse Order | Stav Warehouse Order se změní na „Completed“, jakmile jsou potvrzeny všechny související skladové úlohy. Z hlediska provádění tím končí pracovní balíček. | ||
| Proč je to důležité Jde o hlavní koncovou událost úspěšného procesu. Je nezbytná pro výpočet celkové doby průchodu skladovým procesem a měření celkové propustnosti. Kde data získat Událost se zaznamenává sledováním změny pole stavu (STAT) na „Completed“ v tabulce záhlaví Warehouse Order /SCWM/WHO. Lze použít protokol změn této tabulky (DBTABLOG) nebo vyhrazené pole časového razítka. Zachycení Určete čas, kdy se stav v /SCWM/WHO změní na „C“ (Completed). Typ události inferred | |||
| Potvrzení úlohy vychystávání | Skladový operátor potvrdí dokončení Warehouse Task pro vychystávání. Potvrzení znamená, že zboží bylo fyzicky vyzvednuto z místa uložení. Obvykle se provádí pomocí RF skeneru. | ||
| Proč je to důležité Jde o důležitý milník při vyřizování objednávky, který přímo ovlivňuje dobu od objednávky po expedici. Analýza této aktivity pomáhá měřit produktivitu pracovníků a odhalit úzká místa při vychystávání. Kde data získat Údaj se získá z časového razítka potvrzení (pole CONFIRMED_AT) v tabulce Warehouse Task /SCWM/WT. Stav úkolu (STAT) se změní na „Confirmed“. Zachycení Pro úlohy vychystávání spojené s Warehouse Order použijte čas potvrzení z tabulky /SCWM/WT. Typ události explicit | |||
| Potvrzení úlohy zaskladnění | Skladový operátor potvrdí dokončení Warehouse Task pro zaskladnění. To znamená, že zboží bylo fyzicky umístěno do určené skladovací pozice. Potvrzení v reálném čase aktualizuje umístění zásob. | ||
| Proč je to důležité Jde o důležitý milník příjmového procesu, který potvrzuje, že zásoby jsou připravené k vychystávání. Prodlevy přímo ovlivňují KPI doby od příjmu zboží po zaskladnění. Kde data získat Údaj se získá z časového razítka potvrzení (pole CONFIRMED_AT) v tabulce Warehouse Task /SCWM/WT. Stav úkolu (STAT) se zároveň změní na „Confirmed“. Zachycení Pro úlohy zaskladnění spojené s Warehouse Order použijte čas potvrzení z tabulky /SCWM/WT. Typ události explicit | |||
| Vytvoření Warehouse Order | Tato aktivita označuje vytvoření Warehouse Order (WO), tedy pracovního balíčku složeného z několika skladových úloh. Systém vytváří WO, aby sdružil a uspořádal práci skladových zaměstnanců podle kritérií, jako jsou oblast činnosti, fronta nebo produkt. | ||
| Proč je to důležité Jde o hlavní počáteční událost procesu realizace skladových operací. Analýza doby od vytvoření po první úkon pomáhá odhalit prodlevy při přidělování práce a zdrojů. Kde data získat Událost se zaznamenává podle času vytvoření (pole CREATED_AT) v tabulce záhlaví Warehouse Order /SCWM/WHO. Zachycení Pro každé číslo Warehouse Order (WHO) načtěte čas vytvoření z tabulky /SCWM/WHO. Typ události explicit | |||
| Zaúčtování výdeje zboží | Jde o poslední logistický a finanční krok v systému, kterým se zboží formálně odebere ze skladových zásob. Označuje převod právního vlastnictví a oficiální odjezd zásilky. | ||
| Proč je to důležité Důležitý koncový bod expedičního procesu, který spouští fakturaci a aktualizaci zásob. Je zásadní pro měření včasnosti expedice a KPI doby nakládky a odeslání zásilky. Kde data získat Událost lze odvodit ze zaúčtování dokladu Outbound Delivery přiřazeného k Warehouse Order. Zkontrolujte tok dokladů nebo pole stavu, například DGI_STAT, v tabulce /SCDL/DB_PROCH_O. Zachycení Určete čas, kdy se stav výdeje zboží u souvisejícího Outbound Delivery změní na „Completed“. Typ události explicit | |||
| Dokončení nakládky | Označuje fyzické naložení veškerého zboží určeného k přepravě na přepravní jednotku. Jde o podmínku pro zaúčtování výdeje zboží a odjezd vozidla. | ||
| Proč je to důležité Důležitý milník před odesláním zásilky. Prodlevy mezi dokončením nakládky a výdejem zboží mohou ukazovat na problémy s dokumentací nebo systémem, které zdržují dopravce. Kde data získat Událost lze odvodit ze změny stavu související přepravní jednotky (TU) nebo Outbound Delivery Order na „Loading Completed“. Relevantní jsou stavy v tabulkách /SCWM/TU a /SCDL/DB_PROCH_O. Zachycení Zaznamenejte čas, kdy se stav TU nebo Delivery Order aktualizuje na dokončení nakládky. Typ události inferred | |||
| Potvrzení úlohy přesunu do expediční zóny | Skladník potvrdí přesun zabalené manipulační jednotky z balicího pracoviště nebo konsolidační zóny do určené expediční zóny. Zboží je nyní připravené k nakládce. | ||
| Proč je to důležité Tím se přechází od interního zpracování k expedici. Prodlevy při přesunu do expediční zóny mohou způsobit nepořádek na nakládacích rampách a zmeškání času vyzvednutí dopravcem. Kde data získat Údaj se získá z časového razítka potvrzení (pole CONFIRMED_AT) Warehouse Task (/SCWM/WT) s typem procesu pro přesun do expediční zóny. Zachycení Najděte časové razítko potvrzení skladového úkolu pro přesun do expediční zóny, který je přiřazen k manipulační jednotce nebo dodávce. Typ události explicit | |||
| Vytvoření úlohy vychystávání | Systém vytvoří Warehouse Task (WT) pro vychystání zboží ze skladovací pozice k vyřízení odchozí objednávky. Jde o pokyn systému, aby operátor zboží vychystal. | ||
| Proč je to důležité Začátek fyzického procesu expedice. Čas mezi vytvořením a potvrzením úloh vychystávání je důležitý pro analýzu efektivity vychystávání a dostupnosti zdrojů. Kde data získat Údaj se získá z časového razítka vytvoření (pole CREATED_AT) příslušného Warehouse Task v tabulce /SCWM/WT, jehož typ procesu označuje vychystávání. Zachycení Vyfiltrujte Warehouse Task s typem procesu pro vychystávání, které jsou propojené s Warehouse Order, a použijte jejich čas vytvoření. Typ události explicit | |||
| Vytvoření úlohy zaskladnění | Systém vytvoří konkrétní pokyn, Warehouse Task (WT), k přesunu přijatého zboží z příjmové zóny do cílové skladovací pozice. Tato aktivita znamená, že systém je připraven provést zaskladnění. | ||
| Proč je to důležité Sledováním doby mezi vytvořením a potvrzením úlohy zjistíte, jak dlouho trvá, než skladníci pokyn k zaskladnění převezmou a provedou. Můžete tak odhalit nedostatek pracovníků nebo vybavení. Kde data získat Údaj se získá z časového razítka vytvoření (pole CREATED_AT) příslušného Warehouse Task v tabulce /SCWM/WT, jehož typ procesu označuje zaskladnění. Zachycení Vyfiltrujte Warehouse Task s typem procesu pro zaskladnění, které jsou propojené s Warehouse Order, a použijte jejich čas vytvoření. Typ události explicit | |||
| Zahájení balení | Označuje začátek balení, při kterém se vychystané položky sdružují a ukládají do přepravních obalů nebo manipulačních jednotek. Často jde o první krok na balicím pracovišti. | ||
| Proč je to důležité Označuje začátek fáze služeb s přidanou hodnotou. Měřením doby balení můžete optimalizovat uspořádání pracoviště, počet pracovníků i materiálové zásoby. Kde data získat Tuto událost může být nutné odvodit. Lze ji určit podle prvního naskenování položky nebo manipulační jednotky na balicím pracovišti, které se často zaznamenává v protokolech pracoviště nebo manipulačních jednotek. Zdrojem mohou být tabulky jako /SCWM/PACKSPEC a související protokoly provádění. Zachycení Použijte časové razítko prvního potvrzení Warehouse Task souvisejícího s balením dané dodávky nebo čas vytvoření poslední přepravní HU. Typ události inferred | |||
| Zahájení nakládky | Tato aktivita označuje začátek fyzické nakládky zboží z expediční zóny na nákladní automobil nebo přepravní jednotku. Často ji zahájí uživatel akcí v systému. | ||
| Proč je to důležité Začátek posledního fyzického kroku ve skladu. Analýza doby nakládky pomáhá lépe využívat nakládací rampy a zkrátit dobu odbavení dopravce. Kde data získat Událost lze odvodit ze změny stavu související přepravní jednotky (TU) nebo Outbound Delivery Order na „Loading Started“. Zkontrolovat lze tabulku /SCWM/TU_STATUS. Zachycení Zaznamenejte čas, kdy se stav TU nebo Delivery Order aktualizuje na zahájení nakládky. Typ události inferred | |||
| Zaúčtování příjmu zboží | Označuje formální přijetí zboží od externího dodavatele nebo z výroby do skladových zásob. Jde o důležité finanční a skladové zaúčtování, díky kterému jsou zásoby viditelné a dostupné pro navazující procesy, například zaskladnění. | ||
| Proč je to důležité Jde o důležitý milník příjmového procesu. Doba mezi příjezdem zboží a jeho zaúčtováním může odhalit nahromadění práce v příjmové zóně, které omezuje dostupnost zásob. Kde data získat Událost lze odvodit ze zaúčtování dokladu Inbound Delivery přiřazeného k Warehouse Order. Zkontrolujte tok dokladů nebo pole stavu, například DGRSTAT, v tabulce /SCDL/DB_PROCH_I. Zachycení Určete čas, kdy se stav příjmu zboží u souvisejícího Inbound Delivery změní na „Completed“. Typ události inferred | |||
| Zrušení Warehouse Order | Warehouse Order se zruší před dokončením všech úloh, takže v jeho provádění nelze pokračovat. Důvodem může být nedostupnost zásob, změna zákaznické objednávky nebo jiná výjimka. | ||
| Proč je to důležité Jde o neúspěšnou nebo výjimečnou větev procesu. Analýza četnosti a důvodů zrušení pomáhá odhalit problémy v plánování, přesnosti evidence zásob nebo správě objednávek. Kde data získat Událost se zaznamenává sledováním změny pole stavu (STAT) na „Canceled“ v tabulce záhlaví Warehouse Order /SCWM/WHO. Zachycení Určete čas, kdy se stav v /SCWM/WHO změní na hodnotu označující zrušení. Typ události inferred | |||
Průvodci extrakcí dat
Kroky
- Předpoklad: identifikujte nebo vytvořte CDS Views: Hlavními zdroji dat jsou standardní SAP S/4HANA CDS Views pro řízení skladu. Klíčové pohledy jsou
I_WarehouseOrderpro události na úrovni skladové objednávky aI_WarehouseTaskpro události na úrovni úkolu. Pro související logistické události jsou potřeba také pohledy jakoI_OutboundDeliveryItem,I_InboundDeliveryItemaI_EWMTransportationUnit. Ověřte, že jsou tyto pohledy ve vašem systému aktivní. - Vytvořte vlastní CDS View: Chcete-li spojit data z více zdrojů do jednoho záznamu událostí, vytvořte vlastní CDS view. V prostředí Eclipse použijte ABAP Development Tools (ADT) a založte novou definici dat. Vlastní pohled pomocí
UNION ALLspojí záznamy z různých zdrojů, přičemž každý záznam představuje samostatnou obchodní aktivitu. - Definujte strukturu záznamu událostí: Ve vlastním CDS view určete pole, která budou tvořit sloupce záznamu událostí. Musí mezi nimi být
WarehouseOrder,ActivityName,EventTimea další povinné i doporučené atributy. Namapujte tato pole na odpovídající pole ve standardních CDS views. - Namodelujte události skladové objednávky: Do sjednoceného dotazu přidejte první příkazy
SELECT. Výběrem zI_WarehouseOrdervytvořte událost „Warehouse Order Created“ s časovým razítkem vytvoření. Dalšími příkazySELECTvytvořte události „Warehouse Order Completed“ a „Warehouse Order Canceled“. Filtrujte je podle stavu objednávky a použijte odpovídající časová razítka potvrzení nebo změny. - Namodelujte události skladových úkolů: Přidejte příkazy
SELECTzI_WarehouseTask. Události „Putaway Task Created“ a „Putaway Task Confirmed“ vytvořte filtrováním podle kategorií skladových procesů souvisejících s ukládáním zboží. Podobně vytvořte události „Picking Task Created“, „Picking Task Confirmed“ a „Staging Task Confirmed“ podle příslušných kategorií procesů a použijte časová razítka vytvoření a potvrzení. - Namodelujte události pohybu zboží: Připojte pohledy související s dodávkami ke skladovým úkolům, abyste zachytili pohyby zboží. Pro událost „Goods Receipt Posted“ vyberte data z
I_InboundDeliveryItema použijteActualGoodsMovementDateTime. Pro událost „Goods Issue Posted“ použijte stejné pole zI_OutboundDeliveryItema propojte záznam s příslušnou skladovou objednávkou nebo úkolem. - Namodelujte události nakládky a balení: Z pohledu
I_EWMTransportationUnitnačtěte události „Loading Started“ a „Loading Completed“ pomocí příslušných časových razítek. Balení může být složitější. Jako náhradní řešení použijte pohled na Handling Unit: čas vytvoření může představovat událost „Packing Started“ a čas změny stavu událost „Packing Completed“. Tento krok může být nutné upravit podle konkrétního procesu balení. - Přidejte anotace pro zpřístupnění CDS View: Do definice vlastního CDS view přidejte anotaci
@OData.publish: true. SAP tak podle struktury pohledu automaticky vygeneruje službu OData. - Aktivujte CDS View a službu OData: Aktivujte novou definici dat v ADT. Poté přejděte do systému SAP Gateway hub a pomocí transakce
/IWFND/MAINT_SERVICEvyhledejte a aktivujte nově vygenerovanou službu OData. Data pak budou dostupná prostřednictvím koncového bodu REST API. - Extrahujte data: Pomocí cílové datové platformy nebo nástroje ETL se připojte k aktivovanému koncovému bodu služby OData. Filtry, například omezení rozsahu dat podle
EventTime, použijte přímo v URI OData (např.?$filter=EventTime ge datetime'2023-01-01T00:00:00'). - Připravte data pro process mining: Uložte extrahovaná data do plochého souboru, například CSV, a názvy sloupců nastavte podle požadovaných atributů ProcessMind (
WarehouseOrder,ActivityName,EventTimeatd.). Výsledný soubor nahrajte do nástroje process mining.
Konfigurace
- Vlastní CDS View: Pro sjednocení dat o událostech je nutné vytvořit samostatné CDS View, například
Z_C_EWM_EVENTLOG_CDS. Jde o hlavní objekt pro extrakci. - Služba OData: Službu OData vytvořenou z vlastního CDS View je nutné aktivovat. Název služby obvykle odpovídá názvu CDS View s příponou
_CDS. - Filtr podle období: Při volání API OData je zásadní filtrovat podle pole
EventTime. Pro první analýzu obvykle postačí data za 3 až 6 měsíců. Bez filtru může dotaz skončit chybou timeout nebo způsobit problémy s výkonem. - Filtr podle entit: Rozsah dat můžete dále omezit filtrováním atributů, jako jsou číslo skladu (
Warehouse), typ skladové objednávky (WarehouseOrderType) nebo konkrétní materiály (MaterialNumber). - Oprávnění v systému: Uživatel, který vytváří CDS View, potřebuje v ADT oprávnění vývojáře SAP. Uživatel nebo servisní účet volající API OData musí mít oprávnění k přístupu k podkladovým datům řízení skladu.
Ukázkový dotaz sql
DEFINE VIEW Z_C_EWM_EVENTLOG_CDS
WITH PARAMETERS
P_StartDate : abap.dats,
P_EndDate : abap.dats
AS SELECT FROM I_WarehouseOrder AS WO
{
-- Required Attributes
WO.WarehouseOrder AS WarehouseOrder,
CAST('Warehouse Order Created' AS abap.char(40)) AS ActivityName,
WO.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
-- Recommended Attributes
CAST(NULL AS abap.tstp) AS EventEndTime,
CAST(NULL AS abap.char(40)) AS MaterialNumber,
WO.CreationUser AS User,
WO.WarehouseOrderType AS WarehouseOrderType,
WO.WarehouseOrderStatus AS WarehouseOrderStatus,
WO.Priority AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
CAST(WO.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseOrder AS WO
{
WO.WarehouseOrder,
CAST('Warehouse Order Completed' AS abap.char(40)) AS ActivityName,
WO.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
CAST(NULL AS abap.char(40)) AS MaterialNumber,
WO.ConfirmationUser AS User,
WO.WarehouseOrderType,
WO.WarehouseOrderStatus,
WO.Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WO.WarehouseOrderStatus = 'C' AND
CAST(WO.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseOrder AS WO
{
WO.WarehouseOrder,
CAST('Warehouse Order Canceled' AS abap.char(40)) AS ActivityName,
WO.LastChangeDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
CAST(NULL AS abap.char(40)) AS MaterialNumber,
WO.LastChangeUser AS User,
WO.WarehouseOrderType,
WO.WarehouseOrderStatus,
WO.Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WO.WarehouseOrderStatus = 'X' AND
CAST(WO.LastChangeDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
LEFT JOIN I_InboundDeliveryItem AS IBD ON WT.DeliveryDocument = IBD.InboundDelivery AND WT.DeliveryDocumentItem = IBD.InboundDeliveryItem
{
WT.WarehouseOrder,
CAST('Goods Receipt Posted' AS abap.char(40)) AS ActivityName,
IBD.ActualGoodsMovementDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
IBD.LastChangedByUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '1' AND -- Putaway
IBD.GoodsMovementStatus = 'C' AND -- Completed
CAST(IBD.ActualGoodsMovementDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Putaway Task Created' AS abap.char(40)) AS ActivityName,
WT.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
WT.ConfirmationDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
WT.CreationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '1' AND -- Putaway
CAST(WT.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Putaway Task Confirmed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '1' AND -- Putaway
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Picking Task Created' AS abap.char(40)) AS ActivityName,
WT.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
WT.ConfirmationDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
WT.CreationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '2' AND -- Stock Removal
CAST(WT.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Picking Task Confirmed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '2' AND -- Stock Removal
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Packing Started' AS abap.char(40)) AS ActivityName,
WT.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
WT.ConfirmationDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
WT.CreationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '5' AND -- Packing
CAST(WT.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Packing Completed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '5' AND -- Packing
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Staging Task Confirmed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '4' AND -- Staging
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_EWMTransportationUnit AS TU
INNER JOIN I_WarehouseTask AS WT ON TU.TransportationUnit = WT.ShipmentOrTransportationUnit
{
WT.WarehouseOrder,
CAST('Loading Started' AS abap.char(40)) AS ActivityName,
TU.LoadingStartDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
TU.LoadingEndDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
TU.LastChangeUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
TU.LoadingStartDateTime IS NOT NULL AND
CAST(TU.LoadingStartDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_EWMTransportationUnit AS TU
INNER JOIN I_WarehouseTask AS WT ON TU.TransportationUnit = WT.ShipmentOrTransportationUnit
{
WT.WarehouseOrder,
CAST('Loading Completed' AS abap.char(40)) AS ActivityName,
TU.LoadingEndDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
TU.LastChangeUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
TU.LoadingEndDateTime IS NOT NULL AND
TU.LoadingStatus = 'C' AND
CAST(TU.LoadingEndDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
LEFT JOIN I_OutboundDeliveryItem AS OBD ON WT.DeliveryDocument = OBD.OutboundDelivery AND WT.DeliveryDocumentItem = OBD.OutboundDeliveryItem
{
WT.WarehouseOrder,
CAST('Goods Issue Posted' AS abap.char(40)) AS ActivityName,
OBD.ActualGoodsMovementDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
OBD.LastChangedByUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '2' AND -- Stock Removal
OBD.GoodsMovementStatus = 'C' AND -- Completed
CAST(OBD.ActualGoodsMovementDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate Kroky
- Ověřte, že máte schválený přímý přístup pro čtení databázového schématu SAP EWM. Určete fyzické databázové objekty, které obsahují hlavičky skladových objednávek, skladové úkoly, historii stavů skladových objednávek, zaúčtování příjmu a výdeje zboží, balení, přípravu zboží k expedici a nakládku. Logické odkazy /SCWM/WHO a /SCWM/WT se běžně používají jako výchozí bod. Ve svém systému ale ověřte skutečné objekty, pole, kódy stavů, význam časových razítek a databázové schéma.
- Získejte ověřené mapování polí od technického vlastníka SAP EWM nebo z datového slovníku. Namapujte ID skladové objednávky, typ skladové objednávky, stav, prioritu, ID skladového úkolu, kategorii úkolu nebo typ procesu, materiál, uživatele, časové razítko vytvoření, časové razítko potvrzení, časová razítka balení, přípravy zboží k expedici a nakládky, časové razítko příjmu zboží, časové razítko výdeje zboží, zdrojový systém a časové razítko poslední aktualizace. Nepředpokládejte, že pole existuje ve stejné tabulce nebo že kód stavu znamená totéž ve všech nasazeních.
- Nakonfigurujte připojení pro extrakci pomocí databázového účtu pouze pro čtení, produkčního nebo reportovacího schématu a parametrů pro počáteční a koncové datum extrakce, název zdrojového systému a případné firemní filtry. Filtr data použijte na časové razítko příslušné události, nejen na čas vytvoření skladové objednávky. Nevyloučíte tak události, ke kterým došlo později v průběhu jejího životního cyklu.
- Vytvořte řádky událostí tak, že pro každou výslovně požadovanou aktivitu vyberete jeden řádek. Dotaz musí pro každou aktivitu použít ověřená zdrojová pole a nesmí spoléhat na to, že ProcessMind události odvodí. Pokud aktivitu zachycuje historie stavů nebo záznam aplikace, nikoli aktuální pole hlavičky, použijte tuto historii nebo záznam a zachovejte čas události i uživatele, který ji provedl.
- Převeďte všechna časová razítka aktivit do jednoho časového pásma, nejlépe UTC, nebo zdokumentujte časové pásmo aplikačního serveru SAP. Zdrojové kódy stavů a procesů převeďte na přesné názvy aktivit požadované v záznamu událostí: Warehouse Order Created, Goods Receipt Posted, Putaway Task Created, Putaway Task Confirmed, Picking Task Created, Picking Task Confirmed, Packing Started, Packing Completed, Staging Task Confirmed, Loading Started, Loading Completed, Goods Issue Posted, Warehouse Order Completed a Warehouse Order Canceled.
- Zajistěte, aby každý výstupní řádek obsahoval WarehouseOrder, ActivityName, EventTime, SourceSystem a LastDataUpdate. Pokud existuje spolehlivé časové razítko dokončení, vyplňte také EventEndTime. U událostí na úrovni úkolu přiřaďte úkol k jeho skladové objednávce. Pokud jedna skladová objednávka obsahuje více relevantních úkolů, ponechte samostatný řádek pro každou událost úkolu a jako identifikátor případu zachovejte skladovou objednávku. Pokud to cílový formát pro import umožňuje, použijte stabilní pomocný identifikátor, například ID úkolu nebo zdrojové události.
- Před exportem výsledek ověřte. Zkontrolujte, že se všech 14 názvů aktivit vyskytuje tam, kde zdrojová data obsahují odpovídající obchodní události, že časová razítka spadají do požadovaného období, že pole skladové objednávky nejsou neočekávaně prázdná a že případné duplicitní řádky lze vysvětlit více úkoly nebo opakovanými změnami stavu. Počty porovnejte s provozními reporty SAP nebo s nezávisle schváleným výpisem.
- Exportujte výsledek jako soubor s oddělovači kompatibilní s ProcessMind nebo jako výsledek databázového dotazu, vždy s jednou událostí na řádek. Zachovejte přesné požadované názvy sloupců, použijte jednoznačný formát časových razítek, například ISO 8601, textové hodnoty podle potřeby uzavřete do uvozovek a přidejte řádek záhlaví. Soubor nahrajte do ProcessMind nebo nakonfigurujte databázové připojení. Nastavte WarehouseOrder jako identifikátor případu, ActivityName jako aktivitu, EventTime jako počáteční časové razítko a EventEndTime jako koncové časové razítko, pokud je k dispozici.
Konfigurace
- Mapování zdrojových objektů: Ověřte fyzické databázové objekty a pole pro skladové objednávky, skladové úkoly, historii stavů, pohyby zboží, balení, přípravu k expedici a nakládku. Relevantní mohou být logické objekty /SCWM/WHO a /SCWM/WT, před implementací je však nutné potvrdit jejich podobu v nasazené databázi.
- Období: Začněte s kontrolovaným obdobím tří až šesti měsíců. Pro úvodní testování zvolte kratší období a po porovnání výsledků ho prodlužte. Mezi přírůstkovými běhy ponechte malý překryv, abyste zachytili pozdější zaúčtování a opravy.
- Výběr časového razítka události: Pro vytvořené činnosti použijte časová razítka vytvoření, pro potvrzené činnosti časová razítka potvrzení, pro příjem a výdej zboží časová razítka zaúčtování a pro balení, přípravu k expedici a nakládku ověřená časová razítka provedení. Nepoužívejte čas vytvoření skladové objednávky jako náhradu za čas všech událostí.
- Filtry: Používejte pouze ověřené obchodní filtry, například číslo skladu, kód společnosti, typ dokladu, typ skladové objednávky, oblast činnosti, frontu, závod nebo zdrojový systém. Pole kódu společnosti a typu dokladu mohou být v souvisejících objektech, proto je namapujte v cílovém systému.
- Mapování stavů: Nastavte přesné kódy stavů nebo procesů SAP, které označují dokončené a zrušené skladové objednávky. Mapování ověřte s funkčním správcem EWM, protože kódy stavů i způsob jejich ukládání se mohou lišit podle verze a implementace.
- SourceSystem: Nastavte stabilní hodnotu, která označuje produkční nebo reportovací instanci EWM. Neodvozujte ji z obchodního pole, které může být prázdné.
- LastDataUpdate: Pro každý řádek v rámci jednoho běhu konzistentně vyplňte čas extrakce nebo aktualizace zdroje.
- Přírůstková extrakce: Použijte uloženou horní hranici založenou na posledním úspěšně extrahovaném časovém razítku zdroje a ponechte překryvné období pro pozdě doručené záznamy. Pokud jsou k dispozici ověřené identifikátory zdroje, použijte je k odstranění duplicit.
- Výkon: Omezte období hned na začátku, vybírejte jen potřebné sloupce, filtrujte podle indexovaných polí, ve filtrech nepoužívejte funkce nad indexovanými sloupci s časovými razítky a velká období zpracovávejte po dnech nebo týdnech. Pokud je to povoleno, použijte repliku pro reporting.
- Strategie spojování: Ověřte vztah mezi skladovými objednávkami a skladovými úkoly. Zabraňte nechtěnému násobení řádků při spojování úkolů, stavů, materiálů a manipulačních jednotek. Před spojením agregujte data nebo vyberte odpovídající záznam události.
- Časová pásma: Nastavte časové pásmo zdroje a pravidla převodu. Časová razítka ukládejte jednotně a zdokumentujte práci s přechodem na letní čas.
- Předpoklady: Oprávnění k databázi pouze pro čtení, schválený přístup ke schématu EWM, ověřené mapování podle datového slovníku, oprávnění číst příslušné provozní objekty a objekty historie a schválená konfigurace importu ProcessMind. Potřebné moduly SAP, licence a oprávnění závisí na nasazené architektuře EWM. Jejich dostupnost musí potvrdit správce systému.
Ukázkový dotaz sql
WITH
params AS (
SELECT
CAST('[Start date and time]' AS TIMESTAMP) AS start_time,
CAST('[End date and time]' AS TIMESTAMP) AS end_time,
CAST('[Source system name]' AS VARCHAR(255)) AS source_system,
CAST(CURRENT_TIMESTAMP AS TIMESTAMP) AS last_data_update
),
warehouse_orders AS (
SELECT
CAST(wo.[Warehouse order ID field] AS VARCHAR(255)) AS WarehouseOrder,
CAST(wo.[Warehouse order type field] AS VARCHAR(255)) AS WarehouseOrderType,
CAST(wo.[Warehouse order status field] AS VARCHAR(255)) AS WarehouseOrderStatus,
CAST(wo.[Priority field] AS VARCHAR(255)) AS Priority,
CAST(wo.[Warehouse order creation timestamp field] AS TIMESTAMP) AS WarehouseOrderCreatedTime,
CAST(wo.[Warehouse order completion timestamp field] AS TIMESTAMP) AS WarehouseOrderCompletedTime,
CAST(wo.[Warehouse order cancellation timestamp field] AS TIMESTAMP) AS WarehouseOrderCanceledTime,
CAST(wo.[Material number field] AS VARCHAR(255)) AS MaterialNumber,
CAST(wo.[User field] AS VARCHAR(255)) AS [User]
FROM [Your warehouse order header table] wo
),
warehouse_tasks AS (
SELECT
CAST(wt.[Warehouse order ID field] AS VARCHAR(255)) AS WarehouseOrder,
CAST(wt.[Warehouse task ID field] AS VARCHAR(255)) AS WarehouseTask,
CAST(wt.[Task category or process type field] AS VARCHAR(255)) AS TaskType,
CAST(wt.[Material number field] AS VARCHAR(255)) AS MaterialNumber,
CAST(wt.[Task creation timestamp field] AS TIMESTAMP) AS TaskCreatedTime,
CAST(wt.[Task confirmation timestamp field] AS TIMESTAMP) AS TaskConfirmedTime,
CAST(wt.[User field] AS VARCHAR(255)) AS [User]
FROM [Your warehouse task table] wt
),
events AS (
SELECT wo.WarehouseOrder, 'Warehouse Order Created' AS ActivityName, wo.WarehouseOrderCreatedTime AS EventTime, CAST(NULL AS TIMESTAMP) AS EventEndTime, wo.MaterialNumber, wo.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_orders wo
UNION ALL
SELECT gr.[Warehouse order ID field], 'Goods Receipt Posted', CAST(gr.[Goods receipt posting timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(gr.[Material number field] AS VARCHAR(255)), CAST(gr.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your goods receipt posting table] gr LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(gr.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT wt.WarehouseOrder, 'Putaway Task Created', wt.TaskCreatedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified putaway task type]'
UNION ALL
SELECT wt.WarehouseOrder, 'Putaway Task Confirmed', wt.TaskConfirmedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified putaway task type]' AND wt.TaskConfirmedTime IS NOT NULL
UNION ALL
SELECT wt.WarehouseOrder, 'Picking Task Created', wt.TaskCreatedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified picking task type]'
UNION ALL
SELECT wt.WarehouseOrder, 'Picking Task Confirmed', wt.TaskConfirmedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified picking task type]' AND wt.TaskConfirmedTime IS NOT NULL
UNION ALL
SELECT pk.[Warehouse order ID field], 'Packing Started', CAST(pk.[Packing start timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(pk.[Material number field] AS VARCHAR(255)), CAST(pk.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your packing event table] pk LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(pk.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT pk.[Warehouse order ID field], 'Packing Completed', CAST(pk.[Packing completion timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(pk.[Material number field] AS VARCHAR(255)), CAST(pk.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your packing event table] pk LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(pk.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT st.[Warehouse order ID field], 'Staging Task Confirmed', CAST(st.[Staging confirmation timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(st.[Material number field] AS VARCHAR(255)), CAST(st.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your staging event table] st LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(st.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT ld.[Warehouse order ID field], 'Loading Started', CAST(ld.[Loading start timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(ld.[Material number field] AS VARCHAR(255)), CAST(ld.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your loading event table] ld LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(ld.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT ld.[Warehouse order ID field], 'Loading Completed', CAST(ld.[Loading completion timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(ld.[Material number field] AS VARCHAR(255)), CAST(ld.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your loading event table] ld LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(ld.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT gi.[Warehouse order ID field], 'Goods Issue Posted', CAST(gi.[Goods issue posting timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(gi.[Material number field] AS VARCHAR(255)), CAST(gi.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your goods issue posting table] gi LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(gi.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT wo.WarehouseOrder, 'Warehouse Order Completed', wo.WarehouseOrderCompletedTime, CAST(NULL AS TIMESTAMP), wo.MaterialNumber, wo.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_orders wo WHERE wo.WarehouseOrderCompletedTime IS NOT NULL
UNION ALL
SELECT wo.WarehouseOrder, 'Warehouse Order Canceled', wo.WarehouseOrderCanceledTime, CAST(NULL AS TIMESTAMP), wo.MaterialNumber, wo.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_orders wo WHERE wo.WarehouseOrderCanceledTime IS NOT NULL
)
SELECT
e.WarehouseOrder,
e.ActivityName,
e.EventTime,
e.EventEndTime,
p.source_system AS SourceSystem,
p.last_data_update AS LastDataUpdate,
e.MaterialNumber,
e.[User],
e.WarehouseOrderType,
e.WarehouseOrderStatus,
e.Priority
FROM events e
CROSS JOIN params p
WHERE e.WarehouseOrder IS NOT NULL
AND e.EventTime IS NOT NULL
AND e.EventTime >= p.start_time
AND e.EventTime < p.end_time
ORDER BY e.WarehouseOrder, e.EventTime, e.ActivityName; Chcete začít?
Začněte zlepšovat skladový provoz ještě dnes. Využijte tuto šablonu k odhalení možností, jak zvýšit efektivitu a urychlit vyřizování objednávek.
Omezte chyby při vychystávání a zlepšete řízení skladu
Dosáhněte 99,5% přesnosti skladových zásob a během několika týdnů odstraňte zpoždění při vyřizování objednávek.
Bez platební karty, nastavení zabere jen několik minut.