Hola buen día, hoy les traigo un ejemplo de conexión a SAP con JCO connector de JAVA, con la libreria 2.1.8 .
Aqui les muestro la clase de conexión:
import com.sap.mw.jco.JCO;
import com.sap.mw.jco.JCO.Client;
import com.sap.mw.jco.JCO.ParameterList;
public class Conexion {
private ParameterList p_input;
private ParameterList p_output;
private Client cliente;
public Conexion() {
this.p_input=JCO.createParameterList();
this.p_output=JCO.createParameterList();
this.cliente= JCO.createClient("clave_user", "user", "pass+", "idioma", "ipserver", "puerto", "type_user");
}
public ParameterList getP_input() {
return p_input;
}
public void setP_input(ParameterList p_input) {
this.p_input = p_input;
}
public ParameterList getP_output() {
return p_output;
}
public void setP_output(ParameterList p_output) {
this.p_output = p_output;
}
public Client getCliente() {
return cliente;
}
public void setCliente(Client cliente) {
this.cliente = cliente;
}
}
Luego realizo mi operación:
import com.sap.mw.jco.JCO;
public class TestDAO {
Conexion cnx= new Conexion();
public void obtenerRFC(String serie) {
try {
//Creo el Repositorio
cnx.setRepositorio(JCO.createRepository("RepositorioSAP", cnx.getCliente()));
//creo el templete cnx.setFtemplate(cnx.getRepositorio().getFunctionTemplate("ZMVIP_MB52".toUpperCase()));
cnx.setFuncion(cnx.getFtemplate().getFunction());
//Pasamos parametros a la funcion
cnx.getFuncion().getImportParameterList().setValue("9C-PVSD", "CSI");
cnx.getFuncion().getImportParameterList().setValue("00124020", "SKU");
//ejecuto la función
cnx.getCliente().execute(cnx.getFuncion());
System.out.println(cnx.getFuncion().getExportParameterList().getString("STOCK"));
System.out.println(cnx.getFuncion().getExportParameterList().getString("COMENTARIO"));
} catch (Exception e) {
System.out.println("TestDAO .obtenerRFC() : "+e.getMessage());
}
}
}
Espero y les sea de utilidad, cualquier duda comenten, saludos.