Tabela ADOC no SAP Business One (Histórico de documentos (histórico de notas fiscais))
ADOC é a tabela de histórico de documentos do SAP Business One (o SDK a chama de «Invoice - History»): guarda versões anteriores dos cabeçalhos de documentos, uma linha por versão salva, numeradas por LogInstanc. Tem as mesmas colunas de cabeçalho das tabelas de documentos, então você vê quem alterou um documento, quando e qual era o total antes.
Campos-chave da ADOC
| Campo | O que contém |
|---|---|
DocEntry | Chave interna do documento. |
DocNum | Número do documento. |
ObjType | Tipo de objeto do documento (ADP1), por exemplo 13 para notas fiscais de saída. |
LogInstanc | Instância de log: o número da versão da linha de histórico. |
DocDate | Data de lançamento. |
CardCode / CardName | Parceiro de negócios. CardCode relaciona com OCRD. |
DocCur / DocTotal | Moeda e total do documento naquela versão. |
DocStatus | O = em aberto, C = fechado. |
CANCELED | Y = cancelado, N = não cancelado, C = cancelamento. |
UserSign / UserSign2 | Usuário que o criou e usuário que o atualizou. Relacionam com OUSR.USERID. |
CreateDate / UpdateDate | Datas de criação e de atualização. |
UpdateTS | Hora da atualização. |
Como a ADOC se relaciona com outras tabelas
As linhas da ADOC são identificadas por ObjType, DocEntry e LogInstanc juntos, porque uma única tabela guarda versões de vários tipos de documento. A versão atual continua na tabela do documento (por exemplo OINV), então compare as versões da ADOC com a linha atual para ver o que mudou. UserSign2 indica quem salvou cada versão.
Joins mais comuns
ADOC T0 INNER JOIN OUSR T1 ON T1.USERID = T0.UserSign2 (usuário que salvou a versão)ADOC T0 INNER JOIN OINV T2 ON T2.DocEntry = T0.DocEntry AND T0.ObjType = '13' (nota fiscal atual)
Quando usar a tabela ADOC
Use a ADOC para perguntas de auditoria como quem alterou esta nota fiscal e quando, para ver o total de um documento antes de uma alteração e para contar as alterações por usuário.
Consulta de exemplo: histórico de alterações de uma nota fiscal de saída
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 (nomes de colunas entre aspas duplas)
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"
Cole qualquer uma das duas versões em Ferramentas → Consultas → Gerador de consultas. Precisa do outro dialeto para a sua própria consulta? Use o conversor de SQL para HANA.
Erro comum: Filtrar a ADOC só por DocNum ou DocEntry
A ADOC guarda o histórico de vários tipos de documento, então o DocEntry 1001 pode ser uma nota fiscal, uma devolução de nota fiscal ou outro documento. Filtre sempre também pelo ObjType. A versão atual não está na ADOC; leia-a da tabela do documento e acrescente-a à lista do histórico. Veja Consulta de documentos criados por usuário.
Consultas prontas que usam a ADOC (em inglês)
- Invoices created per user today: How many A/R invoices each SAP B1 user created today, with the total value.
Perguntas sobre a tabela ADOC
Onde fica o histórico de alterações de uma nota fiscal?
Na ADOC, uma linha por versão salva (LogInstanc), filtrada por ObjType 13 e DocEntry.
Como vejo quem alterou um documento?
Relacione ADOC.UserSign2 com OUSR.USERID e ordene por LogInstanc.
A versão atual do documento está na ADOC?
A versão atual continua na tabela do documento, por exemplo OINV; a ADOC guarda as versões anteriores.
Tabelas relacionadas
OUSR (Usuários) · OINV (Nota fiscal de saída (cabeçalho)) · pesquisar todas as tabelas do SAP Business One
Pronto para começar?
Diga do que você precisa. Você recebe uma resposta técnica clara, um escopo fechado e um preço, normalmente em até 24 horas.
