Tabella OPOR in SAP Business One (Ordine d’acquisto (testata))

OPOR è la tabella di SAP Business One che contiene la testata di ogni ordine d’acquisto: fornitore, date, totali e stato. Le righe sono in POR1, collegate tramite DocEntry, e il tipo di oggetto è 22. Le entrate merci (OPDN/PDN1) e le fatture fornitore (OPCH/PCH1) copiate dall’ordine vi puntano tramite BaseType, BaseEntry e BaseLine.

Campi chiave di OPOR

CampoContenuto
DocEntryChiave interna. Si collega a POR1.DocEntry.
DocNumNumero dell’ordine d’acquisto visibile agli utenti.
DocDateData di registrazione dell’ordine.
DocDueDateData di consegna prevista.
CardCodeFornitore. Si collega a OCRD.CardCode.
DocTotalTotale dell’ordine comprensivo di imposta.
DocStatusO = aperto, C = chiuso (ricevuto per intero o chiuso manualmente).
CANCELEDY se l’ordine è stato annullato.
POR1.ItemCodeArticolo ordinato. Si collega a OITM.ItemCode.
POR1.QuantityQuantità ordinata nella riga.
POR1.OpenQtyQuantità ancora da ricevere.
POR1.LineStatusO = aperta, C = chiusa.
POR1.WhsCodeMagazzino di ricevimento. Si collega a OWHS.

Come OPOR si collega alle altre tabelle

OPOR è la testata e POR1 contiene le righe, collegate tramite DocEntry e identificate da LineNum. Quando si crea un’entrata merci o una fattura fornitore a partire dall’ordine, ogni riga di destinazione salva BaseType = 22, BaseEntry = il POR1.DocEntry e BaseLine = il POR1.LineNum. Nella direzione opposta, POR1.TargetType e TrgetEntry mostrano il documento in cui è stata copiata la riga (20 = entrata merci, 18 = fattura fornitore).

Join più comuni

  • OPOR T0 INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry (righe)
  • PDN1 T2 ON T2.BaseType = 22 AND T2.BaseEntry = T1.DocEntry AND T2.BaseLine = T1.LineNum (entrate merci create dall’ordine)
  • PCH1 T3 ON T3.BaseType = 22 AND T3.BaseEntry = T1.DocEntry AND T3.BaseLine = T1.LineNum (fatture fornitore copiate direttamente dall’ordine)
  • OPOR T0 INNER JOIN OCRD T4 ON T0.CardCode = T4.CardCode (fornitore)

Quando si usa la tabella OPOR

Usi OPOR e POR1 per il sollecito dei fornitori, i ricevimenti previsti per magazzino, il valore degli impegni aperti e il controllo dei prezzi d’acquisto. Lavori sulle righe per tutto ciò che riguarda le quantità, perché un ordine d’acquisto viene spesso ricevuto in più consegne.

Query di esempio: righe di ordini d’acquisto aperte con valore ancora da ricevere

SQL Server

SELECT T0.DocNum, T0.DocDueDate, T0.CardCode, T0.CardName,
  T1.ItemCode, T1.Dscription, T1.Quantity, T1.OpenQty, T1.WhsCode,
  T1.OpenQty * T1.Price AS OpenValue
FROM OPOR T0
INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.DocStatus = 'O' AND T0.CANCELED = 'N' AND T1.LineStatus = 'O'
ORDER BY T0.DocDueDate, T0.DocNum

SAP HANA (nomi delle colonne tra virgolette doppie)

SELECT T0."DocNum", T0."DocDueDate", T0."CardCode", T0."CardName",
  T1."ItemCode", T1."Dscription", T1."Quantity", T1."OpenQty", T1."WhsCode",
  T1."OpenQty" * T1."Price" AS "OpenValue"
FROM OPOR T0
INNER JOIN POR1 T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T0."DocStatus" = 'O' AND T0."CANCELED" = 'N' AND T1."LineStatus" = 'O'
ORDER BY T0."DocDueDate", T0."DocNum"

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: La testata resta aperta finché c’è una riga aperta

OPOR.DocStatus resta 'O' finché tutte le righe non sono chiuse, quindi un report basato solo sulla testata mostra un ordine ricevuto al 90 % come interamente inevaso. Usi POR1.OpenQty e LineStatus. E quando traccia i ricevimenti, confronti tutti e tre i campi di origine (BaseType, BaseEntry, BaseLine): il solo BaseEntry coincide anche con altri tipi di documento che usano lo stesso numero. Veda Query degli ordini d’acquisto aperti.

Query pronte che usano OPOR (pagine in inglese)

Tabelle correlate

OPCH (Fattura fornitore (testata)) · OITM (Articoli (anagrafica articoli)) · OITW (Giacenze degli articoli per magazzino) · 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.