SAP ERP的二次开发

源代码在线查看: example2.java

软件大小: 2064 K
上传用户: lilacky
关键词: SAP ERP 二次开发
下载地址: 免注册下载 普通下载 VIP

相关代码

				/**				 * Example2.java				 * Property of SAP AG, Walldorf				 * (c) Copyright SAP AG, Walldorf, 2000-2003.				 * 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				      //    The pool will be saved in the pool list to be used				      //    from other threads by JCO.getClient(SID).				      //    The pool must be explicitely removed by JCO.removeClientPool(SID)				      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				      //    The repository caches the function and structure definitions				      //    to be used for all calls to the system SID. The creation of				      //    redundant instances cause performance and memory waste.				      repository = JCO.createRepository("MYRepository", SID);				    }				    catch (JCO.Exception ex) {				      System.out.println("Caught an exception: \n" + ex);				    }				  }								  // Retrieves and prints information about the remote system				  public void systemInfo()				  {				    try {								      // Get a function template from the repository				      IFunctionTemplate ftemplate = repository.getFunctionTemplate("RFC_SYSTEM_INFO");								      // if the function definition was found in backend system				      if(ftemplate != null) {								        // Create a function from the template				        JCO.Function function = ftemplate.getFunction();								        // 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);				      }				      else {					    System.out.println("Function RFC_SYSTEM_INFO not found in backend system.");					  }				    }					catch (Exception ex) {					  System.out.println("Caught an exception: \n" + ex);					}								  }								  // Retrieves and displays a sales order list				  public void salesOrders()				  {					JCO.Client client = null;								    try {				      // Get a function template from the repository				      IFunctionTemplate ftemplate = repository.getFunctionTemplate("BAPI_SALESORDER_GETLIST");								      // if the function definition was found in backend system				      if(ftemplate != null) {										// Create a function from the template						JCO.Function function = ftemplate.getFunction();										// Get a client from the pool						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				      }				      else {					    System.out.println("Function BAPI_SALESORDER_GETLIST not found in backend system.");					  }//if				    }				    catch (Exception ex) {				      System.out.println("Caught an exception: \n" + ex);				    }				    finally {					  // Release the client to the pool				      JCO.releaseClient(client);					}				  }								  protected void cleanUp() {				    JCO.removeClientPool(SID);				  }								  public static void main(String[] argv)				  {				    Example2 e = new Example2();				    e.systemInfo();				    e.salesOrders();				    e.cleanUp();				  }				}							

相关资源