Tabela OACT no SAP Business One (Contas contábeis (plano de contas))
OACT é a tabela do SAP Business One que guarda o plano de contas: uma linha por conta contábil, tanto contas sintéticas (título) quanto contas analíticas (que aceitam lançamentos), com a hierarquia de contas e o saldo atual. As linhas de lançamento na JDT1 apontam para ela por JDT1.Account = OACT.AcctCode.
Campos-chave da OACT
| Campo | O que contém |
|---|---|
AcctCode | Chave interna da conta. JDT1.Account e os campos de conta dos documentos guardam este valor. |
AcctName | Nome da conta. |
FormatCode | O número da conta que os usuários veem. Com segmentação de contas, é diferente de AcctCode. |
Postable | Y = conta analítica, que aceita lançamentos; N = conta sintética (um título na árvore). |
Levels | Nível na árvore de contas (1 = gaveta, como Ativo; números maiores = mais profundo). |
FatherNum | AcctCode da conta sintética pai. |
GroupMask | A gaveta à qual a conta pertence (ativo, passivo, patrimônio líquido, receitas, despesas etc., numeradas conforme a localização). |
CurrTotal | Saldo atual em moeda local. |
SysTotal | Saldo atual em moeda do sistema. |
FcTotal | Saldo na moeda da conta. |
ActCurr | Moeda da conta. |
LocManTran | Y = conta de controle (por exemplo, contas a receber). |
Frozen | Y = conta bloqueada. |
Como a OACT se relaciona com outras tabelas
OACT é um cadastro (dado mestre). Cada lançamento fica na JDT1 (linhas do lançamento contábil) com JDT1.Account = OACT.AcctCode, e o cabeçalho fica na OJDT. As contas de controle dos parceiros de negócios (OCRD.DebPayAcct) e os campos de conta de itens, depósitos e códigos de imposto também guardam AcctCode. A árvore de contas é montada a partir de FatherNum e Levels.
Joins mais comuns
OACT T0 INNER JOIN JDT1 T1 ON T1.Account = T0.AcctCode (linhas do lançamento contábil)OACT T0 LEFT JOIN OACT T2 ON T2.AcctCode = T0.FatherNum (conta sintética pai)OCRD T3 INNER JOIN OACT T0 ON T0.AcctCode = T3.DebPayAcct (conta de controle do parceiro de negócios)
Quando usar a tabela OACT
Use a OACT para um balancete rápido, uma lista de contas para o contador, o mapeamento de contas para uma estrutura de relatório ou para verificar se cada conta de um relatório aceita lançamentos. Para saldos em uma data ou por período, some a JDT1 em vez de ler CurrTotal.
Consulta de exemplo: saldo por conta analítica em uma data (a partir da JDT1)
SQL Server
SELECT T0.FormatCode, T0.AcctName, SUM(T1.Debit - T1.Credit) AS Balance FROM OACT T0 INNER JOIN JDT1 T1 ON T1.Account = T0.AcctCode WHERE T0.Postable = 'Y' AND T1.RefDate <= '[%0]' GROUP BY T0.FormatCode, T0.AcctName ORDER BY T0.FormatCode
SAP HANA (nomes de colunas entre aspas duplas)
SELECT T0."FormatCode", T0."AcctName", SUM(T1."Debit" - T1."Credit") AS "Balance" FROM OACT T0 INNER JOIN JDT1 T1 ON T1."Account" = T0."AcctCode" WHERE T0."Postable" = 'Y' AND T1."RefDate" <= '[%0]' GROUP BY T0."FormatCode", T0."AcctName" ORDER BY T0."FormatCode"
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: FormatCode x AcctCode, e CurrTotal só vale para hoje
Os usuários conhecem as contas pelo número que veem na tela, que é o FormatCode. JDT1.Account guarda o AcctCode, que com segmentação de contas é um código interno; por isso, filtrar JDT1.Account pelo número que os usuários veem pode não retornar nada. Faça o join com a OACT e filtre por FormatCode. CurrTotal é o saldo neste momento; ele ignora datas, então não informa o saldo do mês passado. Some a JDT1 até a data de que você precisa. Veja Tabela JDT1 (linhas do lançamento contábil).
Consultas prontas que usam a OACT (em inglês)
- G/L account balances: Current balance of every postable G/L account, grouped by account level.
- G/L account transactions: Journal lines for one G/L account in a period, with debit, credit and reference.
Tabelas relacionadas
JDT1 (Linhas do lançamento contábil) · OJDT (Lançamento contábil (cabeçalho)) · OCRD (Parceiros de negócios) · 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.
