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
| Campo | Qué contiene |
|---|---|
DocEntry | Clave interna del documento. |
DocNum | Número de documento. |
ObjType | Tipo de objeto del documento (ADP1), por ejemplo 13 para facturas de clientes. |
LogInstanc | Instancia de registro: el número de versión de la fila de historial. |
DocDate | Fecha de contabilización. |
CardCode / CardName | Socio de negocios. CardCode se une con OCRD. |
DocCur / DocTotal | Moneda y total del documento en esa versión. |
DocStatus | O = abierto, C = cerrado. |
CANCELED | Y = cancelado, N = no cancelado, C = cancelación. |
UserSign / UserSign2 | Usuario que lo creó y usuario que lo actualizó. Se unen con OUSR.USERID. |
CreateDate / UpdateDate | Fechas de creación y de actualización. |
UpdateTS | Hora 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
- Facturas creadas por usuario hoy: Cuántas facturas de clientes creó hoy cada usuario de SAP B1, con el valor total.
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
¿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.
