Tabelle OINV in SAP Business One (Ausgangsrechnung (Kopf))
OINV ist die Tabelle in SAP Business One, in der der Kopf jeder Ausgangsrechnung gespeichert wird: Kunde, Datumsangaben, Summen, Steuer, bereits bezahlter Betrag und Status. Die Positionen liegen in INV1, verknüpft über DocEntry, der Objekttyp ist 13.
Wichtige Felder der Tabelle OINV
| Feld | Inhalt |
|---|---|
DocEntry | Interner Schlüssel. Verknüpft mit INV1.DocEntry und wird von jeder Belegverknüpfung verwendet. |
DocNum | Rechnungsnummer, die der Anwender sieht. Eindeutig pro Nummernkreis, nicht über die ganze Tabelle. |
DocDate | Buchungsdatum. Verwenden Sie es für Umsatzberichte nach Zeitraum. |
DocDueDate | Fälligkeitsdatum, berechnet aus den Zahlungsbedingungen. Grundlage für die Altersstrukturanalyse. |
CardCode | Kundennummer. Verknüpft mit OCRD.CardCode. |
DocTotal | Gesamtbetrag inklusive Steuer und Fracht, nach Abzug des Belegrabatts. |
VatSum | Steuerbetrag. DocTotal - VatSum ergibt den Nettobetrag. |
PaidToDate | Bereits bezahlter Betrag. DocTotal - PaidToDate ist der offene Saldo. |
DiscPrcnt | Belegrabatt in Prozent. Nicht in INV1.LineTotal enthalten. |
DocStatus | O = offen, C = geschlossen (vollständig bezahlt oder manuell geschlossen). |
CANCELED | N = normal, Y = storniert, C = der Stornobeleg selbst. |
SlpCode | Vertriebsmitarbeiter. Verknüpft mit OSLP.SlpCode. |
Wie OINV mit anderen Tabellen zusammenhängt
OINV ist eine Kopftabelle. Jede Rechnung hat eine Zeile in OINV und eine Zeile pro Artikel- oder Serviceposition in INV1, beide mit demselben DocEntry. Fracht steht in INV3, Quellensteuer in INV5 und Raten in INV6. Wird eine Rechnung aus einer Lieferung oder einem Kundenauftrag kopiert, wird die Verknüpfung in den Positionen gespeichert (INV1.BaseType, BaseEntry, BaseLine), nicht im Belegkopf.
Typische Joins
OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry (Positionen)OINV T0 INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode (Kundenstamm)OINV T0 LEFT JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode (Vertriebsmitarbeiter)OINV T0 LEFT JOIN OUSR T4 ON T0.UserSign = T4.USERID (Benutzer, der den Beleg angelegt hat)
Wann Sie die Tabelle OINV verwenden
Fast jeder Bericht zu Umsatz, Forderungseinzug und Provisionen beginnt bei OINV: Umsatz pro Kunde oder Zeitraum, offene Rechnungen, überfällige Rechnungen und die Altersstruktur der Forderungen. Für den Nettoumsatz ziehen Sie die Ausgangsgutschriften ab. Sie liegen in ORIN mit denselben Spaltennamen, daher funktioniert dieselbe Abfrage mit einem UNION ALL.
Rechnungen legen Sie aus Code über die DI API (Documents-Objekt, oInvoices) oder den Service Layer (Invoices) an, niemals per INSERT in OINV: SAP unterstützt keine direkten Schreibzugriffe auf seine Tabellen. Schlägt Add() fehl, verraten Ihnen Code und Text aus GetLastError den Grund. Siehe DI-API-Fehlercodes (-5002, -1029, -2028 und weitere).
Beispielabfrage: Offene Ausgangsrechnungen mit Saldo
SQL Server
SELECT T0.DocNum, T0.DocDate, T0.DocDueDate, T0.CardCode, T0.CardName, T0.DocTotal, T0.PaidToDate, T0.DocTotal - T0.PaidToDate AS OpenAmount FROM OINV T0 WHERE T0.DocStatus = 'O' AND T0.CANCELED = 'N' ORDER BY T0.DocDueDate
SAP HANA (Spaltennamen in doppelten Anführungszeichen)
SELECT T0."DocNum", T0."DocDate", T0."DocDueDate", T0."CardCode", T0."CardName", T0."DocTotal", T0."PaidToDate", T0."DocTotal" - T0."PaidToDate" AS "OpenAmount" FROM OINV T0 WHERE T0."DocStatus" = 'O' AND T0."CANCELED" = 'N' ORDER BY T0."DocDueDate"
Fügen Sie eine der beiden Versionen unter Extras → Abfragen → Abfragegenerator ein. Sie brauchen den anderen Dialekt für Ihre eigene Abfrage? Nutzen Sie den SQL-zu-HANA-Konverter.
Typischer Fallstrick: DocTotal gegenüber der Summe von INV1.LineTotal
DocTotal enthält bereits den Belegrabatt (DiscPrcnt), die Steuer und die Fracht. INV1.LineTotal enthält den Belegrabatt nicht, daher ist die Summe der Positionen höher als die Nettorechnung, sobald ein Belegrabatt verwendet wird. Rechnen Sie bei Berichten auf Positionsebene mit dem Faktor LineTotal * (1 - DiscPrcnt / 100) und filtern Sie auf CANCELED = 'N', damit stornierte Rechnungen und ihre Stornobelege nicht doppelt zählen. Siehe Warum Umsatzsummen in SAP B1 nicht übereinstimmen (Belegrabatt).
Fertige Abfragen, die OINV verwenden
- Umsatz pro Kunde für einen Zeitraum: Nettoumsatz pro Kunde (Ausgangsrechnungen abzüglich Gutschriften) zwischen zwei Daten, absteigend sortiert.
- Umsatz pro Vertriebsmitarbeiter: Anzahl der Rechnungen und Nettoumsatz pro Vertriebsmitarbeiter in einem Zeitraum.
- Monatliche Umsatzentwicklung: Fakturierter Nettoumsatz pro Monat für die letzten 12 Monate.
- Altersstrukturanalyse der Forderungen (Debitoren): Offener Rechnungsbetrag pro Kunde in den Stufen 0–30, 31–60, 61–90 und über 90 Tage, bezogen auf das Fälligkeitsdatum.
- Überfällige Ausgangsrechnungen: Offene Rechnungen mit überschrittenem Fälligkeitsdatum, mit Verzugstagen und der Telefonnummer des Kunden.
- Heute erstellte Rechnungen pro Benutzer: Wie viele Ausgangsrechnungen jeder SAP-B1-Benutzer heute erstellt hat, mit dem Gesamtwert.
Verwandte Tabellen
INV1 (Ausgangsrechnung (Positionen)) · ORIN (Ausgangsgutschrift (Kopf)) · OCRD (Geschäftspartner) · ORDR (Kundenauftrag (Kopf)) · ODLN (Lieferung (Kopf)) · alle SAP-Business-One-Tabellen durchsuchen
Quellen: Dokumentation und SDK zu SAP Business One (Referenz der DI-API-Datenbanktabellen), SAP Help Portal.
Bereit für den Start?
Sagen Sie uns, was Sie brauchen. Sie erhalten eine klare technische Antwort, einen festen Leistungsumfang und einen Preis, in der Regel innerhalb von 24 Stunden.
