#1
|
|||
|
|||
Consulta con programacion
Hola soy nuevo en el mundo abap y no tuve ninguna capacitacion hasta el momento, solo ando empezando a programar x mi mismo y tengo el siguiente problema en la lineas de codigos:
select KUNNR LAND1 NAME1 KUKLA INTO TABLE gt_data from KNA1 where KUNNR in p_KUNNR. P_LAND1 = gt_data-LAND1. SELECT LANDX INTO TABLE gt_data from T005T where LAND1 EQ p_LAND1 and SPRAS eq p_SPRAS. ------------------- El campo gt_data-LAND1 no me levanta el dato q ahi en la tabla interna en este caso es DE para la prueva que estoy haciendo. Y cuando lo completo debugueando el campo LANDX en el siguiente selec me reempleza el dato de KUNNR y los demas me los borra. Es un alv simple q estoy haciendo para aprender a manejarme entre tablas y busquesdas. Alguien tiene alguna idea de porque esta pasando esto. Tengan en consideracion q soy muy nuevo y estoy solo en esto no me maten x hacer esa animalada de arriba |
#2
|
||||
|
||||
Te recomiendo que realices un JOIN entre las tablas KNA1 y T005T a travez del campo LAND1 ó traes los datos de la KNA1 con un FOR ALL ENTRIES a la T005T luego recorres la taba interna con los datos recuperados de la KNA1 y dentro una lectura a la T005T.
Saludos.
__________________
Sebastián Chiavia |
#3
|
|||
|
|||
Gracias x la ayuda pero nose nada de eso como comente soy muy nuevo y prefiero x el momento hacerlo asi de sencillo, no ahi alguna forma de modificar lo q hice y arreglarlo ?
|
#4
|
||||
|
||||
Hola, aparentemente está todo bien.
Podría ser problemas en la definicion en la tabla interna gt_data. Si te parece copia el programa completo o por lo menos la parte de definicion y seleccion de datos y lo vemos. Saludos, |
#5
|
|||
|
|||
Este es el programa:
REPORT Y_PRUEBA_2011_03_02. *----------------------------------------------------------------------- * DECLARACIÓN DE TABLAS *----------------------------------------------------------------------- tables: KNA1, T005T. *----------------------------------------------------------------------- * DECLARACIÓN DE ESTRUCTURAS *----------------------------------------------------------------------- * Estructura para mostrar los datos de salida por ALV data: begin of gt_data OCCURS 0, KUNNR like KNA1-KUNNR, "Cliente LAND1 like KNA1-LAND1, "Pais NAME1 like KNA1-NAME1, "Nombre KUKLA like KNA1-KUKLA, "Clase de Cliente LANDX like T005T-LANDX, " Descripcion Pais end of gt_data. DATA: P_LAND1 LIKE KNA1-LAND1. *----------------------------------------------------------------------- * DECLARACIÓN DE TYPE-POOLS *----------------------------------------------------------------------- type-pools: icon, slis, kkblo. *----------------------------------------------------------------------- * PARAMETROS DE SELECCIÓN *----------------------------------------------------------------------- selection-screen begin of block 1 with frame title text-001. select-options: p_KUNNR for KNA1-KUNNR. parameters: p_SPRAS like T005T-SPRAS obligatory default 'ES'. selection-screen end of block 1. *----------------------------------------------------------------------- * START OF SELECTION *----------------------------------------------------------------------- start-of-selection. select KUNNR LAND1 NAME1 KUKLA INTO TABLE gt_data from KNA1 where KUNNR in p_KUNNR. P_LAND1 = gt_data-LAND1. SELECT LANDX INTO TABLE gt_data from T005T where LAND1 EQ p_LAND1 and SPRAS eq p_SPRAS. * Muestro el ALV perform ejecutar_alv tables gt_data. Lo del perform esta bien xq ya lo use y aprendi bastante sobre eso en otros, ademas q debaguando veo como se me borra la tabla gt_data. |
#6
|
||||
|
||||
Bien si queres que funcione de esa mantera tenes que hacer los siguientes cambios
de todas maneras esto te va a traer la denominación de un solo país, el primero por el index 1 del read table. me explico?
__________________
Sebastián Chiavia |
#7
|
|||
|
|||
Con las modificaciones q me comentaste @mysmb2 me trae perfecto el campo nombre pais pero los demas me los muestra en blanco, al leer la t005t los borra nose xq.
|
#8
|
||||
|
||||
Pues claro que te los borra pq estas utilizando la misma tabla, si no quieres hacerlo como te mencionaron con join, entonces debes recorrer la tabla e irla modificando pq si haces un insert into obviamente te va a borrar los datos que ya tenías..
__________________
"Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein |
#9
|
||||
|
||||
reemplaza los select por este
tambien cambia el valor por defecto de p_spras por 'S' ya que internamente SAP maneja un solo caracter para el idioma y si lo dejas como esta te toma el primero y 'E' es idioma ingles.
__________________
Sebastián Chiavia |
#10
|
|||
|
|||
Muchas gracias no entendia xq me tomaba el EN cuando ponia ES. !! Gracias a todos ! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|