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 22/11/16, 13:16:51
Vecino Vecino is offline
Member
 
Fecha de Ingreso: jun 2014
Mensajes: 39
Cambiar nombre de archivo en GUI_DOWNLOAD

Buenos días y gracias por adelantado.

Estoy creado mi primer programa, en él extraigo unos campos de una tabla, los llevo a una tabla interna y la descargo a mi C:\
En principio todo va perfecto.

Pero el problema es que el nombre del archivo debe ser la fecha ayer. He creado una variable en la que se calcula correctamente la fecha de ayer, pero no sé como hacer que el filename del archivo tome el nombre de variable.

Lo que he escrito es lo siguiente:

CONSTANTS LC_1 TYPE C VALUE '1'.

[...]

DATA: lv_fechahoy TYPE sy-datum.
DATA: lv_fechaayer TYPE sy-datum,
num_dias TYPE i.

lv_fechahoy = sy-datum.
num_dias = LC_1.
lv_fechaayer = lv_fechahoy - num_dias.

* Exportar
call function 'GUI_DOWNLOAD'
exporting
filename = 'C:\lv_fechaayer'
filetype = 'ASC'
write_field_separator = 'T'
TABLES
DATA_TAB = lt_/opt/vim_1head
EXCEPTIONS
file_write_error = 02
unknow_error = 07.

Con esto me crea un archivo en C:\ llamado lv_fechaayer
pero quiero que tome como nombre de campo la propia fecha de ayer.

Espero haberme explicado
Gracias
Responder Con Cita
  #2  
Viejo 22/11/16, 14:19:09
Vecino Vecino is offline
Member
 
Fecha de Ingreso: jun 2014
Mensajes: 39
Solucion encontrada

Hola

Ya lo he encontrado

1- He declarado una variable
DATA: lv_fichero TYPE string.

2- Y luego le he puesto como nombre la concatenacion de la fecha que saco de variable ya calculada.
CONCATENATE 'C:\' lv_fechaayer(4) lv_fechaayer+4(2) lv_fechaayer+6(2) '_VIM' INTO lv_fichero.

3- Finalmente en el 'GUI_DOWNLOAD' cambio el filename por la variable.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = lv_fichero
filetype = 'ASC'
write_field_separator = 'T'
TABLES
data_tab = lt_/opt/vim_1head
EXCEPTIONS
file_write_error = 02
unknow_error = 07.

Gracias en todo caso.
Vecino
Responder Con Cita
  #3  
Viejo 22/11/16, 14:25:13
Avatar de J e f f
J e f f J e f f is offline
Member
 
Fecha de Ingreso: nov 2007
Localización: Junín, Bs As, Argentina
Mensajes: 91

Buenas! Antes que nada hay que analizar una serie de cosas.
Primero es la fecha, si bien el restarle un dia a la fecha actual tiene sentido, solo es valida cuando la fecha se mayor al primero de cada mes, ya que sino, vas a restarle a 1 un 1, y te va a quedar un 20161100, y no queremos que suceda esto.
Por otro lado, cuando vos pones en la funcion el nombre del archivo, lo estas haciendo entre comillas, y esto hace que SAP lo tome como si fuera un texto, por eso sale el nombre de la variable en el archivo, y no el contenido.

Habiendo dicho esto, vamos por puntos.
En el segundo caso, lo que deberias hacer es crear una variable del mismo tipo que el parametro FILENAME de la funcion, este si te metes en la funcion es STRING.
Una vez tengas el parametro lv_filename, debes concatenar la ruta con la fecha, y meterlo en la variable que le pasaras a la funcion.

CONCATENATE 'C:\' lv_fechaayer INTO lv_filename. Resta pasarle la variable filename a la funcion.

Respecto a la fecha, podrias usar una funcion para restarle un dia a la fecha, y asi evitar el problema de que te quede una fecha con dia 00.
La siguiente funcion suma/resta dias a una fecha.

ADD_TIME_TO_DATE
En el parametro I_IDATE le pones la fecha de referencia.
En el I_TIME los dias que quieres restar/sumar, en este caso seria 1-.
Y en el O_IDATE recibes el resultado.
Puedes mirarla y probarla por la se37.

Espero te haya servido todo esto. Cualquier cosa, pregunta!
Saludos

EDIT: Me alegra que lo hayas podido resolver!!
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 10:39:31.


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