Tabella PDN1 in SAP Business One (Entrata merci da acquisti (righe))

PDN1 è la tabella di SAP Business One che contiene le righe di un’entrata merci da acquisti: una riga per articolo ricevuto, con quantità, prezzo, magazzino, quantità aperta e la riga dell’ordine d’acquisto da cui proviene. Si collega alla testata OPDN tramite DocEntry; BaseType 22 significa che la riga è stata copiata da un ordine d’acquisto.

Campi chiave di PDN1

CampoContenuto
DocEntryChiave della testata. Si collega a OPDN.DocEntry.
LineNumNumero di riga.
ItemCodeArticolo. Si collega a OITM.ItemCode.
DscriptionDescrizione dell’articolo.
QuantityQuantità ricevuta.
OpenQtyQuantità ancora aperta (non ancora copiata in una fattura o in un reso).
Price / CurrencyPrezzo e valuta del prezzo.
LineTotalTotale della riga.
WhsCodeMagazzino. Si collega a OWHS.WhsCode.
BaseTypeTipo del documento base: 22 = ordine d’acquisto, 540000006 = offerta d’acquisto, e altri.
BaseEntry / BaseLineChiave e riga del documento base.
TargetType / TrgetEntryDocumento di destinazione (18 = fattura fornitore, 21 = reso merci a fornitore) e relativa chiave.

Come PDN1 si collega alle altre tabelle

Le righe di PDN1 appartengono a una testata OPDN (DocEntry). BaseType 22 con BaseEntry e BaseLine punta alla riga dell’ordine d’acquisto in OPOR; TargetType e TrgetEntry puntano in avanti alla fattura fornitore (OPCH) o al reso merci.

Join più comuni

  • PDN1 T0 INNER JOIN OPDN T1 ON T1.DocEntry = T0.DocEntry (testata)
  • PDN1 T0 LEFT JOIN OPOR T2 ON T2.DocEntry = T0.BaseEntry AND T0.BaseType = 22 (ordine d’acquisto)
  • PDN1 T0 LEFT JOIN OPCH T3 ON T3.DocEntry = T0.TrgetEntry AND T0.TargetType = 18 (fattura fornitore)

Quando si usa la tabella PDN1

Usi PDN1 per confrontare le quantità ricevute con gli ordini d’acquisto, elencare le righe ricevute non ancora fatturate e leggere l’ultimo prezzo di entrata per articolo e fornitore.

Query di esempio: righe ricevute non ancora fatturate, con il loro ordine d’acquisto

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 (nomi delle colonne tra virgolette doppie)

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"

Incolli una delle due versioni in Strumenti → Query → Generatore di query. Le serve l’altro dialetto per una Sua query? Usi il convertitore da SQL a HANA.

Errore frequente: BaseEntry senza BaseType

Una riga di entrata merci può basarsi su un ordine d’acquisto, un’offerta d’acquisto o un altro documento. BaseEntry da solo è soltanto un numero, quindi aggiunga sempre BaseType = 22 quando unisce OPOR. Veda Tabella OPOR (ordine d’acquisto).

Query pronte che usano PDN1 (pagine in inglese)

Domande sulla tabella PDN1

Come collego PDN1 all’ordine d’acquisto?

PDN1.BaseType = 22, PDN1.BaseEntry = OPOR.DocEntry e PDN1.BaseLine = il numero di riga dell’ordine.

Che cosa significa OpenQty in PDN1?

La quantità ricevuta non ancora copiata in un documento di destinazione come una fattura fornitore o un reso merci.

Come trovo la fattura fornitore di una riga di entrata merci?

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

Tabelle correlate

OPDN (Entrata merci da acquisti (testata)) · OPOR (Ordine d’acquisto (testata)) · OPCH (Fattura fornitore (testata)) · cerca tutte le tabelle di SAP Business One

Fonti: Documentazione e SDK di SAP Business One (riferimento delle tabelle del database della DI API), SAP Help Portal.

Iniziamo?

Ci descriva di cosa ha bisogno. Riceverà una risposta tecnica chiara, un perimetro definito e un prezzo, di norma entro 24 ore.