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

CampoO que contém
DocEntryChave interna do documento.
DocNumNúmero do documento.
ObjTypeTipo de objeto do documento (ADP1), por exemplo 13 para notas fiscais de saída.
LogInstancInstância de log: o número da versão da linha de histórico.
DocDateData de lançamento.
CardCode / CardNameParceiro de negócios. CardCode relaciona com OCRD.
DocCur / DocTotalMoeda e total do documento naquela versão.
DocStatusO = em aberto, C = fechado.
CANCELEDY = cancelado, N = não cancelado, C = cancelamento.
UserSign / UserSign2Usuário que o criou e usuário que o atualizou. Relacionam com OUSR.USERID.
CreateDate / UpdateDateDatas de criação e de atualização.
UpdateTSHora 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)

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

Fontes: Documentação e SDK do SAP Business One (referência das tabelas do banco de dados da DI API), SAP Help Portal.

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.