Ihre Purchase-to-Pay – Bestellanforderungs-Datenvorlage
Ihre Purchase-to-Pay – Bestellanforderungs-Datenvorlage
- Empfohlene Attribute für eine detaillierte Analyse
- Schlüsselaktivitäten zur Verfolgung für die Prozesserkennung
- Anleitung zur Datenextraktion aus SAP S/4HANA
Procure-to-Pay – Bestellanforderungsattribute
| Name | Beschreibung | ||
|---|---|---|---|
| Aktivitätsname ActivityName | Der Name der Geschäftsaktivität, die zu einem bestimmten Zeitpunkt im Bestellanforderungsprozess stattfand. | ||
| Beschreibung Der Aktivitätsname beschreibt ein spezifisches Ereignis oder eine Aufgabe innerhalb des Lebenszyklus einer Bestellanforderung. Diese Aktivitäten werden aus Systemprotokollen, wie Änderungsbelegen und Workflow-Historien, abgeleitet und repräsentieren wichtige Prozessmeilensteine wie 'Bestellanforderung erstellt', 'Genehmigungsschritt gestartet' oder 'Bestellung erstellt'. Die Analyse dieser Aktivitäten ermöglicht die Visualisierung des Prozessflusses, die Identifizierung von Engpässen und die Messung der in verschiedenen Phasen verbrachten Zeit. Das Verständnis der Reihenfolge und Häufigkeit von Aktivitäten wie 'Bestellanforderung geändert' oder 'Bestellanforderung abgelehnt' ist entscheidend für die Identifizierung von Prozesseffizienz und Verbesserungspotenzialen. Bedeutung Es definiert die Schritte im Prozess, bildet das Rückgrat der Prozesskarte und ermöglicht die Analyse von Prozessfluss, Variationen und Engpässen. Datenquelle Dies ist ein abgeleitetes Attribut, das typischerweise durch Interpretation von Daten aus Änderungsbelegtabellen (CDHDR, CDPOS) und Workflow-Logs (z.B. SWWLOGHIST) konstruiert wird. Beispiele Anforderung erstelltGenehmigungsschritt abgeschlossenBestellanforderung genehmigt`Bestellung` erstellt | |||
| Bestellanforderungs-ID PurchaseRequisitionId | Die eindeutige Kennung für ein Bestellanforderungsdokument. | ||
| Beschreibung Die Bestellanforderungs-ID ist der Primärschlüssel, der jede Anforderung von Waren oder Dienstleistungen innerhalb von SAP S/4HANA eindeutig identifiziert. Sie dient als zentrale Case ID und verknüpft alle Aktivitäten und Änderungen, die mit einer spezifischen Bestellanforderung zusammenhängen, von ihrer Erstellung bis zu ihrem Endstatus, wie Genehmigung, Ablehnung oder Umwandlung in eine Bestellung. Im Process Mining ist dieses Attribut grundlegend für die Rekonstruktion des End-to-End-Lebenszyklus jeder Bestellanforderung. Durch die Gruppierung aller verwandten Events unter einer einzigen Bestellanforderungs-ID können Analysten Cycle Times genau messen, Statusänderungen verfolgen und die verschiedenen Wege analysieren, die eine Bestellanforderung im Genehmigungsprozess nehmen kann. Bedeutung Dies ist der wesentliche Case Identifier, der alle zugehörigen Prozessschritte verbindet und eine vollständige und kohärente Sicht auf den Bestellanforderungs-Lebenszyklus ermöglicht. Datenquelle Dieses Attribut ist die Bestellanforderungsnummer, zu finden in Tabelle EBAN, Feld BANFN. Beispiele 100178901001789110017892 | |||
| Ereigniszeit EventTime | Das genaue Datum und die Uhrzeit, zu der eine spezifische Aktivität stattfand. | ||
| Beschreibung Event Time ist der Timestamp, der aufzeichnet, wann eine Aktivität stattgefunden hat. Diese Daten sind entscheidend für die chronologische Anordnung von Events innerhalb eines Falles und bilden die Grundlage für alle Dauer- und Performance-Berechnungen im Process Mining. Zum Beispiel bestimmt die Zeitdifferenz zwischen den Events 'Bestellanforderung eingereicht' und 'Bestellanforderung genehmigt' die Genehmigungs-Durchlaufzeit. Genau Timestamps sind essenziell für die Analyse der Prozess-Performance, die Identifizierung von Verzögerungen und die Überwachung der Einhaltung von Service Level Agreements. Dieses Attribut ermöglicht Dashboards, die Durchlaufzeiten visualisieren, feststeckende Bestellanforderungen verfolgen und die Performance über verschiedene Zeiträume vergleichen. Bedeutung Dieser Timestamp ist entscheidend für die Reihenfolge der Ereignisse, die Berechnung von Durchlaufzeiten und die Analyse der Prozessleistung und von Engpässen. Datenquelle Timestamps werden typischerweise aus Änderungsbeleg-Headern (CDHDR-UDATE, CDHDR-UTIME) oder Workflow-Event Logs bezogen. Beispiele 2023-04-15T10:05:30Z2023-04-15T14:22:01Z2023-04-16T09:00:15Z | |||
| Abteilung Department | Die Abteilung oder Kostenstelle, der die Kosten der Bestellanforderung belastet werden. | ||
| Beschreibung Das Attribut Abteilung, oft durch die Kostenstelle in SAP repräsentiert, identifiziert die Geschäftseinheit, die für die angeforderte Beschaffung verantwortlich ist. Es handelt sich um eine kritische Finanz- und Organisationsinformation, die auf Positionsebene einer Bestellanforderung zugewiesen wird. Im Process Mining ist dieses Attribut für die Analyse der Abteilungsleistung unerlässlich. Es ermöglicht Dashboards, die wichtige Metriken wie Cycle Time, Änderungsraten und Ablehnungsraten über verschiedene Abteilungen hinweg vergleichen. Dies hilft, leistungsstarke Abteilungen zu identifizieren, deren Praktiken anderswo übernommen werden könnten, sowie Abteilungen, die zusätzliche Schulungen oder Prozessunterstützung benötigen. Bedeutung Ermöglicht den Performance-Vergleich über Geschäftseinheiten hinweg, hebt Abweichungen in Durchlaufzeiten oder Ablehnungsraten hervor, um Best Practices und Verbesserungsbereiche zu identifizieren. Datenquelle Dies ist die Kostenstelle, typischerweise in der Kontierungs-Tabelle EBKN, Feld KOSTL, zu finden. Beispiele FIN-1001IT-2005MKT-3010 | |||
| Anforderungstyp RequisitionType | Ein Code, der die Bestellanforderung klassifiziert, zum Beispiel für Standardartikel, Dienstleistungen oder Investitionsausgaben. | ||
| Beschreibung Der Bestellanforderungstyp, in SAP auch als Belegart bekannt, ist ein wichtiges Konfigurationsfeld, das Bestellanforderungen kategorisiert. Verschiedene Typen können unterschiedliche Genehmigungs-Workflows auslösen, unterschiedliche Feldeinstellungen haben und für verschiedene Geschäftszwecke verwendet werden, wie z.B. Standardlagerartikel, externe Dienstleistungen oder Anlagenkäufe. Durch die Analyse des Prozesses basierend auf dem Bestellanforderungstyp können Organisationen verstehen, wie verschiedene Arten von Anfragen bearbeitet werden. Es ermöglicht den Vergleich von Leistung, Cycle Times und Genehmigungspfaden über Kategorien hinweg, was aufzeigen kann, ob bestimmte Bestellanforderungstypen mehr oder weniger effizient sind und hilft, Prozessverbesserungen anzupassen. Bedeutung Kategorisiert Bestellanforderungen für Vergleichsanalysen, um zu verstehen, ob verschiedene Anforderungstypen unterschiedliche Prozessabläufe, Engpässe oder Durchlaufzeiten aufweisen. Datenquelle Dies ist das Feld Belegart, zu finden in Tabelle EBAN, Feld BSART. Beispiele NBFORV | |||
| Benutzer-ID UserId | Die ID des Benutzers, der die Bestellanforderung erstellt oder eine bestimmte Aktivität durchgeführt hat. | ||
| Beschreibung Die Benutzer-ID identifiziert den Mitarbeiter oder Systembenutzer, der für ein bestimmtes Event im Lebenszyklus der Bestellanforderung verantwortlich ist. Dies kann die Person sein, die die Bestellanforderung erstellt hat, der Manager, der sie genehmigt hat, oder der Bearbeiter, der sie geändert hat. Bei automatisierten Schritten kann dies eine System- oder Batch-Benutzer-ID sein. Die Analyse nach Benutzer-ID hilft, benutzerspezifisches Verhalten, Arbeitslastverteilung und Performance zu verstehen. Sie ist entscheidend für die Identifizierung von Schulungsbedarfen, die Anerkennung von Hochleistungsträgern und die Sicherstellung der Verantwortlichkeit innerhalb des Prozesses. Sie unterstützt auch die Abteilungsleistungsanalyse in Kombination mit Benutzerstammdaten. Bedeutung Ermöglicht die Analyse der Benutzer-Performance, Arbeitslastverteilung und Prozess-Compliance. Dies ist entscheidend für die Identifizierung von Schulungsbedarfen und Ressourcenengpässen. Datenquelle Im Feld Beispiele JSMITHRROEWF-BATCH | |||
| Bestellanforderungsbetrag RequisitionAmount | Der gesamte monetäre Wert der Bestellanforderung. | ||
| Beschreibung Der Bestellanforderungsbetrag repräsentiert die geschätzten Gesamtkosten der angeforderten Waren oder Dienstleistungen. Dieser Wert ist oft ein Schlüsselfaktor für die Bestimmung der Komplexität und Dauer des Genehmigungs-Workflows, wobei Bestellanforderungen mit höherem Wert typischerweise mehr Genehmigungsebenen erfordern. Die Analyse dieses Attributs ermöglicht eine Segmentierung des Prozesses basierend auf dem Wert. Sie kann helfen, Fragen zu beantworten wie: 'Dauert die Genehmigung von Bestellanforderungen mit hohem Wert länger?' oder 'Was ist der Wert von Bestellanforderungen, die häufig abgelehnt werden?'. Es ist eine kritische Dimension für das Verständnis der finanziellen Auswirkungen von Prozesseffizienz. Bedeutung Hilft, den Prozess nach finanziellen Auswirkungen zu segmentieren, oft korrelierend mit Genehmigungskomplexität und Durchlaufzeit. Dies ist entscheidend für eine wertbasierte Prozessanalyse. Datenquelle Der Gesamtwert ist in Tabelle EBAN, Feld GFWERT, zu finden. Der Wert auf Positionsebene ist in EBAN-PREIS. Beispiele 1500.0075000.50250.75 | |||
| Bestellanforderungsstatus RequisitionStatus | Der aktuelle Bearbeitungs- oder Genehmigungsstatus der Bestellanforderung. | ||
| Beschreibung Der Bestellanforderungsstatus gibt den aktuellen Zustand der Bestellanforderung innerhalb ihres Lebenszyklus an. In SAP wird dies oft durch den Freigabeindikator repräsentiert, der zeigt, ob eine Bestellanforderung blockiert, in Genehmigung, teilweise genehmigt oder vollständig genehmigt ist. Dieser Status ändert sich, wenn die Bestellanforderung den Workflow durchläuft. Die Verfolgung des Status über die Zeit ist grundlegend für das Verständnis des Prozessflusses. Sie hilft zu identifizieren, wo Bestellanforderungen stecken bleiben und wie lange. Die Analyse von Statusübergängen ermöglicht eine detaillierte Ansicht des Genehmigungsprozesses und seiner Varianten. Bedeutung Zeigt den aktuellen Status einer Bestellanforderung an, was entscheidend ist, um den Fortschritt zu verfolgen, Engpässe zu identifizieren und den Prozessfluss zu analysieren. Datenquelle Der Freigabestatus wird oft durch den Freigabeindikator bestimmt, der in Tabelle EBAN, Feld FRGZU, zu finden ist. Beispiele B1S | |||
| Genehmiger-ID ApproverId | Die ID des Benutzers, der einen Genehmigungs- oder Ablehnungsschritt durchgeführt hat. | ||
| Beschreibung Die Genehmiger-ID identifiziert spezifisch den Benutzer, der eine Genehmigungs- oder Ablehnungsaktivität abgeschlossen hat. Dies unterscheidet sich von der allgemeinen Benutzer-ID, da sie sich ausschließlich auf die Entscheidungsträger innerhalb des Genehmigungs-Workflows konzentriert. Die Erfassung dieser Informationen ist für eine detaillierte Analyse des Genehmigungsprozesses von entscheidender Bedeutung. Dieses Attribut ermöglicht die Analyse des Genehmigungsverhaltens, z.B. die Identifizierung von Managern mit langen Genehmigungszeiten oder solchen, die Bestellanforderungen häufig ablehnen. Es ist grundlegend für Dashboards, die sich auf Zykluszeiten von Genehmigungsschritten und die Analyse von Workflow-Engpässen konzentrieren, und hilft dabei, spezifische Personen oder Rollen zu identifizieren, die Verzögerungen verursachen könnten. Bedeutung Identifiziert den spezifischen Entscheidungsträger in einem Genehmigungsschritt und ermöglicht eine detaillierte Analyse der Genehmigungs-Durchlaufzeiten und Engpässe nach Person oder Rolle. Datenquelle Diese Informationen werden typischerweise aus SAP Business Workflow-Tabellen wie SWW_WI2OBJ und SWWLOGHIST extrahiert, die Work Items mit dem abschließenden Benutzer verknüpfen. Beispiele MJOHNSONCWILLIAMSLBLACK | |||
| Ablehnungsgrund RejectionReason | Der angegebene Grund, wenn eine Bestellanforderung abgelehnt wird. | ||
| Beschreibung Der Ablehnungsgrund erklärt, warum ein Genehmiger sich entschied, eine Bestellanforderung abzulehnen. Gründe können Budgetüberschreitungen, falsche Informationen, Nichteinhaltung von Richtlinien oder die Duplizierung einer anderen Anfrage sein. Diese Informationen liefern entscheidenden Kontext für das Verständnis von Prozessfehlern. Die Analyse von Ablehnungsgründen hilft, die Ursachen für Prozesseffizienz und Nacharbeit zu identifizieren. Wenn beispielsweise 'Falsche Kostenstelle' ein häufiger Grund ist, deutet dies auf die Notwendigkeit besserer Benutzerschulungen oder Systemvalidierungen hin. Dieses Attribut ist der Schlüssel zum Dashboard 'Analyse der Bestellanforderungsablehnungen' und entscheidend für eine gezielte Prozessverbesserung. Bedeutung Liefert die Grundursache für Prozessfehler und ermöglicht gezielte Verbesserungen zur Reduzierung von Nacharbeit und zur Steigerung der „First-Time-Right“-Rate von Bestellanforderungen. Datenquelle Dies ist oft kein Standardfeld. Es kann in Workflow-Container-Elementen, Langtexten, die mit der Bestellanforderung verknüpft sind, oder benutzerdefinierten Feldern erfasst werden. Beispiele BudgetüberschreitungFalscher LieferantDoppelte Anforderung | |||
| Bearbeitungszeit ProcessingTime | Die Dauer der für eine bestimmte Aktivität aufgewendeten Zeit. | ||
| Beschreibung Processing Time misst die Zeit, die zur Durchführung einer einzelnen Aktivität benötigt wurde. Sie wird als Differenz zwischen Endzeit und Startzeit eines Events berechnet. Bei vielen Events in SAP sind Start- und Endzeit identisch, was zu einer Bearbeitungszeit von null führt. Bei Genehmigungsschritten kann sie jedoch die Zeit darstellen, die ein Genehmiger für die Bearbeitung der Aufgabe aufgewendet hat. Diese berechnete Metrik ist nützlich, um den Aufwand der verschiedenen Prozessschritte zu verstehen. Sie kann helfen, zwischen der Wartezeit eines Falles (wait time) und der aktiven Bearbeitungszeit (processing time) zu unterscheiden, und bietet so eine nuanciertere Sicht auf die Prozess-Performance. Bedeutung Misst die aktive Arbeitszeit für eine Aktivität und hilft, zwischen der Arbeitszeit und der Wartezeit zu unterscheiden, was entscheidend für die Ressourcenanalyse ist. Datenquelle Dies ist ein berechnetes Attribut, das typischerweise als EndTime minus StartTime für jedes Event im Event Log abgeleitet wird. Beispiele PT15MPT2H30MP1D | |||
| Bestellnummer PurchaseOrderNumber | Die Nummer der Bestellung, die aus der Bestellanforderung erstellt wurde. | ||
| Beschreibung Die Bestellnummer ist der Bezeichner des offiziellen Beschaffungsdokuments, das aus einer genehmigten Bestellanforderung erstellt wurde. Die Erstellung einer Bestellung ist oft das endgültige, erfolgreiche Ergebnis einer Bestellanforderung, das signalisiert, dass die Anfrage in einen formalen Auftrag an einen Lieferanten umgewandelt wurde. Dieses Attribut ist entscheidend für die Messung des KPIs 'Durchlaufzeit von Bestellanforderung zu Bestellung' und der gesamten Konversionsrate. Es verknüpft den Bestellanforderungsprozess mit dem nachgelagerten Beschaffungsprozess und ermöglicht eine umfassendere End-to-End-Sicht auf den gesamten Purchase-to-Pay-Zyklus. Bedeutung Verknüpft die Bestellanforderung mit dem nachfolgenden Beschaffungsdokument und ermöglicht die Messung der Konversionsrate von Bestellanforderung zu Bestellung und der Durchlaufzeit. Datenquelle In Tabelle Beispiele 450001789045000178914500017892 | |||
| Dringlichkeitsstufe UrgencyLevel | Eine Klassifizierung der Dringlichkeit der Bestellanforderung, die ihre Bearbeitungspriorität beeinflussen kann. | ||
| Beschreibung Das Dringlichkeitslevel gibt die Priorität der Kaufanfrage an. Obwohl es kein standardmäßiges dediziertes Feld ist, verwenden einige Organisationen Felder wie die Anforderungsverfolgungsnummer, um diese Informationen zu erfassen. Dies ermöglicht es Anforderern, kritische Bedarfe zu kennzeichnen, die eine beschleunigte Bearbeitung erfordern könnten. Die Analyse der Auswirkungen der Dringlichkeit ist wichtig, um zu bewerten, ob der Prozess kritische Anfragen effektiv priorisiert. Das Dashboard 'Dringlichkeitslevel-Auswirkungsanalyse' verwendet dieses Attribut, um Cycle Times und Genehmigungsraten für dringende gegenüber Standard-Bestellanforderungen zu vergleichen, um festzustellen, ob die Prioritätsbehandlung wie beabsichtigt funktioniert. Bedeutung Ermöglicht die Analyse, wie sich die Prozess-Performance bei hochprioritären Anfragen unterscheidet, und hilft zu überprüfen, ob eilige Positionen tatsächlich beschleunigt werden. Datenquelle Es gibt kein Standardfeld für Dringlichkeit. Einige Unternehmen verwenden dafür die Anforderungsverfolgungsnummer (EBAN-BEDAR). Es kann sich auch um ein benutzerdefiniertes Feld handeln. Beispiele HochMittelNiedrig | |||
| Endzeit EndTime | Das genaue Datum und die Uhrzeit, zu der eine bestimmte Aktivität abgeschlossen wurde. | ||
| Beschreibung EndTime ist der Timestamp, der aufzeichnet, wann eine Aktivität abgeschlossen wurde. Während viele systemgenerierte Events instantan sind (was bedeutet, dass StartTime gleich EndTime ist), können menschliche Aufgaben wie Genehmigungen einen deutlichen Start und ein Ende haben. Dieser Timestamp markiert den Abschluss dieser Arbeit. Ein separates EndTime ermöglicht eine genauere Messung der aktiven Bearbeitungszeit im Vergleich zur Leerlaufzeit. Es wird in Verbindung mit StartTime verwendet, um die Kennzahl ProcessingTime zu berechnen. Dieses Detailniveau verbessert die Analyse der Ressourcenauslastung und Effizienz bei manuellen Aufgaben. Bedeutung Markiert den Abschluss einer Aktivität, ermöglicht die Berechnung der aktiven Bearbeitungszeit und bietet eine detailliertere Ansicht der Aufgabendauer. Datenquelle Dies wird aus Workflow-Logs abgeleitet, die sowohl den Zeitpunkt der Erstellung eines Work Items (StartTime) als auch dessen Abschluss (EndTime) erfassen können. Beispiele 2023-04-15T10:20:30Z2023-04-15T14:25:01Z2023-04-16T11:00:45Z | |||
| Erforderliches Lieferdatum RequiredByDate | Das Datum, bis zu dem der Anforderer die angeforderten Waren oder Dienstleistungen benötigt. | ||
| Beschreibung Das 'Erforderlich bis'-Datum oder Lieferdatum in SAP gibt an, wann die Waren oder Dienstleistungen auf der Bestellanforderungsposition benötigt werden. Dieses Datum wird vom Anforderer festgelegt und dient als Ziel für den gesamten Beschaffungsprozess. Dieses Attribut ist entscheidend für die Berechnung des KPIs 'Rate der pünktlich abgeschlossenen Bestellanforderungen'. Durch den Vergleich des 'Erforderlich bis'-Datums mit dem Datum der finalen Genehmigung oder Bestellanlagung kann die Organisation ihre Fähigkeit messen, interne Service-Levels und Geschäftsbedürfnisse zu erfüllen. Die Analyse von Bestellanforderungen, die dieses Datum nicht einhalten, kann systemische Verzögerungen im Beschaffungsprozess aufzeigen. Bedeutung Definiert das Zieldatum für die Fertigstellung einer Anfrage und ermöglicht die Messung der pünktlichen Lieferung sowie die Einhaltung interner Service-Levels. Datenquelle Dies ist das Lieferdatum, auf Positionsebene in Tabelle EBAN, Feld LFDAT, zu finden. Beispiele 2023-11-152023-12-012024-01-20 | |||
| Ist automatisiert IsAutomated | Ein Flag, das anzeigt, ob eine Aktivität von einem Systembenutzer oder einem Menschen durchgeführt wurde. | ||
| Beschreibung Das Attribut 'Ist Automatisiert' ist ein boolesches Flag, das wahr ist, wenn eine Aktivität von einem System- oder Batch-Benutzer ausgeführt wurde, z.B. 'WF-BATCH' für Workflow-Aktionen. Dies hilft, zwischen manuellen und automatisierten Schritten im Prozess zu unterscheiden. Dieses Attribut ist unerlässlich für die Messung des Automatisierungsgrades im Bestellanforderungsprozess und für die Berechnung des KPIs 'Automatisierte Genehmigungsrate'. Durch das Filtern nach automatisierten oder manuellen Schritten können Analysten deren Effizienz vergleichen und Möglichkeiten für eine weitere Automatisierung identifizieren, um Bearbeitungszeiten und manuellen Aufwand zu reduzieren. Bedeutung Unterscheidet zwischen menschlichen und systemgesteuerten Aktivitäten, was entscheidend ist, um Automatisierungsraten zu messen und Möglichkeiten zur Automatisierung manueller Aufgaben zu identifizieren. Datenquelle Dies ist ein abgeleitetes Attribut, das typischerweise auf einer Regel basiert, die überprüft, ob die Benutzer-ID für ein Event zu einer Liste bekannter System- oder Batch-Benutzer gehört. Beispiele truefalsch | |||
| Ist Nacharbeit IsRework | Ein Flag, das anzeigt, ob eine Aktivität Nacharbeit darstellt, wie z.B. eine Änderung nach der Einreichung. | ||
| Beschreibung „Ist Nacharbeit“ ist ein berechnetes boolesches Flag, das Aktivitäten identifiziert, die keinen Mehrwert schaffen oder repetitive Arbeit darstellen. Ein häufiges Beispiel in diesem Prozess ist die Aktivität „Bestellanforderung geändert“, die auftritt, nachdem die Bestellanforderung bereits zur Genehmigung eingereicht wurde, was den Genehmigungsprozess neu starten lässt. Dieses Attribut ist entscheidend, um den Umfang der Nacharbeit im Prozess und deren Auswirkungen auf die gesamten Durchlaufzeiten zu quantifizieren. Das Dashboard „Bestellanforderungsänderungen und Nacharbeitsrate“ stützt sich auf dieses Flag, um Prozesseffizienzdefizite hervorzuheben. Die Reduzierung von Nacharbeit ist oft ein primäres Ziel von Prozessverbesserungsinitiativen, da sie direkt zu eingesparter Zeit und Aufwand führt. Bedeutung Kennzeichnet Aktivitäten, die verschwendeten Aufwand oder Wiederholung darstellen, und ermöglicht die direkte Messung von Nacharbeit und deren Auswirkungen auf die Prozesseffizienz. Datenquelle Dies ist ein berechnetes Attribut. Die Logik würde typischerweise jede Aktivität 'Bestellanforderung geändert', die nach der ersten Aktivität 'Bestellanforderung zur Genehmigung eingereicht' auftritt, als Nacharbeit kennzeichnen. Beispiele truefalsch | |||
| Letzte Datenaktualisierung LastDataUpdate | Der Zeitstempel, der angibt, wann die Daten für diesen Datensatz zuletzt aus dem Quellsystem aktualisiert wurden. | ||
| Beschreibung Dieses Attribut erfasst Datum und Uhrzeit der letzten Datenextraktion oder -aktualisierung aus dem Quellsystem. Es ist ein kritisches Metadatum, um die Aktualität der analysierten Daten zu verstehen. Analysten und Geschäftsanwender verlassen sich auf diesen Timestamp, um zu wissen, ob die Prozessdaten den aktuellsten Stand der Operationen widerspiegeln. Bei jeder Prozessanalyse ist die Kenntnis der Datenaktualität grundlegend für fundierte Entscheidungen. Dieses Attribut hilft, die Erwartungen der Benutzer zu managen und stellt sicher, dass Schlussfolgerungen aus Daten gezogen werden, die so aktuell sind, wie es für die spezifische Analyse erforderlich ist. Bedeutung Zeigt die Aktualität der Daten an, was entscheidend ist, um der Analyse zu vertrauen und zeitnahe Geschäftsentscheidungen zu treffen. Datenquelle Dieser Beispiele 2023-10-27T02:00:00Z2023-10-28T02:00:00Z | |||
| Name des Genehmigungsschritts ApprovalStepName | Der spezifische Name oder die Beschreibung eines Genehmigungsschritts im Workflow. | ||
| Beschreibung Der Name des Genehmigungsschritts bietet eine menschenlesbare Beschreibung einer bestimmten Phase im Genehmigungs-Workflow, wie z.B. 'Manager-Genehmigung' oder 'VP Finanz-Genehmigung'. Dies ist deskriptiver als eine generische Aktivität 'Genehmigungsschritt abgeschlossen'. Dieses Attribut ist entscheidend für die Dashboards zur Analyse der Zykluszeit von Genehmigungsschritten und von Workflow-Engpässen. Es ermöglicht eine detaillierte Ansicht des Genehmigungsprozesses, wodurch genau ermittelt werden kann, welche Genehmigungsphasen die größten Verzögerungen verursachen und wo sich Arbeit ansammelt. Dieses Detailniveau ist für gezielte Interventionen zur Straffung der Genehmigungskette notwendig. Bedeutung Bietet detaillierte Informationen zu Genehmigungsstufen und ermöglicht so die präzise Identifizierung von Engpässen innerhalb des mehrstufigen Genehmigungs-Workflows. Datenquelle Diese Informationen werden aus der Workflow-Aufgabenbeschreibung abgeleitet, die durch Verknüpfung des Workflow-Protokolls mit Aufgaben-Definitionstabellen wie T528T gefunden werden kann. Beispiele Manager-GenehmigungDirektor-GenehmigungVP Finanzen Genehmigung | |||
| Quellsystem SourceSystem | Identifiziert die spezifische SAP S/4HANA-Instanz, aus der die Daten extrahiert wurden. | ||
| Beschreibung Das Attribut Quellsystem gibt das Ursprungssystem an, in dem die Prozessdaten generiert wurden. In Organisationen mit mehreren SAP-Instanzen, wie z.B. unterschiedlichen Systemen für Entwicklung, Qualitätssicherung und Produktion oder separaten Systemen für verschiedene Regionen, ist dieses Feld entscheidend für Data Governance und Kontext. Es stellt sicher, dass Daten aus verschiedenen Quellen unterschieden werden können, verhindert eine falsche Aggregation und ermöglicht eine systemspezifische Analyse. Es ist ein obligatorisches Attribut zur Aufrechterhaltung der Datenherkunft und zur Gewährleistung der Rückverfolgbarkeit der Prozessdaten. Bedeutung Bietet wesentlichen Kontext für Datenherkunft und Governance, insbesondere in Systemlandschaften mit mehreren Systemen, und gewährleistet die Datenrückverfolgbarkeit. Datenquelle Dies ist typischerweise die SAP System ID (SID), die aus Systemvariablen oder Konfigurationstabellen abgerufen werden kann. Beispiele S4PECCS4H_PROD_01 | |||
| Währung Currency | Der Währungscode für den Betrag der Bestellanforderung. | ||
| Beschreibung Dieses Attribut gibt die Währung an, in der der Bestellanforderungsbetrag ausgewiesen ist, z.B. USD, EUR oder JPY. Es liefert den notwendigen Kontext für das Attribut 'Bestellanforderungsbetrag', insbesondere in multinationalen Organisationen, die mit mehreren Währungen arbeiten. Für eine genaue Finanzanalyse und Berichterstattung ist es unerlässlich, die Währung zu berücksichtigen. Beim Aggregieren oder Vergleichen von Bestellanforderungswerten sollten alle Beträge in eine gemeinsame Währung umgerechnet werden, um aussagekräftige Ergebnisse zu gewährleisten. Dieses Attribut ist eine Voraussetzung für solche Umrechnungen. Bedeutung Bietet wesentlichen Kontext für den Bestellanforderungswert und ermöglicht eine genaue Finanzanalyse sowie Vergleiche in Multi-Währungs-Umgebungen. Datenquelle Dies ist in Tabelle EBAN, Feld WAERS, zu finden. Beispiele USDEURGBP | |||
Procure-to-Pay – Bestellanforderungsaktivitäten
| Aktivität | Beschreibung | ||
|---|---|---|---|
| `Bestellung` erstellt | Zeigt an, dass eine Bestellung unter Bezugnahme auf die Bestellanforderungsposition generiert wurde. Dies ist ein explizites System-Event, das die Bestellanforderung mit einem nachfolgenden Beschaffungsdokument verknüpft. | ||
| Bedeutung Dies ist ein wichtiger Meilenstein und ein erfolgreiches Ergebnis für den Bestellanforderungsprozess. Die Zeit zwischen der Genehmigung der Bestellanforderung und der Bestellungserstellung ist ein kritischer KPI zur Messung der Beschaffungseffizienz. Datenquelle Explizit erfasst, wenn eine Bestellungsposition erstellt wird. Die Verknüpfung wird in der Tabelle Erfassen Verknüpfen Sie die Tabelle Ereignistyp explicit | |||
| Anforderung erstellt | Markiert die initiale Erstellung des Bestellanforderungdokuments im System. Dieses Event wird explizit erfasst, wenn ein Benutzer eine neue Bestellanforderung zum ersten Mal speichert und den Erstellungs-Timestamp aufzeichnet. | ||
| Bedeutung Diese Aktivität dient als primärer Startpunkt für die Analyse des Bestellanforderungs-Lebenszyklus. Sie ist unerlässlich für die Messung der End-to-End-Zykluszeit, von der ersten Bedarfsidentifizierung bis zur finalen Genehmigung oder Umwandlung in eine Bestellung. Datenquelle Dies ist ein explizites Event, das aus der Tabelle EBAN erfasst wird, wobei die Felder Erstellungsdatum (ERDAT) und Erstellungszeit (ERZEIT) für die spezifische Bestellanforderungsnummer (BANFN) verwendet werden. Erfassen Verwenden Sie die Erstellungs-Timestamp-Felder (ERDAT, ERZEIT) aus der Tabelle EBAN für jede Bestellanforderung (BANFN). Ereignistyp explicit | |||
| Bestellanforderung abgelehnt | Stellt die endgültige Ablehnung der Bestellanforderung durch einen Genehmiger dar, wodurch der Prozess gestoppt wird. Dies wird durch eine spezifische Statusaktualisierung erfasst, die die Ablehnung anzeigt. | ||
| Bedeutung Diese Aktivität ist ein kritischer Fehlerendpunkt. Die Analyse der Ablehnungshäufigkeit, -gründe und -zeitpunkte im Prozess hilft, Probleme mit der Richtlinien-Compliance, dem Budget oder der Anforderungsqualität zu identifizieren. Datenquelle Abgeleitet aus einer Statusänderung in der Tabelle Erfassen Identifizieren Sie den Timestamp, zu dem der Gesamtstatus in Ereignistyp inferred | |||
| Bestellanforderung genehmigt | Markiert die endgültige und vollständige Genehmigung der Bestellanforderung, wodurch diese für die Umwandlung in eine Bestellung freigegeben wird. Dieser Meilenstein wird abgeleitet, wenn der Gesamt-Freigabestatus seinen endgültigen genehmigten Zustand erreicht. | ||
| Bedeutung Dies ist ein kritischer Erfolgsmeilenstein und ein häufiger Endpunkt für die Cycle Time-Analyse. Er bedeutet, dass die Bestellanforderung alle Prüfungen bestanden hat und zur Bearbeitung durch die Beschaffungsabteilung bereit ist. Datenquelle Abgeleitet aus einer Statusänderung in der Tabelle Erfassen Identifizieren Sie den Timestamp, zu dem der finale Freigabecode angewendet oder der Gesamtstatus der Bestellanforderung auf 'Genehmigt' geändert wird. Ereignistyp inferred | |||
| Bestellanforderung geschlossen | Zeigt an, dass die Bestellanforderungsposition als vollständig bearbeitet gilt und keine weiteren Bestellungen daraus erstellt werden können. Dieser Status wird typischerweise automatisch gesetzt, sobald die vollständige Menge bestellt wurde. | ||
| Bedeutung Diese Aktivität repräsentiert den abschließenden, erfolgreichen Abschluss des Lebenszyklus einer Bestellanforderungsposition. Sie bestätigt, dass der geschäftliche Bedarf vollständig in einen Beschaffungsauftrag umgesetzt wurde. Datenquelle Abgeleitet aus der Tabelle Erfassen Identifizieren Sie das Event, bei dem das 'Closed'-Kennzeichen ( Ereignistyp inferred | |||
| Genehmigungsschritt abgeschlossen | Tritt auf, wenn ein Genehmiger eine positive Aktion auf eine Bestellanforderung vornimmt und einen Schritt im mehrstufigen Genehmigungs-Workflow abschließt. Dies wird aus einer Änderung des Freigabestatus der Bestellanforderung abgeleitet. | ||
| Bedeutung Diese Aktivität ermöglicht eine detaillierte Analyse des Genehmigungs-Workflows, indem die Zeit gemessen wird, die für jeden einzelnen Schritt benötigt wird. Sie hilft, effiziente Genehmiger im Vergleich zu Engpässen im Prozess zu identifizieren. Datenquelle Abgeleitet aus Änderungsbelegen ( Erfassen Verfolgen Sie Änderungen an den Freigabestatusfeldern in EBAN für jeden in der Strategie definierten Freigabecode. Ereignistyp inferred | |||
| Bestellanforderung geändert | Tritt auf, wenn ein Benutzer ein Schlüsselfeld in der Bestellanforderung nach der initialen Erstellung ändert, wie z.B. Menge, Preis oder Material. Diese Aktion wird explizit im SAP-Änderungsbelegsystem protokolliert. | ||
| Bedeutung Die Verfolgung von Änderungen ist entscheidend, um Nacharbeits-Schleifen und deren Auswirkungen auf die Cycle Times zu identifizieren. Eine hohe Änderungsfrequenz deutet auf Probleme mit der Datenqualität oder sich ändernde Anforderungen hin, die Schlüsselbereiche für die Prozessverbesserung darstellen. Datenquelle Explizit in den SAP-Änderungsbelegtabellen ( Erfassen Extrahieren Sie Änderungs-Events aus Ereignistyp explicit | |||
| Bestellanforderung zur Genehmigung eingereicht | Stellt den Moment dar, in dem der Antragsteller die Bestellanforderung formell einreicht und damit den Genehmigungs-Workflow auslöst. Dies wird typischerweise abgeleitet, wenn die Freigabestrategie der Bestellanforderung festgelegt wird und der Status zu 'In Genehmigung' wechselt. | ||
| Bedeutung Dies ist ein kritischer Meilenstein, der die Messung der Genehmigungs-Cycle Time-KPIs startet. Die Analyse der Zeit zwischen Erstellung und Einreichung kann Verzögerungen in der Bestellanforderungs-Vorbereitungsphase aufzeigen. Datenquelle Abgeleitet aus Änderungsbelegen ( Erfassen Identifizieren Sie den ersten Änderungsbelegeintrag, der den Start des Genehmigungs-Workflows oder eine Statusänderung auf 'In Genehmigung' anzeigt. Ereignistyp inferred | |||
| Bestellanforderung zurückgezogen | Tritt auf, wenn der ursprüngliche Antragsteller die Bestellanforderung storniert oder löscht, bevor sie vollständig bearbeitet wurde. Dies ist typischerweise eine explizite Aktion, die ein Löschkennzeichen für die Bestellanforderungsposition setzt. | ||
| Bedeutung Das Verfolgen von Rückzügen hilft, die Nachfrageschwankungen und Gründe für Stornierungen zu verstehen. Es stellt einen Endzustand für die Bestellanforderung dar und verhindert eine weitere Bearbeitung. Datenquelle Explizit erfasst, wenn das Löschkennzeichen ( Erfassen Identifizieren Sie das Event, bei dem das Löschkennzeichen ( Ereignistyp explicit | |||
| Genehmigung zurückgesetzt | Stellt ein Event dar, bei dem der gesamte Genehmigungs-Workflow zurückgesetzt wird, oft aufgrund einer wesentlichen Änderung der Bestellanforderung. Dies zwingt den Genehmigungsprozess, von der ersten Stufe an neu zu beginnen. | ||
| Bedeutung Diese Aktivität hebt erhebliche Nacharbeit hervor, die die Zykluszeit stark beeinträchtigt. Die Identifizierung der Ursachen für das Zurücksetzen von Genehmigungen ist entscheidend, um den Prozess zu straffen und Verzögerungen zu reduzieren. Datenquelle Abgeleitet aus Änderungsbelegen ( Erfassen Suchen Sie in den Änderungs-Logs nach einer Änderung des Freigabestatus von einem freigegebenen Zustand zurück zu einem nicht freigegebenen Zustand. Ereignistyp inferred | |||
| Genehmigungsschritt gestartet | Zeigt an, dass eine Bestellanforderung auf eine Aktion eines bestimmten Genehmigers oder einer Genehmigungsgruppe wartet. Dies wird abgeleitet, wenn der Status der Bestellanforderung anzeigt, dass ein spezifischer Freigabecode aussteht. | ||
| Bedeutung Diese Aktivität ist entscheidend, um Engpässe in der Genehmigungskette zu identifizieren. Die Analyse der Dauer dieses Status hilft, festgefahrene Bestellanforderungen und überlastete Genehmiger zu erkennen. Datenquelle Abgeleitet aus den Freigabestatusfeldern der Tabelle Erfassen Bestimmt, wann eine Bestellanforderung in einen Zustand übergeht, in dem ein spezifischer Freigabecode zur Genehmigung ansteht, basierend auf Workflow-Logs oder Statusfeldern. Ereignistyp inferred | |||
| Versorgungsquelle zugewiesen | Stellt die Aktion eines Einkäufers dar, einem genehmigten Bestellanforderungsposition einen spezifischen Lieferanten, Vertrag oder Infosatz zuzuordnen. Dies ist ein wichtiger Schritt bei der Vorbereitung der Bestellanforderung für die Bestellgenerierung. | ||
| Bedeutung Diese Aktivität schließt die Lücke zwischen Genehmigung und Bestellung. Die Messung der Zeit bis zur Zuweisung einer Bezugsquelle hilft, Verzögerungen in der Arbeitslast des Einkäufers und der Beschaffungseffizienz zu identifizieren. Datenquelle Abgeleitet aus einem Wert, der in die quellbezogenen Felder der Tabelle Erfassen Verfolgen Sie die Befüllung von Feldern wie LIFNR, INFNR oder KONNR in der Tabelle EBAN über Änderungsbelege. Ereignistyp inferred | |||
Extraktionsleitfäden
Schritte
- Voraussetzungen: Stellen Sie sicher, dass Sie über einen Benutzer mit entsprechenden Berechtigungen in SAP S/4HANA verfügen, um auf die erforderlichen CDS-Views zugreifen zu können. Dies umfasst typischerweise Berechtigungen für Objekte wie
S_TABU_NAMund Zugriff auf Datenanzeigetools. - Systemzugriffsmethode identifizieren: Legen Sie fest, wie Sie sich mit der SAP S/4HANA-Datenbank verbinden, um SQL-Abfragen auszuführen. Gängige Tools sind SAP HANA Studio, die Eclipse IDE mit ADT (ABAP Development Tools) oder SQL-Clients von Drittanbietern wie DBeaver, die sich über den SAP HANA-Datenbankclient verbinden können.
- SQL-Abfrage prüfen: Machen Sie sich mit dem bereitgestellten SQL-Skript vertraut. Es verwendet Common Table Expressions (CTEs), um Daten für verschiedene Aktivitäten zu sammeln und diese zu einem einheitlichen Event Log zu vereinigen.
- Platzhalter anpassen: Suchen und ersetzen Sie die Platzhalter in der Abfrage. Sie müssen den Datumsbereich (im Format
[YYYY-MM-DD]) für den Extraktionszeitraum festlegen und die relevanten Buchungskreise ([Ihr Buchungskreis]) für Ihre Organisation angeben. - Abfrage ausführen: Führen Sie die vollständige, angepasste SQL-Abfrage gegen die SAP S/4HANA-Datenbank aus. Abhängig vom Datenvolumen und dem gewählten Datumsbereich kann diese Abfrage einige Zeit in Anspruch nehmen.
- Erste Datenprüfung: Sobald die Abfrage abgeschlossen ist, überprüfen Sie die ersten Zeilen der Ausgabe. Stellen Sie sicher, dass alle Spalten wie
PurchaseRequisitionId,ActivityNameundEventTimewie erwartet gefüllt sind und die Datenformate korrekt sind. - Datenumwandlung beachten: Die bereitgestellte Abfrage ist darauf ausgelegt, Daten in einem für Process Mining vorbereiteten Format auszugeben. Die Funktionen
CASTundCONCATwerden verwendet, um die Konsistenz der Datentypen sicherzustellen. Es sollten keine größeren Transformationen nach der Ausführung erforderlich sein. - Event Log exportieren: Exportieren Sie das gesamte Ergebnis Ihrer SQL-Client-Sitzung in eine CSV-Datei. Stellen Sie sicher, dass die Dateikodierung auf UTF-8 eingestellt ist, um Zeichenprobleme zu vermeiden.
- Für den Upload vorbereiten: Überprüfen Sie vor dem Upload in ein Process Mining Tool, ob die CSV-Datei die korrekten Header (
PurchaseRequisitionId,ActivityName,EventTimeusw.) enthält und dass das Datums- und Zeitformat fürEventTimekonsistent ist und von der Zielplattform unterstützt wird. - In ProcessMind hochladen: Laden Sie die fertige CSV-Datei in Ihr ProcessMind-Projekt hoch. Konfigurieren Sie das Projekt, indem Sie
PurchaseRequisitionIdals Case ID,ActivityNameals Activity undEventTimeals Timestamp zuordnen.
Konfiguration
- Core CDS Views: Die Extraktion nutzt hauptsächlich
I_PurchaseRequisitionAPI01für zentrale Bestellanforderungsdaten,I_ChangeDocumentundI_ChangeDocumentItemzur Nachverfolgung von Änderungen und Statusaktualisierungen sowieI_PurchaseOrderItemAPI01zur Verknüpfung mit Bestellungen. - Autorisierung: Der ausführende Benutzer benötigt Lesezugriff auf die oben genannten CDS-Views. Konsultieren Sie Ihr SAP-Sicherheitsteam bezüglich der notwendigen Rollen und Berechtigungen.
- Datumsbereichsfilterung: Es ist entscheidend, einen Datumsbereichsfilter auf das Erstellungsdatum der Bestellanforderung (
CreationDate) anzuwenden, um das Datenvolumen zu begrenzen. Ein Bereich von 3 bis 6 Monaten Daten wird für eine erste Analyse empfohlen. - Organisatorische Filterung: Filtern Sie die Daten nach
CompanyCode, um sicherzustellen, dass Sie den Prozess für die korrekte Geschäftseinheit analysieren. Sie können auch nachPurchaseRequisitionTypefiltern, um sich auf spezifische Beschaffungsprozesse zu konzentrieren, z. B. Standardwaren im Vergleich zu Dienstleistungen. - Änderungsbelegkonfiguration: Die Erfassung von Aktivitäten wie 'Bestellanforderung geändert' und verschiedene Genehmigungsschritte hängt davon ab, ob die Änderungsbelegprotokollierung für die relevanten Felder in Ihrem SAP-System aktiv ist. Falls diese Events fehlen, überprüfen Sie die Systemkonfiguration für Tabelle
EBAN. - Performance: Bei sehr großen Systemen mit Millionen von Bestellanforderungen kann die Ausführung dieser Abfrage über einen längeren Zeitraum die Systemleistung beeinträchtigen. Ziehen Sie in Betracht, sie außerhalb der Spitzenzeiten oder in einer Nicht-Produktionsumgebung mit kürzlich aktualisierten Daten auszuführen.
a Beispielabfrage sql
WITH REQUISITIONS AS (
SELECT
PurchaseRequisition,
PurchaseRequisitionType,
PurReqnDescription,
CreatedByUser,
CreationDate,
CAST(CONCAT(CreationDate, 'T', LPAD(CreationTime, 6, '0')) AS TIMESTAMP) AS CreationTimestamp,
SourceOfSupplyIsAssigned
FROM I_PurchaseRequisitionAPI01
WHERE CreationDate BETWEEN '[YYYY-MM-DD]' AND '[YYYY-MM-DD]'
AND CompanyCode IN ('[Your Company Code]')
),
CHANGE_DOCS AS (
SELECT
ObjectValue AS PurchaseRequisition,
UserName,
CAST(CONCAT(CreationDate, 'T', LPAD(CreationTime, 6, '0')) AS TIMESTAMP) AS ChangeTimestamp,
FieldName,
ValueNew,
ValueOld
FROM I_ChangeDocument AS H
JOIN I_ChangeDocumentItem AS I
ON H.ChangeDocument = I.ChangeDocument
WHERE H.Objectclass = 'EINKBELEG'
AND H.CreationDate BETWEEN '[YYYY-MM-DD]' AND '[YYYY-MM-DD]'
)
-- 1. Requisition Created
SELECT
R.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Created' AS "ActivityName",
R.CreationTimestamp AS "EventTime",
R.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM REQUISITIONS AS R
JOIN I_PurchaseRequisitionItemAPI01 AS I
ON R.PurchaseRequisition = I.PurchaseRequisition
UNION ALL
-- 2. Requisition Submitted For Approval & 5. Approval Step Started
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
CASE
WHEN C.ValueOld = ''
THEN 'Requisition Submitted For Approval'
ELSE 'Approval Step Started'
END AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
R.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R
ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I
ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew != ''
UNION ALL
-- 3. Requisition Amended
SELECT DISTINCT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Amended' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName IN ('MENGE', 'PREIS', 'MATNR', 'LIFNR', 'INFNR')
AND C.ChangeTimestamp > R.CreationTimestamp
UNION ALL
-- 4. Approval Reset
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Approval Reset' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueOld != '' AND C.ValueNew = ''
UNION ALL
-- 6. Approval Step Completed
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Approval Step Completed' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew IN ('1', '2', '3', '4', '5', '6', '7') -- Adjust release codes as per your config
UNION ALL
-- 7. Requisition Approved
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Approved' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGKE' AND C.ValueNew = '2' -- Final release indicator '2' is common for approved
UNION ALL
-- 8. Requisition Rejected
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Rejected' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew = 'B' -- 'B' for Blocked/Rejected is a common setting
UNION ALL
-- 9. Requisition Withdrawn
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Withdrawn' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'LOEKZ' AND C.ValueNew = 'X'
UNION ALL
-- 10. Source of Supply Assigned
SELECT DISTINCT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Source of Supply Assigned' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName IN ('LIFNR', 'INFNR') AND C.ValueNew != ''
AND C.ChangeTimestamp > R.CreationTimestamp
UNION ALL
-- 11. Purchase Order Created
SELECT DISTINCT
I.PurchaseRequisition AS "PurchaseRequisitionId",
'Purchase Order Created' AS "ActivityName",
CAST(CONCAT(H.PurchaseOrderDate, 'T', LPAD(H.CreationTime, 6, '0')) AS TIMESTAMP) AS "EventTime",
H.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.OrderPriceUnit * I.OrderQuantity AS "RequisitionAmount",
'PO Created' AS "RequisitionStatus"
FROM I_PurchaseOrderItemAPI01 AS I
JOIN I_PurchaseOrderAPI01 AS H
ON I.PurchaseOrder = H.PurchaseOrder
JOIN REQUISITIONS AS R
ON I.PurchaseRequisition = R.PurchaseRequisition
WHERE I.PurchaseRequisition IS NOT NULL AND I.PurchaseRequisition != ''
UNION ALL
-- 12. Requisition Closed
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Closed' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'EBAKZ' AND C.ValueNew = 'X' Schritte
- Voraussetzungen: Stellen Sie sicher, dass Sie über einen Benutzer mit entsprechenden Berechtigungen in SAP S/4HANA verfügen, um auf die erforderlichen CDS-Views zugreifen zu können. Dies umfasst typischerweise Berechtigungen für Objekte wie
S_TABU_NAMund Zugriff auf Datenanzeigetools. - Systemzugriffsmethode identifizieren: Legen Sie fest, wie Sie sich mit der SAP S/4HANA-Datenbank verbinden, um SQL-Abfragen auszuführen. Gängige Tools sind SAP HANA Studio, die Eclipse IDE mit ADT (ABAP Development Tools) oder SQL-Clients von Drittanbietern wie DBeaver, die sich über den SAP HANA-Datenbankclient verbinden können.
- SQL-Abfrage prüfen: Machen Sie sich mit dem bereitgestellten SQL-Skript vertraut. Es verwendet Common Table Expressions (CTEs), um Daten für verschiedene Aktivitäten zu sammeln und diese zu einem einheitlichen Event Log zu vereinigen.
- Platzhalter anpassen: Suchen und ersetzen Sie die Platzhalter in der Abfrage. Sie müssen den Datumsbereich (im Format
[YYYY-MM-DD]) für den Extraktionszeitraum festlegen und die relevanten Buchungskreise ([Ihr Buchungskreis]) für Ihre Organisation angeben. - Abfrage ausführen: Führen Sie die vollständige, angepasste SQL-Abfrage gegen die SAP S/4HANA-Datenbank aus. Abhängig vom Datenvolumen und dem gewählten Datumsbereich kann diese Abfrage einige Zeit in Anspruch nehmen.
- Erste Datenprüfung: Sobald die Abfrage abgeschlossen ist, überprüfen Sie die ersten Zeilen der Ausgabe. Stellen Sie sicher, dass alle Spalten wie
PurchaseRequisitionId,ActivityNameundEventTimewie erwartet gefüllt sind und die Datenformate korrekt sind. - Datenumwandlung beachten: Die bereitgestellte Abfrage ist darauf ausgelegt, Daten in einem für Process Mining vorbereiteten Format auszugeben. Die Funktionen
CASTundCONCATwerden verwendet, um die Konsistenz der Datentypen sicherzustellen. Es sollten keine größeren Transformationen nach der Ausführung erforderlich sein. - Event Log exportieren: Exportieren Sie das gesamte Ergebnis Ihrer SQL-Client-Sitzung in eine CSV-Datei. Stellen Sie sicher, dass die Dateikodierung auf UTF-8 eingestellt ist, um Zeichenprobleme zu vermeiden.
- Für den Upload vorbereiten: Überprüfen Sie vor dem Upload in ein Process Mining Tool, ob die CSV-Datei die korrekten Header (
PurchaseRequisitionId,ActivityName,EventTimeusw.) enthält und dass das Datums- und Zeitformat fürEventTimekonsistent ist und von der Zielplattform unterstützt wird. - In ProcessMind hochladen: Laden Sie die fertige CSV-Datei in Ihr ProcessMind-Projekt hoch. Konfigurieren Sie das Projekt, indem Sie
PurchaseRequisitionIdals Case ID,ActivityNameals Activity undEventTimeals Timestamp zuordnen.
Konfiguration
- Core CDS Views: Die Extraktion nutzt hauptsächlich
I_PurchaseRequisitionAPI01für zentrale Bestellanforderungsdaten,I_ChangeDocumentundI_ChangeDocumentItemzur Nachverfolgung von Änderungen und Statusaktualisierungen sowieI_PurchaseOrderItemAPI01zur Verknüpfung mit Bestellungen. - Autorisierung: Der ausführende Benutzer benötigt Lesezugriff auf die oben genannten CDS-Views. Konsultieren Sie Ihr SAP-Sicherheitsteam bezüglich der notwendigen Rollen und Berechtigungen.
- Datumsbereichsfilterung: Es ist entscheidend, einen Datumsbereichsfilter auf das Erstellungsdatum der Bestellanforderung (
CreationDate) anzuwenden, um das Datenvolumen zu begrenzen. Ein Bereich von 3 bis 6 Monaten Daten wird für eine erste Analyse empfohlen. - Organisatorische Filterung: Filtern Sie die Daten nach
CompanyCode, um sicherzustellen, dass Sie den Prozess für die korrekte Geschäftseinheit analysieren. Sie können auch nachPurchaseRequisitionTypefiltern, um sich auf spezifische Beschaffungsprozesse zu konzentrieren, z. B. Standardwaren im Vergleich zu Dienstleistungen. - Änderungsbelegkonfiguration: Die Erfassung von Aktivitäten wie 'Bestellanforderung geändert' und verschiedene Genehmigungsschritte hängt davon ab, ob die Änderungsbelegprotokollierung für die relevanten Felder in Ihrem SAP-System aktiv ist. Falls diese Events fehlen, überprüfen Sie die Systemkonfiguration für Tabelle
EBAN. - Performance: Bei sehr großen Systemen mit Millionen von Bestellanforderungen kann die Ausführung dieser Abfrage über einen längeren Zeitraum die Systemleistung beeinträchtigen. Ziehen Sie in Betracht, sie außerhalb der Spitzenzeiten oder in einer Nicht-Produktionsumgebung mit kürzlich aktualisierten Daten auszuführen.
a Beispielabfrage sql
WITH REQUISITIONS AS (
SELECT
PurchaseRequisition,
PurchaseRequisitionType,
PurReqnDescription,
CreatedByUser,
CreationDate,
CAST(CONCAT(CreationDate, 'T', LPAD(CreationTime, 6, '0')) AS TIMESTAMP) AS CreationTimestamp,
SourceOfSupplyIsAssigned
FROM I_PurchaseRequisitionAPI01
WHERE CreationDate BETWEEN '[YYYY-MM-DD]' AND '[YYYY-MM-DD]'
AND CompanyCode IN ('[Your Company Code]')
),
CHANGE_DOCS AS (
SELECT
ObjectValue AS PurchaseRequisition,
UserName,
CAST(CONCAT(CreationDate, 'T', LPAD(CreationTime, 6, '0')) AS TIMESTAMP) AS ChangeTimestamp,
FieldName,
ValueNew,
ValueOld
FROM I_ChangeDocument AS H
JOIN I_ChangeDocumentItem AS I
ON H.ChangeDocument = I.ChangeDocument
WHERE H.Objectclass = 'EINKBELEG'
AND H.CreationDate BETWEEN '[YYYY-MM-DD]' AND '[YYYY-MM-DD]'
)
-- 1. Requisition Created
SELECT
R.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Created' AS "ActivityName",
R.CreationTimestamp AS "EventTime",
R.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM REQUISITIONS AS R
JOIN I_PurchaseRequisitionItemAPI01 AS I
ON R.PurchaseRequisition = I.PurchaseRequisition
UNION ALL
-- 2. Requisition Submitted For Approval & 5. Approval Step Started
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
CASE
WHEN C.ValueOld = ''
THEN 'Requisition Submitted For Approval'
ELSE 'Approval Step Started'
END AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
R.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R
ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I
ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew != ''
UNION ALL
-- 3. Requisition Amended
SELECT DISTINCT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Amended' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName IN ('MENGE', 'PREIS', 'MATNR', 'LIFNR', 'INFNR')
AND C.ChangeTimestamp > R.CreationTimestamp
UNION ALL
-- 4. Approval Reset
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Approval Reset' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueOld != '' AND C.ValueNew = ''
UNION ALL
-- 6. Approval Step Completed
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Approval Step Completed' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew IN ('1', '2', '3', '4', '5', '6', '7') -- Adjust release codes as per your config
UNION ALL
-- 7. Requisition Approved
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Approved' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGKE' AND C.ValueNew = '2' -- Final release indicator '2' is common for approved
UNION ALL
-- 8. Requisition Rejected
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Rejected' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew = 'B' -- 'B' for Blocked/Rejected is a common setting
UNION ALL
-- 9. Requisition Withdrawn
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Withdrawn' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'LOEKZ' AND C.ValueNew = 'X'
UNION ALL
-- 10. Source of Supply Assigned
SELECT DISTINCT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Source of Supply Assigned' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName IN ('LIFNR', 'INFNR') AND C.ValueNew != ''
AND C.ChangeTimestamp > R.CreationTimestamp
UNION ALL
-- 11. Purchase Order Created
SELECT DISTINCT
I.PurchaseRequisition AS "PurchaseRequisitionId",
'Purchase Order Created' AS "ActivityName",
CAST(CONCAT(H.PurchaseOrderDate, 'T', LPAD(H.CreationTime, 6, '0')) AS TIMESTAMP) AS "EventTime",
H.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.OrderPriceUnit * I.OrderQuantity AS "RequisitionAmount",
'PO Created' AS "RequisitionStatus"
FROM I_PurchaseOrderItemAPI01 AS I
JOIN I_PurchaseOrderAPI01 AS H
ON I.PurchaseOrder = H.PurchaseOrder
JOIN REQUISITIONS AS R
ON I.PurchaseRequisition = R.PurchaseRequisition
WHERE I.PurchaseRequisition IS NOT NULL AND I.PurchaseRequisition != ''
UNION ALL
-- 12. Requisition Closed
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Closed' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'EBAKZ' AND C.ValueNew = 'X'