Ver Mensaje Individual
  #2  
Viejo 18/01/16, 11:34:30
monkeyisland1 monkeyisland1 is offline
Junior Member
 
Fecha de Ingreso: jun 2012
Mensajes: 15
Tabvlas internas

Buenas compañero.

El uso de tablas internas es fundamental en SAP.

Los RANGOS, son parejos a las tablas internas, pero se usan para tener varios valores de un campo. En tu caso por ejemplo, el S_EBELN es un RANGO para indicar varios documentos (pedidos...). En un rango se pueden indicar valores fijos (EQ), valores desde-hasta (BT), etc.

Las tablas internas puedes definirlas a medida, con o sin cabecera (el work área) o en base a otras tablas o TIPOS (TYPES) predefinidos para crear varias tablas internas, como has hecho en tu ejemplo. Por ejemplo: TI_EKPO type table of EKPO, definirías una tabla interna con la estructura de la tabla EKPO. O por ejemplo, TI_EKPO LIKE EKPO OCCURS 0... lo mismo.

Cuando haces:

SELECT EBELN VGABE BELNR WAERS
FROM EKBE
INTO TABLE LT_EKBE
WHERE EBELN IN WA_EKBE-EBELN

no creo que haga gran cosa, porque cuando haces una selección multiple a una tabla BBDD, usando una tabla interna, le tienes que indicar el campo a usar:

SELECT EBELN VGABE BELNR WAERS
FROM EKBE
INTO TABLE LT_EKBE
WHERE EBELN = LT_EKBE-EBELN .

Asi, seleccionarías todos los registros de la EKBE cuyos documentos EBELN estén en tu tabla LT_EKBE.

En la SELECT los IN se suelen usar entre otros para los rangos o los selec-options o cadenas de valores.

Si tienes varias tablas internas y quieres recuperar o leer otras tablas internas dentro, no te quedara otra que hacer varios LOOPS encadenados, o hacer un READ TABLE dentro de un LOOP, etc. Dependiendo de lo que quieres hacer.

Espero haberte ayudado un poco ...
Responder Con Cita