Tabla OACT en SAP Business One (Cuentas de mayor (plan de cuentas))
OACT es la tabla de SAP Business One que guarda el plan de cuentas: una fila por cuenta de mayor, tanto cuentas de título como cuentas imputables (activas), con la jerarquía de cuentas y el saldo actual. Las líneas de asiento en JDT1 apuntan a ella mediante JDT1.Account = OACT.AcctCode.
Campos clave de OACT
| Campo | Qué contiene |
|---|---|
AcctCode | Clave interna de la cuenta. JDT1.Account y los campos de cuenta de los documentos guardan este valor. |
AcctName | Nombre de la cuenta. |
FormatCode | El número de cuenta que ven los usuarios. Con segmentación de cuentas es distinto de AcctCode. |
Postable | Y = cuenta activa en la que se puede contabilizar, N = cuenta de título (un encabezado del árbol). |
Levels | Nivel en el árbol de cuentas (1 = cajón como Activos; números más altos = más profundo). |
FatherNum | AcctCode de la cuenta de título padre. |
GroupMask | El cajón al que pertenece la cuenta (activos, pasivos, patrimonio, ingresos, gastos, etc., numerados según la localización). |
CurrTotal | Saldo actual en moneda local. |
SysTotal | Saldo actual en moneda del sistema. |
FcTotal | Saldo en la moneda de la cuenta. |
ActCurr | Moneda de la cuenta. |
LocManTran | Y = cuenta asociada (por ejemplo, cuentas por cobrar). |
Frozen | Y = cuenta bloqueada. |
Cómo se relaciona OACT con otras tablas
OACT es un dato maestro. Cada contabilización está en JDT1 (líneas de asiento) con JDT1.Account = OACT.AcctCode, y la cabecera está en OJDT. Las cuentas asociadas de los socios de negocios (OCRD.DebPayAcct) y los campos de cuenta de artículos, almacenes e indicadores de impuestos también guardan AcctCode. El árbol de cuentas se arma a partir de FatherNum y Levels.
Joins habituales
OACT T0 INNER JOIN JDT1 T1 ON T1.Account = T0.AcctCode (líneas de asiento)OACT T0 LEFT JOIN OACT T2 ON T2.AcctCode = T0.FatherNum (cuenta de título padre)OCRD T3 INNER JOIN OACT T0 ON T0.AcctCode = T3.DebPayAcct (cuenta asociada del socio de negocios)
Cuándo se usa la tabla OACT
Use OACT para un balance de comprobación rápido, una lista de cuentas para el contador, el mapeo de cuentas a una estructura de reporte o para verificar que cada cuenta de un reporte sea imputable. Para saldos a una fecha o por período, sume JDT1 en lugar de leer CurrTotal.
Consulta de ejemplo: saldo por cuenta imputable a una fecha (desde 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 (nombres de columna entre comillas dobles)
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"
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: FormatCode frente a AcctCode, y CurrTotal solo vale para hoy
Los usuarios conocen las cuentas por el número que ven en pantalla, que es FormatCode. JDT1.Account guarda AcctCode, que con segmentación de cuentas es un código interno, así que filtrar JDT1.Account por el número que ven los usuarios puede no encontrar nada. Haga el join con OACT y filtre por FormatCode. CurrTotal es el saldo en este momento; ignora las fechas, por lo que no le da el saldo del mes pasado. Sume JDT1 hasta la fecha que necesite. Vea Tabla JDT1 (líneas de asiento).
Consultas listas que usan OACT
- Saldos de cuentas de mayor: Saldo actual de cada cuenta de mayor imputable, agrupado por nivel de cuenta.
- Movimientos de una cuenta de mayor: Líneas de asiento de una cuenta de mayor en un período, con débito, crédito y referencia.
Tablas relacionadas
JDT1 (Líneas del asiento contable) · OJDT (Asiento contable (cabecera)) · OCRD (Socios de negocios) · 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.
