Está en la página 1de 7

RFCEXEC (La alternativa a WS_UPLOAD/WS_DOWNLOAD - incluso en fondo)

RFCEXEC: (La alternativa a WS_UPLOAD / WS_DOWNLOAD, incluso en proceso de fondo) Todo el mundo ha tenido problemas para subir/bajar ficheros desde/hacia una PC, si el programa ABAP est siendo ejecutado en fondo o en BATCH; bueno es el problema que tena y supongo muchos tienen sobre todo porque el WS_UPLOAD / WS_DOWNLOAD no funcionan en fondo. Pero existe una alternativa utilizando el RFCEXEC. Este es un programa proporcionado por SAP que debe ser instalado localmente en tu PC; adems de debe definir una conexin RFC dentro de SAP (Transaccin. SM59). Luego de realizar esto lo que queda es crear un programa ABAP con el editor y hacer una llamada a la funcin CALL RFC_REMOTE_FILE DESTINATION D_DESTI PASOS PARA LA CONFIGURACION DEL RFCEXEC.1. Instalar en la PC el RFC source development kind (rfcsdk) en tu PC.Buscar en el CD del SAPGUI un directorio llamado rfcsdk, de este directorio copia el fichero rfc.car a una carpeta de tu PC ( en mi caso la carpeta ser c:sap fcsdk ). En el mismo CD, existe un fichero car.exe , copia este archivo en la misma carpeta de tu PC (sino encuentras este fichero puedes descargarlo de internet ). Ahora descomprime el fichero rfc.car con el comando car xvf rfc.car Esto crear un subdirectorio llamado rfcsdk automticamente en tu carpeta. Dentro de esta carpeta buscar el archivo saprfc.ini ( Se encuentra en la carpeta ... fcsdk extsaprfc.ini ) y copiarlo a la carpeta ... fcsdkinsaprfc.ini de tu PC. Lo siguiente es aadir una variable a tu entorno llamado RFC_INI. Si ests trabajando bajo Windows NT/2000, vas al panel de control y haz doble click sobre el cono Sistema, pincha en Escritorio y crea una variable con el nombre RFC_INI y el valor ser C:sap fcsdkinsaprfc.ini ( El valor es siempre el directorio donde se encuentra el archivo saprfc.ini ).

Si trabajas en Windows 98/SE/ME entonces aade la siguiente entrada en tu autoexec.bat SET RFC_INI= c:sap fcsdkinsaprfc.ini

2. Configuracin del archivo saprfc.ini.El siguiente paso es configurar el archivo saprfc.ini; para ello con el editor de comandos del DOS debemos abrir el archivo saprfc.ini y agregarle la siguiente entrada: DEST=DEW_R <SID>_R donde el SID es el ID de tu sistema TYPE=R El tipo de conexin es de tipo R en este caso PROGID=test.rfcexec Puede ser cualquier definicin, en este caso le he puesto el nombre de mi PC, pero debe estar seguido por un punto y la palabra rfcexec GWHOST=172.16.21.50 Es la direccin IP del Servidor GWSERV=sapgw00 sapgw<#instancia> , donde <#instancia> es el nmero de instancia de tu sistema R/3 RFC_TRACE=0 Valor por default.

Guarda el fichero y luego ejecuta el rfcexec con el comando: rfcexec D<DEST>, donde <DEST> es la palabra que definistes en el archivo saprfc.ini; en este caso el comando sera: rfcexec DDEW_R

Asegrate de que el programa est ejecutndose y no regrese a la ventana de comando. 3. Configuracin de un destino RFC en SAP R/3 Ir a la transaccin SM59:

Pulsa el botn Crear e introduce en el destino RFC el nombre que definistes como destino en el archivo saprfc.ini ( en mi caso ser DEW_R ) esto es una recomendacin en realidad tu puedes introducir tu propio formato de nombre. Selecciona T como tipo de conexin e ingresa una descripcin para tu conexin y luego presiona ENTER.

Al presionar ENTER la pantalla cambiar a:

En el campos Program ID coloca el mismo valor que especificastes en saprfc.ini. En mi caso ser test.rfcexec . Luego graba los cambios pulsando el botn SAVE y recibirs un mensaje como: Destination TEST.RFCEXEC saved.

Luego pulsa sobre el botn Test connection y te debera salir una pantalla como esta:

Si no ves esta ventana es porque algo esta mal, puedes consultar la Nota OSS 63930; ah Puedes encontrar la solucin al error que se te presente. 4. Probar la conexin.Si el test de conexin fue correcto, entonces escribe un pequeo programa ABAP para probar la conexin. *----------------------------------------------------------------------* * Report: zprueba_rfc. * * TECHNICAL DOCUMENTATION: * * - Application Area: BC. * * - Author..........: Frank Encalada Vargas / BCTS OutSourcing * * - Date............: 04.09.2003 * *----------------------------------------------------------------------* REPORT zprueba_rfc. DATA: BEGIN OF ti_data OCCURS 0, a(20), b(20), c(20), END OF ti_data. DATA: d_desti LIKE rfcdes-rfcdest, w_error(120). PARAMETERS : p_file LIKE rlgrap-filename DEFAULT 'C:FTPRFC_PRUEBA2.TXT'. *----------------------------------------------------------------------* * Rutina Principal *----------------------------------------------------------------------* START-OF-SELECTION. ti_data-a = 'FRANK'. ti_data-b = 'NILS '.

ti_data-c = 'ABEL '. APPEND ti_data. ti_data-a = 'FRANK2'. ti_data-b = 'NILS2'. ti_data-c = 'ABEL2'. APPEND ti_data. d_desti = 'DEW_R'. "El nombre del destino RFC call function 'RFC_REMOTE_FILE' DESTINATION d_desti EXPORTING file = p_file write = 'X' "'X' y ' ' para lectura TABLES filedata = ti_data. IF sy-subrc NE 0. FORMAT RESET INTENSIFIED OFF. WRITE:/ 'RFC_ERROR', w_error. ELSE. WRITE:/ 'OK'. ENDIF. Salva el cdigo y activa el programa, luego ejecuta este programa. Deja el editor y crea un JOB, por ejemplo va SM36 y programa el job.

Luego de terminado el proceso cierra el editor de comandos con CTRL+C