Tabelle PDN1 in SAP Business One (Wareneingang zur Bestellung (Zeilen))

PDN1 ist die Tabelle in SAP Business One, die die Zeilen eines Wareneingangs zur Bestellung speichert: eine Zeile pro erhaltenem Artikel, mit Menge, Preis, Lager, offener Menge und der Bestellzeile, aus der sie stammt. Sie ist über DocEntry mit dem Kopf OPDN verknüpft; BaseType 22 bedeutet, dass die Zeile aus einer Bestellung kopiert wurde.

Wichtige Felder der Tabelle PDN1

FeldInhalt
DocEntrySchlüssel des Kopfs. Verknüpft mit OPDN.DocEntry.
LineNumZeilennummer.
ItemCodeArtikel. Verknüpft mit OITM.ItemCode.
DscriptionArtikelbeschreibung.
QuantityErhaltene Menge.
OpenQtyVerbleibende offene Menge (noch nicht in eine Rechnung oder Rücksendung kopiert).
Price / CurrencyPreis und Preiswährung.
LineTotalZeilensumme.
WhsCodeLager. Verknüpft mit OWHS.WhsCode.
BaseTypeBasisbelegtyp: 22 = Bestellung, 540000006 = Einkaufsangebot und weitere.
BaseEntry / BaseLineSchlüssel und Zeile des Basisbelegs.
TargetType / TrgetEntryZielbeleg (18 = Eingangsrechnung, 21 = Warenrücksendung) und sein Schlüssel.

Wie PDN1 mit anderen Tabellen zusammenhängt

PDN1-Zeilen gehören zu genau einem OPDN-Kopf (DocEntry). BaseType 22 mit BaseEntry und BaseLine verweist auf die Bestellzeile in OPOR; TargetType und TrgetEntry verweisen vorwärts auf die Eingangsrechnung (OPCH) oder die Warenrücksendung.

Typische Joins

  • PDN1 T0 INNER JOIN OPDN T1 ON T1.DocEntry = T0.DocEntry (Kopf)
  • PDN1 T0 LEFT JOIN OPOR T2 ON T2.DocEntry = T0.BaseEntry AND T0.BaseType = 22 (Bestellung)
  • PDN1 T0 LEFT JOIN OPCH T3 ON T3.DocEntry = T0.TrgetEntry AND T0.TargetType = 18 (Eingangsrechnung)

Wann Sie die Tabelle PDN1 verwenden

Verwenden Sie PDN1, um erhaltene Mengen mit Bestellungen zu vergleichen, erhaltene, noch nicht berechnete Zeilen aufzulisten und den letzten Eingangspreis pro Artikel und Lieferant zu lesen.

Beispielabfrage: Erhaltene, noch nicht berechnete Zeilen mit ihrer Bestellung

SQL Server

SELECT T1.DocNum AS GrpoNum, T1.DocDate, T1.CardCode, T0.ItemCode, T0.Quantity,
  T0.OpenQty, T0.Price, T2.DocNum AS PoNum
FROM PDN1 T0
INNER JOIN OPDN T1 ON T1.DocEntry = T0.DocEntry
LEFT JOIN OPOR T2 ON T2.DocEntry = T0.BaseEntry AND T0.BaseType = 22
WHERE T0.OpenQty > 0 AND T1.CANCELED = 'N'
ORDER BY T1.DocDate

SAP HANA (Spaltennamen in doppelten Anführungszeichen)

SELECT T1."DocNum" AS "GrpoNum", T1."DocDate", T1."CardCode", T0."ItemCode", T0."Quantity",
  T0."OpenQty", T0."Price", T2."DocNum" AS "PoNum"
FROM PDN1 T0
INNER JOIN OPDN T1 ON T1."DocEntry" = T0."DocEntry"
LEFT JOIN OPOR T2 ON T2."DocEntry" = T0."BaseEntry" AND T0."BaseType" = 22
WHERE T0."OpenQty" > 0 AND T1."CANCELED" = 'N'
ORDER BY T1."DocDate"

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: BaseEntry ohne BaseType

Eine Wareneingangszeile kann auf einer Bestellung, einem Einkaufsangebot oder einem anderen Beleg basieren. BaseEntry allein ist nur eine Nummer; ergänzen Sie daher beim Join auf OPOR immer BaseType = 22. Siehe OPOR-Tabelle (Bestellung).

Fertige Abfragen, die PDN1 verwenden

Fragen zur Tabelle PDN1

Wie verknüpfe ich PDN1 mit der Bestellung?

PDN1.BaseType = 22, PDN1.BaseEntry = OPOR.DocEntry und PDN1.BaseLine = Zeilennummer der Bestellung.

Was bedeutet OpenQty in PDN1?

Die erhaltene Menge, die noch nicht in einen Zielbeleg wie eine Eingangsrechnung oder Warenrücksendung kopiert wurde.

Wie finde ich die Eingangsrechnung zu einer Wareneingangszeile?

PDN1.TargetType = 18 und PDN1.TrgetEntry = OPCH.DocEntry.

Verwandte Tabellen

OPDN (Wareneingang zur Bestellung (Kopf)) · OPOR (Bestellung (Kopf)) · OPCH (Eingangsrechnung (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.