Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen JCo-Klassen ersetzen  Dokument im Navigationsbaum lokalisieren

Verwendung

Im neuen JCo API wurden die bisherigen JCo-Klassen (z.B. JCO.Function, JCO.Table etc.) durch Interfaces ersetzt, um den Zugriff auf das API auch bei plattformspezifischer Implementierung zu vereinheitlichen.

Darüber hinaus ermöglichen Interfaces die Verwendung der Java Develpment Infrastructure (JDI) für die Java-Entwicklung, da nun die Zuordnung von Funktionalität zu verschiedenen Entwicklungskomponenten möglich ist.

Die neu definierten Interfaces sind von der Namensgebung her den bisherigen JCo-Klassen sehr ähnlich. Alle wichtigen Interfaces besitzen das gleiche Präfix wie die bisherigen Klassen, allerdings nicht in Form einer outer class, sondern lediglich als Namenskonvention: „JCO.~“ wird zu „JCo~“.

Vorgehensweise

Ersetzen Sie alle bisherigen JCo-Klassen durch die entsprechenden Interfaces.

Beispiel

Das folgende Beispiel zeigt das Ersetzen von JCo-Klassen durch Interfaces:

 

Beispiel JCo 2.x

 

IRepository repository = JCO.createRepository(“REPO”, “SAP”);

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

IMetaData structureDefinition = repository.getStructureDefinition("MY_STRUCT");

 

JCO.Structure structure=JCO.createStructure(structureDefinition);

structure.setValue(“Hello World”,  “TITLE”);

structure.setValue(“Good Morning”, 1);

 

JCO.FieldIterator iterator=new JCO.FieldIterator(structure);

while(iterator.hasNextFields())

{

    JCO.Field field=iterator.nextField();

    System.out.println(“FieldValue: ”+field.getString());

}

  

JCO.Function function = template.getFunction();

JCO.ParameterList tables=function.getTablesParameterList();

  

JCO.Table tracks = tables.getTable("TRACKS");

if (!tracks.isEmpty())

{

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

    {

        tracks.setRow(i);

        System.out.println(tracks.getString("ARTIST")+

                                        ":  "+ tracks.getString("SONG"));

    }

}

 

JCO.AbapException[] exceptions=function.getExceptionList();

if (exceptions!=null)

for (int i=0; i<exceptions.length(); i++)

System.out.println(“ExceptionName: ”+exceptions[i].getKey());

 

 

Beispiel JCo 3.0

 

JCoRepository repository = destination.getRepository();

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

JCoRecordMetaData structureDefinition = repository.getStructureDefinition("MY_STRUCT");

 

JCoStructure structure=JCo.createStructure(structureDefinition);

structure.setValue(“TITLE”,  “Hello World”);

structure.setValue(1, “Good Morning”);

 

JCoFieldIterator iterator=structure.getFieldIterator();

while(iterator.hasNextField())

{

    JCoField field=iterator.nextField();

    System.out.println(“FieldValue: ”+field.getString());

}

  

JCoFunction function = template.getFunction();

JCoParameterList tables=function.getTablesParameterList();

  

JCoTable tracks = tables.getTable("TRACKS");

if (!tracks.isEmpty())

{

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

    {

        tracks.setRow(i);

        System.out.println(tracks.getString("ARTIST")+

                                        ":  "+ tracks.getString("SONG"));

    }

}

 

AbapException[] exceptions=function.getExceptionList();

if (exceptions!=null)

    for (int i=0; i<exceptions.length(); i++)

        System.out.println(“ExceptionName: ”+exceptions[i].getKey());

 

 

 

Ende des Inhaltsbereichs