PDA

Ver la Versión Completa : IMPORT i_table FROM MEMORY ID vg_id


yagoanton
06/02/08, 10:34:28
Buenas a tod@s.:p
Estoy revisando un programa SAP y me he topado con esta sentencia.

import i_vbpa from memory id 'VBPA'.
export i_vbpa to memory id 'VBPA'.

No viene muy bien explicado en la ayuda de SAP.
Alguien me puede decir que es lo que hace esta sentencia?
Tiene que venir el Import seguido de un export? o puede ir el import solo?
Me da un dump en el Import (Parece ser que el error es por la diferencia de longitud...pero ¿De que?)

La tabla está declarada de la siguiente manera:
data: begin of i_vbpa occurs 1.
include structure vbpavb.
data: end of i_vbpa.

Si alguien me puede ayudar...se lo agradeceré.
Un saludo a todos y gracias de antemano!
:o

abapconsultoria
06/02/08, 11:53:13
Que tal.

Te comento las sentencia import/export extraen y colocan variables en memoria respectivamente.

La memoria donde estas intrucciones ubican los datos se denomina memoria ABAP y es una memoria comun dentro de session externa.

Estas sirve por ejemplo para pasar datos entre programas. que se ejecutan dentro de la misma session externa.

Con el import se sube a la memoria y con el export se recupera.

Lo que se le pasa es una variable donde se colocan los datos a tratar y se les asigna un ID para poder identificarlos.

Generalmente el export esta antes que el import.

Nunca me dio un dump por ese motivo... por las dudas intenta declarar la tabla de tipo occurs 0. No creo que tenga mucho que ver pero podriamos ver que pasa. Para dar un diasnostico mas serio podrias pegar el DUMP aqui ??

Saludos

yagoanton
06/02/08, 12:05:34
OK!
Intentaré declarar "OCCURS 0".
de todas formas te adjunto el DUMP.

Otra cosa que puede servir, es que justo antes de declarar:

import i_vbap from memory id 'VBAP'.
import i_vbpa from memory id 'VBPA'.
export i_vbpa to memory id 'VBPA'.

Como ves tenemos dos "import" a la misma memoria..puede ir por ahí los tiros?

Bueno seguiré investigando.
muchas gracias.

abapconsultoria
06/02/08, 17:42:56
No hay problema con que se haga 2 veces import o export.... es lo mismo a lo sumo lo pisa o lo lee 2 veces dependiendo de que estes haciendo. Eso no proboca dump.

Por otro lado si podes enviame el dump entero con el vuelco de memoria.

Por otro lado veo que el problema es la longitud... con que longitud estas subiendo la estructura/tabla ??

Si podes pasame las partes de codigo donde exportas e importas las ordenes.

Saludos.

yagoanton
07/02/08, 07:50:55
Buenas.
Lo primero agradecerte la ayuda.
Te envio el DUMP completo.
No lo declaro antes, ese "import" es la primera llamada a esa estructura "i_vbpa".

Si necesitas algo mas....pidelo, ok?
Gracias de nuevo!

yagoanton
13/02/08, 10:31:20
EL tema era que se debía llnar la memoria con valores no validos.
Ademas de limpiarla antes de entrar en este programa "Z" se le ha puesto al import la variable ACCEPTING TRUNCATION, com muestro:
import i_vbpa from memory id 'VBPA' ACCEPTING TRUNCATION.

Bueno espero que esto ayude a alguien.
Un saudo.
:)