lunes, 7 de octubre de 2013

SAP JCO Connector

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.