Ihr Daten-Template für die Retouren- und Erstattungsabwicklung
Ihr Daten-Template für die Retouren- und Erstattungsabwicklung
- Empfohlene Datenfelder für die Erfassung
- Wichtige Prozessschritte für die Nachverfolgung
- Anleitung zur Datenextraktion
Attribute für die Bearbeitung von Retouren und Rückerstattungen
| Name | Beschreibung | ||
|---|---|---|---|
| Ereigniszeit EventTime | Der Timestamp, der angibt, wann eine bestimmte Aktivität oder ein Ereignis stattgefunden hat. | ||
| Beschreibung Die Ereigniszeit beziehungsweise der Timestamp erfasst das genaue Datum und die Uhrzeit, zu denen eine Aktivität stattgefunden hat. Jede Aktivität im Event Log verfügt über einen zugehörigen Timestamp, der die chronologische Reihenfolge der Ereignisse festlegt. Dieses Attribut ist für alle zeitbezogenen Process-Mining-Analysen entscheidend. Es dient zur Berechnung von Durchlaufzeiten zwischen Aktivitäten, zur Identifikation von Wartezeiten und Engpässen, zur Messung der gesamten Case-Dauer sowie zur Prüfung der Einhaltung von Service Level Agreements (SLAs). Die Genauigkeit der Timestamps wirkt sich unmittelbar auf die Zuverlässigkeit jeder Leistungsanalyse aus. Warum das wichtig ist Dieser Timestamp ist für die Berechnung aller dauerbezogenen Kennzahlen wie Durchlauf- und Wartezeiten unerlässlich. Diese Kennzahlen bilden eine wichtige Grundlage der Leistungsanalyse. Bezugsquelle Entspricht Datumsfeldern für die Erstellung oder Änderung in verschiedenen Tabellen, beispielsweise „SalesTable.createdDateTime“ für die Auftragserstellung oder „WMSJournalTrans.createdDateTime“ für Lagerjournale. Beispiele 2023-10-26T10:00:00Z2023-10-26T14:30:15Z2023-10-27T09:05:42Z | |||
| Retourenfall-ID ReturnCaseId | Die eindeutige Kennung für den Retouren- und Erstattungsfall eines Kunden, die alle zugehörigen Aktivitäten miteinander verknüpft. | ||
| Beschreibung Die Retourenfall-ID dient als primäre Kennung für jede einzelne Instanz eines Retourenprozesses. Sie verknüpft alle Aktivitäten, die zu einer bestimmten Kundenretoure oder Erstattungsanfrage gehören, von der Erstellung des Retourenauftrags bis zu seinem endgültigen Abschluss. In der Prozessanalyse ist diese ID grundlegend für die Rekonstruktion des End-to-End-Ablaufs jeder Retoure. Sie ermöglicht die Nachverfolgung des gesamten Lebenszyklus, die Messung der Gesamtdurchlaufzeiten und die Analyse von Unterschieden zwischen verschiedenen Cases. Alle Ereignisse, Daten und Kennzahlen werden anhand dieser Kennung aggregiert und miteinander korreliert. Warum das wichtig ist Dies ist die zentrale Case-Kennung, die alle Prozessschritte verbindet und dadurch die Nachverfolgung und Analyse jeder Retoure vom Anfang bis zum Ende ermöglicht. Bezugsquelle Dabei handelt es sich in der Regel um die Return Material Authorization (RMA)-Nummer oder die Sales-Order-Nummer des Typs „Returned Order“ im Modul „Sales and marketing“. Sie ist in Tabellen wie „SalesTable“ zu finden, wenn „SalesType“ den Wert „Returned Order“ hat. Beispiele RMA-001234RMA-001235RMA-001236 | |||
| Aktivitätsname ActivityName | Der Name des konkreten Geschäftsereignisses oder der Aufgabe, die innerhalb des Retouren- und Erstattungsprozesses stattgefunden hat. | ||
| Beschreibung Dieses Attribut beschreibt einen konkreten Schritt oder ein Ereignis im Lebenszyklus einer Retoure und Erstattung, beispielsweise „Return Order Created“, „Item Received“ oder „Credit Note Posted“. Jede Aktivität stellt einen eigenständigen Punkt im Prozess dar, der im System erfasst wird. Die Analyse der Reihenfolge und Häufigkeit dieser Aktivitäten bildet den Kern von Process Mining. Sie ermöglicht die Visualisierung von Prozessmodellen, die Identifikation von Engpässen zwischen Schritten sowie die Erkennung häufiger und seltener Prozessvarianten. Die Menge der Aktivitäten definiert den Umfang des analysierten Prozesses. Warum das wichtig ist Es definiert die Prozessschritte und ermöglicht dadurch die Visualisierung des Prozessablaufs sowie die Identifikation von Engpässen, Nacharbeit und Abweichungen. Bezugsquelle Dies ist ein konzeptionelles Attribut, das aus Systemereignissen abgeleitet wird. Es kann durch die Zuordnung von Statusänderungen in Tabellen wie „SalesTable“ und „WMSJournalTable“ oder von bestimmten Event Logs zu verständlichen Namen erzeugt werden. Beispiele Retourenauftrag erstelltArtikel eingegangenDispositionscode angewendetGutschrift gebucht | |||
| Dispositionscode DispositionCode | Ein Code, der das Ergebnis der Artikelprüfung und die nächste auszuführende Aktion angibt. | ||
| Beschreibung Der Dispositionscode wird während der Qualitätsprüfung eines retournierten Artikels zugewiesen. Er legt den nächsten Prozessschritt fest, beispielsweise „Credit“, „Replace“, „Scrap“ oder „Return to Customer“. Dieses Attribut ist ein entscheidender Entscheidungspunkt im Retourenprozess. Die Analyse nach Dispositionscode ermöglicht es Unternehmen, die Ergebnisse von Retouren zu verstehen, die finanziellen Auswirkungen der Verschrottung von Artikeln zu verfolgen und die Effizienz verschiedener Lösungswege wie Ersatzlieferung und Erstattung zu bewerten. Warum das wichtig ist Dieser Code bestimmt den Weg, den ein Retourenfall nach der Prüfung nimmt. Damit ist er für die Analyse von Prozessvarianten und deren Geschäftsergebnissen entscheidend. Bezugsquelle Dies ist ein wichtiges Feld im Qualitätsmanagementmodul. Es ist mit der Verarbeitung von Quality Order oder Inspection Order verknüpft. Beispiele CRDTREPL-DSCRAPRTV | |||
| Produkt-ID ProductId | Die eindeutige Kennung des zurückgesendeten Produkts. | ||
| Beschreibung Die Produkt-ID, häufig die Stock Keeping Unit (SKU), identifiziert den konkreten Artikel, den der Kunde zurücksendet. Jede Retourenauftragszeile ist mit einer Produkt-ID verknüpft. Die Analyse von Retouren nach Produkt ist entscheidend, um Artikel mit hohen Retourenquoten zu identifizieren. Dies kann auf Probleme bei der Qualitätskontrolle, ungenaue Produktbeschreibungen oder Herstellungsfehler hinweisen. Die Analyse hilft dabei, produktbezogene Untersuchungen und Verbesserungen zu priorisieren. Warum das wichtig ist Sie ermöglicht die Analyse von Retouren auf Produktebene und hilft, Artikel mit Qualitätsproblemen oder hohen Retourenvolumina zu identifizieren. Bezugsquelle Dies entspricht dem Feld „ItemId“ in der Tabelle „SalesLine“ des Retourenauftrags. Beispiele SKU-A-123SKU-B-456SKU-C-789 | |||
| Retourengrundcode ReturnReasonCode | Der vom Kunden angegebene Grund für die Rücksendung des Artikels. | ||
| Beschreibung Der Retourengrundcode erfasst den vom Kunden genannten Rücksendegrund, beispielsweise „Defective Item“, „Wrong Size“, „Not as Described“ oder „No Longer Needed“. Diese Information wird in der Regel bei der Einleitung der Retoure erfasst. Die Analyse von Retourengründen ist für die Ursachenanalyse von großer Bedeutung. Sie hilft Unternehmen, Probleme mit der Produktqualität, fehlerhafte Produktbeschreibungen oder logistische Fehler zu erkennen. Die daraus gewonnenen Erkenntnisse können Verbesserungen bei Produktdesign, Marketing und Lieferkettenprozessen anstoßen und so künftige Retouren reduzieren. Warum das wichtig ist Es liefert wichtige Erkenntnisse darüber, warum Retouren entstehen, und ermöglicht eine Ursachenanalyse zur Senkung der Retourenquote und Verbesserung der Kundenzufriedenheit. Bezugsquelle Dieser Wert wird typischerweise auf Ebene der Retourenauftragszeile gespeichert. Suchen Sie in der Tabelle „SalesLine“ für Retourenaufträge nach Feldern für den Retourengrundcode. Beispiele DEFECTWRONG_ITEMNO_LONGER_WANTEDDAMAGED_IN_TRANSIT | |||
| Retourenkanal ReturnChannel | Die Methode oder der Kanal, über den der Kunde die Retoure eingeleitet hat. | ||
| Beschreibung Dieses Attribut gibt den vom Kunden verwendeten Kanal zum Start des Retourenprozesses an, beispielsweise „Online Portal“, „In-Store“, „Customer Service Call“ oder „Mail“. Die Segmentierung der Prozessanalyse nach Retourenkanal hilft bei der Bewertung der Leistung und Effizienz jedes Kanals. Ein Unternehmen kann Durchlaufzeiten, Kosten und Kundenzufriedenheit kanalübergreifend vergleichen, um bewährte Vorgehensweisen sowie Investitions- und Verbesserungsmöglichkeiten zu erkennen. Dies ist für das Dashboard „Return Channel Utilization Performance“ entscheidend. Warum das wichtig ist Es ermöglicht den Leistungsvergleich verschiedener Retourenkanäle und hilft dabei, die effizientesten und kostengünstigsten Kanäle zu optimieren. Bezugsquelle Diese Information kann im Kopf des Retourenauftrags („SalesTable“) gespeichert oder aus dem Benutzer abgeleitet werden, der den Auftrag erstellt hat. Möglicherweise sind dafür eine individuelle Logik oder ein eigenes Feld erforderlich. Beispiele WebportalKiosk im GeschäftKundensupport | |||
| Verantwortlicher Benutzer ResponsibleUser | Der Benutzer oder Mitarbeiter, der eine bestimmte Aktivität ausgeführt hat oder dafür verantwortlich ist. | ||
| Beschreibung Dieses Attribut identifiziert die Person, die für die Ausführung eines Prozessschritts verantwortlich ist. Dabei kann es sich um den Lagermitarbeiter handeln, der den Artikel entgegengenommen hat, um den Qualitätsprüfer oder um den Finanzsachbearbeiter, der die Gutschrift gebucht hat. Die Analyse nach Benutzern hilft, die Arbeitslastverteilung zu verstehen, besonders leistungsstarke Mitarbeiter zu identifizieren und möglichen Schulungsbedarf zu erkennen. Sie kann außerdem zur Untersuchung von Cases dienen, die von bestimmten Personen oder Teams bearbeitet wurden, sowie zur Sicherstellung einer angemessenen Funktionstrennung. Warum das wichtig ist Es ermöglicht die Analyse der Arbeitslastverteilung und der Leistung einzelner Mitarbeiter oder Teams sowie die Identifikation von Möglichkeiten für Schulungen oder eine bessere Ressourcenverteilung. Bezugsquelle Zu finden in Feldern wie „created by“ oder „modified by“ in Transaktionsdatensätzen, beispielsweise „SalesTable.createdBy“, oder in verknüpften Benutzer-IDs in Journaltabellen. Beispiele Alice.WBob.JChris.P | |||
| Angeforderter Erstattungsbetrag RequestedRefundAmount | Der gesamte Geldbetrag der vom Kunden angeforderten Erstattung. | ||
| Beschreibung Dieses Attribut stellt den ursprünglichen Erstattungsbetrag dar, der zu Beginn des Retourenprozesses angefordert oder erwartet wird. Er basiert in der Regel auf dem ursprünglichen Kaufpreis der retournierten Artikel. Dieser Wert dient als Referenz für die „Refund Amount Discrepancy Analysis“. Durch den Vergleich des angeforderten Betrags mit dem tatsächlich erstatteten Betrag kann das Unternehmen Abweichungen erkennen, die beispielsweise durch Wiedereinlagerungsgebühren, Teilerstattungen für beschädigte Waren oder andere Anpassungen entstehen. Dies unterstützt die Überwachung der finanziellen Genauigkeit und der Einhaltung von Richtlinien. Warum das wichtig ist Er dient als Referenzwert zur Messung der finanziellen Genauigkeit, indem er mit dem tatsächlich verarbeiteten Erstattungsbetrag verglichen wird. Bezugsquelle Dabei handelt es sich typischerweise um den Zeilenbetrag oder Gesamtbetrag der ursprünglichen Auftragszeile, die retourniert wird. Der Wert ist in „SalesLine.LineAmount“ zu finden. Beispiele 99.99150.0024.50 | |||
| Endzeit EndTime | Der Timestamp, der angibt, wann eine bestimmte Aktivität abgeschlossen wurde. | ||
| Beschreibung Die Endzeit bezeichnet den Abschluss-Timestamp einer Aktivität. Während StartTime den Beginn markiert, kennzeichnet EndTime das Ende. Dadurch lässt sich die Bearbeitungszeit der jeweiligen Aufgabe berechnen. Dieses Attribut ist für eine detaillierte Leistungsanalyse entscheidend, insbesondere bei Aufgaben mit messbarer Dauer wie „Item Inspection“. Durch den Vergleich von StartTime und EndTime können Analysten die aktive Bearbeitungszeit von Aufgaben präzise messen und von der Wartezeit zwischen Aufgaben unterscheiden. So lassen sich Ineffizienzen innerhalb einzelner Aktivitäten und nicht nur zwischen ihnen erkennen. Warum das wichtig ist Es ermöglicht die Berechnung der aktiven Bearbeitungszeit einzelner Aktivitäten und hilft dabei, Wartezeit von tatsächlicher Arbeitszeit zu unterscheiden. Bezugsquelle Dieser Wert muss häufig abgeleitet werden. Er kann beispielsweise dem „modifiedDateTime“ einer Statusänderung entsprechen, die eine Aktivität abschließt, oder der StartTime der nachfolgenden Aktivität. Beispiele 2023-10-26T10:15:00Z2023-10-26T14:45:20Z2023-10-27T09:55:12Z | |||
| Gutschrift-ID CreditNoteId | Die eindeutige Kennung des für eine Erstattung erstellten Gutschriftsdokuments. | ||
| Beschreibung Bei der Verarbeitung einer Erstattung wird ein Finanzdokument erstellt, das als Gutschrift oder Credit Memo bezeichnet wird. Dieses Attribut speichert die eindeutige ID dieses Dokuments. Die ID stellt eine direkte Verbindung zwischen dem operativen Retourenprozess und den Finanzdaten im Buchhaltungssystem her. Sie ist für Prüfzwecke und die detaillierte Untersuchung finanzieller Abweichungen nützlich, da Analysten einen Retourenfall bis zur konkreten Finanztransaktion zurückverfolgen können, durch die er ausgeglichen wurde. Warum das wichtig ist Sie verknüpft den operativen Retourenprozess mit der zugehörigen Finanztransaktion und ist damit für Prüfungen und den finanziellen Abgleich entscheidend. Bezugsquelle Die Gutschriftsnummer befindet sich typischerweise im Feld „InvoiceId“ der Tabelle „CustInvoiceJour“, wenn der Transaktionstyp „Credit note“ lautet. Sie kann mit dem Retourenauftrag verknüpft werden. Beispiele CN-10056CN-10057CN-10058 | |||
| Kunden-ID CustomerId | Die eindeutige Kennung des Kunden, der die Retoure eingeleitet hat. | ||
| Beschreibung Die Kunden-ID ist die eindeutige Kennung des mit der Retoure verbundenen Kundenkontos. Sie verknüpft die Retourentransaktion mit einem bestimmten Kunden im CRM oder in der Kundendatenbank. Die Analyse von Retouren nach Kunde ermöglicht es, Kunden mit ungewöhnlich vielen Retouren zu identifizieren. Dies kann auf betrügerisches Verhalten oder anhaltende Unzufriedenheit hindeuten. Außerdem lässt sich die Kundensegmentierung unterstützen, beispielsweise um besonders wertvollen Kunden Premium-Retourenservices anzubieten. Warum das wichtig ist Sie verknüpft den Retourenprozess mit einem bestimmten Kunden und ermöglicht dadurch die Analyse auf Kundenebene sowie die Identifikation von Retourenmustern oder möglichem Betrug. Bezugsquelle Dies ist das Feld „CustAccount“ in „SalesTable“ für den Retourenauftrag. Beispiele CUST-00045CUST-00192CUST-00315 | |||
| Lager-ID WarehouseId | Die Kennung des Lagers oder Standorts, an dem der retournierte Artikel entgegengenommen wird. | ||
| Beschreibung Dieses Attribut identifiziert das konkrete physische Lager oder Retourenzentrum, in dem der retournierte Artikel verarbeitet wird. Verschiedene Standorte können unterschiedliche Prozesse, Ressourcen oder Leistungsniveaus aufweisen. Die Analyse nach Lager ermöglicht einen Leistungsvergleich zwischen Standorten. Sie kann zeigen, welche Einrichtungen Retouren besonders effizient verarbeiten, regionale Engpässe sichtbar machen und Entscheidungen zur Ressourcenverteilung sowie zur Standardisierung von Prozessen im Logistiknetzwerk unterstützen. Warum das wichtig ist Es ermöglicht den Leistungsvergleich verschiedener Lager oder Retourenzentren und hilft, regionale Engpässe oder bewährte Vorgehensweisen zu identifizieren. Bezugsquelle Diese Information wird im Feld „InventLocationId“ von bestandsbezogenen Transaktionen gespeichert, beispielsweise im Wareneingangsjournal („WMSJournalTable“) oder in „SalesLine“. Beispiele WH-EASTWH-WESTCENTRAL-DC | |||
| Letzte Datenaktualisierung LastDataUpdate | Der Timestamp, der angibt, wann die Prozessdaten zuletzt aktualisiert wurden. | ||
| Beschreibung Dieses Attribut erfasst Datum und Uhrzeit der letzten Extraktion aus dem Quellsystem und der Aktualisierung im Process-Mining-Tool. Es dient als Bezugspunkt für die Aktualität der analysierten Daten. Die Kenntnis des Zeitpunkts der letzten Datenaktualisierung ist wichtig, um die Aktualität der Analyse einzuschätzen. Sie hilft Ihnen, Dashboards und KPIs korrekt zu interpretieren und zu erkennen, ob Sie Echtzeitdaten oder eine Momentaufnahme zu einem bestimmten Zeitpunkt betrachten. Dies ist für das operative Monitoring entscheidend. Warum das wichtig ist Es zeigt die Aktualität der Daten an und stellt sicher, dass Analysten den zeitlichen Stand ihrer Prozesserkenntnisse kennen. Bezugsquelle Dies ist ein Metadatenattribut, das während der Datenaufnahme erzeugt und gespeichert wird. Es entspricht in der Regel dem Timestamp des Abschlusses des ETL-Jobs. Beispiele 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Quellsystem SourceSystem | Das Informationssystem, aus dem die Ereignisdaten extrahiert wurden. | ||
| Beschreibung Dieses Attribut identifiziert das Quellsystem, aus dem die Daten stammen. In diesem Kontext handelt es sich hauptsächlich um „Microsoft Dynamics 365“. In größeren Organisationen erstreckt sich ein Prozess möglicherweise über mehrere Systeme. Die Angabe des Quellsystems für jedes Ereignis ist entscheidend für die Data Governance, die Behebung von Problemen bei der Datenextraktion und das Verständnis der technologischen Prozesslandschaft. Sie bestätigt die Herkunft der analysierten Daten. Warum das wichtig ist Es liefert wichtigen Kontext zur Datenherkunft. Dieser ist für Data Governance, Validierung und das Verständnis der Systemlandschaft des Prozesses unerlässlich. Bezugsquelle Dabei handelt es sich in der Regel um einen statischen Wert, der während des ETL-Prozesses zur Kennzeichnung der Herkunft des Datensatzes ergänzt wird. Beispiele Microsoft Dynamics 365 F&OD365-PROD | |||
| Retourentyp ReturnType | Kategorisiert die Retoure anhand des erwarteten Ergebnisses, beispielsweise Erstattung oder Ersatzlieferung. | ||
| Beschreibung Dieses Attribut klassifiziert den Retourenfall anhand der vom Kunden gewünschten oder vom Unternehmen angebotenen Lösungsart. Häufige Typen sind eine finanzielle „Refund“, der Austausch gegen einen „Replacement“-Artikel oder eine „Repair“. Diese Kategorisierung eignet sich zur Analyse verschiedener Prozesspfade. Die Ausstellung einer Erstattung unterscheidet sich deutlich vom Versand eines Ersatzartikels. Die Segmentierung nach Retourentyp ermöglicht eine präzisere Analyse der Durchlaufzeiten und Engpässe, die für den jeweiligen Lösungsweg spezifisch sind. Warum das wichtig ist Sie ermöglicht die Segmentierung der Analyse nach dem angestrebten Ergebnis, da Erstattungs- und Ersatzprozesse unterschiedliche Schritte und Durchlaufzeiten aufweisen. Bezugsquelle Dies kann ein benutzerdefiniertes Feld im Kopf des Retourenauftrags sein oder anhand des Dispositionscodes beziehungsweise nachfolgender Transaktionen wie der Erstellung eines Ersatzauftrags abgeleitet werden. Beispiele RückerstattungErsatzlieferungGutschrift | |||
| Richtlinienkonform IsPolicyAdherent | Ein Kennzeichen dafür, ob die Genehmigung der Retoure den festgelegten Retourenrichtlinien entspricht. | ||
| Beschreibung Dies ist ein berechnetes boolesches Attribut, das angibt, ob eine Retoure alle in der Retourenrichtlinie des Unternehmens definierten Kriterien erfüllt. Grundlage können beispielsweise die Rückgabefrist, der Zustand des Artikels oder der Retourengrund sein. Dieses Attribut unterstützt direkt das Dashboard „Return Approval Compliance Overview“ und die KPI „Compliant Return Approval Rate“. Es ermöglicht dem Unternehmen, die Richtlinieneinhaltung zu quantifizieren, als Ausnahmen genehmigte Cases zu identifizieren und Gründe sowie Häufigkeit solcher Ausnahmen zu analysieren. Dies ist für Governance und Kostenkontrolle von großer Bedeutung. Warum das wichtig ist Es misst die Einhaltung von Geschäftsregeln direkt und hilft, nicht konforme Retourengenehmigungen zu erkennen und zu reduzieren, die zu Umsatzeinbußen führen können. Bezugsquelle Dies ist ein abgeleitetes Attribut. Die Logik muss durch den Vergleich von Retourenattributen, beispielsweise Retourendatum, Kaufdatum und Retourengrund, mit vordefinierten Geschäftsregeln erstellt werden. Beispiele truefalse | |||
| SLA-Status SlaStatus | Gibt an, ob der Case innerhalb des SLA-Ziels gelöst wurde. | ||
| Beschreibung Dieses berechnete Attribut liefert einen einfachen Status zur SLA-Einhaltung, typischerweise „On Time“ oder „Late“. Der Status wird durch den Vergleich des Timestamps der letzten Aktivität, beispielsweise „Return Order Closed“, mit „RefundSlaTargetDate“ ermittelt. Das Attribut vereinfacht die Leistungsberichterstattung in Dashboards wie „Refund Resolution SLA Performance“. Anstatt Datumswerte selbst vergleichen zu müssen, erhalten Benutzer einen direkten und leicht verständlichen Status. Dadurch lassen sich verspätete Cases schnell filtern und die gesamte „Resolution SLA Adherence Rate“ berechnen. Warum das wichtig ist Es bietet einen übersichtlichen Indikator für die SLA-Einhaltung und erleichtert das Filtern verspäteter Cases sowie die Analyse der Ursachen von Verzögerungen. Bezugsquelle Dies ist ein abgeleitetes Attribut, das durch den Vergleich des Timestamps der abschließenden Lösungsaktivität mit dem Attribut „RefundSlaTargetDate“ berechnet wird. Beispiele PünktlichVerspätet | |||
| Status des Retourenauftrags ReturnOrderStatus | Der Gesamtstatus des Retourenauftrags zum Zeitpunkt des Ereignisses. | ||
| Beschreibung Dieses Attribut gibt den aktuellen Status des Kopfes des Retourenauftrags an, beispielsweise „Open“, „Invoiced“ oder „Canceled“. Es bietet einen Überblick darüber, an welcher Stelle des Lebenszyklus sich der Case befindet. Während Aktivitäten detaillierte Prozessschritte abbilden, eignet sich der Gesamtstatus zum Filtern und Segmentieren von Cases. Ein Analyst kann beispielsweise nur „Open“-Cases betrachten, um die aktuelle Arbeitslast zu verstehen, oder den Prozessablauf von Cases analysieren, die letztlich den Status „Canceled“ erreichen. Warum das wichtig ist Es liefert eine übergeordnete Zusammenfassung des Case-Status und eignet sich zum Filtern von Cases sowie zum Verständnis von Ergebnissen wie Stornierungen. Bezugsquelle Diese Information befindet sich im Feld „SalesStatus“ oder „DocumentStatus“ der Tabelle „SalesTable“. Beispiele Offene BestellungGeliefertFakturiertStorniert | |||
| Tatsächlicher Erstattungsbetrag ActualRefundAmount | Der endgültige Geldbetrag, der dem Kunden erstattet wurde. | ||
| Beschreibung Dieses Attribut enthält den endgültig bestätigten Betrag, der dem Kunden erstattet wurde. Der Wert wird erfasst, wenn die Gutschrift erstellt und gebucht wird. Dieses Attribut ist für die Finanzanalyse entscheidend und wird direkt im Dashboard „Refund Amount Discrepancy Analysis“ sowie in der KPI „Refund Amount Accuracy Rate“ verwendet. Die Analyse dieser Daten hilft, die finanziellen Auswirkungen von Retouren und die während des Prozesses vorgenommenen Anpassungen zu verstehen. Warum das wichtig ist Dieser Wert stellt die tatsächlichen finanziellen Auswirkungen der Retoure dar und ist entscheidend für die Berechnung der Erstattungsgenauigkeit sowie das Verständnis der finanziellen Ergebnisse. Bezugsquelle Dieser Wert ist in den Transaktionsdetails der gebuchten Gutschrift zu finden. Er steht mit den Tabellen „CustTrans“ und „CustInvoiceJour“ für die Gutschrift in Verbindung. Beispiele 99.99135.000.00 | |||
| Zieldatum für das Erstattungs-SLA RefundSlaTargetDate | Das Zieldatum, bis zu dem der Retouren- und Erstattungsfall vollständig gelöst sein sollte. | ||
| Beschreibung Dieses Attribut definiert die Frist des Service Level Agreement (SLA) für die Lösung eines Retourenfalls. Bis zu diesem Datum soll der Kunde eine abschließende Lösung erhalten, beispielsweise eine gebuchte Erstattung oder einen versendeten Ersatzartikel. Dieses Zieldatum ist für die Überwachung der Leistung anhand von Serviceverpflichtungen entscheidend. Es dient zur Berechnung der KPI „Resolution SLA Adherence Rate“ und speist das Dashboard „Refund Resolution SLA Performance“. Durch den Vergleich dieses Datums mit dem tatsächlichen Abschlussdatum des Prozesses kann das Unternehmen SLA-Verletzungen erkennen und alternde Cases proaktiv bearbeiten. Warum das wichtig ist Es ist der Maßstab für die Messung der Prozessleistung und ermöglicht die Überwachung der SLA-Einhaltung sowie die Identifikation verspäteter Cases. Bezugsquelle Dies ist möglicherweise kein Standardfeld. Häufig wird der Wert aus dem Erstellungsdatum der Retoure zuzüglich einer vordefinierten SLA-Frist berechnet, beispielsweise 14 Tage. Er kann in einem benutzerdefinierten Feld gespeichert werden. Beispiele 2023-11-10T23:59:59Z2023-11-15T23:59:59Z | |||
Aktivitäten für die Bearbeitung von Retouren und Rückerstattungen
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Artikel eingegangen | Diese Aktivität markiert den physischen Eingang des retournierten Artikels im Lager oder im zuständigen Retourenzentrum. Sie wird erfasst, wenn das mit dem Retourenauftrag verknüpfte Wareneingangsjournal gebucht wird. | ||
| Warum das wichtig ist Dies ist ein wichtiger Meilenstein, der den Übergang von der Kundenaktion zur internen Bearbeitung markiert. Ab diesem Zeitpunkt lassen sich alle internen Bearbeitungszeiten berechnen, etwa für Prüfung und Disposition. Bezugsquelle Buchungs-Timestamp des mit der ReturnOrder-Zeile verknüpften WMS-Journals oder Item Arrival Journals. Dadurch werden die Bestandstransaktionen auf den Status „Registered“ oder „Received“ aktualisiert. Erfassen Buchungsereignis des mit der Retourenauftragszeile verknüpften Item Arrival Journals. Ereignistyp explicit | |||
| Dispositionscode angewendet | Diese Aktivität steht für den Abschluss der Prüfung und die Entscheidung über den weiteren Umgang mit dem retournierten Artikel. Der Retourenauftragszeile wird ein Dispositionscode wie „Credit“, „Scrap“ oder „Replace“ zugewiesen. | ||
| Warum das wichtig ist Dies ist ein wichtiger Entscheidungspunkt, der den weiteren Prozesspfad bestimmt, etwa Erstattung, Austausch oder Ablehnung. Verzögerungen an dieser Stelle können die gesamte Lösungszeit deutlich verlängern. Bezugsquelle Dieses Ereignis wird erfasst, wenn das Feld DispositionCode in der Bestandstransaktion der Retourenauftragszeile oder im zugehörigen Journal befüllt wird. Erfassen Aktualisierungsereignis, sobald ein DispositionCode für die Retourenauftragszeile gesetzt wird. Ereignistyp explicit | |||
| Gutschrift gebucht | Die Gutschrift wird offiziell in den Finanzbüchern gebucht und dem Kunden gutgeschrieben. Damit ist die Erstattungsaktion aus Sicht des Unternehmens abgeschlossen. | ||
| Warum das wichtig ist Dies ist ein wichtiger finanzieller Meilenstein und bestätigt, dass die Erstattung im System verarbeitet wurde. Häufig dient diese Aktivität als zentrale Kennzahl für die Messung der Erstattungs-SLA-Einhaltung. Bezugsquelle Buchungs-Timestamp des Rechnungsjournals für den Retourenauftrag, durch den die Gutschrift finalisiert wird. Der Status des Retourenauftrags ändert sich zu „Invoiced“. Erfassen Buchung des Rechnungsjournals des Retourenauftrags. Ereignistyp explicit | |||
| Retourenauftrag erstellt | Diese Aktivität markiert den Start des Retourenprozesses. Dabei wird im System eine Return Material Authorization (RMA) oder ein Retourenauftrag erstellt. Es handelt sich um ein explizites Ereignis, das bei der Erstellung eines neuen ReturnOrder-Datensatzes in Dynamics 365 erfasst wird. | ||
| Warum das wichtig ist Dies ist das primäre Start-Ereignis für den gesamten Retourenprozess. Die Analyse der Zeit von dieser Aktivität bis zu anderen Aktivitäten zeigt die gesamte Prozessdurchlaufzeit und hilft, Bottlenecks in frühen Prozessphasen zu erkennen. Bezugsquelle Dieses Ereignis wird anhand des Erstellungs-Timestamps des ReturnOrder-Kopfs erfasst. Es befindet sich typischerweise in der SalesTable, wenn SalesType den Wert „Returned Order“ hat. Erfassen Erstellungsereignis des SalesTable-Datensatzes mit SalesType = „Returned Order“. Ereignistyp explicit | |||
| Retourenauftrag geschlossen | Der Retourenauftrag hat seinen finalen Status erreicht. Alle physischen und finanziellen Transaktionen sind damit abgeschlossen. Dies geschieht in der Regel, nachdem die Gutschrift gebucht oder der Ersatzartikel versendet wurde. | ||
| Warum das wichtig ist Dies ist das primäre Endereignis eines erfolgreich abgeschlossenen Retourenprozesses. Die Dauer von der Erstellung bis zu diesem Zeitpunkt entspricht der gesamten Durchlaufzeit des Cases. Bezugsquelle Abgeleitet aus der Änderung des Statusfelds von ReturnOrder auf einen Endwert wie „Invoiced“ oder „Closed“. Dies zeigt an, dass keine weitere Verarbeitung erwartet wird. Erfassen Änderung des Felds SalesTable.Status oder SalesTable.DocumentStatus in einen finalen Status. Ereignistyp inferred | |||
| Ersatzartikel versendet | Der Packing Slip des Ersatzartikels wird gebucht. Damit wird angezeigt, dass der Artikel an den Kunden versendet wurde. Dies markiert den Abschluss der Abwicklung des Austauschs. | ||
| Warum das wichtig ist Dies ist ein wichtiger Meilenstein in der Austauschvariante und steht für die Erfüllung der Verpflichtung des Unternehmens gegenüber dem Kunden. Für die Erfassung der Durchlaufzeiten von Austauschen ist dieser Schritt entscheidend. Bezugsquelle Das Buchungsdatum des Packing-Slip-Journals für den Ersatzauftrag. Dadurch wird der Auftragsstatus auf „Delivered“ aktualisiert. Erfassen Buchung des Packing Slip für den Ersatzauftrag. Ereignistyp explicit | |||
| Ersatzauftrag erstellt | Ein neuer Verkaufsauftrag wird erstellt, um dem Kunden einen Ersatzartikel zu senden. Diese Aktivität tritt auf, wenn die Dispositionsaktion „Replace and Credit“ oder „Replace and Scrap“ lautet. | ||
| Warum das wichtig ist Diese Aktivität leitet die Prozessvariante für den Austausch ein. Die separate Verfolgung dieses Pfads vom Erstattungspfad ist entscheidend, um die Komplexität und Kosten von Austauschen zu verstehen. Bezugsquelle Erstellung eines neuen SalesTable-Datensatzes für den Ersatzartikel, der häufig automatisch generiert und mit dem ursprünglichen Retourenauftrag verknüpft wird. Erfassen Erstellung eines neuen Sales Order, der über die Disposition Action mit dem Return Order verknüpft ist. Ereignistyp explicit | |||
| Gutschrift erstellt | Auf Basis der Disposition „Credit“ wird eine Gutschrift erstellt, die eine Erstattung an den Kunden autorisiert. Dies markiert den formalen Beginn der finanziellen Abwicklung des Prozesses. | ||
| Warum das wichtig ist Diese Aktivität markiert die Genehmigung der finanziellen Erstattung. Die Zeit zwischen Disposition und Erstellung der Gutschrift zeigt administrative Verzögerungen beim Start der Erstattung. Bezugsquelle Dies lässt sich aus der Erstellung eines neuen SalesTable-Datensatzes mit negativem Wert ableiten, der mit dem ursprünglichen Retourenauftrag verknüpft ist, oder durch die Ausführung des Batch-Jobs „Create credit note“. Erfassen Erstellung einer Gutschrift, häufig durch die Buchung der Rechnung des Retourenauftrags. Ereignistyp explicit | |||
| Qualitätsauftrag erstellt | Ein formaler Qualitätsauftrag wird erstellt. Dies zeigt an, dass der retournierte Artikel einer strukturierten Prüfung unterzogen werden muss. Das ist häufig der Fall, wenn Retouren detaillierte Tests oder Prüfungen anhand von Qualitätsstandards erfordern. | ||
| Warum das wichtig ist Diese Aktivität markiert den Beginn eines formalen Prüfprozesses. Die Messung der Zeit ab diesem Punkt zeigt die Effizienz und Dauer des Qualitätssicherungs-Workflows. Bezugsquelle Erstellungs-Timestamp eines mit dem Retourenauftrag verknüpften Datensatzes in der InventQualityOrderTable. Erfassen Erstellung eines InventQualityOrderTable-Datensatzes. Ereignistyp explicit | |||
| Retourenauftrag bestätigt | Diese Aktivität steht für die formale Bestätigung des Retourenauftrags im System und löst häufig nachgelagerte Logik aus. Sie wird typischerweise als explizite Aktion oder Statusänderung am ReturnOrder-Kopf erfasst. | ||
| Warum das wichtig ist Die Bestätigung ist ein wichtiger Schritt, bevor die Logistik beginnen kann. Verzögerungen zwischen Erstellung und Bestätigung können auf administrative oder systembedingte Rückstände hinweisen. Bezugsquelle Dies lässt sich anhand der Buchung des „Confirmation“-Journals für den Retourenauftrag oder einer Änderung des Felds DocumentStatus in der SalesTable erkennen. Erfassen Ausführung der Funktion „Confirm sales order“ für den Retourenauftrag. Ereignistyp explicit | |||
| Retourenauftrag storniert | Der Retourenauftrag wird vor dem Abschluss storniert. Gründe können ein Kundenwunsch oder die Tatsache sein, dass der Artikel nie zurückgesendet wurde. | ||
| Warum das wichtig ist Dies stellt einen alternativen, nicht erfolgreichen Prozessabschluss dar. Die Analyse stornierter Retouren kann Erkenntnisse über das Kundenverhalten oder Prozessfehler liefern. Bezugsquelle Abgeleitet aus der Änderung des Statusfelds von ReturnOrder auf „Cancelled“. Dies ist ein eigenständiger Endstatus und unterscheidet sich von einem erfolgreich geschlossenen Auftrag. Erfassen Änderung des Felds SalesTable.Status auf „Cancelled“. Ereignistyp inferred | |||
| Wareneingangsjournal erstellt | Diese Aktivität zeigt an, dass das Lager den Eingang des retournierten Artikels erwartet. Dabei wird ein Wareneingangsjournal erstellt, das das System auf die physische Annahme der Ware vorbereitet. | ||
| Warum das wichtig ist Dieser Schritt trennt die logistische Vorbereitung vom tatsächlichen physischen Wareneingang. Er unterstützt die Analyse der Lagerbereitschaft und die Planung eingehender Retouren. Bezugsquelle Erstellung eines Datensatzes in der WMSJournalTable mit JournalType „Arrival“. Das Journal ist mit der Retourenauftragszeile verknüpft. Erfassen Erstellungs-Timestamp des WMSJournalTable-Datensatzes für die Retoure. Ereignistyp explicit | |||
Anleitungen zur Extraktion
Schritte
- Voraussetzung: Registrieren Sie eine Anwendung in Azure Active Directory. Bevor Sie eine Verbindung zur Dynamics 365 API herstellen können, müssen Sie eine Anwendung in Ihrem Azure-AD-Mandanten registrieren. Erteilen Sie dieser Anwendung delegierte Berechtigungen für den Zugriff auf Dynamics 365 Finance & Operations, zum Beispiel
Financials.ReadWrite.Alloder eine benutzerdefinierte Berechtigung. - Konfigurieren Sie die Anwendungs-ID in Dynamics 365. Navigieren Sie in Dynamics 365 zu Systemverwaltung > Einrichtung > Azure-Active-Directory-Anwendungen. Fügen Sie die Anwendungs-ID (Client-ID) aus Ihrer Azure-AD-App-Registrierung hinzu und verknüpfen Sie sie mit einem Benutzerkonto, das über die erforderlichen Sicherheitsrollen zum Lesen der benötigten Datenentitäten verfügt.
- Fordern Sie ein OAuth-2.0-Zugriffstoken an. Schreiben Sie beispielsweise in PowerShell oder Python ein Skript, das sich am Endpunkt der Microsoft Identity Platform authentifiziert. Verwenden Sie die Anmeldedaten der Anwendung, also Client-ID und Geheimnis, um ein Zugriffstoken für die Ressourcen-URL von Dynamics 365 anzufordern.
- Ermitteln Sie die URL Ihrer Dynamics-365-Umgebung. Suchen Sie die Basis-URL Ihrer Dynamics-365-Umgebung. Der Web-API-Endpunkt sieht typischerweise so aus:
https://[YourD365FinanceAndOpsURL].dynamics.com/data. - Erstellen und führen Sie OData-API-Anfragen aus. Erstellen Sie für jede der 12 erforderlichen Aktivitäten eine spezifische OData-GET-Anfrage. Verwenden Sie
$select, um nur die benötigten Spalten abzurufen, und$filter, um den Datumsbereich sowie Statusbedingungen festzulegen. Das in Schritt 3 erhaltene Authentifizierungstoken muss in jeder Anfrage als Bearer-Token im Authorization-Header enthalten sein. - Entwickeln Sie ein Extraktionsskript. Erstellen Sie ein Skript, das die Liste der OData-Anfragen durchläuft. Es sollte die Authentifizierung übernehmen, jede GET-Anfrage ausführen und die resultierenden JSON-Daten speichern. Beachten Sie API-Limits und fügen Sie bei Bedarf Pausen ein.
- Verarbeiten Sie die API-Paginierung. Dynamics 365 teilt große Ergebnismengen in Seiten auf. Ihr Skript muss prüfen, ob die Antwort die Eigenschaft
@odata.nextLinkenthält. Ist dies der Fall, muss es eine weitere Anfrage an diese URL senden, um die nächste Datenseite abzurufen. Fahren Sie fort, bis keinnextLinkmehr bereitgestellt wird. - Transformieren und vereinigen Sie die Daten. Verarbeiten Sie die JSON-Antworten aller 12 API-Aufrufe. Erstellen Sie für jede Aktivität einen standardisierten Datensatz mit
ReturnCaseId,ActivityName,EventTimeund weiteren Attributen. Ordnen Sie beispielsweise beim Ereignis „Return Order Created“ReturnOrderNumberdem FeldReturnCaseIdzu, setzen SieActivityNameauf „Return Order Created“ und ordnen SiecreatedDateTimedem FeldEventTimezu. Führen Sie die transformierten Datensätze aller Aufrufe in einer gemeinsamen Liste oder Tabelle zusammen. - Bereinigen und standardisieren Sie Timestamps. Stellen Sie sicher, dass alle Werte in
EventTimeein einheitliches Format verwenden, vorzugsweise UTC im FormatYYYY-MM-DDTHH:MM:SSZ. Behandeln Sie fehlende oder ungültige Timestamps nach Bedarf. - Exportieren Sie das finale Event Log. Sobald alle Daten erfasst und in einem einheitlichen Datensatz zusammengeführt wurden, exportieren Sie sie in eine CSV-Datei. Die Spaltenüberschriften müssen den Anforderungen von ProcessMind entsprechen:
ReturnCaseId,ActivityName,EventTime,ResponsibleUser,DispositionCodeusw. Die Datei ist nun zum Upload bereit.
Konfiguration
- API-Endpunkt-URL: Die Basis-URL Ihrer Dynamics-365-Finance-&-Operations-Instanz. Sie folgt dem Format
https://[YourEnvironmentName].dynamics.com/data. - Azure-AD-Anwendung: In Azure AD muss eine Anwendung mit Client-ID und Geheimnis registriert sein. Sie benötigt API-Berechtigungen für den Zugriff auf Dynamics-365-Datenentitäten.
- Filterung nach Datumsbereich: In jedem API-Aufruf muss unbedingt ein Datumsfilter über den OData-Parameter
$filterauf ein relevantes Datumsfeld angewendet werden, etwacreatedDateTimeodermodifiedDateTime. Als Ausgangspunkt empfiehlt sich ein Zeitraum von drei bis sechs Monaten, damit die Extraktion überschaubar bleibt. - Unternehmensfilter: Um Daten für eine bestimmte juristische Einheit zu extrahieren, fügen Sie den Abfrageparameter
cross-company=truehinzu und verwenden anschließend$filterfür das FelddataAreaId. Beispiel:?cross-company=true&$filter=dataAreaId eq '[YourCompanyCode]'. - Empfehlung für die Paginierung: Verwenden Sie in Ihren Anfragen den Header
Prefer: odata.maxpagesize=[value], um die Anzahl der Datensätze pro Seite zu steuern. Ein Wert zwischen 1.000 und 5.000 ist üblich. So lassen sich API-Zeitüberschreitungen bei großen Entitäten vermeiden. - API-Drosselung: Beachten Sie die Service-Schutzlimits der Dynamics-365-API. Das Extraktionsskript sollte Antworten mit
429 (Too Many Requests)verarbeiten, typischerweise durch exponentielles Backoff oder eine einfache Pause mit anschließendem erneuten Versuch.
a Beispielabfrage graphql
/*
This is a conceptual guide representing multiple, distinct OData API calls.
You will need a script (e.g., Python, PowerShell) to execute these calls sequentially,
authenticate with a bearer token, handle pagination, and union the results into a single file.
Replace [YourD365URL], [StartDate], [EndDate], and [YourCompanyCode] with your specific values.
*/
// Base URL for all requests
const string BaseUrl = "https://[YourD365URL].dynamics.com/data";
const string CompanyFilter = "?cross-company=true&$filter=dataAreaId eq '[YourCompanyCode]' and ";
const string DateFilterCreated = "createdDateTime ge [StartDate]T00:00:00Z and createdDateTime le [EndDate]T23:59:59Z";
const string DateFilterModified = "modifiedDateTime ge [StartDate]T00:00:00Z and modifiedDateTime le [EndDate]T23:59:59Z";
// 1. Return Order Created
GET {BaseUrl}/ReturnOrderHeaders{CompanyFilter}{DateFilterCreated}&$select=ReturnOrderNumber,createdDateTime,createdby,ReturnReasonCodeId
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Return Order Created' -> ActivityName, createdDateTime -> EventTime, createdby -> ResponsibleUser, ReturnReasonCodeId -> ReturnReasonCode
// 2. Return Order Confirmed
// This often updates the header status. We look for a modification time on confirmed orders.
GET {BaseUrl}/ReturnOrderHeaders{CompanyFilter}ReturnOrderStatus eq 'Confirmed' and {DateFilterModified}&$select=ReturnOrderNumber,modifiedDateTime,modifiedby,ReturnReasonCodeId
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Return Order Confirmed' -> ActivityName, modifiedDateTime -> EventTime, modifiedby -> ResponsibleUser
// 3. Arrival Journal Created
GET {BaseUrl}/WarehouseArrivalJournalHeaders{CompanyFilter}{DateFilterCreated}&$expand=WarehouseArrivalJournalLines($select=InventTransactionId)&$select=JournalNumber,createdDateTime,createdby
// Note: This requires post-processing to link JournalNumber to a ReturnCaseId via InventTransactionId.
// Mapping: Link via InventTrans -> ReturnCaseId, 'Arrival Journal Created' -> ActivityName, createdDateTime -> EventTime, createdby -> ResponsibleUser
// 4. Item Received (Arrival Journal Posted)
GET {BaseUrl}/WarehouseArrivalJournalHeaders{CompanyFilter}JournalPosted eq 'Yes' and {DateFilterModified}&$expand=WarehouseArrivalJournalLines($select=InventTransactionId)&$select=JournalNumber,modifiedDateTime,modifiedby
// Mapping: Link via InventTrans -> ReturnCaseId, 'Item Received' -> ActivityName, modifiedDateTime -> EventTime, modifiedby -> ResponsibleUser
// 5. Quality Order Generated
GET {BaseUrl}/InventQualityOrders{CompanyFilter}{DateFilterCreated}&$select=QualityOrderId,InventTransId,createdDateTime,CreatedByUserId,ItemId
// Mapping: Link via InventTransId -> ReturnCaseId, 'Quality Order Generated' -> ActivityName, createdDateTime -> EventTime, CreatedByUserId -> ResponsibleUser, ItemId -> ProductId
// 6. Disposition Code Applied
// This is a status change on the return line.
GET {BaseUrl}/ReturnOrderLines{CompanyFilter}ReturnDispositionCodeId ne '' and {DateFilterModified}&$select=ReturnOrderNumber,modifiedDateTime,modifiedby,ReturnDispositionCodeId,ItemId
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Disposition Code Applied' -> ActivityName, modifiedDateTime -> EventTime, modifiedby -> ResponsibleUser, ReturnDispositionCodeId -> DispositionCode, ItemId -> ProductId
// 7. Credit Note Created
// Look for sales orders with type 'Returned Order' that are not yet invoiced.
GET {BaseUrl}/SalesOrderHeadersV2{CompanyFilter}SalesOrderProcessingStatus eq 'Open' and SalesOrderType eq 'ReturnedOrder' and {DateFilterCreated}&$select=SalesOrderNumber,createdDateTime,createdby
// Mapping: SalesOrderNumber -> ReturnCaseId, 'Credit Note Created' -> ActivityName, createdDateTime -> EventTime, createdby -> ResponsibleUser
// 8. Credit Note Posted
// Look for posted invoice journals linked to a return order.
GET {BaseUrl}/SalesInvoiceJournalHeaders{CompanyFilter}SalesOrderType eq 'ReturnedOrder' and {DateFilterCreated}&$select=SalesOrderNumber,InvoiceDate,createdby
// Mapping: SalesOrderNumber -> ReturnCaseId, 'Credit Note Posted' -> ActivityName, InvoiceDate -> EventTime, createdby -> ResponsibleUser
// 9. Replacement Order Created
// Disposition code on the return line triggers a replacement order.
GET {BaseUrl}/SalesOrderHeadersV2{CompanyFilter}SalesOrderOriginType eq 'ReturnOrder' and {DateFilterCreated}&$select=SalesOrderNumber,createdDateTime,createdby,ReturnOrderNumber
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Replacement Order Created' -> ActivityName, createdDateTime -> EventTime, createdby -> ResponsibleUser
// 10. Replacement Item Shipped
// Check for posted packing slips related to the replacement sales order.
GET {BaseUrl}/SalesPackingSlipJournals{CompanyFilter}{DateFilterCreated}&$select=SalesOrderNumber,DeliveryDate,createdby
// Note: This requires linking SalesOrderNumber back to the original ReturnOrderNumber for the ReturnCaseId.
// Mapping: Link SalesOrderNumber -> ReturnCaseId, 'Replacement Item Shipped' -> ActivityName, DeliveryDate -> EventTime, createdby -> ResponsibleUser
// 11. Return Order Closed
GET {BaseUrl}/ReturnOrderHeaders{CompanyFilter}ReturnOrderStatus eq 'Closed' and {DateFilterModified}&$select=ReturnOrderNumber,modifiedDateTime,modifiedby
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Return Order Closed' -> ActivityName, modifiedDateTime -> EventTime, modifiedby -> ResponsibleUser
// 12. Return Order Cancelled
GET {BaseUrl}/ReturnOrderHeaders{CompanyFilter}ReturnOrderStatus eq 'Canceled' and {DateFilterModified}&$select=ReturnOrderNumber,modifiedDateTime,modifiedby
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Return Order Cancelled' -> ActivityName, modifiedDateTime -> EventTime, modifiedby -> ResponsibleUser Schritte
- TDS-Endpunkt aktivieren: Stellen Sie sicher, dass der Tabular Data Stream (TDS)-Endpunkt für Ihre Dynamics-365-Dataverse-Umgebung aktiviert ist. Ein Systemadministrator kann ihn im Power-Platform-Admin-Center unter Umgebung > Einstellungen > Funktionen aktivieren.
- Umgebungs-URL ermitteln: Suchen Sie die URL Ihrer Umgebung. Sie sieht typischerweise wie
yourorg.crm.dynamics.comaus. Der Servername des TDS-Endpunkts besteht aus dieser URL und dem Port 5558, zum Beispielyourorg.crm.dynamics.com,5558. - Mit einem SQL-Client verbinden: Verwenden Sie einen SQL-Client mit TDS-Unterstützung, etwa SQL Server Management Studio (SSMS) oder Azure Data Studio.
- Authentifizieren: Stellen Sie die Verbindung mit Ihrem Azure-Active-Directory-Konto her. Dieses Konto benötigt in der Dataverse-Umgebung geeignete Berechtigungen, typischerweise die Rolle Systemadministrator oder Systemanpasser.
- Abfrage vorbereiten: Kopieren Sie die vollständige SQL-Abfrage aus dem Abschnitt
querydieses Dokuments in ein neues Abfragefenster Ihres SQL-Clients. - Parameter festlegen: Suchen Sie die Platzhalter in der Abfrage. Ersetzen Sie
'{StartDate}'und'{EndDate}'durch den gewünschten Extraktionszeitraum, zum Beispiel'2023-01-01'und'2023-12-31'. Aktualisieren Sie außerdem Platzhalterwerte für Status- oder Dispositionscodes entsprechend Ihrer Dynamics-365-Konfiguration. - Abfrage ausführen: Führen Sie die angepasste Abfrage gegen die Dataverse-Datenbank aus. Die Ausführungszeit hängt vom Datenvolumen und vom gewählten Datumsbereich ab.
- Ergebnisse prüfen: Prüfen Sie nach Abschluss der Abfrage, ob der zurückgegebene Datensatz die erwarteten Spalten enthält:
ReturnCaseId,ActivityName,EventTimeund die empfohlenen Attribute. - Event Log exportieren: Exportieren Sie die Abfrageergebnisse in eine CSV-Datei. Die meisten SQL-Clients bieten eine integrierte Funktion zum direkten Speichern der Ergebnisse in einer Datei. Speichern Sie die Datei mit UTF-8-Kodierung.
- In ProcessMind hochladen: Die exportierte CSV-Datei kann nun als neues Event Log für die Process-Mining-Analyse in ProcessMind hochgeladen werden.
Konfiguration
- Voraussetzungen: Sie benötigen ein Benutzerkonto mit mindestens Leserechten für die relevanten Dataverse-Tabellen, zum Beispiel SalesTable, SalesLine und CustInvoiceJour. Berechtigungen werden typischerweise über Sicherheitsrollen wie Systemadministrator oder eine benutzerdefinierte Rolle mit ausreichenden Tabellenberechtigungen verwaltet.
- TDS-Endpunkt: Der Dataverse-TDS-Endpunkt muss für die Umgebung aktiviert sein. Diese Funktion ermöglicht direkte, schreibgeschützte SQL-Abfragen gegen die Dataverse-Datenbank.
- Datumsbereich: Die Abfrage enthält die Platzhalter
'{StartDate}'und'{EndDate}'. Für eine erste Analyse empfiehlt sich ein Zeitraum von drei bis sechs Monaten, damit ein repräsentativer Datensatz entsteht, ohne die Leistung zu beeinträchtigen. - Unternehmensfilter: Die Abfrage wird in der vorliegenden Form über alle juristischen Einheiten ausgeführt, auf die der Benutzer Zugriff hat. Für die Analyse eines einzelnen Unternehmens kommentieren Sie in jedem Teil der Anweisung
UNION ALLeineWHERE-Klausel ein und ergänzen sie um einen Filter für das FeldDATAAREAID, zum BeispielAND st.DATAAREAID = '[YourCompanyID]'. - Platzhalter für benutzerdefinierte Logik: Die Abfrage enthält Platzhalter wie
[YourReplaceCode1]für Dispositionscodes sowie Hinweise zur Verknüpfung von Ersatzaufträgen. Diese Angaben müssen an Ihren Geschäftsprozess und Ihre Dynamics-365-Konfiguration angepasst werden. - Leistung: Direkte Abfragen über den TDS-Endpunkt können bei großen Datenmengen langsam sein. Die Verbindung ist für analytische Abfragen optimiert, komplexe Verknüpfungen über Millionen von Zeilen können jedoch zu Zeitüberschreitungen führen. Es empfiehlt sich, enge Datumsfilter anzuwenden.
a Beispielabfrage sql
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Return Order Created' AS ActivityName,
st.CREATEDDATETIME AS EventTime,
st.CREATEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Return Order Confirmed' AS ActivityName,
st.MODIFIEDDATETIME AS EventTime,
st.MODIFIEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.DOCUMENTSTATUS = 1 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Arrival Journal Created' AS ActivityName,
wjt.CREATEDDATETIME AS EventTime,
wjt.CREATEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
JOIN WMSJOURNALTABLE wjt ON st.SALESID = wjt.ORDERID AND st.DATAAREAID = wjt.DATAAREAID
WHERE st.SALESTYPE = 3 AND wjt.JOURNALTYPE = 4 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Item Received' AS ActivityName,
wjt.POSTEDDATETIME AS EventTime,
wjt.POSTEDUSERID AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
JOIN WMSJOURNALTABLE wjt ON st.SALESID = wjt.ORDERID AND st.DATAAREAID = wjt.DATAAREAID
WHERE st.SALESTYPE = 3 AND wjt.JOURNALTYPE = 4 AND wjt.POSTEDDATETIME IS NOT NULL AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Quality Order Generated' AS ActivityName,
iqot.CREATEDDATETIME AS EventTime,
iqot.CREATEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
iqot.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
JOIN INVENTQUALITYORDERTABLE iqot ON sl.INVENTTRANSID = iqot.INVENTTRANSID AND sl.DATAAREAID = iqot.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Disposition Code Applied' AS ActivityName,
iqot.VALIDATEDDATETIME AS EventTime,
iqot.VALIDATEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
iqot.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
JOIN INVENTQUALITYORDERTABLE iqot ON sl.INVENTTRANSID = iqot.INVENTTRANSID AND sl.DATAAREAID = iqot.DATAAREAID
WHERE st.SALESTYPE = 3 AND iqot.VALIDATEDDATETIME IS NOT NULL AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Credit Note Created' AS ActivityName,
st.MODIFIEDDATETIME AS EventTime,
st.MODIFIEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.SALESSTATUS = 3 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Credit Note Posted' AS ActivityName,
cij.CREATEDDATETIME AS EventTime,
cij.CREATEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
JOIN CUSTINVOICEJOUR cij ON st.SALESID = cij.SALESID AND st.DATAAREAID = cij.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
ro.RETURNITEMNUM AS ReturnCaseId,
'Replacement Order Created' AS ActivityName,
replacement_so.CREATEDDATETIME AS EventTime,
replacement_so.CREATEDBY AS ResponsibleUser,
NULL AS DispositionCode,
NULL AS ReturnReasonCode,
replacement_so.SALESORIGINID AS ReturnChannel,
replacement_sl.ITEMID AS ProductId
FROM SALESTABLE ro
JOIN SALESLINE rol ON ro.SALESID = rol.SALESID AND ro.DATAAREAID = rol.DATAAREAID
JOIN SALESTABLE replacement_so ON ro.CUSTACCOUNT = replacement_so.CUSTACCOUNT AND ro.DATAAREAID = replacement_so.DATAAREAID
JOIN SALESLINE replacement_sl ON replacement_so.SALESID = replacement_sl.SALESID AND replacement_so.DATAAREAID = replacement_sl.DATAAREAID
WHERE ro.SALESTYPE = 3
AND rol.RETURNDISPOSITIONCODEID IN ('[YourReplaceCode1]', '[YourReplaceCode2]')
AND replacement_so.SALESTYPE = 1
AND replacement_so.CREATEDDATETIME > ro.CREATEDDATETIME
-- The join above is a basic example and must be replaced with your system's specific logic for linking returns to replacements.
AND ro.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
ro.RETURNITEMNUM AS ReturnCaseId,
'Replacement Item Shipped' AS ActivityName,
cpsj.CREATEDDATETIME AS EventTime,
cpsj.CREATEDBY AS ResponsibleUser,
NULL AS DispositionCode,
NULL AS ReturnReasonCode,
replacement_so.SALESORIGINID AS ReturnChannel,
cpsl.ITEMID AS ProductId
FROM SALESTABLE ro
JOIN SALESLINE rol ON ro.SALESID = rol.SALESID AND ro.DATAAREAID = rol.DATAAREAID
JOIN SALESTABLE replacement_so ON ro.CUSTACCOUNT = replacement_so.CUSTACCOUNT AND ro.DATAAREAID = replacement_so.DATAAREAID
JOIN CUSTPACKINGSLIPJOUR cpsj ON replacement_so.SALESID = cpsj.SALESID AND replacement_so.DATAAREAID = cpsj.DATAAREAID
JOIN CUSTPACKINGSLIPTRANS cpsl ON cpsj.PACKINGSLIPID = cpsl.PACKINGSLIPID AND cpsj.SALESID = cpsl.SALESID AND cpsj.DATAAREAID = cpsl.DATAAREAID
WHERE ro.SALESTYPE = 3
AND rol.RETURNDISPOSITIONCODEID IN ('[YourReplaceCode1]', '[YourReplaceCode2]')
AND replacement_so.SALESTYPE = 1
AND replacement_so.CREATEDDATETIME > ro.CREATEDDATETIME
-- The join above is a basic example and must be replaced with your system's specific logic for linking returns to replacements.
AND ro.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Return Order Closed' AS ActivityName,
st.MODIFIEDDATETIME AS EventTime,
st.MODIFIEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.SALESSTATUS = 3 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Return Order Cancelled' AS ActivityName,
st.MODIFIEDDATETIME AS EventTime,
st.MODIFIEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.SALESSTATUS = 4 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'; Möchten Sie beginnen?
Verwenden Sie dieses Template, um Ihre Datenerfassung zu strukturieren und Erkenntnisse zur Verbesserung Ihrer Retouren- und Erstattungsabwicklung zu gewinnen. Starten Sie noch heute mit kürzeren Bearbeitungszeiten und höherer Kundenzufriedenheit.
Beenden Sie Verzögerungen bei Retouren und Erstattungen: Optimieren Sie Ihren Prozess noch heute
Verkürzen Sie die Durchlaufzeit um 30 % und steigern Sie die Kundenzufriedenheit.
Keine Kreditkarte erforderlich. Die Einrichtung dauert nur wenige Minuten.