Creación de un listado de clientes

lo primero que deberia pasar es que llegue a la subrutina PERFORM DATOS…ahi deberia pasar si o si, lo que veo que te pueda condicionar lo demas es el IF SY-SUBRC NE 0 que tienes luego del select a la KNVP

Si no llega a los demas select es porque ese select (tabla KNVP) no te funciono, ya lo debugeaste ???

Si ya lo debuggie pero del primer select de una salta al endselect y llega hasta el alv y no trae nada de datos no entinedo que esta pasando igual quiero aprender sus aportes me sirven mucho para sacar adelante mi reporte gracias @canuto @adalove @sconoredhot

estos son los datos de ese primer select que debo mostrar

ten en cuenta que los campos vkbur y vkgrp son de tipo char de 4 y 3 respectivamente comprueba que estas haciendo la búsqueda con valores que estan tal cual en la tabla , no es lo mimo ‘0001’ que ‘001’ que ‘01’ … si no se lo pasas tal cual no te devuelve nada, por eso te preguntaba si con los valores del where en la tabla te encuentra algún registro.
cuando un select no me devuelve nada lo compruebo en la se16n o en la se11 a veces estamos pasando mal un parametro.

estos son los valores que busque en la se16 y se11 están igual.

VKGRP TYPE KNVV-VKGRP DEFAULT ‘004’ OBLIGATORY.

asi esta mejor @adalove

selection-screen begin of block text-001 with frame title text-004.
parameters: vkbur type knvv-vkbur default '0004' obligatory,
            vkgrp type knvv-vkgrp default '008' obligatory.
selection-screen end of block text-001.


Estuve probando un poco tu código y vi dos cosas por el momento:

Le falta en la declaración de datos el TYPE-POOLS: SLIS para que funcione el ALV y no te de error.

Y luego, hay que tener mucho cuidado al realizar el select a la KNVP, porque el campo PARVW tiene una rutina de conversión, es decir, quizás en la tabla te aparece como ‘VE’ pero está grabado con un valor distinto.

Si te fijas en el dominio, tiene estas funciones para modificar el valor:

CONVERSION_EXIT_PARVW_INPUT
CONVERSION_EXIT_PARVW_OUTPUT

Por ejemplo:

Quizás para probar rápido podés sacarle ese filtro y si te trae datos ya te das cuenta que ese es el problema.

Saludos.

1 me gusta

es que como tu sabes apenas estoy empezando quisiera saber como ingresar ahí o si es por la se37

porque no me arroja nada ninguno de los dos ni input ni output?
:open_mouth:

Sería algo así en el código:

    DATA: lv_parvw TYPE parvw.

    CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'
      EXPORTING
        input  = 'VE'
      IMPORTING
        output = lv_parvw.

    SELECT SINGLE pernr
     INTO knvp-pernr
      FROM knvp
       WHERE kunnr EQ knvv-kunnr
        AND parvw EQ lv_parvw.

Sigue probando y nos dices.

Hola amigos no tengo mucho tiempo, pero les dejare esto por aquí a ver si lo quieren probar en la SE38 “Solo que no se le verían los textos”, no incluí campos de la tabla PA0001, pero agregue otros campos importantes en mi caso el sector y la función de interlocutor. Ademas que les recomiendo no utilizar filtros en el código, en mi caso los coloco como Campos de selección obligatorios, y coloco por defecto el mas usado.

Pantalla se Selección o delimitación:

Resultado:

Colocare el Código en 2 temas je, porque me arrojo este mensaje el foro:

porque pasa esto cuando hago el debuggin se que si sale sy-subrc 4 no esta haciendo la consulta será que aun sigue mi código mal?

Te recomiendo hacer lo siguiente:

En el primer select, habria que ver que valor tiene KNVV-KUNNR (lo ves por debug de la misma manera que ves el sy-subrc).

Con eso, te vas a la SE16 y compruebas si hay un registro para el KUNNR + PARVW + PERNR que estás poniendo como filtro para la KNVP.

Si el registro efectivamente existe, es posible que esté jodiendo la rutina de conversión que te comenté más arriba, y quizás antes del select tengas que llamar a la función (arriba te pasé el código para llamarla).

Saludos,
Sebastián

@sconoredhot El registro que me trae la knvv-kunnr no existe en la knvp que pasaría en este caso


coji ese valor y lo mire en la tabla knvp y no hay registros

Es que entonces está bien que te haya dado SY-SUBRC = 4. Significa que no encontró registro.

Para poder hacer una prueba completa necesitas que haya registros, un caso de prueba.

Los que te pidieron el requerimiento, ¿te pasaron algo más, como qué registros debe traer o algo así?

Saludos.

Yo entiendo que están todos a full, pero el debate se está haciendo una bola de códigos, subiré los códigos al repositorio:

Por favor, sería buenísimo si los desarrolladores o la autora del debate @luisa_aldana2, pueden pasar el código final que estás usando para este listado.

1 me gusta

Amigos disculpe pero no tengo el codigo excelente voy a esperar que hagan pruebas y de una la subo al repositorio :slight_smile:

1 me gusta