Avvii un progetto

Tabella ODLN in SAP Business One (Consegna (testata))

ODLN è la tabella di SAP Business One che contiene la testata di ogni consegna (documento di trasporto): cliente, date, totali e stato. Le sue righe sono in DLN1, collegate tramite DocEntry, e il suo tipo di oggetto è 15. Quando si registra una consegna, la merce esce dal magazzino.

Campi chiave di ODLN

CampoContenuto
DocEntryChiave interna. Si collega con DLN1.DocEntry.
DocNumNumero di consegna visto dagli utenti.
ObjTypeTipo di oggetto, 15 = consegna.
DocDateData di registrazione.
DocDueDateData di scadenza.
CardCode / CardNameCodice e nome del cliente. CardCode si collega con OCRD.
DocTotalTotale del documento.
VatSumTotale delle imposte.
DiscPrcntPercentuale di sconto di testata.
DocStatusO = aperta, C = chiusa (ad esempio, completamente fatturata).
InvntSttusStato di magazzino del documento.
CANCELEDY se la consegna è stata annullata.
SlpCodeAgente di vendita. Si collega con OSLP.

Come ODLN si collega alle altre tabelle

ODLN è la testata e DLN1 le righe, collegate tramite DocEntry. Una consegna copiata da un ordine cliente contiene BaseType = 17 e le chiavi dell’ordine nelle sue righe DLN1; una fattura copiata dalla consegna contiene BaseType = 15 e BaseEntry = ODLN.DocEntry nelle sue righe INV1. DLN1.OpenQty è la quantità ancora aperta, non ancora fatturata né resa.

Join più comuni

  • ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry (righe)
  • ODLN T0 INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode (cliente)
  • DLN1 T1 INNER JOIN RDR1 T3 ON T1.BaseType = 17 AND T1.BaseEntry = T3.DocEntry AND T1.BaseLine = T3.LineNum (riga dell’ordine)
  • INV1 T4 ON T4.BaseType = 15 AND T4.BaseEntry = T1.DocEntry AND T4.BaseLine = T1.LineNum (fattura dalla consegna)

Quando si usa la tabella ODLN

Usi ODLN e DLN1 per gli elenchi “consegnato ma non fatturato”, lo storico delle spedizioni per cliente o articolo e i controlli di prova di consegna. Nelle aziende che fatturano sempre dalle consegne, le consegne aperte sono ricavi ancora da fatturare.

Query di esempio: righe di consegna non ancora fatturate

SQL Server

SELECT T0.DocNum, T0.DocDate, T0.CardCode, T0.CardName,
  T1.ItemCode, T1.Dscription, T1.Quantity, T1.OpenQty, T1.WhsCode
FROM ODLN T0
INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.CANCELED = 'N' AND T1.LineStatus = 'O' AND T1.OpenQty > 0
ORDER BY T0.DocDate, T0.DocNum

SAP HANA (nomi delle colonne tra virgolette doppie)

SELECT T0."DocNum", T0."DocDate", T0."CardCode", T0."CardName",
  T1."ItemCode", T1."Dscription", T1."Quantity", T1."OpenQty", T1."WhsCode"
FROM ODLN T0
INNER JOIN DLN1 T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T0."CANCELED" = 'N' AND T1."LineStatus" = 'O' AND T1."OpenQty" > 0
ORDER BY T0."DocDate", 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: Contare due volte consegne e fatture come vendite

Quando le fatture vengono copiate dalle consegne, la stessa merce compare una volta in DLN1 e un’altra in INV1. Un report delle vendite che somma ODLN e OINV raddoppia la cifra. Riporti le vendite da OINV (meno ORIN) e usi ODLN solo per il consegnato non ancora fatturato, come nella query precedente. Veda Perché i totali delle vendite in SAP B1 non quadrano.

Sta costruendo qualcosa su ODLN?

Leggere ODLN (Consegna (testata)) con una query è la parte facile. Sviluppiamo portali web e B2B per SAP Business One: clienti e fornitori consultano ordini, fatture ed estratti conto, collegati tramite il Service Layer. Oppure guardi tutto il nostro sviluppo SAP Business One.

Tabelle correlate

ORDR (Ordine cliente (testata)) · RDR1 (Ordine cliente (righe)) · OINV (Fattura cliente (testata)) · 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.