Tablas para crear reporte QuickView

Buenos dias a todos

Queria ver si alguien me podria ayudar a resolver un query, en realidad quickview que luego pasaria a query cuando me den los permisos.
La idea es que el reporte me muestre algo similar a esto;

Es decir, tipear ordenes de compras facturadas, que muestre remito y las facturas registradas por la MIRO,y todas sus lineas registradas.
Y de ser posible que me identifique las OC pendientes de registrar.

He llegado a algo similar pero solo me muestra una linea y no todas las lineas que contempla la factura, a traves de las tablas
RBKP-RSEG-EKBE

Alguien me podria orientar que me estaria faltando para que me muestre todas las lineas?

Desde ya muchas gracias!
Saludos colegas

Hola buenos días.
Lo primero e ideal en tu primer post es pasar por Presentaciones y luego que edites y categorices correctamente su post, creo que esto no es Business One.

Buenos dias
Entiendo que me editaron la publicacion y me la pusieron en B.O, y tambien ya me presente… saludos

:heavy_heart_exclamation: Importante :exclamation: La siguiente respuesta es generada por nuestro Robot de la comunidad de Consultoria-SAP.com denominado “CSAPBOT” usando tecnología de inteligencia artificial. Por lo tanto, puede haber datos incorrectos. No podemos garantizar que la información sea 100% correcta, solo consultores SAP profesionales podrían verificar la información. Muchos consultores leen nuestros foros de Ayuda SAP y lamentablemente pocos ayudan respondiendo y confirmando la información.

Si deseas aportar tus ideas para mejorar nuestros sistemas, te esperamos en este debate.


¡Buenos días! Entiendo que el objetivo es crear un reporte que muestre todas las líneas de las facturas relacionadas con las órdenes de compra y los documentos de remito en SAP, utilizando las tablas RBKP, RSEG y EKBE. Además, necesitas identificar aquellas órdenes de compra que aún están pendientes de registrar en MIRO.

A continuación, te explico cómo podrías construir el query, y lo que podrías estar pasando por alto para que el reporte te muestre todas las líneas de las facturas y no solo una.

Tablas Clave a Utilizar:

  1. RBKP: Tabla de cabecera de documentos de facturación.
  2. RSEG: Tabla de posiciones de los documentos de facturación.
  3. EKBE: Historial de documentos de compras (registro de movimientos de materiales, facturas, etc.).

Relación entre las tablas:

  • La tabla RBKP está vinculada con RSEG mediante el campo BELNR (número de documento de facturación) y GJAHR (año fiscal).
  • La tabla RSEG te proporcionará las posiciones de cada factura, y se puede unir con EKBE a través del número de orden de compra (EBELN) y la posición de orden (EBELP) para obtener los documentos de movimientos, como los remitos y recepciones de mercancías.

Consideraciones para Mostrar Todas las Líneas:

Probablemente el problema que estás enfrentando con tu consulta es que solo estás trayendo una línea por factura debido a que no estás considerando todas las posiciones de la tabla RSEG o EKBE. Debes asegurarte de hacer un join adecuado para que te traiga todas las posiciones relacionadas.

Estructura Básica del Query

Aquí te dejo un esqueleto básico de cómo debería estar estructurado el query. Posteriormente, lo puedes adaptar a un QuickView o Query:

SELECT 
  rbkp.belnr AS num_factura,
  rbkp.budat AS fecha_factura,
  ekko.ebeln AS num_oc,
  ekpo.ebelp AS pos_oc,
  rseg.menge AS cantidad_factura,
  rseg.wrbtr AS valor_factura,
  ekbe.mblnr AS num_remito,
  ekbe.matnr AS material,
  ekbe.menge AS cantidad_remito
FROM 
  rbkp
INNER JOIN rseg 
  ON rbkp.belnr = rseg.belnr
  AND rbkp.gjahr = rseg.gjahr
INNER JOIN ekbe
  ON rseg.ebeln = ekbe.ebeln
  AND rseg.ebelp = ekbe.ebelp
INNER JOIN ekko
  ON rseg.ebeln = ekko.ebeln
INNER JOIN ekpo
  ON ekpo.ebeln = rseg.ebeln
  AND ekpo.ebelp = rseg.ebelp
WHERE 
  ekbe.bwart IN ('101', '105') -- Movimientos de mercancías válidos
  AND rseg.menge > 0 -- Para asegurar que se registraron movimientos de cantidades
ORDER BY 
  rbkp.belnr, ekpo.ebelp;

Explicación del Query:

  1. RBKP y RSEG: Estas tablas están relacionadas para obtener la cabecera de la factura y las posiciones de la misma.
  2. EKBE: La tabla de historial de documentos te permitirá obtener información sobre los remitos y otros documentos de recepción de mercancías o devoluciones.
  3. Filtros: He incluido un filtro en la tabla EKBE con BWART para traer únicamente los movimientos de mercancías válidos, como la recepción de materiales (101, 105). Esto puede ajustarse según tu necesidad.
  4. Orden de Compra: Se relacionan EKPO y EKKO para traer las posiciones y la cabecera de la orden de compra.
  5. Pendientes de registrar: Si necesitas identificar órdenes de compra que aún no están registradas en MIRO, puedes hacer un LEFT JOIN con las tablas de facturas y verificar si existen o no registros en RBKP y RSEG.

Identificar OC Pendientes de Registrar

Para identificar las órdenes de compra pendientes de registrar, puedes hacer un LEFT JOIN entre EKPO y RSEG. Aquellas órdenes de compra que no tengan un registro en RSEG serían las pendientes de registrar en MIRO:

SELECT 
  ekko.ebeln AS num_oc,
  ekpo.ebelp AS pos_oc,
  ekpo.menge AS cantidad_oc,
  COALESCE(rseg.belnr, 'PENDIENTE') AS num_factura
FROM 
  ekpo
LEFT JOIN rseg
  ON ekpo.ebeln = rseg.ebeln
  AND ekpo.ebelp = rseg.ebelp
LEFT JOIN rbkp
  ON rseg.belnr = rbkp.belnr
WHERE 
  rseg.belnr IS NULL -- Filtro para encontrar OC sin facturas registradas
ORDER BY 
  ekko.ebeln, ekpo.ebelp;

Resumen Consultoria-SAP:

Con esta estructura de consultas, lograrás obtener el detalle completo de todas las líneas de las facturas y remitos relacionados con las órdenes de compra. Además, podrás identificar aquellas órdenes de compra que aún no han sido registradas en MIRO. Este reporte es particularmente útil en el módulo de MM (Material Management) y FI (Financial Accounting), ya que combina la información de facturas y movimientos de mercancías con la gestión de órdenes de compra.

¡Estamos aquí para ayudarte!

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.