Tabella ADOC in SAP Business One (Storico documenti (storico fatture))

ADOC è la tabella dello storico documenti di SAP Business One (l’SDK la chiama «Invoice - History»): conserva le versioni precedenti delle testate dei documenti, una riga per versione salvata, numerate tramite LogInstanc. Ha le stesse colonne di testata delle tabelle dei documenti, quindi permette di vedere chi ha modificato un documento, quando e qual era il totale prima.

Campi chiave di ADOC

CampoContenuto
DocEntryChiave interna del documento.
DocNumNumero del documento.
ObjTypeTipo di oggetto del documento (ADP1), ad esempio 13 per le fatture cliente.
LogInstancIstanza di log: il numero di versione della riga di storico.
DocDateData di registrazione.
CardCode / CardNameBusiness partner. CardCode si collega a OCRD.
DocCur / DocTotalValuta e totale del documento in quella versione.
DocStatusO = aperto, C = chiuso.
CANCELEDY = annullato, N = non annullato, C = documento di annullamento.
UserSign / UserSign2Utente che lo ha creato e utente che lo ha aggiornato. Si collegano a OUSR.USERID.
CreateDate / UpdateDateDate di creazione e di aggiornamento.
UpdateTSOra di aggiornamento.

Come ADOC si collega alle altre tabelle

Le righe di ADOC sono identificate da ObjType, DocEntry e LogInstanc insieme, perché un’unica tabella conserva versioni di tipi di documento diversi. La versione attuale resta nella tabella del documento (ad esempio OINV), quindi confronti le versioni di ADOC con la riga corrente per vedere cosa è cambiato. UserSign2 indica chi ha salvato ogni versione.

Join più comuni

  • ADOC T0 INNER JOIN OUSR T1 ON T1.USERID = T0.UserSign2 (utente che ha salvato la versione)
  • ADOC T0 INNER JOIN OINV T2 ON T2.DocEntry = T0.DocEntry AND T0.ObjType = '13' (fattura attuale)

Quando si usa la tabella ADOC

Usi ADOC per domande di audit come chi ha modificato questa fattura e quando, per vedere il totale di un documento prima di una modifica e per contare le modifiche per utente.

Query di esempio: storico delle modifiche di una fattura cliente

SQL Server

SELECT T0.LogInstanc, T0.UpdateDate, T0.UpdateTS, T1.USER_CODE, T1.U_NAME,
  T0.CardCode, T0.DocTotal, T0.DocStatus
FROM ADOC T0
LEFT JOIN OUSR T1 ON T1.USERID = T0.UserSign2
WHERE T0.ObjType = '13' AND T0.DocNum = 1001
ORDER BY T0.LogInstanc

SAP HANA (nomi delle colonne tra virgolette doppie)

SELECT T0."LogInstanc", T0."UpdateDate", T0."UpdateTS", T1."USER_CODE", T1."U_NAME",
  T0."CardCode", T0."DocTotal", T0."DocStatus"
FROM ADOC T0
LEFT JOIN OUSR T1 ON T1."USERID" = T0."UserSign2"
WHERE T0."ObjType" = '13' AND T0."DocNum" = 1001
ORDER BY T0."LogInstanc"

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: Filtrare ADOC solo per DocNum o DocEntry

ADOC conserva lo storico di più tipi di documento, quindi il DocEntry 1001 può essere una fattura, una nota di credito o un altro documento. Filtri sempre anche ObjType. La versione attuale non si trova in ADOC; la legga dalla tabella del documento e la aggiunga all’elenco dello storico. Veda Query dei documenti creati per utente.

Query pronte che usano ADOC (pagine in inglese)

Domande sulla tabella ADOC

Dove si trova lo storico delle modifiche di una fattura?

In ADOC, una riga per versione salvata (LogInstanc), filtrata per ObjType 13 e DocEntry.

Come vedo chi ha modificato un documento?

Colleghi ADOC.UserSign2 a OUSR.USERID e ordini per LogInstanc.

La versione attuale del documento si trova in ADOC?

La versione corrente resta nella tabella del documento, ad esempio OINV; ADOC conserva le versioni precedenti.

Tabelle correlate

OUSR (Utenti) · OINV (Fattura cliente (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.