Ayuda SAP

Como obtener datos c/s imputacion solpeds en Query

Buen dia estoy generando un reporte de seguimiento de solicitudes de pedido con ordenes de compra, estoy relacionando las tablas EBAN y EKPO, obteniendo los datos requeridos y al cual le quiero añadir algunos campos de la tabla EBKN, al momento de ejecutar el programa obtengo solo los registros que están en la tabla EBKN (las que tienen imputación) y cuando ingreso una solicitud de pedido que no tiene imputación me manda el siguiente mensaje:
image
Mi filtrado de búsqueda es:
image
¿Como puedo extraer los datos de ambas tablas en el mismo reporte?
image

1 me gusta

Saludos,

Me ha pasado a mi tambien eso, trata de hacer el enlace solo con el campo EBELN ya que esta en las 3 tablas y no deje que el sistema lo haga por ti. Luego de hacerlo lo ejecutas de nuevo y nos deja saber.

@Rafael_August Buen dia ya lo intente ahora veo que me duplica los registros, otra manera en la que pueda unir estas 3 tablas?

Hola.
¿Tienes el código Abap del select?

1 me gusta

Saluods,

Puedes enviar una relación de las tables con el nueva enlaces para ver como han quedado, creo que aún algo anda mal.

Mira te muestro los enlaces de la relación de las tablas, las modifique como me comentabas:


Quedo al pendiente de sus comentarios.
Saludos

No tienes la consulta SQL? sería mucho más fácil ver como esta organizada y que datos esta recibiendo

Saludos,

¿Para el query estas usando la transaccion SQVI - QuickViewer?

No, uso SQ01/SQ02/SQ03.

Buen dia les comparto el codigo abap del reporte @silvanacpv @Alonso_mx


Declaracion de tablas:

Filtro de busqueda:
image
Funcion de seleccion:

Si me pueden apoyar en que estoy mal o que necesito hacer para que me muestre lo requerido, se los agradesco ante mano, Saludos.

Según veo en tu consulta, estás filtrando por Imputación (BANFN), Centro (WERKS), Fecha(BADAT), Responsable(ERNAM); En estos datos del WHERE no tienes el campo EBELN ya sea referenciado a la tabla EKPO y EKKO. Por lo tanto, aunque lo ingreses en la pantalla de selección esa orden de compra no la estas incluyendo en el filtro de la consulta

Espero te sirva

No, mi filtrado de búsqueda la hago por la tabla EBAN
**image **
donde vez esa consulta en mi codigo

Exacto, lo haces siempre por la EBAN, por eso de forma natural si no tienen una imputación es imposible que encuentre una Orden de compra.

Yo creo que tu consulta principal siempre debe de ser a la EKPO, si quieres buscar por orden de compra y por imputación el filtro del WHERE Quedaría algo así:

WHERE ebeln IN sp$000001 "Estos datos depende de tu pantalla de selección
   OR BANFN IN sp&0000002.

Me gustaría ayudarte directamente con las transacciones que utilizas pero nunca las he usado

Esta es tu consulta:

Te dejo este mini programa para intentar explicame mejor, en el puedes buscar por orden de compra o por solicitud de pedido.
Lo más importante para ti esta entre asteriscos, lo puedes copiar y pegar en tu sistema y de debe de funcionar como ejemplo

*&---------------------------------------------------------------------*
*& Report  ZTEST_EKPO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ztest_ekpo.

TYPES: BEGIN OF ty_salida,
        ebeln TYPE ebeln,
        ebelp TYPE ebelp,
        banfn TYPE banfn,
        bnfpo TYPE bnfpo,
        werks TYPE werks_d,
        zebkn	TYPE dzebkn,
        loekz	TYPE eloek,
        sakto TYPE saknr,
      END OF ty_salida.

DATA: gt_salida TYPE TABLE OF ty_salida,
      gs_salida LIKE LINE OF gt_salida.


* Parámetros de selección
SELECTION-SCREEN BEGIN OF BLOCK b1.
SELECT-OPTIONS: so_ebeln FOR gs_salida-ebeln,
                so_banfn FOR gs_salida-banfn.
SELECTION-SCREEN END OF BLOCK b1.


* Inicio del proceso del programa
START-OF-SELECTION.
**********************************************************************
**********************************************************************
  SELECT a~ebeln a~ebelp b~banfn b~bnfpo b~werks c~zebkn c~loekz c~sakto UP TO 100 ROWS
    FROM ekpo AS a
    INNER JOIN eban AS b ON b~banfn EQ a~banfn
    INNER JOIN ebkn AS c ON c~banfn EQ c~banfn
    INTO TABLE gt_salida
    WHERE a~ebeln IN so_ebeln
       OR b~banfn IN so_banfn.
**********************************************************************
**********************************************************************

*  Reporte ALV
  DATA: gr_alv    TYPE REF TO cl_salv_table.

  TRY.
      cl_salv_table=>factory(
        IMPORTING
          r_salv_table = gr_alv
        CHANGING
          t_table      = gt_salida ).
    CATCH cx_salv_msg.
  ENDTRY.

  DATA functions TYPE REF TO cl_salv_functions_list.

  functions = gr_alv->get_functions( ).
  functions->set_all( ).

  gr_alv->display( ).

Es que lo requerido es el seguimiento de las solicitudes de pedido por centro, fecha y usuario, así como también una solicitud en específico. donde visualizar las solicitudes que tienen imputación y como ya sabemos las que son inventariables no llevan imputación.

Lo que me a funcionado es usar solo las tablas EBAN y EKPO más sin embargo es necesario la tabla EBKN para que me muestre los datos que contienen una imputación o como puedo extraer los campos necesarios para mostrar en el reporte:
Ejemplo:
Buscar las solicitudes de pedido del usuario PM-USR01 del 01.01.2019 al 31.12.2019 del centro 2100.

Los parámetros de selección son que muestre el numero de solicitud y su posición, número material, texto breve, cantidad solicitada, precio, liberaciones, con y sin imputación(cta mayor,act.fijo,CeCo,orden),fe.pedido,creado por, número de pedido y posición, cantidad pedida, precio de compra, entre otros.

el problema es que al unir la tabla EBKN solo me muestra las solicitudes que llevan una imputación y lo requerido es que muestre el listado de solped c/s imputación, porque la otra forma que veo es separar en 2 reportes uno con solicitudes con imputación y en otro de solicitudes sin imputación, que no es lo debido.

Las transacciones que utilizas yo no las se usar pero viendo tu imagen tengo una sugerencia que no se si sea posible de realizar.

Según la imagen entiendo:

  1. buscas en la tabla EBAN las solicitudes de pedido
  2. con los campos BANFN y BANPO de la tabla EBAN, buscas en la tabla EBKN
  3. con los campos BANFN y BANPO de la tabla EBKN, buscas en la tabla EKPO.

Entonces yo digo que tienes que ligar la tabla EBAN con la EKPO y la misma tabla EBAN con la EBKN. Entre la EKPO y la EBKN, no necesitas que estén relacionadas, por que todo depende se la EBAN.

No se si me explique

@Alonso_mx tampoco de esa manera me funciono

image

Me trae puras solpeds con imputación:

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