MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Error al Inserta TInterna a T. Zeta. (foro/showthread.php?t=434)

DCErick 25/04/06 16:43:51

Error al Inserta TInterna a T. Zeta.
 
Existe alguna funcion para convertir tipo de datos....

Por ejemplo de string a numerico.....???

Lo que pasa es que quiero insertar el contenido de una tabla interna a una tabla Z... Pero hay un campo de la tabla Z que es de tipo Numerico y la tabla interna lo tiene Char(03)....

DATA: BEGIN OF t_zeket OCCURS 0,
ebeln(10),
ebelp(03),
talla(04),
cantidad(15),
diferencia(15),
END OF t_zeket.

Se declaro char por que es una tabla que se usa para leer un fichero txt que se encuentra en la PC donde se ejecuta SAPGui..

Y cuando trato de hacer lo siguiente

LOOP AT t_zeket.
t_zeket-ebeln = e_foliotraslado.
INSERT INTO zeket VALUES t_zeket.
ENDLOOP.

Me marca error : The work area "T_ZEKET" is not long enough. long enough.

Que es lo que deberia de hacer en este caso:confused:

tato 25/04/06 17:17:35

DCErick, como estas?
En principio lo que podes hacer, si es que todavia no lo hiciste, es poner el campo como numerico ya que, si no me equivoco tendria que funcionarte. Yo igual mientras tanto lo pruebo para estar seguro.
En caso de que me este confundiendo, y otra alternativa no muy prolija pero que funciona, es generar otra tabla interna que sea un campo largo string, despues, recorriendo esa tabla, pasas los valores a la t_zeket (que previamente formateaste con los valores correctos) y formateas el campo que necesitas dentro de ese loop.
De todas formas deja que averigue porque existen funciones para realizar esas conversiones.

Espero que te sirva.
Saludos
TaTo

tato 25/04/06 17:57:21

DCErick, acabo de terminar de probar el UPLOAD con una tabla interna con un campo numerico y no tuvo ningun problema.

Saludos
TaTo

DCErick 25/04/06 20:08:45

Podrias pasarme ese codigo TATO???

Por que ami se me ponen los datos del txt todos chuecos...:mad:

tato 25/04/06 20:32:34

1 Adjunto(s)
DCErick:
Genera en principio un archivo txt para probar el prg que te voy a pasar con dos campos, o sea que tengan el largo de los campos, en este caso son 19 caracteres en total.
Ej.:
1600000000000001001

Los primeros 16 serian un nº de doc y los ultimos 3 de posicion.
Nombralo como quieras y ubicalo en el directorio raiz o donde mas te guste.
Si queres tambien podes debbugearlo para ver de que forma te pone estos datos en la tabla interna.

Fijate y avisame
Saludos
TaTo

DCErick 25/04/06 21:59:34

Horale yo no sabia que esto se podia hacer

str2(3) TYPE n,<---- Eso significa que es un numeric de 3 posiciones???

DCErick 25/04/06 22:19:28

Bueno le puse como me dices pero me sigue marcando el mismo error...

logre hacerlo declarando la tabla interna de la siguente manera

DATA: t_zeket LIKE zeket OCCURS 0 WITH HEADER LINE.:)

Gracias mano....:D

Marco 26/04/06 04:36:01

Hola,
Al parecer quieres pasar un dato en una variable CHAR a una variable NUM (numerico)... El error que te sale es que la cadena es muy grande... Bueno el comando MOVE soporta conversiones de cadena a numerico, siempre y cuando sean numeros los datos de tu variable CHAR (o string).

MOVE var_str TO var_num.

Esto te va a pasar el valor, solo tienes q ver la posicion porq te lo pega al lado derecho creo. Si tienes tiempo prueba esta opcion. ;)

DCErick 26/04/06 15:07:42

Hola Marco... lo que pasa es que el error me lo marca en la linea del insert...

LOOP AT t_zeket.
t_zeket-ebeln = e_foliotraslado.
INSERT INTO zeket VALUES t_zeket.<----Aqui.
ENDLOOP.

Me marca error : The work area "T_ZEKET" is not long enough. long enough.

sap2006 27/04/06 11:37:33

Cuando aparece este error "..long enough" significa que las dos tablas que estas tratando no tienen la misma cantidad de campos, por lo tanto en T_ZEKET hay menos campos que en ZEKET. Salu2


Husos Horarios son GMT. La hora en este momento es 07:39:55.

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