Ihre Datenvorlage für das Warehouse Management
Ihre Datenvorlage für das Warehouse Management
- Empfohlene Attribute für eine umfassende Analyse
- Schlüsselaktivitäten, die Sie über Ihren Prozess hinweg verfolgen können
- Anleitung zur Datenextraktion aus SAP EWM
Lagerverwaltungs-Attribute
| Name | Beschreibung | ||
|---|---|---|---|
| Lagerauftrag WarehouseOrder | Die eindeutige Kennung für einen Lagerauftrag, der eine Reihe von Lageraufgaben bündelt, die von einer Ressource ausgeführt werden sollen. | ||
| Beschreibung Der Lagerauftrag dient als primärer Case-Identifier zur Verfolgung des End-to-End-Prozesses der Warenabwicklung im Lager. Er stellt ein Arbeitspaket dar, z. B. die Kommissionierung von Artikeln für eine Auslieferung oder die Einlagerung von empfangenen Waren. Jeder Lagerauftrag enthält eine oder mehrere Lageraufgaben. Im Process Mining ermöglicht die Analyse nach Lagerauftrag eine umfassende Sicht auf den gesamten Lebenszyklus eines spezifischen Arbeitspakets. Dies hilft bei der Identifizierung von Engpässen, der Messung der gesamten Zykluszeiten von der Erstellung bis zur Fertigstellung und dem Verständnis des vollständigen Aktivitätsflusses, der mit einer einzelnen logistischen Anweisung verbunden ist. Bedeutung Dies ist der Kern-Identifier, der alle zusammenhängenden Lageraktivitäten verbindet und eine End-to-End-Prozessanalyse sowie die Messung der Zykluszeit für eine einzelne Arbeitseinheit ermöglicht. Datenquelle Dieser Identifier ist typischerweise in der SAP EWM Lagerauftrags-Kopfdatentabelle zu finden, wie z.B. /SCWM/WHO. Beispiele 200000145200000146200000147 | |||
| Aktivitätsname ActivityName | Der Name der spezifischen Lagerverwaltungsaktivität oder des Ereignisses, das aufgetreten ist, wie z.B. 'Kommissionieraufgabe erstellt' oder 'Warenausgang gebucht'. | ||
| Beschreibung Dieses Attribut beschreibt einen einzelnen Schritt oder ein Ereignis innerhalb des Lagerverwaltungsprozesses. Diese Aktivitäten sind die Bausteine der Prozesslandkarte und repräsentieren Aufgaben wie Erstellung, Bestätigung, Verpackung, Verladung und Warenbewegungen. Die Analyse der Reihenfolge und Häufigkeit dieser Aktivitäten ist grundlegend für das Process Mining. Es hilft, den Prozessfluss zu visualisieren, häufige und seltene Pfade zu identifizieren, Abweichungen vom Standardverfahren zu erkennen und spezifische Schritte zu lokalisieren, die Verzögerungen oder Nacharbeit verursachen. Bedeutung Es definiert die Schritte im Prozess und bildet die Grundlage der Prozesskarte, was die Analyse von Prozessfluss, Abweichungen und Engpässen (Bottlenecks) ermöglicht. Datenquelle Abgeleitet aus Statusänderungen, Event-Nachrichten oder Transaktions-Logs im Zusammenhang mit Warehouse Orders und Tasks in Tabellen wie /SCWM/ORDIM_C (Bestätigungen) oder durch Interpretation von Statusfeldern in /SCWM/WHO und /SCWM/ORDIM_O. Beispiele Kommissionieraufgabe bestätigtEinlagerungsaufgabe erstellt`Wareneingang` gebuchtLagerauftrag abgeschlossen | |||
| Letzte Datenaktualisierung LastDataUpdate | Der `Timestamp`, der angibt, wann die Daten für diesen Datensatz zuletzt aus dem Quellsystem aktualisiert wurden. | ||
| Beschreibung Dieses Attribut erfasst, wann die Daten zuletzt aus dem Quellsystem extrahiert wurden. Es liefert entscheidenden Kontext zur Aktualität der analysierten Daten. In jeder Analyse oder jedem Dashboard ist die Kenntnis der Aktualität der Daten wesentlich für fundierte Entscheidungen. Dieser Timestamp hilft Benutzern zu verstehen, ob sie Echtzeitinformationen oder eine Momentaufnahme zu einem bestimmten Zeitpunkt betrachten, und Erwartungen an die Datenaktualität zu managen. Bedeutung Zeigt die Aktualität der Daten an, was entscheidend ist, damit Benutzer verstehen, wie aktuell ihre Prozessanalyse ist. Datenquelle Dies ist ein Metadatenfeld, das typischerweise während des Datenextraktions- (ETL-) Prozesses generiert und hinzugefügt wird. Es spiegelt den Timestamp des Datenladevorgangs wider. Beispiele 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Quellsystem SourceSystem | Identifiziert das Quellsystem, aus dem die Daten extrahiert wurden, zum Beispiel die SAP EWM Produktionsinstanz. | ||
| Beschreibung Dieses Attribut spezifiziert das führende System (System of Record), aus dem die Lagerverwaltungsdaten stammen. In einer Unternehmensumgebung mit mehreren Systemen ist es entscheidend, den Datenursprung für Rückverfolgbarkeit und Kontext zu kennzeichnen. Für die Analyse hilft dies, Prozesse zu unterscheiden, die mehrere Systeme umfassen könnten, oder ermöglicht den Vergleich von Prozessen aus verschiedenen Instanzen, wie z.B. separaten Systemen für verschiedene Regionen. Es gewährleistet eine klare und auditierbare Datenherkunft. Bedeutung Bietet Rückverfolgbarkeit und Kontext, insbesondere in Umgebungen mit mehreren SAP-Instanzen oder integrierten Systemen, und gewährleistet eine klare Datenherkunft. Datenquelle Dies ist typischerweise ein statischer Wert, der während des Datenextraktions-, Transformations- und Ladeprozesses (ETL) hinzugefügt wird und die spezifische SAP S/4HANA- oder EWM-Instanz identifiziert. Beispiele SAP_EWM_PROD_EUS4H_US_100EWM_APAC_PRD | |||
| Startzeit EventTime | Der Timestamp, der angibt, wann die Aktivität oder das Ereignis begonnen hat. | ||
| Beschreibung Dieses Attribut erfasst das genaue Datum und die Uhrzeit, zu der eine spezifische Lageraktivität stattgefunden hat. Es ist das primäre zeitliche Element, das zur Anordnung von Ereignissen und zur Berechnung von Dauern zwischen ihnen verwendet wird. Im Process Mining ist die Startzeit wesentlich für die Konstruktion der chronologischen Abfolge von Ereignissen für jeden Case. Sie wird verwendet, um Zykluszeiten, Wartezeiten und Bearbeitungszeiten zu berechnen, die für Leistungsanalysen, Engpassidentifikation und SLA-Überwachung entscheidend sind. Bedeutung Dieser Timestamp ist entscheidend für die chronologische Anordnung von Ereignissen und die Berechnung aller zeitbasierten Leistungsmetriken, wie z.B. Zykluszeiten und Dauern. Datenquelle Typischerweise in Ereignis- oder Bestätigungstabellen wie /SCWM/ORDIM_C (z.B. Feld CONF_TIMESTAMP) zu finden oder in Statusänderungsprotokollen, die mit Lageraufträgen und -aufgaben verbunden sind. Beispiele 2023-10-26T10:00:00Z2023-10-26T10:15:30Z2023-10-26T11:20:00Z | |||
| `Materialnummer` MaterialNumber | Die eindeutige Kennung für das Produkt oder Material, das in der Lageraufgabe bearbeitet wird. | ||
| Beschreibung Dieses Attribut spezifiziert das Material, das bewegt, kommissioniert, verpackt oder empfangen wird. Es ist eine kritische Dimension für die Segmentierung und Analyse der Lagerleistung basierend auf Produkteigenschaften. Die Analyse nach Materialnummer hilft, Fragen zu beantworten, wie z.B. welche Produkte die längsten Einlagerungszeiten haben, welche am häufigsten in Kommissionierfehler verwickelt sind oder welche Qualitätsprüfungen erfordern. Dies ist unerlässlich für die Dashboards 'Wareneingangs- und Einlagerungsleistung' und 'Durchlaufzeit der Qualitätsprüfung'. Bedeutung Ermöglicht die Filterung und Segmentierung von Prozessdaten nach Produkt, was entscheidend ist, um produktspezifische Probleme bei der Handhabung, Lagerung oder Qualitätskontrolle zu identifizieren. Datenquelle Diese Informationen sind typischerweise in Lageraufgabentabellen wie /SCWM/ORDIM_O verfügbar, verknüpft mit den Materialstammdaten. Beispiele FIN-1001RAW-2050SFIN-300-A | |||
| Bearbeitungszeit ProcessingTime | Die Dauer der aktiven Bearbeitung einer spezifischen `Activity`. | ||
| Beschreibung Die Bearbeitungszeit misst die tatsächliche 'Bearbeitungsdauer' für eine Aktivität, berechnet als Differenz zwischen ihrem Start- und End-Timestamp. Dies unterscheidet sich von der Zykluszeit, die Wartezeiten zwischen Aktivitäten einschließt. Diese Kennzahl ist grundlegend für die Leistungsanalyse, insbesondere für Dashboards wie 'Kommissionier- und Packeffizienz'. Sie hilft, die spezifischen Aufgaben zu identifizieren, die am zeitaufwendigsten sind, sodass Manager ihre Verbesserungsbemühungen auf Aktivitäten mit den längsten Bearbeitungszeiten konzentrieren und so den Gesamtdurchsatz verbessern können. Bedeutung Misst die aktive Arbeitsdauer einer Activity und hilft dabei, die zeitaufwändigsten Tasks zu identifizieren und bildet eine Grundlage für die Ressourcenkapazitätsanalyse. Datenquelle Dies ist eine berechnete Kennzahl, abgeleitet durch Subtraktion der EventTime von der EventEndTime für jede Aktivität. Beispiele 3009150 | |||
| Benutzer-ID User | Die Kennung des Lagerbedieners oder Benutzers, der die Aktivität bestätigt oder ausgeführt hat. | ||
| Beschreibung Dieses Attribut erfasst die Benutzer-ID der Person, die für die Ausführung einer Lageraufgabe verantwortlich ist. Dies könnte der Kommissionierer sein, der eine Kommissionierung bestätigt hat, der Packer an einer Packstation oder der Gabelstaplerfahrer, der eine Einlagerung bestätigt. Diese Daten sind entscheidend für das Dashboard 'Ressourcen- und Gerätenutzung'. Es ermöglicht die Analyse der individuellen oder Teamleistung, hilft bei der Identifizierung von Schulungsbedarfen und kann verwendet werden, um die Arbeitslasten im gesamten Lagerpersonal effektiver zu verteilen. Bedeutung Ordnet Arbeiten einer bestimmten Person zu, was eine Leistungsanalyse nach Benutzer oder Team ermöglicht und das Ressourcenmanagement sowie den Arbeitslastausgleich unterstützt. Datenquelle Typischerweise in den Bestätigungsdaten für eine Lageraufgabe zu finden, zum Beispiel in der Tabelle /SCWM/ORDIM_C, Feld UNAME. Beispiele JSMITHARODRIGUEZOPERATOR_05 | |||
| Endzeit EventEndTime | Der Timestamp, der anzeigt, wann eine Aktivität oder ein Event abgeschlossen wurde. | ||
| Beschreibung Dieses Attribut erfasst Datum und Uhrzeit, zu der eine spezifische Lageraktivität abgeschlossen wurde. Sie ist bei atomaren Ereignissen oft identisch mit der Startzeit, kann aber bei Aktivitäten mit messbarer Dauer, wie Verpacken oder Verladen, abweichen. Eine separate Endzeit ermöglicht die präzise Berechnung der Bearbeitungszeit für einzelne Aktivitäten. Dies ist entscheidend für Performance-Dashboards, die die Dauer spezifischer Schritte analysieren, wie z.B. 'Kommissionier- und Packeffizienz', und hilft dabei, die zeitintensivsten Aufgaben zu identifizieren. Bedeutung Ermöglicht die präzise Berechnung der Dauer individueller Activities, was entscheidend ist, um zeitaufwändige Schritte und ressourcenintensive Tasks zu identifizieren. Datenquelle Oft identisch mit dem Start-Timestamp für diskrete Events. Bei langlaufenden Tasks kann es ein separates Feld in Tabellen wie /SCWM/ORDIM_C sein oder aus einer nachfolgenden Statusänderung abgeleitet werden. Beispiele 2023-10-26T10:05:00Z2023-10-26T10:25:45Z2023-10-26T11:20:00Z | |||
| Lagerauftragsstatus WarehouseOrderStatus | Der aktuelle oder endgültige Status des Lagerauftrags, wie z. B. 'Abgeschlossen' oder 'Storniert'. | ||
| Beschreibung Dieses Attribut gibt das Endergebnis eines Lagerauftrags an. Das Verständnis, ob ein Auftrag erfolgreich abgeschlossen oder storniert wurde, ist entscheidend für die Analyse der Prozess-Erfolgsraten und die Identifizierung von Gründen für die Nicht-Fertigstellung. Dies ist ein Schlüsselfilter für viele Analysen. Wenn beispielsweise die End-to-End Lager-Zykluszeit berechnet wird, wird die Analyse typischerweise nur für abgeschlossene Aufträge durchgeführt. Es hilft auch bei der Identifizierung und Untersuchung der Häufigkeit und Ursachen von stornierten Aufträgen. Bedeutung Zeigt das Ergebnis eines Case an, was die Filterung nach abgeschlossenen versus stornierten Aufträgen ermöglicht, was entscheidend für eine genaue Zykluszeit- und Durchsatzanalyse ist. Datenquelle Das Statusfeld befindet sich typischerweise in der Kopfdatentabelle des Lagerauftrags, /SCWM/WHO. Beispiele AbgeschlossenIn BearbeitungStorniert | |||
| Lagerauftragstyp WarehouseOrderType | Klassifiziert den Warehouse Order nach seinem Zweck, wie Putaway, Picking oder Internal Replenishment. | ||
| Beschreibung Der Lagerauftragstyp kategorisiert Aufträge basierend auf der logistischen Funktion, die sie erfüllen. Diese Unterscheidung ist grundlegend, da verschiedene Auftragstypen unterschiedliche Prozesspfade durchlaufen und unterschiedliche Leistungserwartungen haben. In der Analyse ist dieses Attribut eine primäre Dimension für Filterung und Vergleich. Zum Beispiel stützt sich das Dashboard 'Lagerauftragsdurchsatz & Volumen' darauf, um die Leistung für eingehende (Einlagerung) versus ausgehende (Kommissionierung) Prozesse zu segmentieren und so eine aussagekräftigere Sicht auf die Lageroperationen zu bieten. Bedeutung Ermöglicht die Segmentierung der Analyse basierend auf der Prozesskategorie (z.B. Inbound vs. Outbound), was relevantere Vergleiche und Erkenntnisse ermöglicht. Datenquelle Dies wird durch den Lagerprozesstyp bestimmt, oft in der Kopfdatentabelle des Lagerauftrags /SCWM/WHO zu finden. Beispiele PICKPUTWREPLSTGE | |||
| Priorität Priority | Die dem Lagerauftrag zugewiesene Prioritätsstufe, die seine Dringlichkeit anzeigt (z. B. Hoch, Mittel, Niedrig). | ||
| Beschreibung Dieses Attribut klassifiziert Lageraufträge basierend auf ihrer geschäftlichen Bedeutung oder Dringlichkeit. Hochpriorisierte Aufträge können zum Beispiel für Expresssendungen oder kritische Produktionsversorgung sein und erfordern eine beschleunigte Bearbeitung. Die Priorität ist eine Schlüsseldimension für das Dashboard und den KPI 'Einhaltung der Prioritätsauftragsabwicklung'. Es ermöglicht das Filtern und Segmentieren der Leistung, um sicherzustellen, dass die kritischsten Aufträge innerhalb ihrer erwarteten Fristen bearbeitet werden, wodurch die Lagerabläufe mit den Geschäftszielen in Einklang gebracht werden. Bedeutung Ermöglicht die Priorisierung von Analysen und Monitoring, um sicherzustellen, dass hochdringliche Aufträge ihre Service Levels einhalten, was sich direkt auf die Kundenzufriedenheit auswirkt. Datenquelle Die Priorität kann im zugrunde liegenden Lieferbeleg festgelegt und auf den Lagerauftrag übertragen werden. Sie ist möglicherweise in Tabellen wie /SCWM/WHO zu finden. Beispiele HochMittelNiedrig | |||
| End-to-End Zykluszeit EndToEndCycleTime | Die gesamte verstrichene Zeit von der Erstellung des Lagerauftrags bis zu seiner endgültigen Fertigstellung. | ||
| Beschreibung Dieser KPI misst die gesamte Dauer des Lebenszyklus eines Lagerauftrags. Er ist ein kritischer, übergeordneter Indikator für die Gesamteffizienz und Geschwindigkeit der Lageroperationen. Diese Kennzahl ist der Eckpfeiler des Dashboards 'End-to-End Lager-Zykluszeit'. Die Verfolgung dieses KPIs über die Zeit und seine Segmentierung nach Dimensionen wie Auftragstyp oder Material hilft, systemische Ineffizienzen zu identifizieren und die Auswirkungen von Prozessverbesserungsinitiativen auf den gesamten Betrieb zu messen. Bedeutung Dies ist ein primärer KPI zur Messung der Gesamteffizienz des Lagerprozesses, der eine übergeordnete Sicht auf die operative Leistung bietet. Datenquelle Berechnet auf Case-Ebene durch Subtraktion des Timestamps des ersten Events ('Warehouse Order Created') vom Timestamp des letzten Events ('Warehouse Order Completed'). Beispiele 8640017280043200 | |||
| Erf. Fertigstellungstermin RequestedCompletionDate | Das Datum, bis zu dem ein hochpriorisierter Lagerauftrag abgeschlossen sein soll. | ||
| Beschreibung Dieses Attribut definiert das Service Level Agreement (SLA) oder das Zieldatum für die Fertigstellung eines Lagerauftrags. Es ist die Frist, anhand derer die tatsächliche Fertigstellungszeit gemessen wird, um festzustellen, ob der Auftrag pünktlich erfüllt wurde. Dieses Datum ist unerlässlich für die Berechnung des KPI 'Prioritätsauftragserfüllungsrate'. Durch den Vergleich des tatsächlichen Fertigstellungs-Timestamps mit diesem angeforderten Datum kann die Analyse die Einhaltung der Service Levels quantifizieren und Aufträge hervorheben, die verspätet zu sein drohen oder bereits verspätet sind. Bedeutung Definiert den SLA für einen Auftrag und dient als Benchmark für die Messung der pünktlichen Erfüllungsleistung, insbesondere bei Artikeln mit hoher Priorität. Datenquelle Dieses Datum wird oft aus dem geplanten Warenausgangsdatum oder Lieferdatum des Auslieferungsauftrags abgeleitet, der den Lagerauftrag ausgelöst hat. Konsultieren Sie die SAP Extended Warehouse Management Dokumentation. Beispiele 2023-10-27T17:00:00Z2023-10-28T12:00:00Z | |||
| Geplante Abfahrtszeit PlannedDepartureTime | Die geplante Uhrzeit, zu der die Sendung das Lager verlassen soll. | ||
| Beschreibung Dieses Attribut stellt die Zielzeit für den Versand einer Sendung dar, nachdem alle Kommissionier-, Pack- und Ladeaktivitäten abgeschlossen sind. Es dient als Benchmark zur Messung der pünktlichen Leistung der letzten Phase des Ausgangsprozesses. Dieser Timestamp ist entscheidend für das Dashboard 'Pünktliche Versandleistung'. Durch den Vergleich der tatsächlichen Versandzeit mit dieser geplanten Zeit kann die Analyse Verzögerungen beim Laden, bei der Spediteurkoordination oder bei der Dokumentation identifizieren und so Einblicke in die Effizienz der Logistik- und Transportplanung liefern. Bedeutung Bietet die Grundlage für die Messung der pünktlichen Versandleistung, was entscheidend für die Logistikplanung und die Einhaltung von Spediteurterminen ist. Datenquelle Diese Informationen sind normalerweise Teil des Transport- oder Versanddokuments, das mit den Lageraufträgen verknüpft ist. Konsultieren Sie die SAP Extended Warehouse Management Dokumentation. Beispiele 2023-10-27T18:00:00Z2023-10-28T14:00:00Z | |||
| Geplante Menge PlannedQuantity | Die erwartete Menge eines Materials für eine bestimmte Lageraufgabe. | ||
| Beschreibung Dieses Attribut stellt die Zielmenge eines Materials dar, das gemäß der Lageraufgabe bewegt, kommissioniert oder empfangen werden soll. Es ist die Basis, mit der die tatsächlich ausgeführte Menge verglichen wird. Die Plan-Menge ist wesentlich für das Dashboard 'Bestandsabweichungsanalyse' und den KPI 'Bestandsgenauigkeitsrate'. Durch den Vergleich mit der Ist-Menge kann das System Abweichungen identifizieren, die auf Kommissionierfehler, Wareneingangsfehler oder Dateneingabeprobleme hinweisen können, und so zur Verbesserung der Bestandsgenauigkeit beitragen. Bedeutung Dient als Grundlage für die Berechnung der Bestandsgenauigkeit und die Identifizierung von Abweichungen, was entscheidend für die Aufrechterhaltung korrekter Lagerbestände ist. Datenquelle Gefunden in den Warehouse Task-Daten, zum Beispiel in Tabelle /SCWM/ORDIM_O, oft in einem Feld wie NISTA (Sollmenge). Beispiele 10050250 | |||
| Lageraufgabe WarehouseTask | Die eindeutige Kennung für eine einzelne Lageraufgabe, die ein Bestandteil eines Lagerauftrags ist. | ||
| Beschreibung Eine Warehouse Task ist die Anweisung zur Ausführung einer spezifischen Warenbewegung, z.B. das Verschieben eines Produkts von einem Lagerplatz zu einer Packstation. Ein Warehouse Order fasst eine oder mehrere dieser Tasks zusammen. Die Analyse auf Task-Ebene bietet eine granularere Sicht auf die Lagerabläufe. Sie hilft, die Ressourcenleistung für spezifische Bewegungen zu verstehen, schwer erreichbare Lagerplätze zu identifizieren oder die Effizienz individueller Kommissionier- oder Einlagerungsaktivitäten zu analysieren. Bedeutung Bietet eine detaillierte Analyseebene, die die Untersuchung einzelner Bewegungen und Schritte innerhalb eines größeren Lagerauftrags ermöglicht. Datenquelle Gefunden in Warehouse Task-Tabellen wie /SCWM/ORDIM_O (Task-Daten) und /SCWM/ORDIM_C (Bestätigungsdaten). Beispiele 300000451300000452300000453 | |||
| Lagerort StorageLocation | Der spezifische Ort innerhalb des Lagers, wie ein Lagerplatz, wohin oder woher die Waren bewegt werden. | ||
| Beschreibung Dieses Attribut identifiziert den physischen Ort, der an einer Lageraufgabe beteiligt ist, zum Beispiel den Quelllagerplatz für die Kommissionierung oder den Ziellagerplatz für die Einlagerung. Dies kann von einem breiten Bereich bis zu einer spezifischen Regalposition reichen. Die Analyse nach Lagerort kann operative Einblicke liefern, wie die Identifizierung von 'Goldzonen' mit hohen Kommissionierraten oder problematischen Bereichen mit häufigen Verzögerungen oder Fehlern. Es kann auch in der Analyse der 'Kommissionierweg-Einhaltung' verwendet werden, um die Bewegungen der Kommissionierer durch das Lager zu verstehen. Bedeutung Bietet geografischen Kontext innerhalb des Lagers, wodurch eine Analyse der Bewegungseffizienz, der Zugänglichkeit von Lagerplätzen und der Optimierung von Kommissionierwegen ermöglicht wird. Datenquelle Typischerweise in Lageraufgabentabellen wie /SCWM/ORDIM_O zu finden, die Informationen zum Quell- (VLPLA) und Ziellagerplatz (NLPLA) enthalten. Beispiele 01-02-03PACK-STATION-01GI-ZONE-A | |||
| Mengenabweichung QuantityVariance | Die Differenz zwischen der geplanten Menge und der tatsächlich bestätigten Menge für eine Aufgabe. | ||
| Beschreibung Diese berechnete Kennzahl quantifiziert die während einer Lageraufgabe festgestellte Abweichung. Ein Wert ungleich Null zeigt an, dass die physische Realität nicht mit dem Systemdatensatz übereinstimmte, was auf ein potenzielles Problem wie einen Kommissionierfehler, einen Wareneingangsfehler oder einen beschädigten Artikel hindeutet. Dieses Attribut unterstützt direkt das Dashboard 'Bestandsabweichungsanalyse', indem es das Ausmaß der Fehler hervorhebt. Die Analyse der Häufigkeit und des Ausmaßes dieser Abweichungen hilft, systemische Probleme in der Bestandsverwaltung und operativen Ausführung zu lokalisieren und Anstrengungen zur Verbesserung der Genauigkeit zu leiten. Bedeutung Quantifiziert direkt Bestands- und Betriebsungenauigkeiten, wodurch das Erkennen und Analysieren des Ausmaßes von Diskrepanzen erleichtert wird. Datenquelle Berechnet durch Subtraktion der PlannedQuantity von der ActualQuantity für jede relevante Task. Beispiele 0-15 | |||
| Tatsächliche Menge ActualQuantity | Die tatsächlich vom Benutzer bestätigte Materialmenge für eine Lageraufgabe. | ||
| Beschreibung Dieses Attribut ist die Menge, die physisch vom Lagerbediener bearbeitet und bestätigt wurde. Dies könnte die aus einem Lagerplatz entnommene Menge, die eingelagerte Menge oder die während eines Wareneingangs gezählte Menge sein. Der Vergleich der Ist-Menge mit der Plan-Menge ist grundlegend für die 'Bestandsabweichungsanalyse'. Eine Abweichung zwischen den beiden Werten hebt direkt eine Prozessausnahme hervor, die einer Untersuchung bedarf. Dies ist ein direktes Maß für die operative Genauigkeit und ein wichtiger Input für die KPIs 'Bestandsgenauigkeitsrate' und 'Kommissionierfehlerrate'. Bedeutung Dies ist die Ist-Grundlage für das, was physisch gehandhabt wurde. Der Vergleich mit der geplanten Menge misst direkt die operative Genauigkeit und identifiziert Fehler. Datenquelle Gefunden in den Warehouse Task Bestätigungsdaten, zum Beispiel in Tabelle /SCWM/ORDIM_C, oft in einem Feld wie NDIFF (Differenzmenge) oder abgeleitet aus bestätigten Mengen. Beispiele 10049250 | |||
| Termingerecht IsOnTime | Ein boolesches Flag, das anzeigt, ob ein Warehouse Order bis zum angeforderten Fertigstellungstermin abgeschlossen wurde. | ||
| Beschreibung Dieses Flag liefert ein einfaches, binäres Ergebnis für die SLA-Einhaltung. Es bewertet, ob das abschließende Fertigstellungsereignis eines Lagerauftrags am oder vor dem angegebenen 'Erforderlichen Fertigstellungstermin' stattgefunden hat. Dieses Attribut ist unerlässlich für das Dashboard 'Einhaltung der Prioritätsauftragsabwicklung'. Es vereinfacht die Erstellung von KPIs und Visualisierungen, indem es das einfache Zählen und Filtern von pünktlichen versus verspäteten Aufträgen ermöglicht. Dies hilft, die Leistung im Vergleich zu den Service Level-Zielen schnell zu bewerten, ohne komplexe Datumsberechnungen in der Analyseebene zu benötigen. Bedeutung Vereinfacht die SLA-Leistungsanalyse durch einen klaren, binären Indikator für die pünktliche oder verspätete Erfüllung jedes Auftrags. Datenquelle Dies ist ein berechnetes Attribut. Die Logik vergleicht den Timestamp der Aktivität 'Lagerauftrag abgeschlossen' mit dem Attribut 'RequestedCompletionDate'. Beispiele truefalsch | |||
| Verwendete Ausrüstung EquipmentUsed | Die Kennung des Geräts, wie ein Gabelstapler oder Hubwagen, das zur Ausführung der Lageraufgabe verwendet wird. | ||
| Beschreibung Dieses Attribut spezifiziert die Materialflurförderzeuge, die einer Lageraufgabe zugewiesen oder dafür verwendet werden. Dies könnte ein bestimmter Gabelstapler, ein fahrerloses Transportsystem (FTS) oder eine spezielle Art von Wagen sein. Diese Daten sind die Grundlage für das Dashboard 'Ressourcen- und Gerätenutzung' und den KPI 'Gerätenutzungsrate'. Durch die Verfolgung, welches Gerät für welche Aufgaben und wie lange verwendet wird, können Manager Auslastungsmuster analysieren, Wartungen planen und fundierte Entscheidungen über Flottengröße und -zusammensetzung treffen. Bedeutung Ermöglicht die Analyse der Gerätenutzung und -effizienz, was zur Optimierung des Flottenmanagements und zur Identifizierung von Ressourcenengpässen beiträgt. Datenquelle Diese Informationen können in den Lageraufgaben- oder Auftragsdetails gespeichert sein, wenn das Ressourcenmanagement in SAP EWM konfiguriert ist. Konsultieren Sie die SAP Extended Warehouse Management Dokumentation. Beispiele FORKLIFT-07AGV-02CART-15 | |||
Lagerverwaltungs-Aktivitäten
| Aktivität | Beschreibung | ||
|---|---|---|---|
| `Verpackung abgeschlossen` | Diese Aktivität bedeutet, dass alle Artikel für eine Sendung in eine Handling Unit verpackt wurden, die nun geschlossen und etikettiert ist. Die verpackten Waren sind bereit für die nächste Phase, wie z.B. Bereitstellung oder Verladung. | ||
| Bedeutung Dieser Meilenstein schließt die Verpackungsphase ab. Er ist eine Voraussetzung für die Bereitstellung und den Versand, sodass Verzögerungen hier direkte Auswirkungen auf die gesamte Durchlaufzeit und den KPI der Pack- und Bereitstellungsdurchlaufzeit haben. Datenquelle Kann erfasst werden, wenn der Status der Handling Unit (HU) auf 'Closed' gesetzt wird oder wenn die letzte verpackungsbezogene Warehouse Task für den WO bestätigt wird. Die Tabelle /SCWM/HUHDR enthält HU-Statusinformationen. Erfassen Identifizieren Sie den Timestamp, wenn die endgültige Versand-Handling Unit, die mit dem Auftrag verbunden ist, geschlossen oder abgeschlossen wird. Ereignistyp inferred | |||
| Einlagerungsaufgabe bestätigt | Ein Lagerarbeiter bestätigt, dass die Einlagerungs-Warehouse Task abgeschlossen wurde, d.h. die Waren physisch im vorgesehenen Lagerplatz platziert wurden. Diese Bestätigung aktualisiert den Lagerort in Echtzeit. | ||
| Bedeutung Diese Aktivität ist ein wichtiger Meilenstein für die Eingangsverarbeitung, die bestätigt, dass Bestand für die Kommissionierung verfügbar ist. Verzögerungen hier wirken sich direkt auf den KPI der Zykluszeit vom Wareneingang bis zur Einlagerung aus. Datenquelle Erfasst vom Bestätigungs-Timestamp (Feld CONFIRMED_AT) in der Warehouse Task-Tabelle, /SCWM/WT. Der Task-Status (STAT) ändert sich ebenfalls zu 'Confirmed'. Erfassen Verwenden Sie den Bestätigungs-Timestamp aus der Tabelle /SCWM/WT für Einlagerungsaufgaben, die mit dem Lagerauftrag verbunden sind. Ereignistyp explicit | |||
| Kommissionieraufgabe bestätigt | Ein Lagerarbeiter bestätigt den Abschluss einer Kommissionier-Warehouse Task, was bedeutet, dass die Waren physisch von ihrem Lagerort entnommen wurden. Dies geschieht typischerweise mittels eines RF-Scanners. | ||
| Bedeutung Dies ist ein kritischer Meilenstein in der Auftragsabwicklung, der sich direkt auf die Order-to-Ship-Zykluszeit auswirkt. Die Analyse dieser Aktivität hilft, die Kommissionierproduktivität zu messen und Kommissionier-Engpässe zu identifizieren. Datenquelle Erfasst vom Bestätigungs-Timestamp (Feld CONFIRMED_AT) in der Warehouse Task-Tabelle, /SCWM/WT. Der Task-Status (STAT) wird auf 'Confirmed' aktualisiert. Erfassen Verwenden Sie den Bestätigungs-Timestamp aus der Tabelle /SCWM/WT für Kommissionieraufgaben, die mit dem Lagerauftrag verbunden sind. Ereignistyp explicit | |||
| Lagerauftrag abgeschlossen | Der Status des Lagerauftrags wird auf 'Abgeschlossen' gesetzt, nachdem alle zugehörigen Lageraufgaben bestätigt wurden. Dies schließt das Arbeitspaket aus einer Ausführungsperspektive ab. | ||
| Bedeutung Dies ist das primäre Erfolgs-Endereignis für den Prozess. Es ist wesentlich für die Berechnung der End-to-End Lager-Zykluszeit und die Messung des Gesamtdurchsatzes. Datenquelle Erfasst durch Verfolgung der Statusfeldänderung (STAT) auf 'Completed' in der Warehouse Order-Kopftabelle, /SCWM/WHO. Der Änderungs-Log für diese Tabelle (DBTABLOG) oder ein dediziertes Timestamp-Feld kann verwendet werden. Erfassen Identifizieren Sie den Timestamp, wenn der Status in /SCWM/WHO auf 'C' (Completed) gesetzt wird. Ereignistyp inferred | |||
| Lagerauftrag erstellt | Diese Aktivität markiert die Erstellung eines Lagerauftrags (WO), der ein Arbeitspaket darstellt, das aus mehreren Lageraufgaben besteht. Das System generiert einen WO, um Arbeiten für Lagermitarbeiter zu bündeln und zu organisieren, basierend auf Kriterien wie Aktivitätsbereich, Warteschlange oder Produkt. | ||
| Bedeutung Dies ist das primäre Start-Ereignis für den Lagerabwicklungsprozess. Die Analyse der Zeit von der Erstellung bis zur ersten Aktion hilft, Verzögerungen bei der Arbeitszuweisung und Ressourcenallokation zu identifizieren. Datenquelle Dieses Ereignis wird vom Erstellungs-Timestamp (Feld CREATED_AT) in der Kopfdatentabelle des Lagerauftrags, /SCWM/WHO, erfasst. Erfassen Extrahieren Sie den Erstellungs-Timestamp aus der Tabelle Ereignistyp explicit | |||
| Warenausgang gebucht | Dies ist der letzte logistische und finanzielle Schritt im System, der die Waren formell aus dem Lagerbestand entfernt. Er bedeutet, dass das Eigentum übertragen wurde und die Sendung offiziell versandt wurde. | ||
| Bedeutung Ein entscheidender Endpunkt für den ausgehenden Warenfluss, der die Rechnungsstellung und Bestandsaktualisierungen auslöst. Er ist eine Schlüsselkomponente zur Messung der pünktlichen Lieferung und des KPIs für die Lade- und Versandzeit. Datenquelle Abgeleitet aus der Buchung eines Outbound Delivery-Dokuments, das mit dem Warehouse Order verbunden ist. Überprüfen Sie den Dokumentenfluss oder die Statusfelder (z.B. DGI_STAT) in der Tabelle /SCDL/DB_PROCH_O. Erfassen Identifizieren Sie den Timestamp, wenn der Warenausgangsstatus für die zugehörige Outbound Delivery auf 'Completed' gesetzt wird. Ereignistyp explicit | |||
| `Wareneingang` gebucht | Kennzeichnet die formelle Annahme von Waren in den Lagerbestand von einem externen Lieferanten oder aus der Produktion. Dies ist eine wichtige Finanz- und Bestandsbuchung, die den Bestand sichtbar und für nachfolgende Prozesse wie die Einlagerung (Putaway) verfügbar macht. | ||
| Bedeutung Dies ist ein kritischer Meilenstein im Wareneingangsprozess. Die Zeit zwischen Warenanlieferung und dieser Buchung kann Rückstände im Wareneingangsbereich anzeigen, die sich auf die Bestandsverfügbarkeit auswirken. Datenquelle Abgeleitet aus der Buchung eines Inbound Delivery-Dokuments, das mit dem Warehouse Order verbunden ist. Überprüfen Sie den Dokumentenfluss oder die Statusfelder (z.B. DGRSTAT) in der Tabelle /SCDL/DB_PROCH_I. Erfassen Identifizieren Sie den Timestamp, wenn der Wareneingangsstatus für die zugehörige Inbound Delivery auf 'Completed' gesetzt wird. Ereignistyp inferred | |||
| Bereitstellungsaufgabe bestätigt | Ein Lagerarbeiter bestätigt die Bewegung einer verpackten Handling Unit von einer Packstation oder einem Konsolidierungsbereich zu einem bestimmten Versandbereitstellungsbereich. Die Waren sind nun für die Verladung positioniert. | ||
| Bedeutung Dies markiert den Übergang von der internen Bearbeitung zur Ausgangslogistik. Verzögerungen bei der Bereitstellung können zu unorganisierten Laderampen und verpassten Abholzeiten des Spediteurs führen. Datenquelle Erfasst vom Bestätigungs-Timestamp (Feld CONFIRMED_AT) einer Warehouse Task (/SCWM/WT) mit einem Prozesstyp für Bereitstellungsbewegungen. Erfassen Identifizieren Sie den Bestätigungs-Timestamp für die Bereitstellungs-Warehouse Task, die mit der Handling Unit oder Lieferung verbunden ist. Ereignistyp explicit | |||
| Einlagerungsaufgabe erstellt | Das System generiert eine spezifische Anweisung, eine Lageraufgabe (WT), um empfangene Waren von einem Wareneingangsbereich zu einem endgültigen Lagerplatz zu bewegen. Diese Aktivität repräsentiert die Bereitschaft des Systems, die Einlagerungsbewegung auszuführen. | ||
| Bedeutung Die Verfolgung der Zeit zwischen Aufgabenerstellung und Bestätigung zeigt, wie lange es dauert, bis Einlagerungsanweisungen von Lagerbedienern aufgenommen und ausgeführt werden, und deckt potenzielle Personal- oder Geräteengpässe auf. Datenquelle Erfasst vom Erstellungs-Timestamp (Feld CREATED_AT) der relevanten Warehouse Task in Tabelle /SCWM/WT, wobei der Prozesstyp Einlagerung anzeigt. Erfassen Filtern Sie nach Warehouse Tasks mit einem Einlagerungs-Prozesstyp, der mit dem Warehouse Order verknüpft ist, und verwenden Sie deren Erstellungs-Timestamp. Ereignistyp explicit | |||
| Kommissionieraufgabe erstellt | Das System generiert eine Lageraufgabe (WT), um Waren von einem Lagerplatz zur Erfüllung eines Auslieferungsauftrags zu kommissionieren. Dies stellt die Systemanweisung für einen Bediener dar, ein Produkt zu entnehmen. | ||
| Bedeutung Der Beginn des physischen Ausgangsprozesses. Die Zeitverzögerung zwischen der Erstellung und Bestätigung von Kommissionieraufgaben ist entscheidend für die Analyse der Kommissioniereffizienz und Ressourcenverfügbarkeit. Datenquelle Erfasst vom Erstellungs-Timestamp (Feld CREATED_AT) der relevanten Warehouse Task in Tabelle /SCWM/WT, wobei der Prozesstyp Kommissionierung anzeigt. Erfassen Filtern Sie nach Warehouse Tasks mit einem Kommissionier-Prozesstyp, der mit dem Warehouse Order verknüpft ist, und verwenden Sie deren Erstellungs-Timestamp. Ereignistyp explicit | |||
| Lagerauftrag storniert | Der Lagerauftrag wird storniert, bevor alle Aufgaben abgeschlossen sind, wodurch die weitere Ausführung verhindert wird. Dies kann aufgrund von Nichtverfügbarkeit des Bestands, Änderungen in Kundenaufträgen oder anderen Ausnahmen geschehen. | ||
| Bedeutung Stellt einen Fehler- oder Ausnahme-Pfad dar. Die Analyse der Häufigkeit und Gründe für Stornierungen hilft, vorgelagerte Probleme in der Planung, Bestandsgenauigkeit oder Auftragsverwaltung zu identifizieren. Datenquelle Erfasst durch Verfolgung der Statusfeldänderung (STAT) auf 'Canceled' in der Warehouse Order-Kopftabelle, /SCWM/WHO. Erfassen Identifizieren Sie den Timestamp, wenn der Status in /SCWM/WHO auf einen Stornierungsstatuswert gesetzt wird. Ereignistyp inferred | |||
| Verladung abgeschlossen | Bedeutet, dass alle Waren für eine Sendung physisch auf die Transporteinheit geladen wurden. Dies ist eine Voraussetzung für die Buchung des Warenausgangs und den Versand des Fahrzeugs. | ||
| Bedeutung Ein wichtiger Meilenstein vor dem finalen Versand. Verzögerungen zwischen der Ladefertigstellung und dem Warenausgang können auf Dokumentations- oder Systemprobleme hinweisen, die Spediteure aufhalten. Datenquelle Abgeleitet aus der Statusänderung der zugehörigen Transportation Unit (TU) oder des Outbound Delivery Order zu 'Loading Completed'. Statusse in den Tabellen /SCWM/TU und /SCDL/DB_PROCH_O sind relevant. Erfassen Erfassen Sie den Timestamp, wenn der Status des TU oder der Delivery Order aktualisiert wird, um den Abschluss der Verladung widerzuspiegeln. Ereignistyp inferred | |||
| Verladung gestartet | Diese Aktivität markiert den Beginn der physischen Beladung von Waren vom Bereitstellungsbereich auf einen LKW oder eine Transporteinheit. Dies wird oft durch eine Benutzeraktion im System initiiert. | ||
| Bedeutung Der Beginn des letzten physischen Schritts im Lager. Die Analyse der Ladedauer hilft, die Auslastung der Docktore und die Umschlagzeit der Spediteure zu optimieren. Datenquelle Abgeleitet aus der Statusänderung der zugehörigen Transportation Unit (TU) oder des Outbound Delivery Order zu 'Loading Started'. Die Tabelle /SCWM/TU_STATUS kann überprüft werden. Erfassen Erfassen Sie den Timestamp, wenn der Status des TU oder der Delivery Order aktualisiert wird, um den Beginn der Verladung widerzuspiegeln. Ereignistyp inferred | |||
| Verpacken gestartet | Stellt den Beginn der Packtätigkeiten dar, bei denen kommissionierte Artikel konsolidiert und in Versandbehälter oder Handling Units gelegt werden. Dies ist oft der erste Schritt an einem Packarbeitsplatz. | ||
| Bedeutung Markiert den Beginn der Phase der Mehrwertdienste. Die Messung der Verpackungsdauer hilft, das Layout des Arbeitsplatzes, die Personalplanung und die Materialien zu optimieren. Datenquelle Dieses Ereignis muss möglicherweise abgeleitet werden. Es kann vom ersten Scan eines Artikels oder einer Handling Unit an einer Packstation abgeleitet werden, oft erfasst in Arbeitsplatz- oder Handling Unit Protokollen. Tabellen wie /SCWM/PACKSPEC und zugehörige Ausführungsprotokolle können eine Quelle sein. Erfassen Verwenden Sie den Timestamp der ersten packungsbezogenen Lageraufgabenbestätigung für die Lieferung oder die Erstellungszeit der finalen Versand-HU. Ereignistyp inferred | |||
Extraktionsleitfäden
Schritte
- Voraussetzung: CDS Views identifizieren oder erstellen: Die primären Datenquellen sind Standard-SAP S/4HANA CDS Views für das Warehouse Management. Die Schlüssel-Views sind
I_WarehouseOrderfür Ereignisse auf Auftragsebene undI_WarehouseTaskfür Ereignisse auf Aufgabenebene. Weitere Views wieI_OutboundDeliveryItem,I_InboundDeliveryItemundI_EWMTransportationUnitwerden für verwandte Logistikereignisse benötigt. Stellen Sie sicher, dass diese Views in Ihrem System aktiv sind. - Eine Custom CDS View erstellen: Um Daten aus mehreren Quellen in einem einzigen Event Log-Format zu kombinieren, müssen Sie eine Custom CDS View erstellen. Verwenden Sie die ABAP Development Tools (ADT) in Eclipse, um eine neue Data Definition zu erstellen. Diese Custom View verwendet
UNION ALL, um Datensätze aus verschiedenen Quellen zusammenzuführen, die jeweils eine eigenständige Geschäftsaktivität darstellen. - Die Event Log-Struktur definieren: Definieren Sie in Ihrer Custom CDS View die Felder, die die Spalten Ihres Event Logs bilden. Dies muss
WarehouseOrder,ActivityName,EventTimeund weitere erforderliche sowie empfohlene Attribute umfassen. Ordnen Sie diese Felder den zugrunde liegenden Standard-CDS Views zu. - Warehouse Order Events modellieren: Fügen Sie die ersten
SELECT-Anweisungen zu Ihrer Union hinzu. Wählen Sie ausI_WarehouseOrder, um das Ereignis 'Warehouse Order Created' unter Verwendung des Erstellungs-Timestamps zu generieren. Fügen Sie nachfolgendeSELECT-Anweisungen für die Ereignisse 'Warehouse Order Completed' und 'Warehouse Order Canceled' hinzu, indem Sie nach dem Auftragsstatus filtern und die entsprechenden Bestätigungs- oder Änderungs-Timestamps verwenden. - Warehouse Task Events modellieren: Fügen Sie
SELECT-Anweisungen ausI_WarehouseTaskhinzu. Generieren Sie die Ereignisse 'Putaway Task Created' und 'Putaway Task Confirmed', indem Sie nach Lagerprozesskategorien filtern, die sich auf die Einlagerung beziehen. Erstellen Sie in ähnlicher Weise die Ereignisse 'Picking Task Created', 'Picking Task Confirmed' und 'Staging Task Confirmed' basierend auf ihren jeweiligen Prozesskategorien und verwenden Sie die Erstellungs- und Bestätigungs-Timestamps. - Warenbewegungsereignisse modellieren: Verknüpfen Sie lieferbezogene Views mit Lageraufgaben, um Warenbewegungen zu erfassen. Für 'Goods Receipt Posted' wählen Sie aus
I_InboundDeliveryItemunter Verwendung desActualGoodsMovementDateTime. Für 'Goods Issue Posted' verwenden Sie dasselbe Feld ausI_OutboundDeliveryItem, wobei Sie auf den relevanten Warehouse Order oder die Warehouse Task zurückverlinken. - Lade- und Verpackungsereignisse modellieren: Wählen Sie aus
I_EWMTransportationUnit, um die Ereignisse 'Loading Started' und 'Loading Completed' unter Verwendung ihrer dedizierten Timestamps zu erfassen. Für das Verpacken, das komplex sein kann, verwenden Sie einen Proxy, indem Sie aus einer Handling Unit View auswählen, wobei die Erstellungszeit 'Packing Started' und eine Statusänderungszeit 'Packing Completed' darstellen kann. Dieser Schritt erfordert möglicherweise eine Anpassung basierend auf Ihrem spezifischen Verpackungsprozess. - Annotationen zum Exponieren der CDS View hinzufügen: Fügen Sie die Annotation
@OData.publish: truezu Ihrer Custom CDS View-Definition hinzu. Dies weist SAP an, automatisch einen OData Service basierend auf der Struktur der View zu generieren. - Die CDS View und den OData Service aktivieren: Aktivieren Sie die neue Data Definition in ADT. Navigieren Sie dann zum SAP Gateway Hub-System und verwenden Sie die Transaktion
/IWFND/MAINT_SERVICE, um den neu generierten OData Service zu finden und zu aktivieren. Dadurch werden die Daten über einen REST API-Endpunkt zugänglich. - Die Daten extrahieren: Verwenden Sie Ihre Ziel-Datenplattform oder Ihr ETL-Tool, um eine Verbindung zum aktivierten OData Service-Endpunkt herzustellen. Wenden Sie Filter direkt in der OData URI an, z.B. Filtern nach
EventTime, um den Datenumfang zu begrenzen (z.B.?$filter=EventTime ge datetime'2023-01-01T00:00:00'). - Für Process Mining formatieren: Stellen Sie sicher, dass die extrahierten Daten in einem flachen Dateiformat, wie z.B. einer CSV-Datei, gespeichert werden, wobei die Spaltenüberschriften den erforderlichen Attributen für ProcessMind (
WarehouseOrder,ActivityName,EventTime, etc.) entsprechen. Laden Sie die endgültige Datei in das Process Mining Tool hoch.
Konfiguration
- Custom CDS View: Eine dedizierte CDS View, zum Beispiel
Z_C_EWM_EVENTLOG_CDS, muss erstellt werden, um die Ereignisdaten zu vereinheitlichen. Dies ist das zentrale Objekt für die Extraktion. - OData Service: Der aus der Custom CDS View generierte OData Service muss aktiviert werden. Der Service-Name ist typischerweise der CDS View-Name mit dem Suffix
_CDS. - Datumsbereichsfilterung: Es ist entscheidend, einen Datumsfilter auf das Feld
EventTimeanzuwenden, wenn die OData API aufgerufen wird. Ein typischer Bereich für eine erste Analyse sind Daten von 3 bis 6 Monaten. Ohne Filter kann die Abfrage zu einem Timeout führen oder Performance-Probleme verursachen. - Entitätsfilterung: Um den Datenumfang weiter einzuschränken, sollten Sie Filter für Attribute wie Lagernummer (
Warehouse), Lagerauftragsart (WarehouseOrderType) oder spezifische Materialien (MaterialNumber) in Betracht ziehen. - Systemberechtigungen: Der Benutzer, der die CDS View erstellt, benötigt SAP-Entwicklerzugriff in ADT. Der Benutzer oder das Service-Konto, das die OData API aufruft, benötigt Berechtigungen für den Zugriff auf die zugrunde liegenden Lagerverwaltungsdaten.
a Beispielabfrage 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 Schritte
- Voraussetzung: CDS Views identifizieren oder erstellen: Die primären Datenquellen sind Standard-SAP S/4HANA CDS Views für das Warehouse Management. Die Schlüssel-Views sind
I_WarehouseOrderfür Ereignisse auf Auftragsebene undI_WarehouseTaskfür Ereignisse auf Aufgabenebene. Weitere Views wieI_OutboundDeliveryItem,I_InboundDeliveryItemundI_EWMTransportationUnitwerden für verwandte Logistikereignisse benötigt. Stellen Sie sicher, dass diese Views in Ihrem System aktiv sind. - Eine Custom CDS View erstellen: Um Daten aus mehreren Quellen in einem einzigen Event Log-Format zu kombinieren, müssen Sie eine Custom CDS View erstellen. Verwenden Sie die ABAP Development Tools (ADT) in Eclipse, um eine neue Data Definition zu erstellen. Diese Custom View verwendet
UNION ALL, um Datensätze aus verschiedenen Quellen zusammenzuführen, die jeweils eine eigenständige Geschäftsaktivität darstellen. - Die Event Log-Struktur definieren: Definieren Sie in Ihrer Custom CDS View die Felder, die die Spalten Ihres Event Logs bilden. Dies muss
WarehouseOrder,ActivityName,EventTimeund weitere erforderliche sowie empfohlene Attribute umfassen. Ordnen Sie diese Felder den zugrunde liegenden Standard-CDS Views zu. - Warehouse Order Events modellieren: Fügen Sie die ersten
SELECT-Anweisungen zu Ihrer Union hinzu. Wählen Sie ausI_WarehouseOrder, um das Ereignis 'Warehouse Order Created' unter Verwendung des Erstellungs-Timestamps zu generieren. Fügen Sie nachfolgendeSELECT-Anweisungen für die Ereignisse 'Warehouse Order Completed' und 'Warehouse Order Canceled' hinzu, indem Sie nach dem Auftragsstatus filtern und die entsprechenden Bestätigungs- oder Änderungs-Timestamps verwenden. - Warehouse Task Events modellieren: Fügen Sie
SELECT-Anweisungen ausI_WarehouseTaskhinzu. Generieren Sie die Ereignisse 'Putaway Task Created' und 'Putaway Task Confirmed', indem Sie nach Lagerprozesskategorien filtern, die sich auf die Einlagerung beziehen. Erstellen Sie in ähnlicher Weise die Ereignisse 'Picking Task Created', 'Picking Task Confirmed' und 'Staging Task Confirmed' basierend auf ihren jeweiligen Prozesskategorien und verwenden Sie die Erstellungs- und Bestätigungs-Timestamps. - Warenbewegungsereignisse modellieren: Verknüpfen Sie lieferbezogene Views mit Lageraufgaben, um Warenbewegungen zu erfassen. Für 'Goods Receipt Posted' wählen Sie aus
I_InboundDeliveryItemunter Verwendung desActualGoodsMovementDateTime. Für 'Goods Issue Posted' verwenden Sie dasselbe Feld ausI_OutboundDeliveryItem, wobei Sie auf den relevanten Warehouse Order oder die Warehouse Task zurückverlinken. - Lade- und Verpackungsereignisse modellieren: Wählen Sie aus
I_EWMTransportationUnit, um die Ereignisse 'Loading Started' und 'Loading Completed' unter Verwendung ihrer dedizierten Timestamps zu erfassen. Für das Verpacken, das komplex sein kann, verwenden Sie einen Proxy, indem Sie aus einer Handling Unit View auswählen, wobei die Erstellungszeit 'Packing Started' und eine Statusänderungszeit 'Packing Completed' darstellen kann. Dieser Schritt erfordert möglicherweise eine Anpassung basierend auf Ihrem spezifischen Verpackungsprozess. - Annotationen zum Exponieren der CDS View hinzufügen: Fügen Sie die Annotation
@OData.publish: truezu Ihrer Custom CDS View-Definition hinzu. Dies weist SAP an, automatisch einen OData Service basierend auf der Struktur der View zu generieren. - Die CDS View und den OData Service aktivieren: Aktivieren Sie die neue Data Definition in ADT. Navigieren Sie dann zum SAP Gateway Hub-System und verwenden Sie die Transaktion
/IWFND/MAINT_SERVICE, um den neu generierten OData Service zu finden und zu aktivieren. Dadurch werden die Daten über einen REST API-Endpunkt zugänglich. - Die Daten extrahieren: Verwenden Sie Ihre Ziel-Datenplattform oder Ihr ETL-Tool, um eine Verbindung zum aktivierten OData Service-Endpunkt herzustellen. Wenden Sie Filter direkt in der OData URI an, z.B. Filtern nach
EventTime, um den Datenumfang zu begrenzen (z.B.?$filter=EventTime ge datetime'2023-01-01T00:00:00'). - Für Process Mining formatieren: Stellen Sie sicher, dass die extrahierten Daten in einem flachen Dateiformat, wie z.B. einer CSV-Datei, gespeichert werden, wobei die Spaltenüberschriften den erforderlichen Attributen für ProcessMind (
WarehouseOrder,ActivityName,EventTime, etc.) entsprechen. Laden Sie die endgültige Datei in das Process Mining Tool hoch.
Konfiguration
- Custom CDS View: Eine dedizierte CDS View, zum Beispiel
Z_C_EWM_EVENTLOG_CDS, muss erstellt werden, um die Ereignisdaten zu vereinheitlichen. Dies ist das zentrale Objekt für die Extraktion. - OData Service: Der aus der Custom CDS View generierte OData Service muss aktiviert werden. Der Service-Name ist typischerweise der CDS View-Name mit dem Suffix
_CDS. - Datumsbereichsfilterung: Es ist entscheidend, einen Datumsfilter auf das Feld
EventTimeanzuwenden, wenn die OData API aufgerufen wird. Ein typischer Bereich für eine erste Analyse sind Daten von 3 bis 6 Monaten. Ohne Filter kann die Abfrage zu einem Timeout führen oder Performance-Probleme verursachen. - Entitätsfilterung: Um den Datenumfang weiter einzuschränken, sollten Sie Filter für Attribute wie Lagernummer (
Warehouse), Lagerauftragsart (WarehouseOrderType) oder spezifische Materialien (MaterialNumber) in Betracht ziehen. - Systemberechtigungen: Der Benutzer, der die CDS View erstellt, benötigt SAP-Entwicklerzugriff in ADT. Der Benutzer oder das Service-Konto, das die OData API aufruft, benötigt Berechtigungen für den Zugriff auf die zugrunde liegenden Lagerverwaltungsdaten.
a Beispielabfrage 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