Tabla ADOC en SAP Business One (Historial de documentos (historial de facturas))

ADOC es la tabla de historial de documentos de SAP Business One (el SDK la llama «Invoice - History»): conserva versiones anteriores de las cabeceras de documentos, una fila por versión guardada, numeradas por LogInstanc. Tiene las mismas columnas de cabecera que las tablas de documentos, así que puede ver quién cambió un documento, cuándo y cuál era el total antes.

Campos clave de ADOC

CampoQué contiene
DocEntryClave interna del documento.
DocNumNúmero de documento.
ObjTypeTipo de objeto del documento (ADP1), por ejemplo 13 para facturas de clientes.
LogInstancInstancia de registro: el número de versión de la fila de historial.
DocDateFecha de contabilización.
CardCode / CardNameSocio de negocios. CardCode se une con OCRD.
DocCur / DocTotalMoneda y total del documento en esa versión.
DocStatusO = abierto, C = cerrado.
CANCELEDY = cancelado, N = no cancelado, C = cancelación.
UserSign / UserSign2Usuario que lo creó y usuario que lo actualizó. Se unen con OUSR.USERID.
CreateDate / UpdateDateFechas de creación y de actualización.
UpdateTSHora de actualización.

Cómo se relaciona ADOC con otras tablas

Las filas de ADOC se identifican por ObjType, DocEntry y LogInstanc juntos, porque una sola tabla guarda versiones de distintos tipos de documento. La versión actual permanece en la tabla del documento (por ejemplo OINV), así que compare las versiones de ADOC con la fila vigente para ver qué cambió. UserSign2 indica quién guardó cada versión.

Joins habituales

  • ADOC T0 INNER JOIN OUSR T1 ON T1.USERID = T0.UserSign2 (usuario que guardó la versión)
  • ADOC T0 INNER JOIN OINV T2 ON T2.DocEntry = T0.DocEntry AND T0.ObjType = '13' (factura actual)

Cuándo se usa la tabla ADOC

Use ADOC para preguntas de auditoría como quién cambió esta factura y cuándo, para ver el total de un documento antes de una modificación y para contar los cambios por usuario.

Consulta de ejemplo: historial de cambios de una factura de clientes

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 (nombres de columna entre comillas dobles)

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"

Pegue cualquiera de las dos versiones en Herramientas → Consultas → Generador de consultas. ¿Necesita el otro dialecto para su propia consulta? Use el conversor de SQL a HANA.

Error frecuente: Filtrar ADOC solo por DocNum o DocEntry

ADOC guarda el historial de varios tipos de documento, así que el DocEntry 1001 puede ser una factura, una nota de crédito u otro documento. Filtre siempre también ObjType. La versión actual no está en ADOC; léala de la tabla del documento y agréguela a la lista del historial. Vea Consulta de documentos creados por usuario.

Consultas listas que usan ADOC

Preguntas sobre la tabla ADOC

¿Dónde está el historial de cambios de una factura?

En ADOC, una fila por versión guardada (LogInstanc), filtrada por ObjType 13 y DocEntry.

¿Cómo veo quién cambió un documento?

Una ADOC.UserSign2 con OUSR.USERID y ordene por LogInstanc.

¿La versión actual del documento está en ADOC?

La versión vigente permanece en la tabla del documento, por ejemplo OINV; ADOC conserva las versiones anteriores.

Tablas relacionadas

OUSR (Usuarios) · OINV (Factura de clientes (cabecera)) · buscar todas las tablas de SAP Business One

Fuentes: Documentación y SDK de SAP Business One (referencia de tablas de base de datos de DI API), SAP Help Portal.

¿Listo para empezar?

Cuéntenos lo que necesita. Recibirá una respuesta técnica clara, un alcance definido y un precio fijo, normalmente en 24 horas.