/**
* Example2.java
* Property of SAP AG, Walldorf
* (c) Copyright SAP AG, Walldorf, 2000.
* All rights reserved.
*/
import com.sap.mw.jco.*;
/**
* @version 1.0
* @author SAP AG, Walldorf
*/
public class Example2 {
// The MySAP.com system we gonna be using
static final String SID = "R3";
// The repository we will be using
IRepository repository;
public Example2()
{
try {
// Add a connection pool to the specified system
JCO.addClientPool(SID, // Alias for this pool
10, // Max. number of connections
"000", // SAP client
"johndoe", // userid
"*****", // password
"EN", // language
"appserver",// host name
"00");
// Create a new repository
repository = JCO.createRepository("MYRepository", SID);
}
catch (JCO.Exception ex) {
System.out.println("Caught an exception: \n" + ex);
}
}
// Retrieves and prints information about remote system
public void systemInfo()
{
try {
// Get a function template from the repository
IFunctionTemplate ftemplate = repository.getFunctionTemplate("RFC_SYSTEM_INFO");
// Create a function from the template
JCO.Function function = new JCO.Function(ftemplate);
// Get a client from the pool
JCO.Client client = JCO.getClient(SID);
// We can call 'RFC_SYSTEM_INFO' directly since it does not need any input parameters
client.execute(function);
// The export parameter 'RFCSI_EXPORT' contains a structure of type 'RFCSI'
JCO.Structure s = function.getExportParameterList().getStructure("RFCSI_EXPORT");
// Use enumeration to loop over all fields of the structure
System.out.println("System info for " + SID + ":\n" +
"--------------------");
for (JCO.FieldIterator e = s.fields(); e.hasMoreElements(); ) {
JCO.Field field = e.nextField();
System.out.println(field.getName() + ":\t" + field.getString());
}//for
System.out.println("\n\n");
// Release the client into the pool
JCO.releaseClient(client);
}
catch (Exception ex) {
System.out.println("Caught an exception: \n" + ex);
}
}
// Retrieves and sales order list
public void salesOrders()
{
try {
// Get a function template from the repository
IFunctionTemplate ftemplate = repository.getFunctionTemplate("BAPI_SALESORDER_GETLIST");
// Create a function from the template
JCO.Function function = new JCO.Function(ftemplate);
// Get a client from the pool
JCO.Client client = JCO.getClient(SID);
// Fill in input parameters
JCO.ParameterList input = function.getImportParameterList();
input.setValue("0000001200", "CUSTOMER_NUMBER" );
input.setValue( "1000", "SALES_ORGANIZATION");
input.setValue( "0", "TRANSACTION_GROUP" );
// Call the remote system
client.execute(function);
// Print return message
JCO.Structure ret = function.getExportParameterList().getStructure("RETURN");
System.out.println("BAPI_SALES_ORDER_GETLIST RETURN: " + ret.getString("MESSAGE"));
// Get table containing the orders
JCO.Table sales_orders = function.getTableParameterList().getTable("SALES_ORDERS");
// Print results
if (sales_orders.getNumRows() > 0) {
// Loop over all rows
do {
System.out.println("-----------------------------------------");
// Loop over all columns in the current row
for (JCO.FieldIterator e = sales_orders.fields(); e.hasMoreElements(); ) {
JCO.Field field = e.nextField();
System.out.println(field.getName() + ":\t" + field.getString());
}//for
} while(sales_orders.nextRow());
}
else {
System.out.println("No results found");
}//if
// Release the client into the pool
JCO.releaseClient(client);
}
catch (Exception ex) {
System.out.println("Caught an exception: \n" + ex);
}
}
public static void main(String[] argv)
{
Example2 e = new Example2();
e.systemInfo();
e.salesOrders();
}
}