SAP Help Call SAP function module using JAVA and Jco functionality
Example JCo code to call SAP function module
Example code which calls an SAP function module 'BAPI_MATERIAL_GETLIST' with inport parameters and retrieves the resultant data.
//package ws; //Replace with name of your package
import com.sap.mw.jco.*;
public class CallFunction extends Object {
public static void main(String args[]) {
CallFunction app = new CallFunction();
}
int count;
JCO.Client mConnection;
JCO.Repository mRepository;
String[] SAPInterfaces;
public CallFunction() {
try {
// Logon info
mConnection = JCO.createClient("500", // SAP client
"username", // userid
"password", // password
null, // language
"server name", // application server host name
"00"); // system number
mConnection.connect();
mRepository = new JCO.Repository("ARAsoft", mConnection);
} catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
JCO.Function function = null;
JCO.Table codes = null;
// codes.firstRow();
try {
function = this.createFunction("BAPI_MATERIAL_GETLIST");
if (function == null) {
System.out.println(
"BAPI_MATERIAL_GETLIST" + " not found in SAP.");
System.exit(1);
}
codes = function.getTableParameterList().getTable("MATNRSELECTION");
codes.appendRows(2); // Add two rows to internal table
codes.setValue("I", "SIGN");
codes.setValue("EQ", "OPTION");
codes.setValue("P1001087", "MATNR_LOW");
codes.setValue("", "MATNR_HIGH");
codes.nextRow(); // Move onto next row
codes.setValue("I", "SIGN");
codes.setValue("EQ", "OPTION");
codes.setValue("P1001088", "MATNR_LOW");
codes.setValue("", "MATNR_HIGH");
mConnection.execute(function);
// JCO.Table returnTable1 =
// function.getTableParameterList().getTable("MATERIALSHORTDESCSEL");
// System.out.println(returnTable1);
// JCO.Table returnTable2 =
// function.getTableParameterList().getTable("MATNRLIST");
// System.out.println(returnTable2);
// Output result Material list table
System.out.println(
function.getTableParameterList().getValue("MATNRLIST"));
System.out.println(
function.getTableParameterList().getString("MATNRLIST"));
// System.out.println(
// function.getTableParameterList().getValue("MATERIALSHORTDESCSEL"));
//
// System.out.println(
// function.getTableParameterList().getString("MATERIALSHORTDESCSEL"));
// Output Selection table
System.out.println(
function.getTableParameterList().getValue("MATNRSELECTION"));
System.out.println(
function.getTableParameterList().getString("MATNRSELECTION"));
} catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
}
public JCO.Function createFunction(String name) throws Exception {
try {
IFunctionTemplate ft =
mRepository.getFunctionTemplate(name.toUpperCase());
if (ft == null)
return null;
return ft.getFunction();
} catch (Exception ex) {
throw new Exception("Problem retrieving JCO.Function object.");
}
}
}