Tabelle OPRJ in SAP Business One (Projektcodes)
OPRJ ist die Tabelle der Projektcodes in SAP Business One: eine Zeile pro Projekt mit Code, Name, Gültigkeitsdaten und Aktiv-Kennzeichen. Journalbuchungszeilen (JDT1.Project) und Belegpositionen (INV1.Project) speichern den Projektcode, daher ist OPRJ der Stamm hinter Ergebnis- und Kostenberichten pro Projekt.
Wichtige Felder der Tabelle OPRJ
| Feld | Inhalt |
|---|---|
PrjCode | Projektcode, der Schlüssel. JDT1.Project, INV1.Project und OINV.Project verweisen darauf. |
PrjName | Projektname. |
ValidFrom | Gültig ab. |
ValidTo | Gültig bis. |
Active | Y = aktiv, N = inaktiv. |
Locked | Y = gesperrt, N = nicht gesperrt. |
UserSign | Anwender, der das Projekt angelegt hat. Verknüpft mit OUSR.USERID. |
UserSign2 / UpdateDate | Anwender und Datum der letzten Änderung. |
DataSource | Wie die Zeile angelegt wurde, zum Beispiel O = DI API, S = Service Layer. |
Wie OPRJ mit anderen Tabellen zusammenhängt
OPRJ sind Stammdaten ohne Positionstabelle. Der Projektcode wird in Journalbuchungszeilen (JDT1.Project), in Belegpositionen (INV1.Project und die übrigen Positionstabellen), in Belegköpfen (OINV.Project) und als Standardwert beim Geschäftspartner (OCRD.ProjectCod) gespeichert.
Typische Joins
JDT1 T0 INNER JOIN OPRJ T1 ON T1.PrjCode = T0.Project (Projekt der Journalzeile)JDT1 T0 INNER JOIN OACT T2 ON T2.AcctCode = T0.Account (Sachkonto)INV1 T3 INNER JOIN OPRJ T1 ON T1.PrjCode = T3.Project (Projekt der Rechnungsposition)
Wann Sie die Tabelle OPRJ verwenden
Verwenden Sie OPRJ für die Gewinn- und Verlustrechnung pro Projekt aus JDT1, den Umsatz pro Projekt aus Rechnungspositionen und um Buchungen auf inaktive Projekte oder Projekte nach ihrem ValidTo-Datum zu finden.
Beispielabfrage: Soll, Haben und Saldo pro Projekt in diesem Jahr
SQL Server
SELECT T1.PrjCode, T1.PrjName, SUM(T0.Debit) AS Debit, SUM(T0.Credit) AS Credit, SUM(T0.Debit - T0.Credit) AS Balance FROM JDT1 T0 INNER JOIN OPRJ T1 ON T1.PrjCode = T0.Project WHERE YEAR(T0.RefDate) = YEAR(GETDATE()) GROUP BY T1.PrjCode, T1.PrjName ORDER BY T1.PrjCode
SAP HANA (Spaltennamen in doppelten Anführungszeichen)
SELECT T1."PrjCode", T1."PrjName", SUM(T0."Debit") AS "Debit", SUM(T0."Credit") AS "Credit", SUM(T0."Debit" - T0."Credit") AS "Balance" FROM JDT1 T0 INNER JOIN OPRJ T1 ON T1."PrjCode" = T0."Project" WHERE YEAR(T0."RefDate") = YEAR(CURRENT_TIMESTAMP) GROUP BY T1."PrjCode", T1."PrjName" ORDER BY T1."PrjCode"
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: Projekt im Kopf, aber nicht in den Positionen
Das Kopfprojekt eines Belegs und das Projekt in jeder Position können sich unterscheiden, und die Journalbuchung übernimmt das Projekt aus den Positionen. Ein Bericht auf OINV.Project kann daher von einem Bericht auf JDT1.Project abweichen. Für Finanzzahlen pro Projekt berichten Sie auf JDT1. Siehe Abfrage: Sachkontenbewegungen.
Fertige Abfragen, die OPRJ verwenden
- Buchungen eines Sachkontos: Journalbuchungszeilen eines Sachkontos in einem Zeitraum, mit Soll, Haben und Referenz.
- Salden der Sachkonten: Aktueller Saldo aller bebuchbaren Sachkonten, gruppiert nach Kontoebene.
Fragen zur Tabelle OPRJ
Wo wird der Projektcode in einer Journalbuchung gespeichert?
In jeder Zeile, in JDT1.Project, das mit OPRJ.PrjCode verknüpft wird.
Kann ein Projektcode ablaufen?
Ja. OPRJ.ValidFrom und ValidTo legen den Gültigkeitszeitraum fest, Active kennzeichnet es als aktiv oder inaktiv.
Gibt es ein Standardprojekt pro Geschäftspartner?
Ja, OCRD.ProjectCod verweist auf OPRJ.
Verwandte Tabellen
JDT1 (Journalbuchungszeilen) · OJDT (Journalbuchung (Kopf)) · INV1 (Ausgangsrechnung (Positionen)) · OOCR (Verteilungsregeln (Kostenstellen)) · 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.
