Ihr Datentemplate für den Order-to-Cash-Prozess: Abrechnung und Rechnungsstellung
Ihr Datentemplate für den Order-to-Cash-Prozess: Abrechnung und Rechnungsstellung
- Empfohlene Attribute für die Datenerfassung
- Wichtige Aktivitäten für die Nachverfolgung
- Anleitung zur Datenextraktion aus NetSuite
Attribute für den Order-to-Cash-Prozess: Abrechnung und Rechnungsstellung
| Name | Beschreibung | ||
|---|---|---|---|
| Aktivitätsname ActivityName | Der Name des Geschäftsvorfalls, der zu einem bestimmten Zeitpunkt im Lebenszyklus der Rechnung eingetreten ist. | ||
| Beschreibung Der Aktivitätsname bezeichnet einen bestimmten Schritt oder ein Ereignis in der Rechnungsverarbeitung, zum Beispiel „Rechnung erstellt“, „Rechnung freigegeben“ oder „Kundenzahlung eingegangen“. Diese Aktivitäten bilden die aufeinanderfolgenden Bausteine der Prozesslandkarte. Die Analyse der Reihenfolge und Häufigkeit dieser Aktivitäten ist eine Grundlage für Process Mining. Sie macht den tatsächlichen Prozessablauf sichtbar, zeigt häufige und seltene Prozesspfade (Varianten) und hilft, oft wiederholte Aktivitäten zu erkennen, die auf Nacharbeit oder Ineffizienz hindeuten. Warum das wichtig ist Dieses Attribut ist grundlegend für die Erstellung der Prozesslandkarte. Es ermöglicht, die verschiedenen Schritte und Pfade einer Rechnung sichtbar zu machen und zu analysieren. Woher beziehen Abgeleitet aus Systemprotokollen, Statusänderungen oder bestimmten Ereignisdatensätzen zur Rechnungstransaktion in NetSuite. Dazu müssen häufig Statusänderungen der Transaktion oder die Erstellung zugehöriger Datensätze den festgelegten Aktivitätsnamen zugeordnet werden. Beispiele Rechnung erstelltRechnung freigegebenKundenzahlung eingegangenRechnung vollständig bezahlt | |||
| Ereignis-Timestamp EventTimestamp | Das genaue Datum und die Uhrzeit, zu denen eine bestimmte Aktivität oder ein Ereignis eingetreten ist. | ||
| Beschreibung Dieses Attribut erfasst den genauen Zeitpunkt einer Aktivität. Es ist entscheidend, um Ereignisse chronologisch zu ordnen und zeitbasierte Analysen durchzuführen. In Process Mining dient der Ereignis-Timestamp zur Berechnung von Durchlaufzeiten zwischen Aktivitäten, Case-Dauern und Wartezeiten. Er ist unverzichtbar, um Engpässe zu erkennen, die Prozessleistung anhand von SLAs zu messen und den zeitlichen Ablauf der Rechnungsverarbeitung zu verstehen. So wird er beispielsweise für die Berechnung der Durchlaufzeit der Rechnungserstellung und der Days Sales Outstanding (DSO) verwendet. Warum das wichtig ist Das Attribut gibt die chronologische Reihenfolge der Ereignisse an. Diese ist unverzichtbar, um zeitbasierte Kennzahlen zu berechnen, Engpässe zu erkennen und die Prozessleistung im Zeitverlauf zu analysieren. Woher beziehen Timestamp-Informationen finden sich in NetSuite üblicherweise in den Systemnotizen, Audit-Trails oder Feldern „Date Created“ der zugehörigen Datensätze jeder Rechnungstransaktion. Beispiele 2023-10-26T10:00:00Z2023-10-27T14:30:00Z2023-11-15T09:05:00Z | |||
| Rechnungsnummer InvoiceNumber | Die eindeutige Kennung jedes Rechnungsdokuments. Sie dient als primäre Case-ID für die Rechnungsverarbeitung. | ||
| Beschreibung Die Rechnungsnummer ist der zentrale Bezugspunkt für die Analyse der Rechnungsverarbeitung. Sie identifiziert jede Rechnung eindeutig von der Erstellung bis zum endgültigen Abschluss. Alle zugehörigen Aktivitäten, etwa Freigabe, Versand und Zahlungszuordnung, werden zu einem einzelnen Case zusammengefasst. In Process Mining ermöglicht die Analyse des Ablaufs jeder Rechnungsnummer einen umfassenden Überblick über den gesamten Lebenszyklus der Rechnungsverarbeitung. So lassen sich Prozessvarianten, Engpässe und Abweichungen von der Standardvorgehensweise erkennen. Diese Erkenntnisse helfen, den Cashflow und die operative Effizienz zu verbessern. Warum das wichtig ist Das Attribut ist unverzichtbar, um den gesamten Lebenszyklus jeder Rechnung nachzuverfolgen, den Rechnungsprozess vollständig zu rekonstruieren und die Leistung detailliert zu analysieren. Woher beziehen In NetSuite ist dies üblicherweise das Feld „Transaction ID“ oder ein vergleichbares Feld mit einer eindeutigen Kennung im Rechnungstransaktionsdatensatz. Beispiele INV-0012345INV-0012346INV-0012347 | |||
| Letzte Datenaktualisierung LastDataUpdate | Der Timestamp der letzten Aktualisierung der Daten aus dem Quellsystem. | ||
| Beschreibung Dieses Attribut gibt an, wann der Datensatz zuletzt aktualisiert wurde. Es liefert Kontext zur Aktualität und Relevanz der Process-Mining-Analyse. Analysten und Fachverantwortliche können anhand dieser Information beurteilen, ob die Erkenntnisse den aktuellen Betriebszustand widerspiegeln. Als wichtige Metadaten für jedes Dashboard und jeden Bericht zeigt sie, wie alt die Datengrundlage ist. So werden Ergebnisse nicht fälschlich als Echtzeitdaten interpretiert. Warum das wichtig ist Das Attribut informiert Benutzer über die Aktualität der Daten. So können sie den Zeitraum der Analyse und die Relevanz der Erkenntnisse richtig einordnen. Woher beziehen Dieser Timestamp wird vom Datenextraktionstool oder der Datenpipeline zum Zeitpunkt der Aktualisierung erzeugt und gespeichert. Beispiele 2024-05-21T02:00:00Z | |||
| Quellsystem SourceSystem | Das System, aus dem die Daten extrahiert wurden. | ||
| Beschreibung Dieses Attribut gibt an, woher die Prozessdaten stammen. In dieser Ansicht lautet der Wert durchgehend „NetSuite“. Bei umfassenderen Analysen, insbesondere in Unternehmen mit mehreren ERP- oder integrierten Systemen, ist dieses Attribut für Datenherkunft und Governance entscheidend. Es hilft, Prozesse zu unterscheiden, die sich über verschiedene Plattformen erstrecken können, und stellt sicher, dass die Analyse dem richtigen führenden System zugeordnet wird. Warum das wichtig ist Das Attribut liefert wichtigen Kontext zur Datenherkunft und Governance, insbesondere in Umgebungen mit mehreren integrierten Systemen. Woher beziehen Dies ist ein statischer Wert („NetSuite“), der während der Datenextraktion und -transformation hinzugefügt wird. Beispiele NetSuite | |||
| Automatisiert IsAutomated | Kennzeichnet, ob eine Aktivität automatisch vom System ausgeführt wurde. | ||
| Beschreibung Dieses boolesche Attribut unterscheidet zwischen Aktivitäten, die manuell von einem Benutzer ausgeführt werden, und solchen, die automatisch durch einen System-Workflow, ein Skript oder eine Integration ausgelöst werden. Das Attribut ist entscheidend, um den Automatisierungsgrad im Abrechnungsprozess zu messen. Es bildet die Grundlage für die Kennzahl „Anteil automatisierter Abrechnungen“. Durch die Filterung nach automatisierten oder manuellen Aktivitäten können Analysten Engpässe durch manuelle Eingriffe erkennen und Möglichkeiten identifizieren, die Automatisierung zu erhöhen, menschliche Fehler zu reduzieren und die Effizienz zu verbessern. Warum das wichtig ist Damit lässt sich der Automatisierungsgrad des Prozesses messen. Zugleich werden Möglichkeiten sichtbar, den manuellen Aufwand zu verringern und die Effizienz zu steigern. Woher beziehen Das Attribut wird in der Regel anhand des mit einer Aktivität verknüpften Felds „Benutzer“ abgeleitet. Ereignisse, die von Benutzern mit den Namen „SYSTEM“, „Workflow“ oder „Integration“ ausgelöst werden, gelten als automatisiert. Beispiele truefalse | |||
| Benutzer User | Der Name oder die ID des Benutzers, der die Aktivität ausgeführt hat. | ||
| Beschreibung Dieses Attribut gibt an, welcher Mitarbeiter oder Systembenutzer für einen bestimmten Prozessschritt verantwortlich war. Das kann die Person sein, die die Rechnung erstellt, freigegeben oder die Zahlung zugeordnet hat. Die Analyse nach Benutzer zeigt, wie sich die Arbeitslast verteilt, wie die individuelle Leistung ausfällt und wo Schulungsbedarf besteht. Sie kann auch mögliche Automatisierungsansätze aufzeigen, indem sie sichtbar macht, welche manuellen Aktivitäten von besonders vielen Benutzern ausgeführt werden. Außerdem ist sie wichtig für Compliance und die Analyse von Audit-Trails. Warum das wichtig ist Das Attribut ermöglicht die Analyse der Arbeitslastverteilung, der benutzerspezifischen Leistung und der Einhaltung von Prozessen. Das ist wichtig für die Ressourcenplanung und gezielte Schulungen. Woher beziehen In NetSuite verfügbar im Unterregister „System Notes“ oder in bestimmten Feldern „Modified By“ der Rechnungs- und zugehörigen Transaktionsdatensätze. Beispiele Alice SmithBob JohnsonSYSTEM | |||
| Endzeit des Ereignisses EventEndTime | Das genaue Datum und die Uhrzeit, zu denen eine bestimmte Aktivität oder ein Ereignis abgeschlossen wurde. | ||
| Beschreibung Die Endzeit des Ereignisses kennzeichnet den Abschluss einer Aktivität. Viele Aktivitäten sind unmittelbar abgeschlossen, sodass Start- und Endzeit übereinstimmen. Bei anderen, etwa einem Freigabeschritt, lässt sich eine Dauer messen. Zusammen mit dem Ereignis-Timestamp (Startzeit) ermöglicht dieses Attribut die direkte Berechnung der Verarbeitungszeit einer Aktivität. Die Analyse der Verarbeitungszeit zeigt, welche Schritte besonders viel Zeit und Ressourcen beanspruchen. So lässt sie sich von der Wartezeit zwischen Aktivitäten unterscheiden. Das ist entscheidend, um Ineffizienzen in einzelnen Aufgaben zu erkennen. Warum das wichtig ist Damit lässt sich genau berechnen, wie lange der Abschluss jeder Aktivität dauert. Das ist wichtig, um die Ressourceneffizienz zu analysieren und zeitaufwendige Aufgaben zu erkennen. Woher beziehen Wie die Startzeit kann auch dieser Wert aus den System-Audit-Trails in NetSuite stammen. Möglicherweise ist eine Logik erforderlich, um ein Start-Ereignis dem entsprechenden End-Ereignis zuzuordnen. Beispiele 2023-10-26T10:05:14Z2023-10-27T14:32:00Z2023-11-15T09:05:00Z | |||
| Fälligkeitsdatum DueDate | Das Datum, bis zu dem die Rechnung bezahlt werden muss. | ||
| Beschreibung Das Fälligkeitsdatum wird anhand des Rechnungsdatums und der vereinbarten Zahlungsbedingungen berechnet. Es bezeichnet den Termin, bis zu dem der Kunde zahlen muss, damit die Zahlung nicht als verspätet gilt. Dieses Attribut ist wichtig für die Überwachung offener Forderungen und das Cashflow-Management. Es dient als Maßstab für die Berechnung der KPI „Pünktliche Zahlungsquote“ und die Analyse des Zahlungsverhaltens von Kunden. Abweichungen vom Fälligkeitsdatum zeigen, welche Kunden häufig verspätet zahlen, und helfen dabei, die Wirksamkeit von Mahnstrategien zu bewerten. Warum das wichtig ist Das Attribut ist entscheidend, um die Pünktlichkeit von Zahlungen zu messen und das Zahlungsverhalten von Kunden zu analysieren. Es unterstützt direkt das Forderungsmanagement und die Cashflow-Prognose. Woher beziehen Entspricht dem Feld „Due Date“ (duedate) im Rechnungstransaktionsdatensatz in NetSuite. Beispiele 2023-11-252023-11-262023-12-15 | |||
| Kundenname CustomerName | Der Name des Kunden, an den die Rechnung ausgestellt wurde. | ||
| Beschreibung Dieses Attribut bezeichnet die juristische Person oder Einzelperson, der die Rechnung gestellt wird. Es verknüpft die Rechnungsverarbeitung mit dem Kundenbeziehungsmanagement. Die Analyse der Rechnungsverarbeitung nach Kunde zeigt Muster beim Zahlungsverhalten, bei Streitfällen oder bei der Komplexität von Rechnungen bestimmter Kunden. Diese Erkenntnisse können in Kundensegmentierung, Kreditlimitentscheidungen und gezielte Mahnmaßnahmen einfließen. So lässt sich beispielsweise erkennen, ob bei einem bestimmten Kunden regelmäßig Rechnungen nachbearbeitet werden müssen. Warum das wichtig ist Das Attribut ermöglicht eine kundenbezogene Analyse. So lassen sich Zahlungsmuster, wiederkehrende Probleme und kundenspezifische Prozessabweichungen erkennen. Woher beziehen Entspricht dem Feld „Customer“ oder „Entity“ im Rechnungstransaktionsdatensatz in NetSuite. Beispiele Global Tech Inc.Innovate Solutions LLCCornerstone Corp | |||
| Rechnungsbetrag gesamt InvoiceTotalAmount | Der Gesamtbetrag der Rechnung einschließlich Steuern und weiterer Gebühren. | ||
| Beschreibung Dieses Attribut gibt den Gesamtbetrag an, den der Kunde voraussichtlich zahlen muss. Es ist eine grundlegende Finanzinformation für jeden Rechnungs-Case. Die Analyse nach Rechnungsbetrag ermöglicht eine wertbezogene Betrachtung des Prozesses. So lässt sich beispielsweise feststellen, ob Rechnungen mit hohen Beträgen einen anderen, komplexeren Ablauf haben als Rechnungen mit niedrigen Beträgen. Der Betrag hilft außerdem, Mahnmaßnahmen zu priorisieren und die finanziellen Auswirkungen verspäteter Zahlungen oder fehlerhafter Rechnungen zu verstehen. Warum das wichtig ist Das Attribut ermöglicht eine wertbezogene Prozessanalyse. So lassen sich Rechnungen mit hohen Beträgen priorisieren und die finanziellen Auswirkungen von Prozessineffizienzen nachvollziehen. Woher beziehen Entspricht dem Feld „Total“ (total) im Rechnungstransaktionsdatensatz in NetSuite. Beispiele 1500.0089.9912500.50 | |||
| Rechnungsdatum InvoiceDate | Das offizielle Datum der Rechnung, wie sie dem Kunden ausgestellt wurde. | ||
| Beschreibung Das Rechnungsdatum, auch Transaktionsdatum genannt, ist der Ausgangspunkt für viele finanzielle Berechnungen rund um die Rechnungsstellung. Anhand dieses Datums werden üblicherweise Zahlungsbedingungen und Fälligkeitstermine berechnet. In der Analyse dient das Rechnungsdatum als Grundlage für wichtige Finanzkennzahlen wie Days Sales Outstanding (DSO) und die Überfälligkeit von Rechnungen. Es ermöglicht Kohortenanalysen, mit denen sich die Leistung der Rechnungsverarbeitung über verschiedene Zeiträume vergleichen lässt, etwa von Monat zu Monat oder von Jahr zu Jahr. Warum das wichtig ist Dieses Datum bildet die Grundlage für wichtige Finanzkennzahlen wie Days Sales Outstanding (DSO) und die Überfälligkeit von Rechnungen. Es wirkt sich direkt auf die Analyse des Betriebskapitals aus. Woher beziehen Entspricht dem Feld „Date“ (trandate) im Rechnungstransaktionsdatensatz in NetSuite. Beispiele 2023-10-262023-10-272023-11-15 | |||
| Region Region | Die geografische Region des Kunden oder der Transaktion. | ||
| Beschreibung Das Attribut „Region“ ordnet Rechnungen geografischen Gebieten zu. Die Zuordnung kann sich aus der Kundenadresse oder der Geschäftseinheit ergeben, die die Rechnung ausgestellt hat. Diese Dimension eignet sich für vergleichende Analysen. Das Dashboard „Vergleich der Rechnungsverarbeitung nach Region“ verwendet dieses Attribut, um Kennzahlen wie Durchlaufzeiten, Fehlerquoten und Prozessvarianten in verschiedenen Regionen zu vergleichen. So werden regionale Leistungsunterschiede sichtbar, bewährte Vorgehensweisen leistungsstarker Regionen lassen sich erkennen und die Standardisierung von Prozessen im Unternehmen wird unterstützt. Warum das wichtig ist Das Attribut ermöglicht Vergleiche zwischen geografischen Gebieten. So lassen sich regionale Leistungsunterschiede erkennen und bewährte Vorgehensweisen standardisieren. Woher beziehen Diese Daten sind in NetSuite häufig in einem benutzerdefinierten Segment oder Klassifizierungsfeld des Kundenstamms oder Transaktionsdatensatzes gespeichert. Beispiele NordamerikaEMEAAPAC | |||
| Abteilung Department | Die interne Abteilung, der die Rechnung zugeordnet ist. | ||
| Beschreibung Dieses Attribut bezeichnet die für die Transaktion verantwortliche interne Abteilung, etwa Vertrieb, Services oder einen bestimmten Geschäftsbereich. In NetSuite ist es ein standardmäßiges Klassifizierungssegment. Eine Analyse nach Abteilungen ermöglicht interne Vergleiche und zeigt, ob bestimmte Abteilungen effizienter abrechnen als andere. Sie kann Unterschiede bei der Prozesseinhaltung oder der Ressourcenzuweisung aufdecken und liefert damit Erkenntnisse für gezielte Verbesserungsmaßnahmen in einzelnen Unternehmensbereichen. Warum das wichtig ist Damit lässt sich die Prozessleistung verschiedener interner Abteilungen vergleichen. Unterschiede und Möglichkeiten zur unternehmensinternen Standardisierung werden so sichtbar. Woher beziehen Dies entspricht dem Klassifizierungsfeld „Department“, das in NetSuite auf Kopf- oder Positionsebene einer Rechnungstransaktion festgelegt werden kann. Beispiele Vertrieb – EnterpriseProfessionelle DienstleistungenHardware | |||
| Auftragsnummer SalesOrderNumber | Die Kennung des Kundenauftrags, aus dem die Rechnung erstellt wurde. | ||
| Beschreibung Dieses Attribut verweist direkt auf den ursprünglichen Kundenauftrag und verknüpft die Rechnungsverarbeitung mit den vorgelagerten Vertriebs- und Erfüllungsprozessen. Die Auftragsnummer ermöglicht einen umfassenderen Blick auf den gesamten Order-to-Cash-Prozess. So lassen sich Probleme in der Rechnungsverarbeitung bis zu ihrer Ursache im Vertriebsprozess zurückverfolgen. Häufige Rechnungskorrekturen können beispielsweise mit Fehlern bei der Dateneingabe bestimmter Auftragsarten zusammenhängen. Warum das wichtig ist Das Attribut verknüpft die Rechnungsverarbeitung mit dem Vertriebsprozess. So lässt sich der Order-to-Cash-Prozess durchgängig analysieren und die Ursache von Problemen bei der Rechnungsstellung ermitteln. Woher beziehen Im Feld „Created From“ oder auf der Unterregisterkarte „Related Records“ einer Rechnungstransaktion in NetSuite zu finden. Beispiele SO-0009876SO-0009877SO-0009878 | |||
| Days Sales Outstanding DaysSalesOutstanding | Die Anzahl der Tage zwischen Rechnungsdatum und Zahlungseingang. | ||
| Beschreibung Days Sales Outstanding (DSO) ist eine wichtige Finanzkennzahl. Sie misst die durchschnittliche Anzahl der Tage, die bis zum Zahlungseingang nach Ausstellung einer Rechnung vergehen. Für detaillierte Analysen wird dieses Attribut für jede einzelne Rechnung berechnet. DSO wird häufig als übergeordnete Kennzahl aggregiert. Auf Ebene einzelner Rechnungen ermöglicht es jedoch detaillierte Auswertungen. So lässt sich ermitteln, bei welchen Kunden, Regionen oder Rechnungstypen der DSO am höchsten ist. Das Dashboard „DSO-Trend“ nutzt diese Kennzahl, um die Effizienz des Forderungseinzugs im Zeitverlauf darzustellen und wichtige Erkenntnisse zum Working-Capital-Management zu liefern. Warum das wichtig ist Das Attribut quantifiziert die Effizienz des Forderungseinzugs für jede einzelne Rechnung. So lassen sich die Ursachen eines hohen DSO und dessen Auswirkungen auf den Cashflow detailliert analysieren. Woher beziehen Berechnet, indem das Feld „InvoiceDate“ vom Timestamp der Aktivität „Kundenzahlung eingegangen“ abgezogen wird. Beispiele 294562 | |||
| Nacharbeit IsRework | Ein berechnetes Kennzeichen, das Aktivitäten identifiziert, die als Nacharbeit oder Korrekturschleifen gelten. | ||
| Beschreibung Dieses boolesche Kennzeichen wird für Aktivitäten auf „true“ gesetzt, die nicht wertschöpfende Nacharbeit darstellen, etwa „Rechnung korrigiert“ oder ein zweites Ereignis „Rechnung genehmigt“ im selben Case. Die Ableitung erfolgt in der Regel anhand des Aktivitätsnamens oder einer wiederholten Aktivität. Das Attribut ist für das Dashboard „Analyse von Rechnungsnacharbeit und -ablehnungen“ und die Kennzahl „Rechnungsfehlerquote“ unverzichtbar. Es ermöglicht eine einfache Quantifizierung der Nacharbeit und macht Probleme mit der Prozessqualität sichtbar. Durch die Filterung nach Nacharbeitsaktivitäten können Teams die Ursachen von Fehlern schnell ermitteln und die Wirkung von Prozessverbesserungen messen. Warum das wichtig ist Das Attribut misst die Prozessqualität direkt, indem es ineffiziente Nacharbeitsschleifen kennzeichnet. So lassen sich Ursachen und finanzielle Auswirkungen von Abrechnungsfehlern analysieren. Woher beziehen Dieses abgeleitete Attribut wird bei der Datentransformation berechnet. Dabei wird Nacharbeit anhand bestimmter Aktivitätsnamen wie „Rechnung korrigiert“ oder wiederholter Aktivitäten erkannt. Beispiele truefalse | |||
| Rechnungsstatus InvoiceStatus | Der aktuelle Status der Rechnung in ihrem Lebenszyklus. | ||
| Beschreibung Dieses Attribut zeigt den aktuellen Status der Rechnung an, zum Beispiel „Open“, „Paid in Full“ oder „Voided“. Es gibt jederzeit einen Überblick darüber, an welcher Stelle des Prozesses sich die Rechnung befindet. Das Dashboard „Übersicht über den Status offener Rechnungen“ basiert direkt auf diesem Attribut. Es ermöglicht eine aktuelle Einschätzung der offenen Forderungen und hilft Finanzteams, ausstehende Beträge zu überwachen, das Mahnwesen zu steuern und Zahlungseingänge zu prognostizieren. Auch der Endstatus gibt Aufschluss über die Prozessergebnisse. Warum das wichtig ist Das Attribut zeigt den aktuellen Stand der offenen Forderungen. Dashboards können damit offene Rechnungen und den Fortschritt der Rechnungsverarbeitung überwachen. Woher beziehen Entspricht dem Feld „Status“ im Rechnungstransaktionsdatensatz in NetSuite. Beispiele OffenVollständig bezahltStorniertAusstehende Freigabe | |||
| Währung Currency | Der Währungscode des Rechnungsbetrags. | ||
| Beschreibung Dieses Attribut gibt an, in welcher Währung der Rechnungsbetrag ausgewiesen ist, zum Beispiel USD, EUR oder GBP. Es liefert den notwendigen Kontext für alle Geldbeträge. Für international tätige Unternehmen ist die Analyse nach Währung wichtig, um die finanzielle Leistung in verschiedenen Märkten zu verstehen. Sie stellt sicher, dass Geldbeträge richtig interpretiert werden, und ermöglicht bei Bedarf einen korrekten Vergleich und eine Zusammenfassung nach der Währungsumrechnung. Warum das wichtig ist Das Attribut liefert den notwendigen Kontext für alle Geldbeträge. Das ist für eine präzise Finanzberichterstattung und -analyse entscheidend, insbesondere bei internationalen Geschäftsaktivitäten. Woher beziehen Entspricht dem Feld „Currency“ im Rechnungstransaktionsdatensatz in NetSuite. Beispiele USDEURGBP | |||
| Zahlung fristgerecht IsOnTimePayment | Kennzeichnet, ob die Kundenzahlung am oder vor dem Fälligkeitsdatum der Rechnung eingegangen ist. | ||
| Beschreibung Dieses berechnete boolesche Kennzeichen vergleicht den Timestamp der Aktivität „Kundenzahlung eingegangen“ mit dem Fälligkeitsdatum der Rechnung („DueDate“). Es wird auf „true“ gesetzt, wenn die Zahlung fristgerecht oder vorzeitig eingegangen ist, andernfalls auf „false“. Das Attribut bildet die Grundlage für die Kennzahl „Anteil fristgerechter Zahlungen“ und das Dashboard „Einhaltung der Zahlungsbedingungen“. Es liefert ein eindeutiges binäres Maß für das Zahlungsverhalten der Kunden und vereinfacht damit Analyse und Berichterstellung. Trends bei der Zahlungspünktlichkeit lassen sich schnell erkennen und die Wirksamkeit von Inkassostrategien beurteilen. Warum das wichtig ist Das Attribut liefert eine klare Erfolgskennzahl für das Forderungsmanagement. Es unterstützt direkt die Berechnung des Anteils fristgerechter Zahlungen und die Analyse des Kundenverhaltens. Woher beziehen Dieses Attribut wird berechnet, indem der Timestamp des Zahlungsereignisses mit dem Attribut „DueDate“ auf Case-Ebene verglichen wird. Beispiele truefalse | |||
| Zahlungsbedingungen PaymentTerms | Die zwischen dem Unternehmen und dem Kunden vereinbarten Zahlungsbedingungen. | ||
| Beschreibung Die Zahlungsbedingungen legen fest, wann und wie ein Kunde seine Rechnung begleichen soll, zum Beispiel „Net 30“ oder „Due on receipt“. Anhand dieser Angaben wird das Fälligkeitsdatum der Rechnung automatisch berechnet. Dieses Attribut ist wichtig für das Dashboard „Einhaltung der Zahlungsbedingungen“. Die Analyse pünktlicher Zahlungen nach Zahlungsbedingung zeigt, wie wirksam die einzelnen Bedingungen sind. So lässt sich beispielsweise feststellen, ob Kunden mit „Net 15“ schneller zahlen als Kunden mit „Net 30“. Diese Erkenntnisse können in künftige Vertragsverhandlungen und Kreditrichtlinien einfließen. Warum das wichtig ist Das Attribut ist unverzichtbar, um die Wirksamkeit verschiedener Zahlungsbedingungen und deren Einfluss auf die Pünktlichkeit von Kundenzahlungen zu analysieren. Woher beziehen Entspricht dem Feld „Terms“ im Rechnungstransaktionsdatensatz in NetSuite. Beispiele Net 30Net 60Fällig bei Erhalt | |||
Aktivitäten im Order-to-Cash-Prozess: Abrechnung und Rechnungsstellung
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Kundenzahlung eingegangen | Eine Zahlung des Kunden ist eingegangen und wurde im System erfasst. Das Ereignis wird durch die Erstellung einer „Customer Payment“-Transaktion in NetSuite erfasst. Diese kann einer oder mehreren Rechnungen zugeordnet sein. | ||
| Warum das wichtig ist Kennzeichnet den Zahlungseingang, aber nicht unbedingt die Zuordnung zu einer bestimmten Rechnung. Dies ist der erste Schritt der Zahlungszuordnung und ein wichtiges Ereignis für die DSO-Berechnung. Woher beziehen Erfasst anhand des Erstellungsdatums des Transaktionsdatensatzes „Customer Payment“. Die Verknüpfung mit der Rechnung wird im Unterregister „Apply“ der Zahlung hergestellt. Erfassung Erstellung eines Transaktionsdatensatzes „Customer Payment“. Ereignistyp explicit | |||
| Rechnung an Kunden gesendet | Zeigt an, dass die Rechnung an den Kunden versendet wurde, in der Regel per E-Mail. Erfasst wird das Ereignis, indem protokolliert wird, wann ein Benutzer im Rechnungsdatensatz die Aktion „Email“ ausführt. | ||
| Warum das wichtig ist Damit beginnt die Zahlungsfrist des Kunden. Das Ereignis ist der wichtigste Ausgangspunkt für die Berechnung der Days Sales Outstanding (DSO). Woher beziehen Abgeleitet aus dem ausgefüllten Feld „Date Last Emailed“ im Rechnungsdatensatz. Alternativ lässt sich das Ereignis anhand der Erstellung eines E-Mail-Datensatzes im Unterregister „Communication“ erfassen. Erfassung Abgeleitet aus dem ausgefüllten Feld „Date Last Emailed“ oder der Erstellung eines Kommunikationsdatensatzes. Ereignistyp inferred | |||
| Rechnung erstellt | Kennzeichnet die offizielle Erstellung des Rechnungstransaktionsdatensatzes in NetSuite. Dieses Ereignis markiert für jede eindeutige Rechnungsnummer den Beginn der Rechnungsverarbeitung. Erfasst wird der Erstellungszeitpunkt der Transaktion. | ||
| Warum das wichtig ist Dies ist das primäre Start-Event der Rechnungsverarbeitung. Die Zeitspanne zwischen diesem Ereignis und den folgenden Ereignissen zeigt die Effizienz des Gesamtprozesses und bildet die Grundlage für die KPI „Durchlaufzeit der Rechnungserstellung“. Woher beziehen Erfasst anhand des Timestamps „Date Created“ im Rechnungstransaktionsdatensatz. Die Systemnotizen zur Rechnung protokollieren außerdem ausdrücklich deren Erstellung und den Benutzer. Erfassung Wird protokolliert, sobald der Rechnungstransaktionsdatensatz erstellt wird. Ereignistyp explicit | |||
| Rechnung freigegeben | Die Rechnung wurde offiziell freigegeben und kann an den Kunden gesendet werden. Erfasst wird das Ereignis, wenn sich der Freigabestatus von „Pending Approval“ zu „Genehmigt“ ändert, üblicherweise durch eine Workflow-Aktion. | ||
| Warum das wichtig ist Ein wichtiger Meilenstein: Erst danach kann die Rechnung an den Kunden gesendet werden. Das Ereignis ist entscheidend für die Messung der Freigabedurchlaufzeit und die Berechnung der KPI „Automatisierungsquote der Rechnungsverarbeitung“. Woher beziehen Abgeleitet aus dem Wechsel des Feldes „Approval Status“ im Rechnungsdatensatz zu „Genehmigt“. Der genaue Timestamp ist in den Systemnotizen zur Transaktion protokolliert. Erfassung Abgeleitet aus der in den Systemnotizen protokollierten Änderung des Feldes „Approval Status“ zu „Genehmigt“. Ereignistyp inferred | |||
| Rechnung vollständig bezahlt | Der Rechnungsstatus hat sich zu „Paid In Full“ geändert. Der offene Betrag beträgt nun null. Damit ist die Rechnungsstellung und das Mahnverfahren für diese Rechnung erfolgreich abgeschlossen. | ||
| Warum das wichtig ist Dies ist das primäre erfolgreiche End-Event des Prozesses. Die Gesamtzeit bis zu diesem Status zeigt die durchgängige Durchlaufzeit des Cash Conversion Cycle. Woher beziehen Abgeleitet aus dem Wechsel des Feldes „Status“ im Rechnungsdatensatz zu „Paid In Full“. Der Timestamp dieser Statusänderung ist in den Systemnotizen der Transaktion verfügbar. Erfassung Abgeleitet aus der in den Systemnotizen protokollierten Änderung des Feldes „Status“ zu „Paid In Full“. Ereignistyp inferred | |||
| Gutschrift erstellt | Eine Gutschrifttransaktion wurde erstellt und auf die Rechnung angewendet. Dadurch verringert sich der offene Betrag. Häufig weist dies auf eine Produktrückgabe, eine Beschwerde über eine Dienstleistung oder eine Preiskorrektur hin. | ||
| Warum das wichtig ist Macht Nacharbeit, Qualitätsprobleme oder Kundenstreitigkeiten sichtbar. Häufige Gutschriften können auf grundlegende Probleme hinweisen und sind eine wichtige Grundlage für das Dashboard „Analyse von Rechnungsnacharbeit und -ablehnungen“. Woher beziehen Erfasst anhand der Erstellung einer Gutschrifttransaktion. Die Verknüpfung mit der ursprünglichen Rechnung findet sich im Feld „Created From“ oder im Unterregister „Apply“ der Gutschrift. Erfassung Erstellung eines Gutschriftdatensatzes, der mit der ursprünglichen Rechnung verknüpft ist. Ereignistyp explicit | |||
| Rechnung geschlossen | Die Rechnungstransaktion wurde geschlossen, häufig im Rahmen des Periodenabschlusses. Danach sind keine weiteren Änderungen an der Transaktion möglich, sobald sie vollständig bezahlt und abgestimmt wurde. | ||
| Warum das wichtig ist Die Schließung erfolgt häufig nach „Paid In Full“, kann aber ein abschließender administrativer Schritt sein. Verzögerungen zwischen Zahlung und Schließung können die zeitnahe Finanzberichterstattung beeinträchtigen. Woher beziehen Abgeleitet aus der Änderung des Feldes „Status“ zu „Closed“ oder einem ähnlichen Status. Der Timestamp dieser Änderung wird den Systemnotizen entnommen. Erfassung Abgeleitet aus einer in den Systemnotizen protokollierten Änderung des Feldes „Status“. Ereignistyp inferred | |||
| Rechnung storniert | Die Rechnung wurde storniert. Dadurch wird sie aufgehoben und ihre Auswirkungen auf das Hauptbuch werden rückgängig gemacht. Dies geschieht üblicherweise bei versehentlich erstellten Rechnungen, bevor sie bezahlt wurden. | ||
| Warum das wichtig ist Kennzeichnet eine Prozessausnahme und einen Endstatus. Die Analyse der Stornierungsgründe kann Fehler bei der Dateneingabe oder im Prozess aufdecken, die an früherer Stelle behoben werden müssen. Woher beziehen Dies ist eine explizite Benutzeraktion. Sie lässt sich anhand der Systemnotizen zum Rechnungsdatensatz erfassen, in denen protokolliert wird, wann und von wem die Transaktion storniert wurde. Erfassung Explizite Aktion „Void“, protokolliert in den Systemnotizen der Rechnung. Ereignistyp explicit | |||
| Rechnung zur Freigabe eingereicht | Kennzeichnet den Statuswechsel der Rechnung zu „Pending Approval“. Das Ereignis wird erfasst, wenn ein Benutzer die Rechnung an einen konfigurierten Freigabe-Workflow übergibt. Eine solche Anpassung ist weit verbreitet. | ||
| Warum das wichtig ist Diese Aktivität markiert den Beginn eines möglichen Engpasses bei der Freigabe. Die Wartezeit bis zur Freigabe ist ein wichtiger Bestandteil der gesamten Durchlaufzeit der Rechnungsverarbeitung. Woher beziehen Abgeleitet aus dem Wechsel des Feldes „Approval Status“ im Rechnungsdatensatz zu „Pending Approval“. Der Timestamp dieser Änderung ist im Audit-Trail der Systemnotizen zur Rechnung zu finden. Erfassung Abgeleitet aus der in den Systemnotizen protokollierten Änderung des Feldes „Approval Status“. Ereignistyp inferred | |||
| Zahlung der Rechnung zugeordnet | Die eingegangene Kundenzahlung wurde dieser Rechnung zugeordnet und verringert den offenen Betrag. Die Zuordnung wird erfasst, wenn sie im Datensatz „Customer Payment“ gespeichert wird. | ||
| Warum das wichtig ist Dieses Ereignis stellt die entscheidende Verbindung zwischen Zahlungseingang und Ausgleich der Rechnung her. Die Zeitspanne zwischen „Zahlung eingegangen“ und diesem Ereignis bildet die KPI „Durchlaufzeit der Zahlungszuordnung“. Woher beziehen Erfasst anhand der Systemnotizen oder des Audit-Trails der Transaktion „Customer Payment“, insbesondere wenn die Zuordnung zur Rechnungsposition gespeichert wird. Der Timestamp dieser Zuordnung ist entscheidend. Erfassung Wird protokolliert, wenn der Datensatz „Customer Payment“ mit einer Zuordnung zur Rechnung gespeichert wird. Ereignistyp explicit | |||
| Zahlungserinnerung versendet | Der Kunde wurde über eine ausstehende Zahlung informiert. Erfasst wird dies als protokollierte Aktivität oder E-Mail, die vom Rechnungs- oder Kundendatensatz aus versendet wurde, häufig über eine Mahnlösung. | ||
| Warum das wichtig ist Das Ereignis ist wichtig, um die Wirksamkeit von Mahnstrategien zu bewerten. Die Analyse, wie sich diese Aktivität auf spätere Zahlungen auswirkt, hilft dabei, Häufigkeit und Zeitpunkt von Erinnerungen zu optimieren. Woher beziehen Erfasst anhand der Erstellung eines E-Mail-Datensatzes im Unterregister „Communication > Messages“ des Rechnungs- oder Kundendatensatzes. Automatisierte Mahnlösungen protokollieren solche Vorgänge möglicherweise auch als benutzerdefinierte Datensätze oder Aufgaben. Erfassung Als E-Mail- oder Aktivitätsdatensatz zur Rechnung protokolliert. Ereignistyp explicit | |||
| Zahlungsziel erreicht | Ein berechnetes Ereignis, das eintritt, wenn das aktuelle Datum dem Fälligkeitsdatum der Rechnung entspricht. Es beruht nicht auf einer direkten Benutzer- oder Systemaktion, sondern wird bei der Analyse aus vorhandenen Daten abgeleitet. | ||
| Warum das wichtig ist Dient als wichtiger Maßstab für die Pünktlichkeit von Zahlungen. Das Ereignis ist für die Berechnung der KPI „Pünktliche Zahlungsquote“ und die Analyse des Zahlungsverhaltens von Kunden unerlässlich. Woher beziehen Dies ist kein explizites Ereignis in NetSuite. Es wird berechnet, indem der Timestamp im Event Log mit dem Feld „Due Date“ im Rechnungstransaktionsdatensatz verglichen wird. Erfassung Wird berechnet, wenn der Timestamp des Ereignisses mit dem Feld „Due Date“ der Rechnung übereinstimmt. Ereignistyp calculated | |||
Anleitungen zur Datenextraktion
Schritte
- Bei NetSuite anmelden: Melden Sie sich mit einer Rolle bei Ihrem NetSuite-Konto an, die über ausreichende Berechtigungen zum Erstellen und Ausführen von Saved Searches für Transaktionsdatensätze verfügt.
- Zu Saved Searches navigieren: Öffnen Sie Reports > Saved Searches > All Saved Searches > New. Wählen Sie in der Liste der Suchtypen „Transaction“ aus. Diese Suche dient als Grundlage für mehrere Suchen, jeweils eine pro Ereignistyp.
- Suche „Rechnung erstellt“ erstellen: Mit dieser zentralen Suche erfassen Sie das Erstellen von Rechnungen.
- Öffnen Sie die Registerkarte „Criteria“ und setzen Sie unter „Standard“ den Filter „Type“ auf „is Invoice“.
- Fügen Sie den Filter „Main Line“ hinzu und setzen Sie ihn auf „is true“, damit pro Rechnung nur ein Datensatz erfasst wird.
- Fügen Sie auf der Registerkarte „Results“ die erforderlichen Spalten hinzu. Verwenden Sie Formeln, um standardisierte Felder wie „ActivityName“ zu erstellen. Fügen Sie beispielsweise ein Feld „Formula (Text)“ mit der Formel
_UTF8'Invoice Created'hinzu.
- Suchen für Statusänderungen erstellen (Genehmigung, bezahlt, storniert, geschlossen): Viele Aktivitäten entsprechen Statusänderungen. System Notes bieten die zuverlässigste Möglichkeit, den genauen Timestamp zu erfassen.
- Erstellen Sie eine neue Transaction Saved Search.
- Setzen Sie auf der Registerkarte „Criteria“ den Filter „Type“ auf „is Invoice“.
- Fügen Sie unter der Unterregisterkarte „Standard“ den Filter „System Notes : Field“ hinzu und wählen Sie das betreffende Statusfeld aus, zum Beispiel „Approval Status“.
- Fügen Sie den Filter „System Notes : New Value“ hinzu und setzen Sie ihn auf den Zielstatus, zum Beispiel „Approved“.
- Ordnen Sie auf der Registerkarte „Results“ den Wert „System Notes : Date“ dem Feld
EventTimestampund „System Notes : Set by“ dem FeldBenutzerzu. - Wiederholen Sie diesen Vorgang für alle statusbasierten Aktivitäten: „Rechnung zur Genehmigung eingereicht“, „Rechnung genehmigt“, „Rechnung vollständig bezahlt“, „Rechnung storniert“ und „Rechnung geschlossen“. Passen Sie die Feld- und Wertfilter entsprechend an.
- Suche „Rechnung an Kunden gesendet“ erstellen: Dieses Ereignis wird üblicherweise erfasst, indem E-Mail-Nachrichten nachverfolgt werden, die über den Rechnungsdatensatz versendet wurden.
- Erstellen Sie eine neue Transaction Saved Search und setzen Sie „Type“ auf „is Invoice“.
- Fügen Sie auf der Registerkarte „Criteria“ unter „Related Records“ den Filter „Messages : Date Sent“ hinzu und setzen Sie ihn auf „is not empty“.
- Ordnen Sie auf der Registerkarte „Results“ den Wert „Messages : Date Sent“ dem Feld
EventTimestampund „Messages : Author“ dem FeldBenutzerzu.
- Suchen für Zahlungen und Gutschriften erstellen: Hierfür sind separate Transaktionstypen erforderlich, die mit der Rechnung verknüpft sind.
- Erstellen Sie für „Kundenzahlung eingegangen“ eine Suche mit „Type“ gleich „Customer Payment“. Verwenden Sie das Erstellungsdatum als Timestamp des Ereignisses.
- Verwenden Sie für „Zahlung auf Rechnung angewendet“ dieselbe Suche für „Customer Payment“, verknüpfen Sie sie jedoch mit den Feldern „Applied To Transaction“. Das Feld „Date Created“ der Zahlungstransaktion dient als Timestamp. Sie erhalten eine Zeile pro Zuordnung zu einer Rechnung.
- Erstellen Sie für „Gutschrift erstellt“ eine Suche mit „Type“ gleich „Credit Memo“ und verknüpfen Sie sie über das Feld „Created From“ mit der ursprünglichen Rechnungsnummer.
- Saved Searches ausführen und exportieren: Führen Sie jede erstellte Saved Search aus. Klicken Sie auf der Ergebnisseite auf das Exportsymbol (CSV, Excel oder PDF) und wählen Sie CSV. Wenn der Ergebnisumfang das NetSuite-Exportlimit überschreitet, müssen Sie die Daten möglicherweise in mehreren Teilmengen exportieren.
- Daten zusammenführen und transformieren: Führen Sie alle exportierten CSV-Dateien mit einem Tool wie Microsoft Excel, einem Python-Skript oder einem Datenaufbereitungstool in einer Datei zusammen.
- Ereignis „Fälligkeitsdatum der Zahlung erreicht“ ableiten: Erstellen Sie in der zusammengeführten Datendatei für jedes Ereignis „Rechnung erstellt“ eine neue Zeile. Setzen Sie
ActivityNameauf „Fälligkeitsdatum der Zahlung erreicht“, übernehmen Sie den Wert aus dem FeldDueDateder Rechnung fürEventTimestampund kopieren Sie die übrigen relevanten Rechnungsattribute. - Event Log fertigstellen: Vereinheitlichen Sie alle Spaltenüberschriften gemäß dem erforderlichen Schema, zum Beispiel
InvoiceNumber,ActivityNameundEventTimestamp. Achten Sie auf ein einheitliches Timestamp-Format. Ergänzen Sie die SpaltenSourceSystemundLastDataUpdatemit festen Werten für diesen Extraktionslauf. Speichern Sie die fertige zusammengeführte Datei als CSV, um sie hochzuladen.
Konfiguration
- Voraussetzungen: Erforderlich ist eine Benutzerrolle mit Berechtigungen zum Erstellen, Bearbeiten und Ausführen von Saved Searches des Typs „Transaction“. Außerdem benötigen Sie Zugriff auf Datensätze für Rechnungen, Kundenzahlungen, Gutschriften und System Notes.
- Suchtyp: Für alle Extraktionen wird hauptsächlich der Suchtyp „Transaction“ verwendet. Damit können Sie auf alle erforderlichen Datensätze und ihre Beziehungen zugreifen.
- Filter für den Datumsbereich: Begrenzen Sie den Datumsbereich jeder Suche, um Leistung und Datenvolumen zu steuern. Für die erste Analyse empfiehlt sich ein Filter für „Date Created“ auf die letzten 3 bis 6 Monate.
- Filter „Main Line“: Setzen Sie das Kriterium „Main Line“ für Ereignisse auf Dokumentkopfebene, etwa „Rechnung erstellt“, auf „true“. Setzen Sie es auf „false“, wenn Sie Positionsdetails analysieren müssen. Für diesen Prozess ist das nicht erforderlich.
- System Notes: Für die Erfassung von Statusänderungen sind System Notes besonders wichtig. Stellen Sie sicher, dass die Prüfung wichtiger Transaktionsfelder wie „Status“ und „Approval Status“ in Ihrer NetSuite-Konfiguration aktiviert ist (Setup > Company > Enable Features > SuiteCloud > SuiteAudit Trail).
- Leistungsaspekte: Komplexe Suchen mit zahlreichen Verknüpfungen und Formelfeldern über einen großen Datumsbereich können in der NetSuite-Oberfläche langsam ausgeführt werden. Führen und exportieren Sie solche Suchen möglichst außerhalb der Spitzenzeiten. Wenn eine Suche wegen einer Zeitüberschreitung abbricht, verkleinern Sie den Datumsbereich und exportieren Sie die Daten in kleineren Teilmengen.
a Beispielabfrage sql
/*
This section describes the configuration for multiple NetSuite Saved Searches needed to generate the complete event log. Each block represents a separate Saved Search that must be created in the UI, exported, and then combined externally.
*/
-- Search 1: Invoice Created
Activity Name: 'Invoice Created'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Main Line is true
Results Columns (Mapped to Event Log Attributes):
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Created'
- EventTimestamp: Date Created
- User: Created By
- InvoiceDate: Date
- DueDate: Due Date
- InvoiceTotalAmount: Amount (Gross)
- CustomerName: Name
-- Search 2: Invoice Submitted for Approval
Activity Name: 'Invoice Submitted for Approval'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Approval Status
- System Notes : New Value is [Your 'Pending Approval' status]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Submitted for Approval'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 3: Invoice Approved
Activity Name: 'Invoice Approved'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Approval Status
- System Notes : New Value is [Your 'Approved' status]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Approved'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 4: Invoice Sent to Customer
Activity Name: 'Invoice Sent to Customer'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Messages : Date Sent is not empty
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Sent to Customer'
- EventTimestamp: Messages : Date Sent (use Maximum summary type if multiple)
- User: Messages : Author (use Maximum summary type)
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 5: Payment Reminder Issued
Activity Name: 'Payment Reminder Issued'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- User Notes : Note contains [Your dunning/reminder keyword]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Payment Reminder Issued'
- EventTimestamp: User Notes : Date
- User: User Notes : Author
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 6: Credit Memo Created
Activity Name: 'Credit Memo Created'
Saved Search Type: Transaction
Criteria:
- Type is Credit Memo
- Main Line is true
Results Columns:
- InvoiceNumber: Created From : Document Number
- ActivityName: Formula (Text) = 'Credit Memo Created'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 7: Customer Payment Received
Activity Name: 'Customer Payment Received'
Saved Search Type: Transaction
Criteria:
- Type is Customer Payment
- Main Line is true
Results Columns:
- InvoiceNumber: Applied to Transaction : Document Number
- ActivityName: Formula (Text) = 'Customer Payment Received'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
-- Search 8: Payment Applied To Invoice
Activity Name: 'Payment Applied To Invoice'
Saved Search Type: Transaction
Criteria:
- Type is Customer Payment
- Main Line is false
Results Columns:
- InvoiceNumber: Applied to Transaction : Document Number
- ActivityName: Formula (Text) = 'Payment Applied To Invoice'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
-- Search 9: Invoice Paid In Full
Activity Name: 'Invoice Paid In Full'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Status
- System Notes : New Value is Paid In Full
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Paid In Full'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 10: Invoice Voided
Activity Name: 'Invoice Voided'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Status is Invoice : Voided
- System Notes : Field is Status
- System Notes : New Value is Voided
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Voided'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
-- Search 11: Invoice Closed
Activity Name: 'Invoice Closed'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Status
- System Notes : New Value contains Closed
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Closed'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Event to be Derived Post-Extraction: Payment Due Date Reached
/*
This event is not extracted directly. After combining all other CSVs, create a new row for each unique invoice.
Set ActivityName to 'Payment Due Date Reached'.
Set EventTimestamp to the DueDate value from the 'Invoice Created' event for that invoice.
Copy other attributes like InvoiceNumber, CustomerName, etc.
*/ Schritte
- Voraussetzung: SuiteAnalytics Connect aktivieren: Stellen Sie sicher, dass das SuiteAnalytics-Connect-Modul für Ihre NetSuite-Instanz lizenziert und aktiviert ist. Dies erledigt in der Regel ein NetSuite-Administrator unter Setup > Company > Enable Features > Analytics.
- ODBC-Treiber herunterladen und konfigurieren: Öffnen Sie das NetSuite-Startseiten-Dashboard und suchen Sie das Portlet „Settings“. Klicken Sie auf den Link „Set Up SuiteAnalytics Connect“, um den passenden ODBC-Treiber für Ihr Betriebssystem herunterzuladen. Installieren und konfigurieren Sie den Treiber gemäß den Anweisungen von NetSuite. Geben Sie dazu Service-Host, Port, Account ID, Role ID, E-Mail-Adresse und Passwort an.
- Datenbankverbindung herstellen: Verwenden Sie ein SQL-Clienttool mit ODBC-Unterstützung, zum Beispiel DBeaver, Tableau oder Power BI. Erstellen Sie mit dem zuvor konfigurierten Treiber eine neue ODBC-Verbindung. Testen Sie die Verbindung, um sicherzustellen, dass die Authentifizierung funktioniert und Sie auf die NetSuite-Lesereplik-Datenbank zugreifen können.
- SQL-Abfrage vorbereiten: Kopieren Sie die vollständige SQL-Abfrage aus dem Abschnitt „Query“ dieses Dokuments. Sie ruft alle erforderlichen Aktivitäten und Attribute für den Order-to-Cash-Abrechnungsprozess ab.
- Abfrageparameter festlegen: Ersetzen Sie vor der Ausführung die Platzhalterwerte in der Abfrage. Tragen Sie für den Extraktionszeitraum die gewünschten Start- und Enddaten anstelle von
'YYYY-MM-DD'ein. Ersetzen Sie außerdem[Your Subsidiary ID]durch die interne ID der NetSuite-Tochtergesellschaft, die Sie analysieren möchten. - Abfrage ausführen: Führen Sie die angepasste Abfrage in Ihrem SQL-Client aus. Die Ausführungsdauer hängt vom Datumsbereich und vom Transaktionsvolumen in Ihrem NetSuite-Konto ab.
- Ergebnisse prüfen: Nach Abschluss der Abfrage wird eine flache Tabelle mit dem Event Log zurückgegeben. Jede Zeile entspricht einer Aktivität im Rechnungslebenszyklus. Prüfen Sie die Daten auf Vollständigkeit und Richtigkeit.
- Event Log exportieren: Exportieren Sie die Abfrageergebnisse aus Ihrem SQL-Client in eine CSV-Datei. Achten Sie auf die UTF-8-Kodierung, um Zeichenfehler zu vermeiden.
- Upload vorbereiten: Prüfen Sie vor dem Upload in ein Process-Mining-Tool, ob die Spaltenüberschriften den erforderlichen Attributnamen entsprechen, etwa InvoiceNumber, ActivityName und EventTimestamp. Achten Sie auf einheitliche Datums- und Zeitformate.
Konfiguration
- SuiteAnalytics-Connect-Lizenz: Für den Zugriff auf die NetSuite-Lesereplik-Datenbank benötigen Sie eine gültige Lizenz für das SuiteAnalytics-Connect-Modul. Ohne diese Lizenz ist ein direkter SQL-Zugriff nicht möglich.
- Dedizierte Rolle und Benutzer: Es wird dringend empfohlen, eine eigene NetSuite-Rolle mit den passenden Berechtigungen für SuiteAnalytics Connect einzurichten. Diese Rolle sollte schreibgeschützten Zugriff auf die erforderlichen Datensätze haben, darunter Transaktionen, Kunden und System Notes. Weisen Sie dieser Rolle für die Extraktion einen eigenen Benutzer zu, um Sicherheit und Auditierbarkeit zu gewährleisten.
- Filter für den Datumsbereich: Die bereitgestellte Abfrage enthält eine
WHERE-Klausel für das Erstellungsdatum der Rechnung (Transaction.TRANDATE). Beginnen Sie bei der ersten Extraktion am besten mit einem kleineren Zeitraum, etwa den letzten 3 bis 6 Monaten, um Leistung und Datenvolumen zu steuern. Beispiel:AND T.TRANDATE BETWEEN '2023-01-01' AND '2023-06-30'. - Filter für Tochtergesellschaften: Bei Konten mit mehreren Tochtergesellschaften ist ein Filter auf die jeweilige Tochtergesellschaft entscheidend für die Leistung und Relevanz der Daten. Die Abfrage enthält den Platzhalter
WHERE T.SUBSIDIARY_ID = [Your Subsidiary ID], den Sie entsprechend konfigurieren müssen. - Aktualität der Daten: Die SuiteAnalytics-Connect-Datenbank ist eine Lesereplik. Sie wird üblicherweise mehrmals pro Stunde aktualisiert, liefert aber keine Echtzeitdaten. Zwischen einer Transaktion in NetSuite und ihrer Verfügbarkeit in der Connect-Datenbank kann es zu einer Verzögerung von bis zu einigen Stunden kommen.
a Beispielabfrage sql
WITH Invoices AS (
SELECT
T.TRANSACTION_ID,
T.TRANID AS InvoiceNumber,
T.TRANDATE AS InvoiceDate,
T.DUEDATE AS DueDate,
T.FOREIGN_TOTAL AS InvoiceTotalAmount,
C.COMPANYNAME AS CustomerName,
BUILTIN.DF(C.LOCATION) AS Region,
T.CREATED_DATE AS InvoiceCreationDate,
CREATOR.FIRST_NAME || ' ' || CREATOR.LAST_NAME AS CreatorUser
FROM
TRANSACTIONS T
JOIN
CUSTOMERS C ON T.ENTITY_ID = C.CUSTOMER_ID
LEFT JOIN
EMPLOYEES CREATOR ON T.CREATED_BY_ID = CREATOR.EMPLOYEE_ID
WHERE
T.TRANSACTION_TYPE = 'Invoice'
AND T.TRANDATE BETWEEN TO_DATE('2023-01-01', 'YYYY-MM-DD') AND TO_DATE('2023-12-31', 'YYYY-MM-DD')
-- AND T.SUBSIDIARY_ID = [Your Subsidiary ID] -- Add your subsidiary filter if needed
)
-- 1. Invoice Created
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Invoice Created' AS "ActivityName",
I.InvoiceCreationDate AS "EventTimestamp",
I.InvoiceCreationDate AS "EventEndTime",
I.CreatorUser AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN I.CreatorUser LIKE '%System%' THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
UNION ALL
-- 2. Invoice Submitted for Approval & 3. Invoice Approved
SELECT
I.InvoiceNumber AS "InvoiceNumber",
CASE WHEN SN.NEW_VALUE = 'Pending Approval' THEN 'Invoice Submitted for Approval' ELSE 'Invoice Approved' END AS "ActivityName",
SN.DATE_CREATED AS "EventTimestamp",
SN.DATE_CREATED AS "EventEndTime",
SN_AUTHOR.FIRST_NAME || ' ' || SN_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN SN.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
SYSTEM_NOTES SN ON I.TRANSACTION_ID = SN.TRANSACTION_ID
LEFT JOIN
EMPLOYEES SN_AUTHOR ON SN.AUTHOR_ID = SN_AUTHOR.EMPLOYEE_ID
WHERE
SN.FIELD = 'TRANSACTION.APPROVALSTATUS' AND SN.NEW_VALUE IN ('Pending Approval', 'Approved')
UNION ALL
-- 4. Invoice Sent to Customer
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Invoice Sent to Customer' AS "ActivityName",
M.MESSAGE_DATE AS "EventTimestamp",
M.MESSAGE_DATE AS "EventEndTime",
MSG_AUTHOR.FIRST_NAME || ' ' || MSG_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
MESSAGES M ON I.TRANSACTION_ID = M.TRANSACTION_ID
LEFT JOIN
EMPLOYEES MSG_AUTHOR ON M.AUTHOR_ID = MSG_AUTHOR.EMPLOYEE_ID
WHERE
M.INCOMING = 'F' -- Indicates an outgoing message
UNION ALL
-- 5. Payment Due Date Reached
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Payment Due Date Reached' AS "ActivityName",
I.DueDate AS "EventTimestamp",
I.DueDate AS "EventEndTime",
'System' AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
1 AS "IsAutomated"
FROM
Invoices I
WHERE
I.DueDate IS NOT NULL AND I.DueDate < SYSDATE
UNION ALL
-- 6. Payment Reminder Issued (based on Messages table, requires a specific subject line convention)
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Payment Reminder Issued' AS "ActivityName",
M.MESSAGE_DATE AS "EventTimestamp",
M.MESSAGE_DATE AS "EventEndTime",
MSG_AUTHOR.FIRST_NAME || ' ' || MSG_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN M.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
MESSAGES M ON I.TRANSACTION_ID = M.TRANSACTION_ID
LEFT JOIN
EMPLOYEES MSG_AUTHOR ON M.AUTHOR_ID = MSG_AUTHOR.EMPLOYEE_ID
WHERE
M.INCOMING = 'F' AND UPPER(M.SUBJECT) LIKE '%PAYMENT REMINDER%'
UNION ALL
-- 7. Credit Memo Created & Applied
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Credit Memo Created' AS "ActivityName",
CM.CREATED_DATE AS "EventTimestamp",
CM.CREATED_DATE AS "EventEndTime",
CM_CREATOR.FIRST_NAME || ' ' || CM_CREATOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
TRANSACTION_LINES T_LINES ON I.TRANSACTION_ID = T_LINES.APPLIED_TO_TRANSACTION_ID
JOIN
TRANSACTIONS CM ON T_LINES.TRANSACTION_ID = CM.TRANSACTION_ID
LEFT JOIN
EMPLOYEES CM_CREATOR ON CM.CREATED_BY_ID = CM_CREATOR.EMPLOYEE_ID
WHERE
CM.TRANSACTION_TYPE = 'Credit Memo'
UNION ALL
-- 8. Customer Payment Received & 9. Payment Applied to Invoice
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Customer Payment Received' AS "ActivityName", -- Can also create a separate 'Payment Applied' event if needed
PAYMENT.CREATED_DATE AS "EventTimestamp",
PAYMENT.CREATED_DATE AS "EventEndTime",
PMT_CREATOR.FIRST_NAME || ' ' || PMT_CREATOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
TRANSACTION_LINES T_LINES ON I.TRANSACTION_ID = T_LINES.APPLIED_TO_TRANSACTION_ID
JOIN
TRANSACTIONS PAYMENT ON T_LINES.TRANSACTION_ID = PAYMENT.TRANSACTION_ID
LEFT JOIN
EMPLOYEES PMT_CREATOR ON PAYMENT.CREATED_BY_ID = PMT_CREATOR.EMPLOYEE_ID
WHERE
PAYMENT.TRANSACTION_TYPE = 'Customer Payment'
UNION ALL
-- 10. Invoice Paid In Full, 11. Invoice Voided, 12. Invoice Closed
SELECT
I.InvoiceNumber AS "InvoiceNumber",
CASE
WHEN SN.NEW_VALUE_ID = 'Invoice:B' THEN 'Invoice Paid In Full' -- 'B' is status 'Paid In Full'
WHEN SN.FIELD = 'TRANSACTION.VOIDED' AND SN.NEW_VALUE = 'T' THEN 'Invoice Voided'
WHEN SN.FIELD = 'TRANSACTION.CLOSED' AND SN.NEW_VALUE = 'T' THEN 'Invoice Closed'
END AS "ActivityName",
SN.DATE_CREATED AS "EventTimestamp",
SN.DATE_CREATED AS "EventEndTime",
SN_AUTHOR.FIRST_NAME || ' ' || SN_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN SN.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
SYSTEM_NOTES SN ON I.TRANSACTION_ID = SN.TRANSACTION_ID
LEFT JOIN
EMPLOYEES SN_AUTHOR ON SN.AUTHOR_ID = SN_AUTHOR.EMPLOYEE_ID
WHERE
(SN.FIELD = 'TRANSACTION.STATUS' AND SN.NEW_VALUE_ID = 'Invoice:B')
OR (SN.FIELD = 'TRANSACTION.VOIDED' AND SN.NEW_VALUE = 'T')
OR (SN.FIELD = 'TRANSACTION.CLOSED' AND SN.NEW_VALUE = 'T'); Möchten Sie loslegen?
Verwenden Sie dieses Template als Ausgangspunkt für Ihr Process-Mining-Vorhaben und gewinnen Sie Erkenntnisse zu Ihren Abrechnungs- und Rechnungsstellungsabläufen. Beginnen Sie noch heute damit, Ihren Order-to-Cash-Prozess zu optimieren.
Optimieren Sie jetzt Ihre Abrechnung und Rechnungsstellung in NetSuite und verbessern Sie Ihren Cashflow
Verkürzen Sie den Abrechnungszyklus in NetSuite um 30 % und verbessern Sie Ihren Cashflow.
Keine Kreditkarte erforderlich. In wenigen Minuten eingerichtet.