Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen Verbindungsmanagement anpassen  Dokument im Navigationsbaum lokalisieren

Verwendung

Das Verbindungsmanagement wurde im neuen JCo API vollständig überarbeitet. Der Verbindungsaufbau erfolgte im Client-Fall bisher über die Verwendung verschiedener JCo-Klassen als direkte Verbindung oder Connection Pool.

Im neuen JCo API ist das Verbindungsmanagement nicht mehr Aufgabe der Client-Anwendung, sondern wird zentral über ein Destinations-Modell verwaltet.

Ein Destination Manager übermittelt eine logische Destination an den Client, der wiederum das Ausführen einer bestimmten Funktion auf dieser Destination veranlassen kann.

Durch dieses neue Verbindungsmodell kann ein hoher Konfigurationsaufwand vermieden werden.

Vorgehensweise

Nehmen Sie die erforderlichen Änderungen im Code vor, um das Verbindungsmanagement entsprechend anzupassen.

Beispiele

Das folgende Beispiel zeigt die Veränderungen im Code beim Verbindungsaufbau:

 

Beispiel JCo 2.x

 

JCO.addClientPool("FOO", 10, "000", "hugo", "*****", "EN", "appserver", "00");

JCO.Repository repository = JCO.createRepository("MyRepository", SID);

 

IFunctionTemplate template = repository.getFunctionTemplate("BAPI_COMPANY_GETLIST");

 

if(template != null)

{

    JCO.Client client = null;

    try

    {

        JCO.Function function = template.getFunction();

        client = JCO.getClient("FOO");

        client.execute(function);

 

        JCO.ParameterList exports=function.getExportParameterList();

        JCO.ParameterList tables=function.getTablesParameterList();

  

        JCO.Structure bapiReturn = exports.getStructure("RETURN");

        System.out.println("BAPI_COMPANY_GETLIST RETURN: " +

                        bapiReturn.getString("MESSAGE"));

  

    JCO.Table companies = tables.getTable("COMPANY_LIST");

    if (companies.getNumRows()>0)

    {

            for (int i=0; i<companies.getNumRows(); i++)

            {

                companies.setRow(i);

                System.out.println(companies.getString("COMPANY")+

                                   ":  "+companies.getString("NAME1"));

            }

        }

    }

    catch (JCO.AbapException ex)

    {

        System.out.println("Caught a function module exception: \n" + ex);

    }

    catch (JCO.Exception ex)

    {

        System.out.println("Caught an exception: \n" + ex);

    }

    finally

    {

        JCO.releaseClient(client);

    }

}

 

 

Beispiel JCo 3.0

 

JCoDestination foo= JCoDestinationManager.getDestination("FOO");

JCoRepository repository = foo.getRepository();

 

JCoFunctionTemplate template = repository.getFunctionTemplate("BAPI_COMPANY_GETLIST");

if(template != null)

{

    try

    {

        JCoFunction function = template.getFunction();

        function.execute(foo);

 

        JCoParameterList exports=function.getExportParameterList();

        JCoParameterList tables=function.getTablesParameterList();

 

        JCoStructure bapiReturn = exports.getStructure("RETURN");

 

        System.out.println("BAPI_COMPANY_GETLIST RETURN: " +

                       bapiReturn.getString("MESSAGE"));

  

        JCoTable companies = tables.getTable("COMPANY_LIST");

  

        if (companies.getNumRows()>0)

        {

            for (int i=0; i<companies.getNumRows(); i++)

            {

                companies.setRow(i);

                System.out.println(companies.getString("COMPANY")+

                                    ":  "+companies.getString("NAME1"));

            }

        }

    }

    catch (AbapException ex)

    {

        System.out.println("Caught a function module exception: \n" + ex);

    }

    catch (JCoException ex)

    {

        System.out.println("Caught an exception: \n" + ex);

    }

}

 

 

Ende des Inhaltsbereichs