Here's a sample code to get the currency list of the BAPI ZBAPI_GET_CURRENCY_LIST:
ArrayList desMoneda = new ArrayList();
ArrayList ideMoneda = new ArrayList();
//Creamos la función de la BAPI
com.sap.mw.jco.JCO.Function funcionDivisas = repository.getFunctionTemplate("ZBAPI_GET_CURRENCY_LIST").getFunction();
//Declaramos los parámetros que se le enviarán a la BAPI
com.sap.mw.jco.JCO.ParameterList listParams = funcionDivisas.getImportParameterList();
listParams.setValue("ES","LANGU");
//Ejecutamos la BAPI
connection.execute(funcionDivisas);
//Recuperamos la tabla de SAP
Table tablaDivisas = funcionDivisas.getTableParameterList().getTable("CURRENCYLIST");
desMoneda.add(Text.getText("language.messages", "ActividadRegistro.comboDivisa", oLocale));
ideMoneda.add("");
//Recorremos la tabla de divisas y seteamos los arrays del formulario
for (int i = 0; i < tablaDivisas.getNumRows(); i++){
ideMoneda.add(tablaDivisas.getValue("WAERS"));
desMoneda.add(tablaDivisas.getValue("LTEXT"));
tablaDivisas.nextRow();
}
And here's the connectSap() and disconnectSap() functions:
/** Conexion */
protected JCO.Client connection; // Connection con SAP
/** Repositorio */
protected IRepository repository; // Repostorio de funciones SAP
/**
* Iniciamos la conexion y el repositorio con el SAP
*
*/
public void connectSap(String client, String user, String pass, String lang, String host, String nSystem, String name) {
try {
/** Creamos la conexion con el SAP */
connection = JCO.createClient(client, user, pass, lang, host, nSystem);
connection.connect();
/** Creamos el repositorio con el SAP */
repository = new JCO.Repository(name, connection);
} catch(Exception e) {
log.error("Error -> connectSAP: " + e.getMessage(),e);
}
}
public void disconnectSap() {
if(connection != null) {
try {
connection.disconnect();
}catch(Exception e) {
log.error("Error -> disconnectSap: " + e.getMessage(),e);
}
}
}