Vous êtes sur la page 1sur 6

Conectar Java con SAP JCO Connector

En este ejemplo veremos como conectarnos a SAP desde Java y consultar los datos de una tabla
de SAP, para lograr esto utilizaremos el driver JCO Connector, que tambien se podra usar
WebService para la coneccon pero esto sera otro tema.

Ahora debemos bajarnos el Conector del siguiente link SAP Marketplace nos pedir un usuario y
contrasea este usuario lo tienen las empresas, partners, y otros que tienen alguna relacin con
SAP, pero si no tenemos el usuario para poder acceder a la pgina los bajamos de este link click
aqui

Ingresamos a SAP y creamos una funcin RFC que no har mas que traernos una lista de
registros de una tabla de SAP para luego procesarlo en nuestra aplicacin en java.

Entramos a la transaccin SE37 para crear nuestra funcin: ZRCF_SPFLI_LIST

Seleccionamos la pestaa "Import"...

El parmetro "CARRID" ser opcional, luego en la pestaa "Tables":

El parmetro "FLIGHT_LIST" nos devolver los valores que recogeremos en nuestra aplicacin
en java.
En la pestaa "Source code" escribiremos el cdigo que obtendr los datos de la tabla de SAP.

Para terminar con nuestra funcin tenemos que indicarle que ser un RFC (Remote Function
Call) para poder acceder a el desde la aplicacin.

Grabamos y Activamos la funcin, y ya se encuentra listo para usarlo.

Antes de pasar a crear nuestra aplicacion, debemos colocar las librerias del jco connector en la
carpeta de windows, cuando descargamos el conector nos adjunta una dll:

librfc32.dll : colocar en la carpeta "C:\WINDOWS\system32\"


Ahora pasaremos a crear la aplicacin en java que acceder a la funcin rfc, para esto creamos
un nuevo proyecto "Java Application" e ingresamos el nombre del proyecto, seguidamente
agregamos la librera al proyecto "sapjco":

Escribiendo en nuestra clase:


Importamos la librera:

Declaramos las variables que utilizaremos:

Establecemos la conexion al servidor...

Accedemos a la funcin:

Recorremos los valores de nuestra tabla que se obtuvo de la funcin:

Ejecutamos y el resultado es...

Cdigo Completo:

package test_sap_jco;

import com.sap.mw.jco.*;
/**
*
* @author carlos
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JCO.Client client = null;
JCO.Function funcion = null;
JCO.Table t_spfli = null;

IRepository repositorio = null;


IFunctionTemplate ftemplate = null;
try {
client = JCO.createClient("000",
"bcuser",
"minisap",
"EN",
"localhost",
"00");

//Creando el repositorio para las funciones


repositorio = JCO.createRepository("MiRepositorio",
client);
//Indicamos que funciones queremos utilizar
ftemplate =
repositorio.getFunctionTemplate("ZRCF_SPFLI_LIST".toUpperCase());
//Obtenemos la funcion del SAP
funcion = ftemplate.getFunction();
//Pasamos parametros a la funcion
funcion.getImportParameterList().setValue("AA", "CARRID");

//Ejecutamos la funcion
client.execute(funcion);
//Capturamos el parametro de Salida
t_spfli =
funcion.getTableParameterList().getTable("FLIGHT_LIST");

System.out.println("Nro de Filas:" +t_spfli.getNumRows());

for (int i= 0;i<t_spfli.getNumRows();i++){


t_spfli.setRow(i);
System.out.println(t_spfli.getString("CARRID")

+ "

t_spfli.getString("CONNID")

+ "

" +

" +
t_spfli.getString("COUNTRYFR") + "
" +
t_spfli.getString("CITYFROM")

+ "

t_spfli.getString("AIRPFROM")

+ "

" +

" +
t_spfli.getString("COUNTRYTO") + "
" +
t_spfli.getString("CITYTO"));
}
} catch (Exception e) {
System.out.println("Error:" +e.getMessage());
}
}
}

Vous aimerez peut-être aussi