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~“.
Ersetzen Sie alle bisherigen JCo-Klassen durch die entsprechenden Interfaces.
Das folgende Beispiel zeigt das Ersetzen von JCo-Klassen durch Interfaces:
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());
|
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());
|