Tabelle ADOC in SAP Business One (Beleghistorie (Rechnungshistorie))

ADOC ist die Historientabelle für Belege in SAP Business One (das SDK nennt sie "Invoice - History"): Sie bewahrt frühere Versionen von Belegköpfen auf, eine Zeile pro gespeicherter Version, nummeriert durch LogInstanc. Sie hat dieselben Kopfspalten wie die Belegtabellen, sodass Sie sehen, wer einen Beleg wann geändert hat und wie hoch die Summe vorher war.

Wichtige Felder der Tabelle ADOC

FeldInhalt
DocEntryInterner Schlüssel des Belegs.
DocNumBelegnummer.
ObjTypeObjekttyp des Belegs (ADP1), zum Beispiel 13 für Ausgangsrechnungen.
LogInstancProtokollinstanz: die Versionsnummer der Historienzeile.
DocDateBuchungsdatum.
CardCode / CardNameGeschäftspartner. CardCode wird mit OCRD verknüpft.
DocCur / DocTotalBelegwährung und Summe in dieser Version.
DocStatusO = offen, C = geschlossen.
CANCELEDY = storniert, N = nicht storniert, C = Stornobeleg.
UserSign / UserSign2Anlegender und ändernder Anwender. Verknüpft mit OUSR.USERID.
CreateDate / UpdateDateErstellungs- und Änderungsdatum.
UpdateTSÄnderungsuhrzeit.

Wie ADOC mit anderen Tabellen zusammenhängt

ADOC-Zeilen werden durch ObjType, DocEntry und LogInstanc zusammen identifiziert, weil eine Tabelle Versionen verschiedener Belegtypen enthält. Die aktuelle Version bleibt in der Belegtabelle (zum Beispiel OINV); vergleichen Sie daher die ADOC-Versionen mit der aktuellen Zeile, um zu sehen, was sich geändert hat. UserSign2 zeigt, wer jede Version gespeichert hat.

Typische Joins

  • ADOC T0 INNER JOIN OUSR T1 ON T1.USERID = T0.UserSign2 (Anwender, der die Version gespeichert hat)
  • ADOC T0 INNER JOIN OINV T2 ON T2.DocEntry = T0.DocEntry AND T0.ObjType = '13' (aktuelle Rechnung)

Wann Sie die Tabelle ADOC verwenden

Verwenden Sie ADOC für Prüfungsfragen wie die, wer diese Rechnung wann geändert hat, um die Summe eines Belegs vor einer Bearbeitung zu sehen und Änderungen pro Anwender zu zählen.

Beispielabfrage: Änderungshistorie einer Ausgangsrechnung

SQL Server

SELECT T0.LogInstanc, T0.UpdateDate, T0.UpdateTS, T1.USER_CODE, T1.U_NAME,
  T0.CardCode, T0.DocTotal, T0.DocStatus
FROM ADOC T0
LEFT JOIN OUSR T1 ON T1.USERID = T0.UserSign2
WHERE T0.ObjType = '13' AND T0.DocNum = 1001
ORDER BY T0.LogInstanc

SAP HANA (Spaltennamen in doppelten Anführungszeichen)

SELECT T0."LogInstanc", T0."UpdateDate", T0."UpdateTS", T1."USER_CODE", T1."U_NAME",
  T0."CardCode", T0."DocTotal", T0."DocStatus"
FROM ADOC T0
LEFT JOIN OUSR T1 ON T1."USERID" = T0."UserSign2"
WHERE T0."ObjType" = '13' AND T0."DocNum" = 1001
ORDER BY T0."LogInstanc"

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: ADOC nur nach DocNum oder DocEntry filtern

ADOC enthält die Historie mehrerer Belegtypen, DocEntry 1001 kann also eine Rechnung, eine Gutschrift oder ein anderer Beleg sein. Filtern Sie immer auch ObjType. Die aktuelle Version steht nicht in ADOC; lesen Sie sie aus der Belegtabelle und fügen Sie sie der Historienliste hinzu. Siehe Abfrage: Belege pro Anwender.

Fertige Abfragen, die ADOC verwenden

Fragen zur Tabelle ADOC

Wo steht die Änderungshistorie einer Rechnung?

In ADOC, eine Zeile pro gespeicherter Version (LogInstanc), gefiltert nach ObjType 13 und DocEntry.

Wie sehe ich, wer einen Beleg geändert hat?

Verknüpfen Sie ADOC.UserSign2 mit OUSR.USERID und sortieren Sie nach LogInstanc.

Steht die aktuelle Version des Belegs in ADOC?

Die aktuelle Version bleibt in der Belegtabelle, zum Beispiel OINV; ADOC bewahrt frühere Versionen auf.

Verwandte Tabellen

OUSR (Anwender) · OINV (Ausgangsrechnung (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.