Click here to show toolbars of the Web Online Help System: show toolbars |
"); <!-- !chm2web! -->
SAP Java Connector - Example 2: CompanyCode_GetList
Code |
How to compile and run the program |
Code
This example shows how to use the BAPI CompanyCode_GetList to retrieve a list of company codes from SAP and display them in a listbox..
//-------------------------------------------------------------
// GetCompanycodeList CLASS
//-------------------------------------------------------------
import com.sap.mw.jco.*; //The JCO import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import javax.swing.border.*; { private JCO.Client mConnection = null; private JTextField returnValues; private IRepository mRepository; private JCO.Function myFunction; private JList companyCodeList; public GetCompanycodeList() { setSizeAndPosition(); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { if (mConnection != null) JCO.releaseClient(mConnection); System.exit(0); } } ); Container myContentPane = getContentPane(); JPanel buttonPanel = new JPanel(); Border bevel1 = BorderFactory.createBevelBorder(0); buttonPanel.setBorder(bevel1); myContentPane.add(buttonPanel,BorderLayout.SOUTH); JButton logonButton = new JButton("Logon"); JButton cancelButton = new JButton("Cancel"); logonButton.setActionCommand("logon_action"); cancelButton.setActionCommand("cancel_action"); logonButton.addActionListener(this); cancelButton.addActionListener(this); buttonPanel.add(logonButton); buttonPanel.add(cancelButton); returnValues = new JTextField(50); myContentPane.add(returnValues,BorderLayout.NORTH); companyCodeList = new JList(); JScrollPane scrollPane = new JScrollPane(companyCodeList ); myContentPane.add(scrollPane,BorderLayout.CENTER); } { Object mySource = evt.getSource(); String command = evt.getActionCommand(); if (command == "logon_action") ConnectToSap(); else if (command == "cancel_action") if (mConnection != null) JCO.releaseClient(mConnection); // System.exit(0); } { try { mConnection = JCO.createClient("800", //SAP client "WMHEFRN", //User ID "SLUPPERT3", //Password "EN", //Language "172.29.80.207", //Host "00"); //System mConnection.connect(); } catch (Exception ex) { JOptionPane.showMessageDialog(this,"Error in logon"); System.exit(0); } JOptionPane.showMessageDialog(this, "Logon ok"); try { mRepository = new JCO.Repository("Henrik",mConnection); } catch (Exception ex) { JOptionPane.showMessageDialog(this,"Error reading meta data"); System.exit(0); } try { IFunctionTemplate ftemplate = mRepository.getFunctionTemplate("BAPI_COMPANYCODE_GETLIST"); myFunction = new JCO.Function(ftemplate); mConnection.execute(myFunction); } catch (Exception ex) { JOptionPane.showMessageDialog(this,"Error executing function"); System.exit(0); } JCO.Structure vReturn = myFunction.getExportParameterList().getStructure("RETURN"); if (vReturn.getString("TYPE").equals("") || vReturn.getString("TYPE").equals("S") ) returnValues.setText("OK"); else returnValues.setText("Returnvalues: " + vReturn.getString("MESSAGE")); JCO.Table company_codes = myFunction.getTableParameterList().getTable("COMPANYCODE_LIST"); Vector listElements = new Vector(0,1); for (int i = 0; i < company_codes.getNumRows();i++) { company_codes.setRow(i); listElements.setSize( i + 1); listElements.addElement( company_codes.getString("COMP_CODE") + " " + company_codes.getString("COMP_NAME")); } companyCodeList.setListData(listElements); JCO.releaseClient(mConnection); JOptionPane.showMessageDialog(this,"Ended without errors"); } { setSize(300,400); setTitle("Event handling"); setResizable(false); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = this.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); try { //Call the static setLookAndFeel method and give it the name of the //look and feel you want UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); //Refresh components SwingUtilities.updateComponentTreeUI(this); } catch(Exception e) {} } }
//-----------------------------------------------------------------
// Run CLASS - Runs the application
//-----------------------------------------------------------------
public class Run
{ public static void main(String[] args)
{ GetCompanycodeList GetCompanycodeList1 = new GetCompanycodeList();
GetCompanycodeList1.show();
}
}
How to compile and run the program
Preparations
The application consists of two classes stored in the two files Run.java and and GetCompanycodeList.java. We are using a directory name d:\javatest for the classes.
For our convinience we also copy the SAP/Java connector class and the jRFC12.dll to the same directory, so we easily can include them in the CLASSPATH.
Copy: jCO.jar and jRFC12.dll to d:\javatest
Compiling:
We now compile the two classes. Remember to use the classpath statement
d:\javatest>javac *.java -classpath d:\javatest;d:\javatest\jCO.jar
Running the application from a DOS prompt:
Aalso here remember the classpath (-cp)
d:\javatest>java -cp d:\javatest;d:\javatest\jCO.jar Run
Making a JAR file
Make a manifest file in notepad and name it mainclass. In the manifest write:
Main-Class: Run
Make the JAR file:
jar cvmf mainclass sap.jar *.class jCO.jar
Important: When you compile the java claases a file named GetCompanycodeList$1.class is automatically generated. This file must be included in the JAR file.
Running the JAR file from a DOS prompt:
java -jar sap.jar