Ir al contenido
Programación ABAP

BSEG

Posiciones de documentos contables.

TablaB
Módulo
FI
Texto SAP
Accounting document segment
Clase de entrega
A
Actualizado
21 de octubre de 2026

S/4HANA. En S/4HANA BSEG sigue existiendo como vista de entrada del documento, pero la fuente completa de los movimientos contables es ACDOCA (Universal Journal). Para informes, lee ACDOCA o sus vistas CDS. Ver ACDOCA.

Vista CDS equivalente: I_JournalEntryItem Liberada para ABAP Cloud. En desarrollos Clean Core se lee la vista en lugar de la tabla. Más en CDS.

Para qué sirve

BSEG guarda las posiciones de los documentos contables de FI: cada apunte al debe o al haber, con su cuenta, importe, cliente o proveedor, objeto de coste y datos de compensación. La cabecera del documento está en BKPF.

En ECC es una tabla cluster (RFBLG): no admite JOIN y es lenta si no se lee con la clave completa. Para buscar partidas por cuenta, cliente o proveedor se usan las tablas índice BSIS/BSAS, BSID/BSAD y BSIK/BSAK.

Campos

Los campos clave y los más usados. La lista completa está en la SE11.

CampoElemento de datosDescripción
MANDTClaveMANDTMandante.
BUKRSClaveBUKRSSociedad.
BELNRClaveBELNR_DNúmero de documento contable.
GJAHRClaveGJAHREjercicio.
BUZEIClaveBUZEINúmero de posición.
BSCHLBSCHLClave de contabilización.
KOARTKOARTTipo de cuenta: S mayor, D deudor, K acreedor, A activo fijo, M material.
SHKZGSHKZGDebe (S) o haber (H).
DMBTRDMBTRImporte en moneda local.
WRBTRWRBTRImporte en la moneda del documento.
HKONTHKONTCuenta de mayor.
KUNNRKUNNRCliente.
LIFNRLIFNRProveedor.
AUGBLAUGBLDocumento de compensación.
AUGDTAUGDTFecha de compensación.
KOSTLKOSTLCentro de coste.
MWSKZMWSKZIndicador de impuestos.
ZUONRDZUONRNúmero de asignación.
SGTXTSGTXTTexto de la posición.

Cómo se une con otras tablas

TablaPor los camposPara qué
BKPFBUKRS + BELNR + GJAHRCabecera: fechas, clase de documento, referencia.
SKB1BUKRS + HKONT = SAKNRDatos de la cuenta de mayor en la sociedad.
KNA1KUNNRCliente.
LFA1LIFNRProveedor.
BSISBUKRS + HKONTÍndice para buscar partidas de una cuenta de mayor.

Generar un JOIN desde BSEG

Ejemplo

ABAP 7.5
" 1. Cabeceras de los documentos del periodo (BKPF admite filtros por fecha)
SELECT bukrs, belnr, gjahr, budat, blart
  FROM bkpf
  WHERE bukrs = @lv_bukrs
    AND gjahr = @lv_gjahr
    AND budat BETWEEN @lv_desde AND @lv_hasta
  INTO TABLE @DATA(lt_cab).

" 2. Sus posiciones, siempre con la clave completa (en ECC, BSEG no admite JOIN)
IF lt_cab IS NOT INITIAL.
  SELECT bukrs, belnr, gjahr, buzei, hkont, shkzg, dmbtr, kostl
    FROM bseg
    FOR ALL ENTRIES IN @lt_cab
    WHERE bukrs = @lt_cab-bukrs
      AND belnr = @lt_cab-belnr
      AND gjahr = @lt_cab-gjahr
    INTO TABLE @DATA(lt_pos).
ENDIF.

En S/4HANA: leyendo la vista CDS del Universal Journal

CDS
SELECT CompanyCode, AccountingDocument, FiscalYear, AccountingDocumentItem,
       GLAccount, DebitCreditCode, AmountInCompanyCodeCurrency, CompanyCodeCurrency
  FROM I_JournalEntryItem
  WHERE CompanyCode = @lv_bukrs
    AND FiscalYear  = @lv_gjahr
    AND Ledger      = '0L'
    AND PostingDate BETWEEN @lv_desde AND @lv_hasta
  INTO TABLE @DATA(lt_partidas).

Transacciones y consulta

Transacciones que la usan

FB03FBL3NFBL1NFBL5N

Cómo consultarla

  • Contenido: SE16N o SE16 con el nombre BSEG.
  • Definición, campos y claves externas: SE11.

Rendimiento: errores típicos

  • BSEG sin la clave completa: en ECC, un WHERE por HKONT, KUNNR o LIFNR recorre la tabla cluster entera. Busca primero en las tablas índice (BSIS/BSAS, BSID/BSAD, BSIK/BSAK) o en BKPF.
  • JOIN con BSEG en ECC: no es posible por ser tabla cluster; usa FOR ALL ENTRIES como en el ejemplo.
  • En S/4HANA: para informes lee ACDOCA o I_JournalEntryItem, que tienen todos los ledgers y dimensiones en una sola tabla.

Relacionadas

Tablas relacionadas

BKPFBSISBSIDBSIKBSADBSAKSKB1

Más en B

BNKABTCEVTJOBBUT000

En abap.es

¿Dudas con esta tabla?

Pregunta en el foro de abap.es: la comunidad lleva años resolviendo dudas de ABAP en español.

Preguntar en el foro

Actualizado: 21 de octubre de 2026