MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Consulta con programacion (foro/showthread.php?t=42136)

Jonathan.sochan 11/03/11 12:53:54

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

mysmb2 11/03/11 13:32:28

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.

Jonathan.sochan 11/03/11 13:34:49

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 ?

hugoa77 11/03/11 13:41:24

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,

Jonathan.sochan 11/03/11 13:43:43

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.

mysmb2 11/03/11 13:47:34

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?

Jonathan.sochan 11/03/11 14:02:47

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.

stormshadow 11/03/11 14:02:51

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..

mysmb2 11/03/11 14:18:46

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.

Jonathan.sochan 11/03/11 14:31:42



Muchas gracias no entendia xq me tomaba el EN cuando ponia ES. !!

Gracias a todos !


Husos Horarios son GMT. La hora en este momento es 06:58:11.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web