0% found this document useful (0 votes)
67 views

Home SAP Development ABAP Statements Help Docs SAP Tables S4Hana Tables T-Code List FM's

This code sample shows how to call an SAP function module called BAPI_MATERIAL_GETLIST using the Java Connector (JCo) library. It retrieves material list data from SAP and stores it in an ArrayList. It then displays the list of materials retrieved from SAP using a Swing GUI application. The code connects to SAP, calls the function module, retrieves the result table into an ArrayList, and passes the ArrayList to a SwingApplication class to display the list.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views

Home SAP Development ABAP Statements Help Docs SAP Tables S4Hana Tables T-Code List FM's

This code sample shows how to call an SAP function module called BAPI_MATERIAL_GETLIST using the Java Connector (JCo) library. It retrieves material list data from SAP and stores it in an ArrayList. It then displays the list of materials retrieved from SAP using a Swing GUI application. The code connects to SAP, calls the function module, retrieves the result table into an ArrayList, and passes the ArrayList to a SwingApplication class to display the list.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Home SAP Development ABAP Statements Help Docs SAP Tables S4Hana Tables

T-Code List FM's

Call an SAP function module and display data in a swing application

Example code which calls an SAP function module


'BAPI_MATERIAL_GETLIST' with inport parameters and retrieves
the resultant data. It then displays the list of materials using a swing application, the code for which will also be
required (Swing code ).

//package ws; //Replace with name of your package


import com.sap.mw.jco.*;
import javax.swing.*; //This is the final package name.
//import com.sun.java.swing.*; //Used by JDK 1.2 Beta 4 and all
//Swing releases before Swing 1.1 Beta 3.
import java.awt.*;
//import java.awt.event.*;
import java.util.*;
public class CallFunction2 extends Object {
public ArrayList myArrList = new ArrayList(); //List is super class could use ArrayList
//
int count;
String[] SAPInterfaces;
JCO.Client mConnection;
JCO.Repository mRepository;
public CallFunction2(){
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;
JCO.Table codes2 = null;
try {
// function = this.createFunction("BAPI_COMPANYCODE_GETLIST");
function = this.createFunction("BAPI_MATERIAL_GETLIST");
// function = this.createFunction("BAPI_MATERIAL_GET_DETAIL");
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.nextRow(); // Move onto next row
codes.setValue("I", "SIGN");
codes.setValue("BT", "OPTION");
codes.setValue("P1001087", "MATNR_LOW");
codes.setValue("P1009999 ", "MATNR_HIGH");
mConnection.execute(function);
// Output result Material list table
System.out.println(
function.getTableParameterList().getValue("MATNRLIST"));
System.out.println(
function.getTableParameterList().getString("MATNRLIST"));
codes2 = function.getTableParameterList().getTable("MATNRLIST");

for (int loop = 0; loop < codes2.getNumRows(); loop++){


myArrList.add(codes2.getValue("MATERIAL"));
codes2.nextRow();
}
System.out.println( myArrList);
if (myArrList.isEmpty()) {
System.out.println("No data retirved for selection criteria");
System.exit(1);
}
// 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.");
}
}
public static void main(String args[]) {
String labelPrefix = "Number of button clicks: ";

CallFunction2 app = new CallFunction2();

//Create the top-level container and add contents to it.


try {
// Set Look and feel of gui box
UIManager.setLookAndFeel(
// UIManager.getCrossPlatformLookAndFeelClassName()); // Default???
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); // Windows look
// "javax.swing.plaf.metal.MetalLookAndFeel"); // Java look
} catch (Exception e) { }
// Create the top-level container and add contents to it.
JFrame frame = new JFrame("SwingApplication");
// Create instance of SwingApplication (Passes Array of materials)
SwingApplication swingapp = new SwingApplication(app.myArrList);
Component contents = swingapp.createComponents();
frame.getContentPane().add(contents, BorderLayout.CENTER);
// Finish setting up the frame, and show it.
frame.pack();
frame.setVisible(true);
}
}
}

Related Articles
Using the Java connector (JCo) to retrieve data from an SAP system
Example JCo code to call SAP function module
Applet to retrieve data from SAP(using JCo) and display it using Swing
Application to retrieve data from SAP(using JCo) and display it using Swing
Example Java code to create Applet
Example JCo code to call SAP function module
Java class to create Swing Application from Array of data
Example JCo code to call SAP function module
Example Swing code to display list of material numbers

You might also like