PDA

Ver la Versión Completa : cl_gui_frontend_services=>gui_download y servidores


cosagaucha
02/09/10, 15:22:27
Hola gente,
estoy usando este metodo para bajar la tabla de datos a un archivo en mi pc, y eso anda OK, el tema es que ahora necesito cambiar el folder local, a un folder en un servidor de red x, donde el path logico es de la forma '\\10.20.xx.xx\' mas el nombre del archivo.

El tema es que por mas que tengo acceso a esa carpeta y puedo crear archivos, este metodo no me esta generando el archivo en el servidor, a no ser que reemplace la ip de red, por una unidad mapeada: 'Y:\'

Hay alguna opcion que tocar en el metodo como para que me acepte la primer ruta? o tendre que cambiar de clase/metodo y usar el open dataset ?

gracias a todos!!

ballan
02/09/10, 16:08:10
Hace bastante tiempo recuerdo que la forma que tenia SAP de ver si te estabas refiriendo a una ruta local o de servidor era mirando el primer caracter de la ruta y si era una letra entonces era local y si era una "/" o "\" entonces era ruta de servidor por lo que es altamente probable que tanto este metodo como las funciones GUI_DOWNLOAD, WS_DOWNLOAD, etc "hereden" este chequeo y no dejen depositar el contenido de la tabla en una ruta que no empieze por letra asi que me temo que o mapean la unidad de red o tendras que utilizar open dataset

cosagaucha
02/09/10, 21:00:59
hola, gracias por responder!,

hice el codigo del open dataset, pero en la linea siguiente, el sy-subrc es 8 ... alguna idea del porque?...

gracias!!

Jonathan Barrio Rodriguez
03/09/10, 08:53:36
Me suena que era cuando no encontraba el archivo.

Hervie
03/09/10, 10:08:01
hola, gracias por responder!,

hice el codigo del open dataset, pero en la linea siguiente, el sy-subrc es 8 ... alguna idea del porque?...

gracias!!

Hola,
mete el trozo de codigo que utilizas para ver en qué puede fallar. No tengo mucha experiencia, pero esta parte ya la he tocado.

Hervie
03/09/10, 10:13:38
mira este hilo...

http://www.mundosap.com/foro/showthread.php?t=36253

cosagaucha
03/09/10, 12:54:01
hola, el código que uso es el siguiente:

OPEN DATASET v_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT MESSAGE d_msg_text.
IF sy-subrc = 0.
LOOP AT ti_arch2 INTO wa_arch2.
TRANSFER wa_arch2 TO v_file.
ENDLOOP.
ENDIF.
CLOSE DATASET v_file.

y debuggeandolo, cuando hago el open dataset.. el mensaje que se almacena en d_msg_text es: "no such file or directory".

Aunque la ruta es la correcta, y el usuario que lo ejecuto tiene permisos de creacion y modificacion de archivos, tanto sea desde el explorador de windows como desde dentro de sap...

Otra, el archivo ANTES de ejecutar el prg NO existe, pero... no lo deberia poder crear el open dataset???

Gracias!

cosagaucha
03/09/10, 13:15:08
mira este hilo...

http://www.mundosap.com/foro/showthread.php?t=36253

hola Hervie, en base al link que me pasaste, -gracias!- vi en la AL11, que por mas que yo busco en 2 tablas -path logico y nombre del archivo- esa ruta que yo compongo con los datos de las 2 tablas, NO Existe en la AL11, ese sera mi drama?

O sea, por mas que yo le doy la ruta "externa" de sap, si sap no la tiene en la AL11, no la va a reconocer?

gracias de nuevo!

straith
08/09/10, 14:33:01
Hola, pues si no has encontrado solución. Cambia el uso del método/clase por el open dataset.

La ruta deberá ser algo así "/usr/sap/mand/archivo" si el servidor es unix.

Verifica algún archivo ya existente si lo puedes leer sin problema poniendo la ruta de esta forma y fijate que te tira el sy-subrc.

La mas probable es que tengas algún error en la ruta o que desde SAP no tengas permiso para escribir en el directorio, algo que ya me ha pasado.

VLozano
09/09/10, 15:40:51
O sea, por mas que yo le doy la ruta "externa" de sap, si sap no la tiene en la AL11, no la va a reconocer?No sólo eso, sino que además, si la variable que utilizas para construir el path no acepta minúsculas, jamás conseguirás grabar el fichero.

Conceptos
1- Si intentas bajar el fichero a una unidad del PC, utiliza los métodos/objetos *GUI*
1.a) OJO! Esos objetos y/o métodos NO funcionan en proceso de fondo

2- Si intentas bajar el fichero a un directorio de SAP (AL11), debes utilizar DATASETs
2.a) OJO! Cuando selecciones/informes el directorio, hay que tener en cuenta las mayúsculas

Yo lo que haría en tu caso sería mapearme como unidad de red un directorio del servidor (Linux?) donde se aloja el SAP, que se corresponda con uno de los directorios de la AL11 (usr/sap/data...), y modificar el programa de tal forma que si trabajas en línea usara *GUI* y en fondo DATASET, sobre la unidad mapeada o el directorio AL11. El inconveniente de este sistema es que deberías mapear la misma unidad para todos los usuarios que vayan a ejecutar el programa.

Así que quizá, lo recomendable, es tirar de DATASET XD

(rizando el rizo, podrías mandárselo al usuario por mail :D )

vrpascual
10/02/11, 14:51:33
Buenas dia, ya no encuentro solucion de como hacer para bajar un archivo txt en la PC en una carpeta compartida. como el programa de ejecuta en JOB lo estoy tratando de bajar con open dataset pero no me lo baja :(
el codigo es el siguiente:
* Nombre Archivo
CONCATENATE p_fi1 'Data_EC_Ventas_SAP_' sy-datum '.txt' INTO p_fi1.


* Servidor UNIX - OPEN
OPEN DATASET p_fi1 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT MESSAGE vl_msg.

IF sy-subrc <> 0.
MESSAGE s060(zdsd) DISPLAY LIKE 'E' WITH vl_msg.
EXIT.
ENDIF.

* TRANSFER
LOOP AT ti_salida INTO wa_salida.
TRANSFER wa_salida TO p_fi1.
ENDLOOP.

* CLOSE
CLOSE DATASET p_fi1.

IF sy-subrc = 0.
* Se genero el archivo.
MESSAGE s060(zdsd) WITH text-013.
ENDIF.

Jonathan Barrio Rodriguez
11/02/11, 13:39:23
La sentencia par escribir un archivo en el servidor creo que era input mode y no output mode

¿ qué código de retorno te da SUBRC ?