Avvii un progetto

Tabella INV1 in SAP Business One (Fattura cliente (righe))

INV1 è la tabella di SAP Business One che contiene le righe delle fatture cliente: articolo, quantità, prezzo, totale riga e magazzino. Non ha dati di testata propri, quindi va collegata a OINV tramite DocEntry per ottenere date, cliente e stato.

Campi chiave di INV1

CampoContenuto
DocEntryChiave della fattura. Si collega a OINV.DocEntry.
LineNumNumero della riga all’interno della fattura, parte da 0.
ItemCodeArticolo venduto. Si collega a OITM.ItemCode. Vuoto nelle fatture di servizi.
DscriptionDescrizione della riga (nel nome della colonna manca la e dopo la D: Dscription).
QuantityQuantità nell’unità di misura di vendita.
PricePrezzo unitario al netto dello sconto di riga.
PriceBefDiPrezzo unitario prima dello sconto di riga.
LineTotalImporto della riga in valuta locale, al netto di imposta e prima dello sconto di testata.
WhsCodeMagazzino da cui è uscita la merce. Si collega a OWHS.WhsCode.
SlpCodeAgente di vendita della riga.
BaseType / BaseEntry / BaseLineDocumento di origine da cui è stata copiata la riga (ad esempio 15 = consegna, 17 = ordine cliente).

Come INV1 si collega alle altre tabelle

INV1 è la tabella delle righe di OINV. Ogni riga appartiene a una sola fattura tramite DocEntry, e DocEntry + LineNum è la chiave univoca di una riga. Date, cliente, stato di annullamento e sconto di testata sono in OINV: per questo quasi ogni query su INV1 include anche OINV.

Join più comuni

  • INV1 T1 INNER JOIN OINV T0 ON T1.DocEntry = T0.DocEntry (testata)
  • INV1 T1 LEFT JOIN OITM T2 ON T1.ItemCode = T2.ItemCode (anagrafica articoli)
  • INV1 T1 LEFT JOIN OWHS T3 ON T1.WhsCode = T3.WhsCode (magazzino)

Quando si usa la tabella INV1

Usi INV1 per tutto ciò che è per articolo: articoli più venduti, articoli a bassa rotazione, vendite per gruppo di articoli o per magazzino e quantità vendute in un periodo. Per i valori tenga conto dello sconto di testata; per le quantità le righe sono la fonte corretta.

Query di esempio: quantità e valore netto venduto per articolo

SQL Server

SELECT T1.ItemCode, T1.Dscription, SUM(T1.Quantity) AS QtySold,
  SUM(T1.LineTotal * (1 - T0.DiscPrcnt / 100.0)) AS NetValue
FROM OINV T0
INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.CANCELED = 'N' AND T0.DocDate >= '20260101'
GROUP BY T1.ItemCode, T1.Dscription
ORDER BY NetValue DESC

SAP HANA (nomi delle colonne tra virgolette doppie)

SELECT T1."ItemCode", T1."Dscription", SUM(T1."Quantity") AS "QtySold",
  SUM(T1."LineTotal" * (1 - T0."DiscPrcnt" / 100.0)) AS "NetValue"
FROM OINV T0
INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T0."CANCELED" = 'N' AND T0."DocDate" >= '20260101'
GROUP BY T1."ItemCode", T1."Dscription"
ORDER BY "NetValue" DESC

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: Sommare LineTotal gonfia le vendite

LineTotal è al lordo dello sconto di testata registrato in OINV.DiscPrcnt. Se i Suoi utenti applicano sconti in testata, SUM(LineTotal) supera il report di analisi delle vendite. Moltiplichi per (1 - T0.DiscPrcnt / 100) come nella query sopra e sottragga le righe delle note di credito cliente (RIN1) con lo stesso fattore. Veda Correggere la differenza dovuta allo sconto di testata.

Query pronte che usano INV1 (pagine in inglese)

Sta costruendo qualcosa su INV1?

Leggere INV1 (Fattura cliente (righe)) con una query è la parte facile. Sviluppiamo l'integrazione della fatturazione elettronica per SAP Business One: fatture e note di credito passano da SAP all'autorità fiscale e lo stato torna in SAP. Oppure guardi tutto il nostro sviluppo SAP Business One.

Tabelle correlate

OINV (Fattura cliente (testata)) · ORIN (Nota di credito cliente (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.