Ihr Order-to-Cash-Daten-Template – Fakturierung & Rechnungsstellung
Ihr Order-to-Cash-Daten-Template – Fakturierung & Rechnungsstellung
- Empfohlene Attribute zur Erfassung
- Wichtige Aktivitäten zur Verfolgung
- Extraktionsanleitung für NetSuite
Order to Cash - Fakturierungs- und Rechnungsstellungsattribute
| Name | Beschreibung | ||
|---|---|---|---|
| Aktivitätsname ActivityName | Der Name des Geschäfts-Events, das zu einem bestimmten Zeitpunkt im Rechnungs-Lifecycle aufgetreten ist. | ||
| Beschreibung Der Activity Name beschreibt einen spezifischen Schritt oder ein Event innerhalb des Abrechnungsprozesses, wie z.B. 'Rechnung erstellt', 'Rechnung genehmigt' oder 'Kundenzahlung erhalten'. Diese Aktivitäten bilden die sequenziellen Bausteine der Prozesslandkarte. Die Analyse der Reihenfolge und Häufigkeit dieser Aktivitäten ist grundlegend für Process Mining. Sie hilft, den tatsächlichen Process Flow zu visualisieren, gängige und seltene Prozesspfade (Varianten) zu identifizieren und Aktivitäten zu lokalisieren, die häufig wiederholt werden, was auf Nacharbeit oder Ineffizienz hinweist. Bedeutung Dieses Attribut ist fundamental für die Erstellung der Prozesslandkarte, die die Visualisierung und Analyse der verschiedenen Schritte und Pfade einer Rechnung ermöglicht. Datenquelle Abgeleitet aus Systemprotokollen, Statusänderungen oder spezifischen Ereignisdatensätzen, die mit der Rechnungs-Transaktion in NetSuite verbunden sind. Dies erfordert oft die Zuordnung von Transaktionsstatusänderungen oder der Erstellung verwandter Datensätze zu definierten Aktivitätsnamen. Beispiele Rechnung erstelltRechnung freigegebenKundenzahlung eingegangenRechnung vollständig bezahlt | |||
| Ereignis-Timestamp EventTimestamp | Das genaue Datum und die Uhrzeit, zu der eine Aktivität bzw. ein Ereignis stattgefunden hat. | ||
| Beschreibung Dieses Attribut zeichnet den genauen Zeitpunkt auf, zu dem eine Aktivität stattfand. Es ist eine kritische Komponente für die chronologische Anordnung von Events und für alle zeitbasierten Analysen. Im Process Mining wird der Event Timestamp verwendet, um Zykluszeiten zwischen Aktivitäten, Case-Dauern und Wartezeiten zu berechnen. Er ist unerlässlich für die Identifizierung von Bottlenecks, die Messung der Prozess-Performance anhand von SLAs und das Verständnis der temporalen Dynamik des Abrechnungsprozesses. Zum Beispiel wird er verwendet, um die Invoice Generation Cycle Time und Days Sales Outstanding (DSO) zu berechnen. Bedeutung Es liefert die chronologische Reihenfolge der Ereignisse, die für die Berechnung aller dauerbasierten Metriken, die Identifizierung von Bottlenecks und die Analyse der Prozessleistung im Zeitverlauf unerlässlich ist. Datenquelle Timestamp-Informationen finden sich typischerweise in den Systemnotizen, Audit-Trails oder 'Erstellungsdatum'-Feldern der zugehörigen Datensätze für jede Rechnungs-Transaktion in NetSuite. Beispiele 2023-10-26T10:00:00Z2023-10-27T14:30:00Z2023-11-15T09:05:00Z | |||
| Rechnungsnummer InvoiceNumber | Der eindeutige Bezeichner für jedes Rechnungsdokument, der als primärer Case-Bezeichner für den Abrechnungsprozess dient. | ||
| Beschreibung Die Rechnungsnummer ist der Eckpfeiler der Abrechnungsprozessanalyse und identifiziert jede Rechnung von ihrer Erstellung bis zu ihrem endgültigen Abschluss eindeutig. Sie gruppiert alle zugehörigen Aktivitäten wie Genehmigung, Versand und Zahlungsbuchung in einem einzigen, kohärenten Case. Im Process Mining ermöglicht die Analyse des Verlaufs jeder Rechnungsnummer einen umfassenden Überblick über den gesamten Billing Lifecycle. Dies ermöglicht die Identifizierung von Prozessvarianten, Bottlenecks und Abweichungen vom Standardverfahren und liefert kritische Einblicke zur Optimierung des Cashflows und der operativen Effizienz. Bedeutung Es ist unerlässlich für die Verfolgung des durchgängigen Lebenszyklus jeder Rechnung, was die Rekonstruktion des gesamten Abrechnungsprozesses und eine detaillierte Leistungsanalyse ermöglicht. Datenquelle Dies ist typischerweise die 'Transaktions-ID' oder ein ähnliches eindeutiges Bezeichnerfeld im Rechnungs-Transaktionsdatensatz in NetSuite. Beispiele INV-0012345INV-0012346INV-0012347 | |||
| Letzte Datenaktualisierung LastDataUpdate | Der Timestamp, der den letzten Zeitpunkt angibt, zu dem die Daten aus dem Quellsystem aktualisiert wurden. | ||
| Beschreibung Dieses Attribut zeichnet auf, wann der Datensatz zuletzt aktualisiert wurde. Es liefert Kontext für die Aktualität und Relevanz der Process Mining Analyse. Analysten und Business Stakeholder nutzen diese Informationen, um zu verstehen, ob die Erkenntnisse den aktuellsten operativen Zustand widerspiegeln. Es ist ein kritisches Metadatum für jedes Dashboard oder jeden Report, das sicherstellt, dass Entscheidungen auf Daten eines bekannten Alters basieren und nicht als Echtzeit missinterpretiert werden, falls dies nicht der Fall ist. Bedeutung Dies informiert Benutzer über die Aktualität der Daten und stellt sicher, dass sie den Zeitrahmen der Analyse und die Relevanz der Erkenntnisse verstehen. Datenquelle Dieser Timestamp wird vom Datenextraktions-Tool oder der Pipeline zum Zeitpunkt der Datenaktualisierung generiert und aufgezeichnet. Beispiele 2024-05-21T02:00:00Z | |||
| Quellsystem SourceSystem | Das System, aus dem die Daten extrahiert wurden. | ||
| Beschreibung Dieses Attribut identifiziert den Ursprung der Prozessdaten. Für diese Ansicht wäre es konsistent 'NetSuite'. In einem breiteren Analytics-Kontext, insbesondere in Organisationen mit mehreren ERPs oder integrierten Systemen, ist dieses Attribut entscheidend für Data Lineage und Governance. Es hilft, Prozesse zu differenzieren, die sich über verschiedene Plattformen erstrecken könnten, und stellt sicher, dass die Analyse dem entsprechenden System of Record korrekt zugeordnet wird. Bedeutung Es liefert entscheidenden Kontext für Datenherkunft und -governance, insbesondere in Umgebungen, in denen mehrere Systeme integriert sein könnten. Datenquelle Dies ist ein statischer Beispiele NetSuite | |||
| Benutzer User | Der Name oder die ID des Benutzers, der die `Activity` ausgeführt hat. | ||
| Beschreibung Dieses Attribut identifiziert den Mitarbeiter oder Systembenutzer, der für die Ausführung eines spezifischen Prozessschritts verantwortlich ist. Dies könnte die Person sein, die die Rechnung erstellt, genehmigt oder die Zahlung angewendet hat. Die Analyse des Prozesses nach Benutzer hilft beim Verständnis der Arbeitslastverteilung, der individuellen Performance und der Identifizierung von Schulungsbedarfen. Es kann auch potenzielle Automatisierungsmöglichkeiten aufzeigen, indem dargestellt wird, welche manuellen Aktivitäten von den meisten Benutzern durchgeführt werden. Es ist auch entscheidend für Compliance- und Audit-Trail-Analysen. Bedeutung Es ermöglicht die Analyse der Arbeitslastverteilung, der benutzerspezifischen Leistung und der Prozesseinhaltung, was für das Ressourcenmanagement und gezielte Schulungen unerlässlich ist. Datenquelle Verfügbar im Unterreiter „System Notes“ oder in spezifischen „Modified By“-Feldern auf Rechnungs- und verwandten Transaktionsdatensätzen in NetSuite. Beispiele Alice SmithBob JohnsonSYSTEM | |||
| Endzeit des Events EventEndTime | Das genaue Datum und die Uhrzeit, zu der eine spezifische Aktivität oder ein Event abgeschlossen wurde. | ||
| Beschreibung Die Event End Time markiert den Abschluss einer Aktivität. Während viele Aktivitäten instantan sind (Start- und Endzeit sind gleich), können einige, wie ein Genehmigungsschritt, eine messbare Dauer haben. Dieses Attribut, in Verbindung mit dem Event Timestamp (Start Time), ermöglicht die direkte Berechnung der Aktivitätsverarbeitungszeit. Die Analyse der Verarbeitungszeit hilft zu identifizieren, welche spezifischen Schritte die meiste Zeit und Ressourcen verbrauchen, und unterscheidet dies von der Wartezeit zwischen Aktivitäten. Dies ist entscheidend für die Lokalisierung von Ineffizienzen innerhalb spezifischer Tasks. Bedeutung Es ermöglicht die präzise Berechnung der Dauer jeder Aktivität, was für die Analyse der Ressourceneffizienz und die Identifizierung zeitaufwändiger Aufgaben unerlässlich ist. Datenquelle Ähnlich wie StartTime kann dies aus System-Audit-Trails in NetSuite bezogen werden. Es kann Logik erfordern, um ein 'Start'-Event mit einem entsprechenden 'End'-Event zu koppeln. Beispiele 2023-10-26T10:05:14Z2023-10-27T14:32:00Z2023-11-15T09:05:00Z | |||
| Fälligkeitsdatum DueDate | Das Fälligkeitsdatum, bis zu dem die Zahlung für die Rechnung erfolgen muss. | ||
| Beschreibung Das Fälligkeitsdatum wird basierend auf dem Rechnungsdatum und den vereinbarten Zahlungsbedingungen berechnet. Es stellt die Frist dar, innerhalb derer der Kunde eine Zahlung leisten muss, ohne als säumig zu gelten. Dieses Attribut ist unerlässlich für die Überwachung der Debitorenbuchhaltung und das Cashflow-Management. Es ist der Maßstab zur Berechnung des On-Time Payment Rate KPI und zur Analyse des Zahlungsverhaltens von Kunden. Die Verfolgung von Abweichungen vom Fälligkeitsdatum hilft, Kunden zu identifizieren, die häufig verspätet zahlen, und die Effektivität von Inkassostrategien zu bewerten. Bedeutung Es ist entscheidend für die Messung der pünktlichen Zahlungsleistung und die Analyse des Kundenzahlungsverhaltens, was Inkasso und Cashflow-Prognosen direkt unterstützt. Datenquelle Dies entspricht dem Feld 'Fälligkeitsdatum' (duedate) im Rechnungs-Transaktionsdatensatz in NetSuite. Beispiele 2023-11-252023-11-262023-12-15 | |||
| Gesamtrechnungsbetrag InvoiceTotalAmount | Der gesamte monetäre Wert der Rechnung, einschließlich Steuern und anderer Gebühren. | ||
| Beschreibung Dieses Attribut repräsentiert den vollen Betrag, den der Kunde voraussichtlich zahlen wird. Es ist ein grundlegendes Finanzdatenelement für jeden Abrechnungs-Case. Die Analyse des Prozesses basierend auf dem Rechnungsbetrag ermöglicht eine wertbasierte Analyse. Zum Beispiel kann sie aufzeigen, ob hochpreisige Rechnungen einem anderen, komplexeren Prozess folgen als Rechnungen mit geringerem Wert. Es wird auch verwendet, um Inkassobemühungen zu priorisieren und die finanziellen Auswirkungen von Zahlungsverzögerungen oder Rechnungsfehlern zu verstehen. Bedeutung Es ermöglicht eine wertbasierte Prozessanalyse, die hilft, Rechnungen mit hohem Wert zu priorisieren und die finanziellen Auswirkungen von Prozessineffizienzen zu verstehen. Datenquelle Dies entspricht dem Feld 'Gesamt' (total) im Rechnungs-Transaktionsdatensatz in NetSuite. Beispiele 1500.0089,9912500.50 | |||
| Ist automatisiert IsAutomated | Ein Kennzeichen, das angibt, 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 ausgeführt werden. Dieses Attribut ist entscheidend für die Messung des Automatisierungsgrades im Abrechnungsprozess und unterstützt direkt den KPI 'Automatisierungsgrad der Abrechnung'. Durch das Filtern nach automatisierten oder manuellen Aktivitäten können Analysten Bottlenecks identifizieren, die durch manuelle Eingriffe verursacht werden, und Möglichkeiten zur Steigerung der Automatisierung, Reduzierung menschlicher Fehler und Verbesserung der Effizienz aufzeigen. Bedeutung Es hilft, den Automatisierungsgrad im Prozess zu messen, indem es Möglichkeiten zur Reduzierung des manuellen Aufwands und zur Steigerung der Effizienz identifiziert. Datenquelle Dies wird typischerweise abgeleitet, indem der mit einer Aktivität verbundene 'Benutzer' überprüft wird. Events, die von Benutzern namens 'SYSTEM', 'Workflow' oder 'Integration' ausgelöst werden, sind als automatisiert gekennzeichnet. Beispiele truefalsch | |||
| Kundenname CustomerName | Der Name des Kunden, an den die Rechnung ausgestellt wurde. | ||
| Beschreibung Dieses Attribut identifiziert die juristische Person oder das Individuum, dem eine Rechnung gestellt wird. Es verknüpft den Abrechnungsprozess mit der Funktion des Customer Relationship Management. Die Analyse des Abrechnungsprozesses nach Kunden hilft, Muster im Zahlungsverhalten, Streitigkeiten oder die Rechnungskomplexität für spezifische Kunden zu identifizieren. Dies kann Kundensegmentierungsstrategien, Kreditlimitentscheidungen und maßgeschneiderte Inkassoansätze beeinflussen. Zum Beispiel kann es aufzeigen, ob ein bestimmter Kunde konsistent Rechnungen hat, die Nacharbeit erfordern. Bedeutung Es ermöglicht eine kundenorientierte Analyse, die hilft, Zahlungsmuster, häufige Probleme oder Prozessabweichungen, die für bestimmte Kunden spezifisch sind, zu identifizieren. Datenquelle Dies entspricht dem Feld 'Kunde' oder 'Entität' im Rechnungs-Transaktionsdatensatz in NetSuite. Beispiele Global Tech Inc.Innovate Solutions LLCCornerstone Corp | |||
| Rechnungsdatum InvoiceDate | Das offizielle Rechnungsdatum, wie es dem Kunden ausgestellt wurde. | ||
| Beschreibung Das Rechnungsdatum, oder Transaktionsdatum, ist der Ausgangspunkt für viele finanzielle Berechnungen im Zusammenhang mit der Fakturierung. Es ist das Datum, ab dem Zahlungsbedingungen und Fälligkeitsdaten typischerweise berechnet werden. In der Analyse dient dieses Datum als primärer Anker für die Berechnung wichtiger Finanz-KPIs wie Days Sales Outstanding (DSO) und Invoice Aging. Es ermöglicht eine Kohortenanalyse, die den Vergleich der Abrechnungs-Performance über verschiedene Zeiträume hinweg ermöglicht, z.B. Monat für Monat oder Jahr für Jahr. Bedeutung Dieses Datum ist die Grundlage für kritische Finanzmetriken wie Days Sales Outstanding (DSO) und Rechnungsalterung und beeinflusst direkt die Working Capital Analyse. Datenquelle Dies entspricht dem Feld 'Datum' (trandate) im Rechnungs-Transaktionsdatensatz in NetSuite. Beispiele 2023-10-262023-10-272023-11-15 | |||
| Region Region | Die geografische Region, die dem Kunden oder der Transaktion zugeordnet ist. | ||
| Beschreibung Das Attribut Region klassifiziert Rechnungen nach geografischen Kriterien, die aus der Kundenadresse oder der Geschäftseinheit, die die Rechnung ausgestellt hat, abgeleitet werden können. Dies ist eine mächtige Dimension für die vergleichende Analyse. Das Dashboard 'Vergleich regionaler Abrechnungsprozesse' stützt sich auf dieses Attribut, um KPIs wie Zykluszeiten, Fehlerraten und Prozessvarianten über verschiedene Regionen hinweg zu vergleichen. Dies hilft, regionale Leistungsunterschiede zu identifizieren, Best Practices in leistungsstarken Regionen aufzudecken und Bemühungen zur Prozessstandardisierung im gesamten Unternehmen voranzutreiben. Bedeutung Es ermöglicht einen Vergleich der Prozesse über verschiedene geografische Gebiete hinweg, was entscheidend ist, um regionale Leistungsunterschiede zu identifizieren und Best Practices zu standardisieren. Datenquelle Diese Daten werden oft in einem benutzerdefinierten Segment oder Klassifizierungsfeld im Kundenstammdatensatz oder Transaktionsdatensatz in NetSuite gespeichert. Beispiele NordamerikaEMEAAPAC | |||
| `Verkaufsauftragsnummer` SalesOrderNumber | Der Bezeichner des Verkaufsauftrags, aus dem die Rechnung generiert wurde. | ||
| Beschreibung Dieses Attribut bietet eine direkte Verbindung zum ursprünglichen Verkaufsauftrag und verknüpft den Abrechnungsprozess mit den vorangehenden Vertriebs- und Abwicklungsprozessen. Die Einbeziehung der Sales Order Number ermöglicht eine ganzheitlichere Sicht auf den gesamten Order-to-Cash-Zyklus. Sie ermöglicht eine Analyse, die Abrechnungsprobleme auf ihre Quelle im Vertriebsprozess zurückführen kann. Zum Beispiel könnten häufige Rechnungskorrekturen mit Dateneingabefehlern bei bestimmten Arten von Verkaufsaufträgen verbunden sein. Bedeutung Es verknüpft den Abrechnungsprozess mit dem Verkaufsprozess und ermöglicht eine umfassendere, durchgängige Order to Cash-Analyse zur Identifizierung von Grundursachen für Abrechnungsprobleme. Datenquelle Findet sich im Feld „Created From“ oder auf dem Unterreiter „Related Records“ einer Rechnungs-Transaktion in NetSuite. Beispiele SO-0009876SO-0009877SO-0009878 | |||
| Abteilung Department | Die interne Abteilung, die mit der Rechnung verbunden ist. | ||
| Beschreibung Dieses Attribut repräsentiert die interne Abteilung, wie Vertrieb, Services oder eine spezifische Geschäftslinie, die für die Transaktion verantwortlich ist. Es ist ein Standard-Klassifizierungssegment in NetSuite. Die Analyse des Prozesses nach Abteilung ermöglicht internes Benchmarking und hilft zu identifizieren, ob bestimmte Abteilungen effizientere Abrechnungsprozesse haben als andere. Es kann Variationen in der Prozesseinhaltung oder Ressourcenallokation aufzeigen und liefert Einblicke für gezielte Prozessverbesserungsinitiativen innerhalb spezifischer Teile der Organisation. Bedeutung Es ermöglicht den Vergleich der Prozessleistung über verschiedene interne Abteilungen hinweg, wobei Abweichungen und Möglichkeiten zur internen Prozessstandardisierung hervorgehoben werden. Datenquelle Dies entspricht dem Klassifizierungsfeld 'Abteilung', das auf Kopf- oder Zeilenebene einer Rechnungs-Transaktion in NetSuite gesetzt werden kann. Beispiele Vertrieb - Enterprise`Professionelle Dienstleistungen``Hardware` | |||
| Aktivitätsbearbeitungszeit ActivityProcessingTime | Die Dauer der aktiven Bearbeitung einer spezifischen `Activity`. | ||
| Beschreibung Diese berechnete Metrik misst die verstrichene Zeit zwischen dem Start- und End-Timestamp einer einzelnen Aktivität. Sie repräsentiert die tatsächliche Arbeitsdauer, im Gegensatz zur Wartezeit zwischen Aktivitäten. Dies ist eine kritische Metrik für das Dashboard 'Aktivitätsdurchsatz & Bottlenecks'. Durch die Analyse der Verarbeitungszeiten können Teams identifizieren, welche spezifischen Tasks am zeitaufwändigsten und ressourcenintensivsten sind. Dies ermöglicht gezielte Verbesserungen, wie z.B. besseres Training, Verbesserung der System-Performance oder Automatisierung des Tasks. Bedeutung Es quantifiziert den tatsächlichen Aufwand für jede Aufgabe, hilft, aktive Arbeitszeit von ungenutzter Wartezeit zu unterscheiden und ineffiziente Aktivitäten zu identifizieren. Datenquelle Berechnet durch Subtraktion des EventTimestamp (StartTime) vom EventEndTime für jeden Aktivitätsdatensatz. Beispiele 300601200 | |||
| Days Sales Outstanding DaysSalesOutstanding | Die Anzahl der Tage zwischen dem Rechnungsdatum und dem Datum des Zahlungseingangs. | ||
| Beschreibung Days Sales Outstanding (DSO) ist eine wichtige Finanzkennzahl, die die durchschnittliche Anzahl der Tage misst, die es dauert, eine Zahlung nach Rechnungsstellung einzuziehen. Dieses Attribut wird für jede einzelne Rechnung berechnet, um eine detaillierte Analyse zu ermöglichen. Obwohl oft als übergeordneter KPI aggregiert, ermöglicht DSO auf individueller Rechnungsebene eine leistungsstarke Analyse. Es kann verwendet werden, um zu identifizieren, welche Kunden, Regionen oder Rechnungstypen den höchsten DSO aufweisen. Das 'DSO Trend'-Dashboard stützt sich auf diese Metrik, um die Effizienz der Zahlungseintreibung über die Zeit zu visualisieren und kritische Einblicke in das Working Capital Management zu liefern. Bedeutung Es quantifiziert die Effizienz der Zahlungseintreibung auf individueller Rechnungsebene und ermöglicht eine detaillierte Ursachenanalyse für einen hohen DSO und dessen Auswirkungen auf den Cashflow. Datenquelle Berechnet durch Subtraktion des „InvoiceDate“ vom Timestamp der Aktivität „Customer Payment Received“. Beispiele 294562 | |||
| Ist Nacharbeit IsRework | Ein berechnetes Kennzeichen, das Aktivitäten identifiziert, die als Nacharbeits- oder Korrekturschleifen gelten. | ||
| Beschreibung Dieses boolesche Flag ist auf 'wahr' gesetzt für Aktivitäten, die nicht-wertschöpfende Nacharbeit darstellen, wie z.B. 'Rechnung korrigiert' oder ein zweites Event 'Rechnung genehmigt' innerhalb desselben Case. Es wird typischerweise basierend auf dem Aktivitätsnamen oder der Wiederholung einer Aktivität abgeleitet. Dieses Attribut ist essenziell für das Dashboard 'Rechnung Nacharbeit und Ablehnungsanalyse' und den KPI 'Rechnungsfehlerrate'. Es ermöglicht eine einfache Quantifizierung der Nacharbeit und hilft, Probleme in der Prozessqualität hervorzuheben. Durch das Filtern nach Nacharbeitsaktivitäten können Teams schnell die Ursachen von Fehlern identifizieren und die Auswirkungen von Prozessverbesserungsinitiativen messen. Bedeutung Es misst direkt die Prozessqualität, indem es ineffiziente Nacharbeitsschleifen kennzeichnet und die Analyse der Grundursachen und der finanziellen Auswirkungen von Abrechnungsfehlern ermöglicht. Datenquelle Dies ist ein abgeleitetes Attribut, das während der Datentransformation berechnet wird. Es wird Logik angewendet, um Nacharbeit zu identifizieren, wie z.B. das Markieren spezifischer Aktivitätsnamen ('Rechnung korrigiert') oder wiederholter Aktivitäten. Beispiele truefalsch | |||
| Ist pünktliche Zahlung IsOnTimePayment | Ein Kennzeichen, das angibt, ob die Kundenzahlung am oder vor dem Fälligkeitsdatum der Rechnung eingegangen ist. | ||
| Beschreibung Dieses berechnete boolesche Flag vergleicht den Timestamp der Aktivität 'Kundenzahlung erhalten' mit dem 'Fälligkeitsdatum' der Rechnung. Es ist auf 'wahr' gesetzt, wenn die Zahlung pünktlich oder früher erfolgte, und auf 'falsch', wenn sie verspätet war. Dieses Attribut ist die Grundlage für den KPI 'Pünktliche Zahlungsrate' und das Dashboard 'Einhaltung der Zahlungsbedingungen'. Es bietet ein klares, binäres Maß für das Zahlungsverhalten von Kunden, was die Analyse und Berichterstattung vereinfacht. Es hilft, Trends bei der Zahlungsfristigkeit schnell zu identifizieren und die Wirksamkeit von Inkassostrategien zu bewerten. Bedeutung Dies liefert eine klare Erfolgsmetrik für das Inkasso und unterstützt direkt die Berechnung des KPI 'Pünktliche Zahlungsrate' und die Analyse des Kundenverhaltens. Datenquelle Dies ist ein berechnetes Attribut. Es erfordert den Vergleich des Timestamps des Zahlungs-Events mit dem Attribut 'Fälligkeitsdatum' auf Case-Ebene. Beispiele truefalsch | |||
| Rechnungsstatus InvoiceStatus | Der aktuelle Status der Rechnung in ihrem Lebenszyklus. | ||
| Beschreibung Dieses Attribut spiegelt den aktuellen Zustand der Rechnung wider, wie z.B. 'Offen', 'Vollständig bezahlt' oder 'Storniert'. Es bietet eine Momentaufnahme, wo sich die Rechnung zu einem bestimmten Zeitpunkt im Prozess befindet. Das Dashboard 'Statusübersicht Offene Rechnungen' basiert direkt auf diesem Attribut. Es ermöglicht eine Echtzeit-Beurteilung der Debitorenbuchhaltung und hilft Finanzteams, ausstehende Salden zu überwachen, Inkasso zu verwalten und Cash Inflows zu prognostizieren. Die Analyse des Endstatus hilft auch, Prozessergebnisse zu verstehen. Bedeutung Es bietet eine Momentaufnahme des aktuellen Stands der Debitorenbuchhaltung und ermöglicht Dashboards, die offene Rechnungen und den gesamten Abrechnungsfortschritt überwachen. Datenquelle Dies entspricht dem Feld 'Status' im Rechnungs-Transaktionsdatensatz in NetSuite. Beispiele OffenVollständig bezahltAnnulliertGenehmigung ausstehend | |||
| Währung Currency | Der Währungscode für den Rechnungsbetrag. | ||
| Beschreibung Dieses Attribut spezifiziert die Währung, in der der Rechnungsbetrag denominiert ist, z.B. USD, EUR oder GBP. Es ist ein wesentlicher Kontext für alle monetären Werte. Für multinationale Organisationen ist die Analyse nach Währung wichtig, um die finanzielle Performance in verschiedenen Märkten zu verstehen. Sie stellt sicher, dass monetäre Werte korrekt interpretiert werden und ermöglicht eine korrekte Aggregation und Vergleich nach Währungsumrechnung, falls erforderlich. Bedeutung Es bietet den notwendigen Kontext für alle monetären Werte, was für eine genaue Finanzberichterstattung und -analyse, insbesondere in multinationalen Operationen, entscheidend ist. Datenquelle Dies entspricht dem Feld 'Währung' im Rechnungs-Transaktionsdatensatz in NetSuite. Beispiele USDEURGBP | |||
| Zahlungsbedingungen PaymentTerms | Die vereinbarten Zahlungsbedingungen zwischen dem Unternehmen und dem Kunden. | ||
| Beschreibung Zahlungsbedingungen definieren, wann und wie ein Kunde seine Rechnung voraussichtlich bezahlt, zum Beispiel „Netto 30 Tage“ oder „Sofort fällig“. Diese Information wird verwendet, um das Rechnungsfälligkeitsdatum automatisch zu berechnen. Dieses Attribut ist entscheidend für das Dashboard „Payment Terms Adherence“. Die Analyse der pünktlichen Zahlungsquoten nach verschiedenen Zahlungsbedingungen hilft, deren Wirksamkeit zu bewerten. Zum Beispiel kann es zeigen, ob Kunden mit „Netto 15 Tage“-Bedingungen schneller zahlen als solche mit „Netto 30 Tage“-Bedingungen, was zukünftige Vertragsverhandlungen und Kreditrichtlinien beeinflusst. Bedeutung Es ist unerlässlich für die Analyse der Wirksamkeit verschiedener Zahlungsbedingungen und deren Auswirkungen auf die Pünktlichkeit der Kundenzahlung. Datenquelle Dies entspricht dem Feld 'Bedingungen' im Rechnungs-Transaktionsdatensatz in NetSuite. Beispiele Netto 30Netto 60Zahlbar bei Erhalt | |||
Order to Cash - Fakturierungs- und Rechnungsstellungsaktivitäten
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Kundenzahlung eingegangen | Eine Zahlung wurde vom Kunden erhalten und im System erfasst. Dies wird durch die Erstellung einer „Customer Payment“-Transaktion in NetSuite erfasst, die auf eine oder mehrere Rechnungen angewendet werden kann. | ||
| Bedeutung Markiert den Bargeldeingang, aber nicht unbedingt dessen Anwendung auf eine spezifische Rechnung. Es ist der erste Schritt im Cash Application Prozess und ein Schlüsselereignis für DSO-Berechnungen. Datenquelle Erfasst vom Erstellungsdatum des „Customer Payment“-Transaktionsdatensatzes. Die Verbindung zur Rechnung wird auf dem Unterreiter „Apply“ der Zahlung hergestellt. Erfassen Erstellung eines Kundenzahlungstransaktionsdatensatzes. Ereignistyp explicit | |||
| Rechnung an Kunden gesendet | Bedeutet, dass die Rechnung an den Kunden versandt wurde, typischerweise per E-Mail. Dieses Event wird erfasst, indem nachverfolgt wird, wann ein Benutzer die 'E-Mail'-Aktion aus dem Rechnungsdatensatz ausführt. | ||
| Bedeutung Dies markiert den Beginn der Kundeninkassoperiode und ist der primäre Ausgangspunkt für die Berechnung der Days Sales Outstanding (DSO). Datenquelle Abgeleitet aus der Befüllung des Feldes „Date Last Emailed“ im Rechnungsdatensatz. Alternativ kann es aus der Erstellung eines E-Mail-Nachrichten-Datensatzes unter dem Unterreiter „Communication“ erfasst werden. Erfassen Abgeleitet aus der Befüllung von „Date Last Emailed“ oder einer Kommunikationsdatensatz-Erstellung. Ereignistyp inferred | |||
| Rechnung erstellt | Markiert die offizielle Erstellung des Rechnungs-Transaktionsdatensatzes in NetSuite. Dieses Ereignis ist der Ausgangspunkt für den Abrechnungsprozess für jede eindeutige Rechnungsnummer und wird vom Erstellungs-Timestamp der Transaktion erfasst. | ||
| Bedeutung Dies ist das primäre Start-Event für den Abrechnungsprozess. Die Analyse der Zeit von diesem Event zu anderen offenbart die allgemeine Prozesseffizienz und bildet die Basis für den KPI 'Invoice Generation Cycle Time'. Datenquelle Erfasst vom Timestamp „Date Created“ auf dem Rechnungs-Transaktionsdatensatz. NetSuites Systemnotizen für die Rechnung protokollieren auch explizit das Erstellungsereignis und den Benutzer. Erfassen Ereignis wird bei Erstellung des Rechnungs-Transaktionsdatensatzes protokolliert. Ereignistyp explicit | |||
| Rechnung freigegeben | Die Rechnung wurde formell genehmigt und ist bereit, an den Kunden gesendet zu werden. Dies wird erfasst, wenn der Genehmigungsstatus von 'Genehmigung ausstehend' auf 'Genehmigt' aktualisiert wird, typischerweise durch eine Workflow-Aktion. | ||
| Bedeutung Ein wichtiger Meilenstein, der den Versand der Rechnung an den Kunden steuert. Er ist entscheidend für die Messung von Genehmigungszykluszeiten und für die Berechnung des KPI „Automated Billing Ratio“. Datenquelle Abgeleitet aus der Änderung des Feldes „Approval Status“ im Rechnungsdatensatz zu „Approved“. Der genaue Timestamp wird in den Systemnotizen der Transaktion protokolliert. Erfassen Abgeleitet aus der Änderung des Feldes „Approval Status“ zu „Approved“ in den Systemnotizen. Ereignistyp inferred | |||
| Rechnung vollständig bezahlt | Der Rechnungsstatus hat sich zu 'Vollständig bezahlt' geändert, was bedeutet, dass der Saldo nun null ist. Dies ist der erfolgreiche Abschluss des Abrechnungs- und Inkassozyklus für die Rechnung. | ||
| Bedeutung Dies ist das primäre erfolgreiche End-Event für den Prozess. Die Analyse der Gesamtzeit, um diesen Zustand zu erreichen, liefert die End-to-End-Zykluszeit für den Cash Conversion Cycle. Datenquelle Abgeleitet aus der Änderung des Feldes „Status“ des Rechnungsdatensatzes zu „Paid In Full“. Der Timestamp dieser Statusänderung ist in den Systemnotizen der Transaktion verfügbar. Erfassen Abgeleitet aus der Änderung des Feldes „Status“ zu „Paid In Full“ in den Systemnotizen. Ereignistyp inferred | |||
| Gutschrift erstellt | Eine Gutschriftstransaktion wurde erstellt und auf die Rechnung angewendet, wodurch der ausstehende Saldo reduziert wird. Dies weist typischerweise auf eine Produktrücksendung, eine Servicebeschwerde oder eine Preiskorrektur hin. | ||
| Bedeutung Hebt Nacharbeiten, Qualitätsprobleme oder Kundenstreitigkeiten hervor. Häufiges Auftreten kann auf zugrunde liegende Probleme hinweisen und ist entscheidend für das Dashboard „Invoice Rework and Rejection Analysis“. Datenquelle Erfasst von der Erstellung einer Gutschriftstransaktion. Die Verknüpfung zur ursprünglichen Rechnung findet sich im Feld „Created From“ oder auf dem Unterreiter „Apply“ der Gutschrift. Erfassen Erstellung eines Gutschriftsdatensatzes, der mit der Originalrechnung verknüpft ist. Ereignistyp explicit | |||
| Rechnung abgeschlossen | Die Rechnungs-Transaktion wurde geschlossen, oft als Teil eines periodischen Buchhaltungsprozesses. Diese Aktion verhindert weitere Änderungen an der Transaktion, nachdem sie vollständig bezahlt und abgestimmt wurde. | ||
| Bedeutung Obwohl oft nach 'Vollständig bezahlt' auftretend, kann dies ein letzter administrativer Schritt sein. Die Analyse von Verzögerungen zwischen Zahlung und Abschluss könnte die Aktualität der Finanzberichterstattung beeinflussen. Datenquelle Abgeleitet aus der Änderung des Feldes „Status“ zu „Closed“ oder einem ähnlichen Zustand. Der Timestamp für diese Änderung wird aus den Systemnotizen erfasst. Erfassen Abgeleitet aus der Änderung des Feldes „Status“ in den Systemnotizen. Ereignistyp inferred | |||
| Rechnung für ungültig erklärt | Die Rechnung wurde storniert, wodurch sie effektiv annulliert und jegliche Hauptbuchauswirkungen rückgängig gemacht wurden. Diese Aktion wird normalerweise für Rechnungen vorgenommen, die fehlerhaft erstellt wurden, bevor sie bezahlt werden. | ||
| Bedeutung Stellt eine Prozessausnahme und einen Endzustand dar. Das Verständnis, warum Rechnungen storniert werden, kann Daten- oder Prozessfehler aufdecken, die vorgelagert korrigiert werden müssen. Datenquelle Dies ist eine explizite Benutzeraktion. Sie kann aus den Systemprotokollen für den Rechnungsdatensatz erfasst werden, der protokolliert, wann die Transaktion storniert wurde und von wem. Erfassen Explizite „Void“-Aktion in den Systemnotizen der Rechnung protokolliert. Ereignistyp explicit | |||
| Rechnung zur Genehmigung eingereicht | Stellt die Statusänderung der Rechnung auf 'Genehmigung ausstehend' dar. Dieses Event wird erfasst, wenn ein Benutzer die Rechnung in einen konfigurierten Genehmigungs-Workflow einreicht, was eine übliche Anpassung ist. | ||
| Bedeutung Diese Aktivität identifiziert den Beginn eines potenziellen Genehmigungs-Bottlenecks. Die Wartezeit auf die Genehmigung ist ein Schlüsselbestandteil der gesamten Rechnungsverarbeitungszykluszeit. Datenquelle Abgeleitet aus der Änderung des Feldes „Approval Status“ im Rechnungsdatensatz zu „Pending Approval“. Der Timestamp für diese Änderung ist im Systemnotizen-Audit-Trail für die Rechnung zu finden. Erfassen Abgeleitet aus der im Systemprotokoll erfassten Änderung des Feldes „Approval Status“. Ereignistyp inferred | |||
| Zahlung auf Rechnung verbucht | Die erhaltene Kundenzahlung wurde spezifisch auf diese Rechnung angewendet, wodurch deren fälliger Betrag reduziert wird. Dies wird aufgezeichnet, wenn die Anwendung im Kunden-Zahlungsdatensatz gespeichert wird. | ||
| Bedeutung Dies ist die entscheidende Verbindung zwischen Zahlungseingang und Rechnungsbegleichung. Die Dauer von 'Zahlung erhalten' bis zu diesem Event definiert den KPI 'Cash Application Cycle Time'. Datenquelle Erfasst aus den Systemnotizen oder dem Audit Trail der Kundenzahlungstransaktion, insbesondere wenn die Anwendung auf die Rechnungsposition gespeichert wird. Der Timestamp dieser Anwendung ist entscheidend. Erfassen Protokolliert, wenn der Kundenzahlungsdatensatz mit einer Anwendung auf die Rechnung gespeichert wird. Ereignistyp explicit | |||
| Zahlungserinnerung ausgestellt | Eine Mitteilung wurde an den Kunden bezüglich einer ausstehenden Zahlung gesendet. Dies wird als protokollierte Aktivität oder E-Mail erfasst, die von der Rechnung oder dem Kundendatensatz gesendet wurde, oft durch eine Mahnlösung. | ||
| Bedeutung Wesentlicher Faktor zur Bewertung der Wirksamkeit von Inkassostrategien. Die Analyse der Auswirkungen dieser Aktivität auf nachfolgende Zahlungen hilft, die Häufigkeit und den Zeitpunkt von Erinnerungen zu optimieren. Datenquelle Erfasst von der Erstellung eines E-Mail-Datensatzes auf dem Unterreiter Communication > Messages des Rechnungs- oder Kundendatensatzes. Automatisierte Mahnlösungen können diese auch als benutzerdefinierte Datensätze oder Aufgaben protokollieren. Erfassen Als E-Mail oder Aktivitätsdatensatz, der der Rechnung zugeordnet ist, protokolliert. Ereignistyp explicit | |||
| Zahlungsfälligkeitsdatum erreicht | Ein berechnetes Ereignis, das eintritt, wenn das aktuelle Datum mit dem Fälligkeitsdatum der Rechnung übereinstimmt. Dieses Ereignis entspricht keiner direkten Benutzer- oder Systemaktion, sondern wird während der Analyse aus vorhandenen Daten abgeleitet. | ||
| Bedeutung Dient als kritischer Benchmark zur Messung der Pünktlichkeit von Zahlungen. Er ist wesentlich für die Berechnung des KPI „On-Time Payment Rate“ und die Analyse des Kundenzahlungsverhaltens. Datenquelle Dies ist kein explizites Event in NetSuite. Es wird berechnet, indem der Timestamp des Event Logs mit dem Feld 'Fälligkeitsdatum' im Rechnungs-Transaktionsdatensatz verglichen wird. Erfassen Berechnet, wenn der Ereignis-Timestamp dem Feld „Due Date“ auf der Rechnung entspricht. Ereignistyp calculated | |||
Extraktionsleitfäden
Schritte
- Bei NetSuite anmelden: Greifen Sie mit einer Rolle, die über ausreichende Berechtigungen zum Erstellen und Ausführen von gespeicherten Suchanfragen für Transaktionsdatensätze verfügt, auf Ihr NetSuite-Konto zu.
- Zu gespeicherten Suchanfragen navigieren: Gehen Sie zu Berichte > Gespeicherte Suchanfragen > Alle gespeicherten Suchanfragen > Neu. Wählen Sie „Transaction“ aus der Liste der Suchtypen. Dies bildet die Grundlage für die Erstellung mehrerer Suchanfragen, eine für jeden Ereignistyp.
- Die Suche „Invoice Created“ erstellen: Dies ist die primäre Suche, die die Erstellung von Rechnungen erfasst.
- Auf der Registerkarte „Criteria“, unter „Standard“, stellen Sie den Filter „Type“ auf „is Invoice“ ein.
- Fügen Sie einen weiteren Filter für „Main Line“ hinzu und setzen Sie ihn auf „is true“, um einen Datensatz pro Rechnung zu erhalten.
- Auf der Registerkarte „Results“ fügen Sie die erforderlichen Spalten hinzu. Verwenden Sie Formeln, um standardisierte Felder wie „ActivityName“ zu erstellen. Zum Beispiel fügen Sie ein „Formula (Text)“-Feld mit der Formel
_UTF8'Invoice Created'hinzu.
- Suchen für Statusänderungen erstellen (Approval, Paid, Voided, Closed): Viele Aktivitäten sind Statusänderungen. Der zuverlässigste Weg, den genauen Timestamp zu erfassen, sind System Notes.
- Erstellen Sie eine neue Transaction Saved Search.
- Auf der Registerkarte „Criteria“ setzen Sie „Type“ auf „is Invoice“.
- Unter dem Unterreiter „Standard“ fügen Sie den Filter „System Notes : Field“ hinzu und wählen das entsprechende Statusfeld aus, z.B. „Approval Status“.
- Fügen Sie einen weiteren Filter „System Notes : New Value“ hinzu und setzen Sie ihn auf den Zielstatus, z.B. „Approved“.
- Auf der Registerkarte „Results“ ordnen Sie „System Notes : Date“ dem
EventTimestampund „System Notes : Set by“ demUserzu. - Wiederholen Sie diesen Vorgang für jede statusbasierte Aktivität: „Invoice Submitted for Approval“, „Invoice Approved“, „Invoice Paid In Full“, „Invoice Voided“ und „Invoice Closed“, wobei Sie die Feld- und Wertfilter entsprechend anpassen.
- Die Suche „Invoice Sent to Customer“ erstellen: Dieses Ereignis wird typischerweise durch die Verfolgung von E-Mails erfasst, die vom Rechnungsdatensatz gesendet werden.
- Erstellen Sie eine neue Transaction Saved Search mit „Type“ auf „is Invoice“ gesetzt.
- Auf der Registerkarte „Criteria“, unter „Related Records“, fügen Sie einen Filter für „Messages : Date Sent“ hinzu und setzen Sie ihn auf „is not empty“.
- Auf der Registerkarte „Results“ ordnen Sie „Messages : Date Sent“ dem
EventTimestampund „Messages : Author“ demUserzu.
- Suchen für Zahlungs- und Gutschriftsaktivitäten erstellen: Diese umfassen separate Transaktionstypen, die mit der Rechnung verknüpft sind.
- Für „Customer Payment Received“ erstellen Sie eine Suche für „Type“ ist „Customer Payment“. Erfassen Sie das Erstellungsdatum als Ereignis-Timestamp.
- Für „Payment Applied To Invoice“ verwenden Sie dieselbe „Customer Payment“-Suche, aber verknüpfen Sie sie mit den Feldern „Applied To Transaction“. Das „Date Created“ der Zahlungstransaktion dient als Timestamp. Sie erhalten eine Zeile pro Rechnungsanwendung.
- Für „Credit Memo Created“ erstellen Sie eine Suche für „Type“ ist „Credit Memo“ und verknüpfen Sie sie mit dem Feld „Created From“, um die ursprüngliche Rechnungsnummer zu erhalten.
- Jede gespeicherte Suche ausführen und exportieren: Führen Sie jede von Ihnen erstellte gespeicherte Suche aus. Klicken Sie auf der Ergebnisseite auf das Exportsymbol (CSV, Excel oder PDF) und wählen Sie CSV. Möglicherweise müssen Sie in Stapeln exportieren, wenn die Ergebnisliste größer ist als Ihr NetSuite-Exportlimit.
- Daten kombinieren und transformieren: Konsolidieren Sie alle exportierten CSV-Dateien in einer einzigen Datei mithilfe eines Tools wie Microsoft Excel, einem Python-Skript oder einem Datenvorbereitungstool.
- Ereignis „Payment Due Date Reached“ ableiten: Erstellen Sie in Ihrer kombinierten Datendatei für jedes Ereignis „Invoice Created“ eine neue Zeile. Setzen Sie den
ActivityNameauf „Payment Due Date Reached“, denEventTimestampauf den Wert aus demDueDate-Feld der Rechnung und kopieren Sie die anderen relevanten Rechnungsattribute. - Event Log finalisieren: Standardisieren Sie alle Spaltenüberschriften, um dem erforderlichen Schema zu entsprechen (z.B.
InvoiceNumber,ActivityName,EventTimestamp). Stellen Sie sicher, dass die Timestamp-Formate konsistent sind. Fügen Sie die SpaltenSourceSystemundLastDataUpdatemit statischen Werten für diesen Extraktionsstapel hinzu. Speichern Sie die endgültige konsolidierte Datei als CSV zum Hochladen.
Konfiguration
- Voraussetzungen: Eine Benutzerrolle mit Berechtigungen zum Erstellen, Bearbeiten und Ausführen von „Transaction“-Typ gespeicherter Suchanfragen ist erforderlich. Der Zugriff auf Rechnungs-, KundenZahlungs-, Gutschrifts- und Systemnotiz-Datensätze ist ebenfalls notwendig.
- Suchtyp: Der primäre Suchtyp, der für alle Extraktionen verwendet wird, ist „Transaction“. Dieser Typ ermöglicht den Zugriff auf alle notwendigen Datensätze und deren Beziehungen.
- Datumsbereichsfilterung: Um Leistung und Datenvolumen zu steuern, wenden Sie einen Datumsbereichsfilter auf jede Suche an. Ein Filter auf „Date Created“ für einen Zeitraum der letzten 3 bis 6 Monate wird für die initiale Analyse empfohlen.
- Main Line Filter: Verwenden Sie das „Main Line“-Kriterium auf „true“ gesetzt für Ereignisse auf Belegkopfebene, wie z.B. „Invoice Created“. Setzen Sie es auf „false“, wenn Sie Zeilendetails analysieren müssen, was für diesen Prozess nicht erforderlich ist.
- System Notes: Die Erfassung von Statusänderungen stützt sich stark auf System Notes. Stellen Sie sicher, dass die Überwachung für wichtige Transaktionsfelder wie „Status“ und „Approval Status“ in Ihrer NetSuite-Konfiguration aktiviert ist (Setup > Company > Enable Funktionen > SuiteCloud > SuiteAudit Trail).
- Leistungsüberlegungen: Komplexe Suchanfragen mit vielen Joins und Formelfeldern über einen großen Datumsbereich können in der NetSuite-Benutzeroberfläche langsam ausgeführt werden. Es ist ratsam, diese Suchanfragen außerhalb der Spitzenzeiten auszuführen und zu exportieren. Wenn eine Suche eine Zeitüberschreitung hat, reduzieren Sie den Datumsbereich und exportieren Sie die Daten in kleineren Chargen.
a Beispielabfrage config
/*
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 in Ihrer NetSuite-Instanz lizenziert und aktiviert ist. Dies wird normalerweise von einem NetSuite-Administrator unter Setup > Company > Enable Funktionen > Analytics durchgeführt.
- ODBC-Treiber herunterladen und konfigurieren: Navigieren Sie zum NetSuite Home Dashboard und suchen Sie das Portlet „Settings“. Klicken Sie auf den Link „Set Up SuiteAnalytics Connect“, um den entsprechenden ODBC-Treiber für Ihr Betriebssystem herunterzuladen. Befolgen Sie die von NetSuite bereitgestellten Installationsanweisungen, um den Treiber zu installieren und zu konfigurieren, wobei Sie Ihren Service-Host, Port, Account ID, Role ID, E-Mail und Passwort angeben.
- Datenbankverbindung herstellen: Verwenden Sie ein SQL-Client-Tool, das ODBC-Verbindungen unterstützt, wie DBeaver, Tableau oder Power BI. Erstellen Sie eine neue ODBC-Verbindung mit dem im vorherigen Schritt konfigurierten Treiber. Testen Sie die Verbindung, um sicherzustellen, dass Sie sich erfolgreich authentifizieren und auf die NetSuite Lese-Replika-Datenbank zugreifen können.
- SQL-Abfrage vorbereiten: Kopieren Sie die vollständige SQL-Abfrage, die im Abschnitt „Query“ dieses Dokuments bereitgestellt wird. Diese Abfrage ist darauf ausgelegt, alle erforderlichen Aktivitäten und Attribute für den Order to Cash Abrechnungsprozess zu extrahieren.
- Abfrageparameter festlegen: Suchen Sie vor der Ausführung die Platzhalterwerte innerhalb der Abfrage. Sie müssen
'YYYY-MM-DD'durch Ihre gewünschten Start- und Enddaten für den Extraktionszeitraum ersetzen. 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 geänderte Abfrage in Ihrem SQL-Client aus. Die Ausführungszeit variiert je nach Datumsbereich und Volumen der Transaktionen in Ihrem NetSuite-Konto.
- Ergebnisse überprüfen: Sobald die Abfrage abgeschlossen ist, wird eine flache Tabelle zurückgegeben, die das Event Log darstellt. Jede Zeile entspricht einer spezifischen Aktivität im Rechnungslebenszyklus. Überprüfen Sie die Daten auf Vollständigkeit und Richtigkeit.
- Event Log exportieren: Exportieren Sie die Abfrageergebnisse aus Ihrem SQL-Client in eine CSV-Datei. Stellen Sie sicher, dass die Datei UTF-8-kodiert ist, um Zeichenprobleme zu vermeiden.
- Für den Upload vorbereiten: Bestätigen Sie vor dem Hochladen in ein Process Mining-Tool, dass die Spaltenüberschriften den erforderlichen Attributnamen wie InvoiceNumber, ActivityName und EventTimestamp entsprechen. Überprüfen Sie, ob die Datums- und Zeitformate konsistent sind.
Konfiguration
- SuiteAnalytics Connect Lizenz: Eine gültige Lizenz für das SuiteAnalytics Connect Modul ist zwingend erforderlich, um auf die NetSuite Lese-Replika-Datenbank zuzugreifen. Ohne diese ist ein direkter SQL-Zugriff nicht möglich.
- Dedizierte Rolle und Benutzer: Es wird dringend empfohlen, eine dedizierte NetSuite-Rolle mit entsprechenden Berechtigungen für SuiteAnalytics Connect zu erstellen. Diese Rolle sollte Lesezugriff auf die erforderlichen Datensätze, einschließlich Transaktionen, Kunden und Systemnotizen, haben. Weisen Sie dieser Rolle einen dedizierten Benutzer für die Extraktion zu, um Sicherheit und Überprüfbarkeit zu gewährleisten.
- Datumsbereichsfilterung: Die bereitgestellte Abfrage enthält eine
WHERE-Klausel für das Rechnungsstellungsdatum (Transaction.TRANDATE). Für erste Extraktionen ist es ratsam, mit einem kleineren Datumsbereich, z. B. den letzten 3 bis 6 Monaten, zu beginnen, um Leistung und Datenvolumen zu steuern. Zum Beispiel:AND T.TRANDATE BETWEEN '2023-01-01' AND '2023-06-30'. - Tochtergesellschaftsfilterung: Für Konten mit mehreren Tochtergesellschaften ist die Filterung nach der spezifischen Tochtergesellschaft sowohl für die Leistung als auch für die Datenrelevanz entscheidend. Die Abfrage enthält einen Platzhalter
WHERE T.SUBSIDIARY_ID = [Your Subsidiary ID], der konfiguriert werden sollte. - Datenaktualität: Die SuiteAnalytics Connect-Datenbank ist eine Lese-Replika. Daten werden in der Regel mehrmals pro Stunde aktualisiert, sind aber nicht in Echtzeit verfügbar. Beachten Sie eine mögliche Verzögerung von bis zu einigen Stunden zwischen einer Transaktion in NetSuite und ihrem Erscheinen in der Connect-Datenbank.
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');