Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen Zugriff auf Tabellen  Dokument im Navigationsbaum lokalisieren

Aktivitäten

Im nächsten Schritt soll das BAPI CompanyCode.GetList aufgerufen und eine Tabelle mit allen Buchungskreisen (company codes) ausgegeben werden. Das zugehörige RFM heißt BAPI_COMPANYCODE_GETLIST. Es enthält keine Importparameter.

...

       1.      In einem ersten Schritt holen Sie dazu die Tabelle, indem Sie auf die Tabellenparameter-Liste zugreifen (getTableParameterList()).

       2.      Innerhalb dieser Liste greifen Sie auf die konkrete Tabelle zu (getTable()). Das Interface JCoTable enthält alle Methoden, die für JCoStructure verfügbar sind, sowie zusätzliche Methoden für die Navigation in einer Tabelle. Eine Tabelle kann viele Zeilen oder auch keine einzige haben. In der Abbildung unten ist die Navigation mit der Methode setRow() gezeigt, womit der aktuelle Zeilen-Pointer nacheinander auf jede Zeile in der Tabelle verschoben wird. Die Methode getNumRows() gibt an, wieviele Zeilen insgesamt vorhanden sind. Alternativ zu setRow() können Sie die Methode nextRow() verwenden, wie im unteren Teil der Abbildung gezeigt.

 

Syntax  Zugriff auf eine Tabelle

 

public static void step4WorkWithTable() throws JCoException

    {

        JCoDestination destination = JCoDestinationManager.getDestination(DESTINATION_NAME2);

        JCoFunction function = destination.getRepository().getFunction("BAPI_COMPANYCODE_GETLIST");

        if(function == null)

            throw new RuntimeException("BAPI_COMPANYCODE_GETLIST not found in SAP.");

 

        try

        {

            function.execute(destination);

        }

        catch(AbapException e)

        {

            System.out.println(e.toString());

            return;

        }

       

        JCoStructure returnStructure = function.getExportParameterList().getStructure("RETURN");

        if (! (returnStructure.getString("TYPE").equals("")||returnStructure.getString("TYPE").equals("S"))  )  

        {

           throw new RuntimeException(returnStructure.getString("MESSAGE"));

        }

       

        JCoTable codes = function.getTableParameterList().getTable("COMPANYCODE_LIST");

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

        {

            codes.setRow(i);

            System.out.println(codes.getString("COMP_CODE") + '\t' + codes.getString("COMP_NAME"));

        }

 

 

Ende des Inhaltsbereichs