Ir al contenido
Programación ABAP

MSEG

Posiciones de documentos de material.

TablaM
Módulo
MM
Texto SAP
Document Segment: Material
Clase de entrega
A
Actualizado
21 de octubre de 2026

S/4HANA. En S/4HANA los documentos de material se guardan en la tabla MATDOC. MSEG pasa a ser una vista de compatibilidad que lee de MATDOC. Ver MATDOC.

Para qué sirve

MSEG guarda las posiciones de los documentos de material: cada movimiento de mercancías (entrada, salida, traspaso) con su clase de movimiento, material, centro, almacén, cantidad e importe. La cabecera está en MKPF.

Es la tabla de consulta habitual para saber qué ha entrado o salido de un almacén. En ECC 6.0 incluye copias de algunos campos de la cabecera, como BUDAT_MKPF, para filtrar por fecha sin JOIN.

Campos

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

CampoElemento de datosDescripción
MANDTClaveMANDTMandante.
MBLNRClaveMBLNRNúmero de documento de material.
MJAHRClaveMJAHREjercicio del documento.
ZEILEClave—Posición del documento.
BWARTBWARTClase de movimiento (101 entrada por pedido, 201 consumo, 311 traspaso…).
MATNRMATNRMaterial.
WERKS—Centro.
LGORT—Almacén.
CHARG—Lote.
SHKZGSHKZGDebe (S, entrada) o haber (H, salida).
MENGE—Cantidad.
MEINSMEINSUnidad de medida base.
DMBTR—Importe en moneda local.
EBELN—Pedido de compra.
EBELP—Posición del pedido de compra.
KOSTLKOSTLCentro de coste.
SOBKZSOBKZIndicador de stock especial.
BUDAT_MKPF—Fecha de contabilización (copia de MKPF).

Cómo se une con otras tablas

TablaPor los camposPara qué
MKPFMBLNR + MJAHRCabecera: fechas, usuario, texto.
MARAMATNRDatos del material.
T156BWARTDefinición de la clase de movimiento.
EKPOEBELN + EBELPPosición del pedido de compra.
T001WWERKSCentro.

Generar un JOIN desde MSEG

Ejemplo

ABAP 7.5
" Entradas por pedido (101) de un centro en un rango de fechas
SELECT s~mblnr, s~mjahr, s~zeile, k~budat, s~matnr, s~menge, s~meins, s~ebeln
  FROM mkpf AS k
  INNER JOIN mseg AS s
    ON  s~mblnr = k~mblnr
    AND s~mjahr = k~mjahr
  WHERE k~budat BETWEEN @lv_desde AND @lv_hasta
    AND s~werks = @lv_werks
    AND s~bwart = '101'
  INTO TABLE @DATA(lt_entradas).

En S/4HANA: leyendo MATDOC

S/4HANA
" MATDOC reúne cabecera y posición en una sola tabla
SELECT mblnr, mjahr, zeile, budat, matnr, menge, meins, ebeln
  FROM matdoc
  WHERE budat BETWEEN @lv_desde AND @lv_hasta
    AND werks = @lv_werks
    AND bwart = '101'
  INTO TABLE @DATA(lt_entradas).

Transacciones y consulta

Transacciones que la usan

MIGOMB51MB03MMBE

Cómo consultarla

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

Rendimiento: errores típicos

  • Filtrar solo por material o centro: MSEG crece muy rápido. Limita siempre por fecha (BUDAT en MKPF o BUDAT_MKPF) o por documento.
  • Calcular el stock sumando MSEG: en ECC el stock actual ya está en MARD y MCHB; sumar movimientos es lento y propenso a errores.

Relacionadas

Tablas relacionadas

MKPFMARDMARAT156EKBE

Más en M

MAKTMAPLMARCMARMMATDOCMBEWMCHAMCHBMKALMSLBMVKE

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