Tabelle OACT in SAP Business One (Sachkonten (Kontenplan))

OACT ist die Tabelle von SAP Business One, in der der Kontenplan gespeichert ist: eine Zeile pro Sachkonto, sowohl Titelkonten als auch bebuchbare (aktive) Konten, mit der Kontenhierarchie und dem aktuellen Saldo. Die Journalbuchungszeilen in JDT1 verweisen über JDT1.Account = OACT.AcctCode darauf.

Wichtige Felder der Tabelle OACT

FeldInhalt
AcctCodeInterner Kontoschlüssel. JDT1.Account und die Kontofelder in Belegen speichern diesen Wert.
AcctNameKontobezeichnung.
FormatCodeDie Kontonummer, die Benutzer sehen. Bei segmentierten Konten weicht sie von AcctCode ab.
PostableY = aktives Konto, auf das gebucht werden kann, N = Titelkonto (eine Überschrift im Kontenbaum).
LevelsEbene im Kontenbaum (1 = Schublade wie Aktiva, höhere Zahlen = tiefer).
FatherNumAcctCode des übergeordneten Titelkontos.
GroupMaskDie Schublade, zu der das Konto gehört (Aktiva, Passiva, Eigenkapital, Erlöse, Aufwendungen usw., je nach Lokalisierung nummeriert).
CurrTotalAktueller Saldo in Hauswährung.
SysTotalAktueller Saldo in Systemwährung.
FcTotalSaldo in der Kontowährung.
ActCurrKontowährung.
LocManTranY = Abstimmkonto (zum Beispiel Forderungen aus Lieferungen und Leistungen).
FrozenY = Konto gesperrt.

Wie OACT mit anderen Tabellen zusammenhängt

OACT enthält Stammdaten. Jede Buchung steht in JDT1 (Journalbuchungszeilen) mit JDT1.Account = OACT.AcctCode, der Kopf steht in OJDT. Auch die Abstimmkonten der Geschäftspartner (OCRD.DebPayAcct) und die Kontofelder von Artikeln, Lagern und Steuerkennzeichen speichern AcctCode. Der Kontenbaum ergibt sich aus FatherNum und Levels.

Typische Joins

  • OACT T0 INNER JOIN JDT1 T1 ON T1.Account = T0.AcctCode (Journalbuchungszeilen)
  • OACT T0 LEFT JOIN OACT T2 ON T2.AcctCode = T0.FatherNum (übergeordnetes Titelkonto)
  • OCRD T3 INNER JOIN OACT T0 ON T0.AcctCode = T3.DebPayAcct (Abstimmkonto des GP)

Wann Sie die Tabelle OACT verwenden

Nutzen Sie OACT für eine schnelle Saldenliste, eine Kontenübersicht für die Buchhaltung, die Zuordnung von Konten zu einer Berichtsstruktur oder um zu prüfen, ob jedes Konto in einem Bericht bebuchbar ist. Für Salden zu einem Stichtag oder für einen Zeitraum summieren Sie JDT1, statt CurrTotal zu lesen.

Beispielabfrage: Saldo pro bebuchbarem Konto zu einem Stichtag (aus JDT1)

SQL Server

SELECT T0.FormatCode, T0.AcctName,
  SUM(T1.Debit - T1.Credit) AS Balance
FROM OACT T0
INNER JOIN JDT1 T1 ON T1.Account = T0.AcctCode
WHERE T0.Postable = 'Y' AND T1.RefDate <= '[%0]'
GROUP BY T0.FormatCode, T0.AcctName
ORDER BY T0.FormatCode

SAP HANA (Spaltennamen in doppelten Anführungszeichen)

SELECT T0."FormatCode", T0."AcctName",
  SUM(T1."Debit" - T1."Credit") AS "Balance"
FROM OACT T0
INNER JOIN JDT1 T1 ON T1."Account" = T0."AcctCode"
WHERE T0."Postable" = 'Y' AND T1."RefDate" <= '[%0]'
GROUP BY T0."FormatCode", T0."AcctName"
ORDER BY T0."FormatCode"

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: FormatCode vs. AcctCode – und CurrTotal gilt nur für heute

Benutzer kennen Konten unter der Nummer auf dem Bildschirm, also unter FormatCode. JDT1.Account speichert jedoch AcctCode, und das ist bei segmentierten Konten ein interner Code. Ein Filter auf JDT1.Account mit der Nummer, die Benutzer sehen, findet dann womöglich nichts. Verknüpfen Sie mit OACT und filtern Sie auf FormatCode. CurrTotal ist der Saldo im aktuellen Moment; er ignoriert Datumsangaben und liefert daher nicht den Saldo des Vormonats. Summieren Sie JDT1 bis zu dem Datum, das Sie brauchen. Siehe Tabelle JDT1 (Journalbuchungszeilen).

Fertige Abfragen, die OACT verwenden

Verwandte Tabellen

JDT1 (Journalbuchungszeilen) · OJDT (Journalbuchung (Kopf)) · OCRD (Geschäftspartner) · 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.