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 tenía 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; además de debe definir una conexión RFC dentro de SAP (Transacción. SM59). Luego de realizar esto lo que queda es crear un programa ABAP con el editor y hacer una llamada a la función 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 automáticamente 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 añadir una variable a tu entorno llamado RFC_INI. Si estás 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 ).

RFCEXEC (La Alternativa a WS_UPLOAD WS_DOWNLOAD - Incluso en Fondo)

Embed Size (px)

Citation preview

Page 1: RFCEXEC (La Alternativa a WS_UPLOAD WS_DOWNLOAD - Incluso en Fondo)

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 tenía 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; además de debe definir una conexión RFC

dentro de SAP (Transacción. SM59).

Luego de realizar esto lo que queda es crear un programa ABAP con el editor y hacer una llamada a la función 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 automáticamente 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 añadir una variable a tu entorno llamado RFC_INI. Si estás 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 añade la siguiente entrada en tu autoexec.bat

Page 2: RFCEXEC (La Alternativa a WS_UPLOAD WS_DOWNLOAD - Incluso en Fondo)

SET RFC_INI= c:sap fcsdkinsaprfc.ini

2. Configuración 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 conexión es de tipo R en este caso

PROGID=test.rfcexec à Puede ser cualquier definición, 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 dirección IP del Servidor

GWSERV=sapgw00 à sapgw<#instancia> , donde <#instancia> es el

número 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 sería:

rfcexec –DDEW_R

Page 3: RFCEXEC (La Alternativa a WS_UPLOAD WS_DOWNLOAD - Incluso en Fondo)

Asegúrate de que el programa está ejecutándose y no regrese a la ventana de comando.

3. Configuración de un destino RFC en SAP R/3

Ir a la transacción SM59:

Pulsa el botón 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 recomendación en realidad tu puedes introducir tu propio formato de nombre.

Selecciona T como tipo de conexión e ingresa una descripción para tu conexión y luego presiona ENTER.

Page 4: RFCEXEC (La Alternativa a WS_UPLOAD WS_DOWNLOAD - Incluso en Fondo)

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 botón SAVE y recibirás un mensaje como:

Destination TEST.RFCEXEC saved.

Page 5: RFCEXEC (La Alternativa a WS_UPLOAD WS_DOWNLOAD - Incluso en Fondo)

Luego pulsa sobre el botón Test connection y te debería 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 solución al error que se te presente.

4. Probar la conexión.-

Si el test de conexión fue correcto, entonces escribe un pequeño programa ABAP para probar la conexión.

*----------------------------------------------------------------------*

* 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 '.

Page 6: RFCEXEC (La Alternativa a WS_UPLOAD WS_DOWNLOAD - Incluso en Fondo)

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 código y activa el programa, luego ejecuta este programa.

Deja el editor y crea un JOB, por ejemplo vía SM36 y programa el job.

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

Page 7: RFCEXEC (La Alternativa a WS_UPLOAD WS_DOWNLOAD - Incluso en Fondo)