MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 25/04/06, 16:43:51
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Question 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
Responder Con Cita
  #2  
Viejo 25/04/06, 17:17:35
tato tato is offline
Junior Member
 
Fecha de Ingreso: feb 2006
Mensajes: 18
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
Responder Con Cita
  #3  
Viejo 25/04/06, 17:57:21
tato tato is offline
Junior Member
 
Fecha de Ingreso: feb 2006
Mensajes: 18
DCErick, acabo de terminar de probar el UPLOAD con una tabla interna con un campo numerico y no tuvo ningun problema.

Saludos
TaTo
Responder Con Cita
  #4  
Viejo 25/04/06, 20:08:45
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Podrias pasarme ese codigo TATO???

Por que ami se me ponen los datos del txt todos chuecos...
Responder Con Cita
  #5  
Viejo 25/04/06, 20:32:34
tato tato is offline
Junior Member
 
Fecha de Ingreso: feb 2006
Mensajes: 18
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
Archivos Adjuntos
Tipo de Archivo: txt Prueba UPLOAD.txt (2.6 KB, 50 visitas)
Responder Con Cita
  #6  
Viejo 25/04/06, 21:59:34
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Horale yo no sabia que esto se podia hacer

str2(3) TYPE n,<---- Eso significa que es un numeric de 3 posiciones???
Responder Con Cita
  #7  
Viejo 25/04/06, 22:19:28
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Talking

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....
Responder Con Cita
  #8  
Viejo 26/04/06, 04:36:01
Avatar de Marco
Marco Marco is offline
Senior Member
 
Fecha de Ingreso: abr 2006
Mensajes: 141
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.
Responder Con Cita
  #9  
Viejo 26/04/06, 15:07:42
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
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.
Responder Con Cita
  #10  
Viejo 27/04/06, 11:37:33
sap2006 sap2006 is offline
Senior Member
 
Fecha de Ingreso: mar 2006
Mensajes: 134
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 21:15:32.


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