ABAP Developer Zertifizierungsübungsaufgaben - BC400 ABAP Workbench Grundlagen - BC401 ABAP Objects
1/34
Inhaltsverzeichnis: 1
Vorwort .............................................................................................................. ............................................. 5
2
Fragen........................................................... ................................................................. .................................. 6 2.1
BC400 ABAP Workbench Grundlagen ................................................................................ 6
2.1.1 Kapitel 2: Einführung in die ABAP Workbench....................................................... 6 2.1.2 Kapitel 3: Einführung in das ABAP Dictionary ....................................................... 6 2.1.3 Kapitel 4: Grundlegende ABAP-Sprachelemente....................................................... 7 2.1.4 Kapitel 5: Datenbeschaffung ............................................................... .................................. 8 2.1.5 Kapitel 6: Werkzeuge zur Programmanalyse............................................................ .... 9 2.1.6 Kapitel 7: Unterprogramme in ABAP ........................................................ ....................... 9 2.1.7 Kapitel 8: Einführung ABAP-Ereignisse ........................................................... ......... 10 2.1.8 Kapitel 9: Benutzerdialoge ....................................................... .......................................... 11 2.1.9 Kapitel 10: Reuse-Komponenten ................................................................ ..................... 13 2.1.10 Kapitel 11: Anpassung der SAP-Standardsoftware ........................................... 13 2.2
BC401 ABAP Objects ............................................................. ..................................................... 14
2.2.1 Kapitel 1: Vervollständigung der prozeduralen Anteile von ABAP Objects 14 2.2.2 Kapitel 2: Einführung in die objektorientierte Programmierung.................. 15 2.2.3 Kapitel 3: Objektorientierte Konzepte und Programmiertechniken .............. 16 2.2.4 Kapitel 4: Objektorientierte Repository-Objekte ..................................................... . 17 2.2.5 Kapitel 5: Ausnahmebehandlung und dynamische Programmierung........ Programmierung....... . 18 3
Antworten ............................................................................................. ..................................................... 21 21 3.1
BC400 ABAP Workbench Grundlagen ............................................................................. 22
3.1.1 Kapitel 2: Einführung in die ABAP Workbench.................................................... 22 3.1.2 Kapitel 3: Einführung in das ABAP Dictionary .................................................... 22 3.1.3 Kapitel 4: Grundlegende ABAP-Sprachelemente.................................................... 23 3.1.4 Kapitel 5: Datenbeschaffung ............................................................... ............................... 25 3.1.5 Kapitel 6: Werkzeuge zur Programmanalyse............................................................ . 25
2/34
3.1.6 Kapitel 7: Unterprogramme in ABAP ........................................................ .................... 26 3.1.7 Kapitel 8: Einführung ABAP-Ereignisse ........................................................... ......... 26 3.1.8 Kapitel 9: Benutzerdialoge ....................................................... .......................................... 26 3.1.9 Kapitel 10: Reuse-Komponenten ................................................................ ..................... 27 3.1.10 Kapitel 11: Anpassung der SAP-Standardsoftware ........................................... 28 3.2
BC401 ABAP Objects ............................................................. ..................................................... 29
3.2.1 Kapitel 1: Vervollständigung der prozeduralen Anteile von ABAP Objects 29 3.2.2 Kapitel 2: Einführung in die objektorientierte Programmierung.................. 30 3.2.3 Kapitel 3: Objektorientierte Konzepte und Programmiertechniken .............. 31 3.2.4 Kapitel 4: Objektorientierte Repository-Objekte ..................................................... . 32 3.2.5 Kapitel 5: Ausnahmebehandlung und dynamische Programmierung........ Programmierung....... . 33 4
Quellenverzeichnis ................................................................................................................... ............ 34
3/34
Name
Datum
Beschreibung
Status
Versio n
Sandro Scalco
27.08.20 12
Dokument erstellt. Inhaltsverzeichnis Inhaltsverzeichnis und Titelblatt erstellt. Vorwort hinzugefügt. BC400 Kurs (2.1) und BC401 Kurs (2.2) hinzugefügt.
Sandro Scalco
28.08.20 12
Dokument formatiert
In Bearbeitung, nicht freigegeben
0.1
Freigegeben
1.0
4/34
1
Vorwort
Dieses Dokument dient der optimalen Vorbereitung Vo rbereitung auf die Entwicklerzertifizierung C_TAW12_70 DC - ABAP with SAP NetWeaver 7.0. Dieser SAP Kurs wird ABAP Entwicklern mit einer Berufserfahrung von 3 Jahren empfohlen. Mehr Informationen zu SAP Zertifizierungen und speziell dem hier erwähnten Kurs sind unter folgendem Link zu finden. SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0 https://training.sap.com/ch/de/certification/c_taw12_70-sap-certified-developmentassociate-abap-with-sap-netweaver-70-g/#competencies (Stand associate-abap-with-sap-netweaver-70-g/#competencies (Stand 27.08.2012) Das Dokument ist in 2 wesentliche Bestandteile gegliedert. Der erste Teil besteht aus Fragen zu den entsprechenden SAP Kursen und sind nach Kapiteln gegliedert. Der zweite Teil beinhaltet deren Antworten. So kann dieses Dokument als kleine Vorbereitungsprüfung genutzt werden. Der Lernerfolg lässt sich durch die gewählte Gliederung Schrittweise überprüfen.
5/34
2
Fragen
2.1
BC400 ABAP Workbench Grundlagen
2.1.1 Kapitel 2: Einführung in die ABAP Workbench 1. Repository-Objekte sind mandantenspezifisch. Geben Sie an, ob diese Aussage richtig oder falsch ist. □
Richtig
□
Falsch
2. Kundenobjekte können in SAP-Pakete aufgenommen werden. Geben Sie an, ob diese Aussage richtig oder falsch ist. □
Richtig
□
Falsch
3. Welche sind die beiden Werkzeuge zur Suche nach Repository-Objekten? Wann soll welches Suchwerkzeug benutzt werden? 4. Ein Anwendungsprogramm muss für jede im System genutzte Sprache neu angelegt werden. Geben Sie an, ob diese Aussage richtig oder falsch ist. □
Richtig
□
Falsch
5. Was ist ein Kettensatz? 6. Bei welcher Aktion wird der Transport der Entwicklungsobjekte eines Auftrags angestoßen? Wählen Sie die richtige(n) Antwort(en). □
A Beim Sichern eines Objektes
□
C Bei Freigabe einer Aufgabe
□
B Beim Aktivieren eines Objektes □
D Bei Freigabe des Auftrags
2.1.2 Kapitel 3: Einführung in das ABAP Dictionary 1. Mit Hilfe von Dictionary-Typen (deskriptiven Elementen) können im Programm Variablen definiert werden. Geben Sie an, ob diese Aussage richtig oder falsch ist. □ Richtig
□ Falsch
2. Was stimmt bei Datenelementen und Domänen? Wählen Sie die richtige(n) Antwort(en). □ A Datenelemente enthalten technische und semantische Informationen. □ B Datenelemente beziehen sich stets auf Domänen. □ C Datenelemente beziehen sich typischerweise auf Domänen. □ D Datenelemente dürfen nicht zur Definition einer Variablen verwendet werden. 3. Datenbanktabellen werden samt Inhalt im ABAP Dictionary abgelegt. Geben Sie an, ob diese Aussage richtig oder falsch ist.
6/34
□ Richtig
□ Falsch
4. Wie nennt man im ABAP Dictionary die Beschreibung einer Datenbanktabelle und welchen Namen hat sie? 5. Was wird mit der Anweisung "DATA myvar TYPE dbtab." definiert, wenn dbtab eine transparente Tabelle ist? Wählen Sie die richtige(n) Antwort(en). □ A eine Kopie der Datenbanktabelle dbtab die Datenbanktabelle dbtab
□ B eine Tabellenvariable mit dem gleichen Aufbau wie
□ C eine Tabellenvariable mit dem gleichen Inhalt wie die Datenbanktabelle dbtab □ D eine Strukturvariable mit dem gleichen Aufbau wie eine dbtab-Zeile
2.1.3 Kapitel 4: Grundlegende ABAP-Sprachelemente 1. Welche der ABAP-Standardtypen sind numerisch? 2. Ist es möglich, neben den Standardtypen noch weitere Typen zu definieren? Wenn ja, wo? 3. Mit welchem ABAP-Schlüsselwort definiert man lokale Typen ? 4. In welchem Systemfeld befindet sich der Schleifenzähler für die DO- bzw. WHILE-Schleife? 5. Über welche Elemente des ABAP Dictionary kann programmintern eine Strukturvariable typisiert werden? Wählen Sie die richtige(n) Antwort(en). □ A Datenelement
□ B Domäne
□ C Struktur
□ D Transparente Tabelle
6. Welche Felder werden bei der MOVE-CORRESPONDING-Anweisung, in der zwei Strukturen anzugeben sind, berücksichtigt? 7. Was ist eine interne Tabelle? Wählen Sie die richtige(n) Antwort(en). □ A Datenbanktabelle
□ B Excel -Tabelle -Tabelle
□ C Variable in einem ABAP-Programm ABAP -Programm
□ D Tabelle, die in einer ander en en Tabelle eingebettet ist
8. Über welches Schlüsselwort wird eine interne Tabelle definiert? 9. Welche drei Angaben sind bei der Definition einer internen Tabelle zu machen? 10. Welche drei Arten von internen Tabellen gibt es, über deren Wahl man die Performance der Tabellenzugriffe beeinflussen kann? 11. Was ist ein Tabellentyp? Wählen Sie die richtige(n) Antwort(en). □ A eine interne Tabelle
□ B Beschreibung einer internen Tabelle
□ C Beschreibung einer Datenbanktabelle □ D Die Angabe "STANDARD"/"SORTED"/"HASHED" Angabe "STANDARD"/"SORTED"/"HASHED" bei einer internen Tabelle 12. SBOOK ist eine Datenbanktabelle. Mit welcher Syntax wird eine interne Tabelle mit dem gleichen Aufbau wie SBOOK angelegt? Wählen Sie die richtige(n) Antwort(en). □ A DATA itab TYPE sbook.
□ B DAT A itab TYPE TABLE OF sbook.
□ C DATA itab TYPE LINE OF sbook.
□ D DATA itab LIKE sbook.
7/34
13. Mit welcher Syntax wird ein Arbeitsbereich zu einer bereits definierten internen Tabelle namens itab angelegt? 14. Mit welcher Anweisung erfolgt das Lesen eines Einzelsatzes aus einer internen Tabelle ? Wählen Sie die richtige(n) Antwort(en). □ A SELECT ... ENDSELECT □ C READ TABLE
□ B SELECT SINGLE □ D GET
□ E FETCH 15. Sollen interne Tabellen mit Kopfzeilen weiterhin in der Programmierung verwendet werden?
2.1.4 Kapitel 5: Datenbeschaffung 1. Warum soll im Regelfall für Datenbankzugriffe "Open SQL" statt "Native SQL" verwendet werden? 2. Mit welcher Anweisung wird ein Einzelsatz aus einer Datenbanktabelle gelesen? 3. Muss in der WHERE-Klausel einer SELECT-Anweisung die Mandantenabgrenzung angegeben werden, wenn die zu lesende Datenbanktabelle das Mandantenfeld besitzt? 4. Wie heißt die performante Technik, die man benutzen soll, um den Inhalt einer Datenbanktabelle in eine interne Tabelle zu laden? 5. In welchem Systemfeld steht die Anzahl der mittels SELECT gelesenen Sätze? Wählen Sie die richtige(n) Antwort(en). □ A SY -SUBRC -SUBRC
□ B SY -TABIX -TABIX
□ C SY -DBCNT -DBCNT
□ D SY -INDEX -INDEX
6. Welche Technik soll zum Lesen zusammengehöriger Sätze aus mehreren Datenbanktabellen eingesetzt werden, da sie meist wesentlich performanter ist als geschachtelte SELECT-Anweisungen? 7. Welche der folgenden Aussagen zur Berechtigungsprüfung sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A In der SELECT -Anweisung ist bereits die zugehörige Berechtigungsprüfung integriert. □ B Die SELECT -Anweisung -Anweisung funktioniert auch dann einwandfrei, wenn der Benutzer nicht über die entsprechende Berechtigung zum Lesevorgang verfügt. □ C Um Daten vor ungewollten Zugriffen zu schützen , ist im Programm eine Berechtigungsprüfung zu realisieren. □ D Im Programm muss stets eine Berechtigungsprüfung realisiert werden. realisiert werden. 8. Mit welcher ABAP-Anweisung wird eine Berechtigungsprüfung realisiert und wo steht das Prüfungsergebnis? 9. Welche der folgenden Aussagen zu Berechtigung und Berechtigungsobjekten sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Ein Berechtigungsobjekt besitzt Felder samt Feldwerten. □ B Eine Berechtigung ist eine konkrete Ausprägung eines Berechtigungsobjektes, d. h. ein Berechtigungsobjekt samt Feldwerten. □ C Im Benutzerstammsatz befinden sich Berechtigungsobjekte.
8/34
□ D Im Benutzerstammsatz befinden sich Berechtigungen.
2.1.5 Kapitel 6: Werkzeuge zur Programmanalyse 1. Welche der folgenden Aussagen zur Laufzeitanalyse sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Die Laufzeitanalyse findet auch findet auch syntaktische Fehler Ihres Programms. □ B Die Laufzeitanalyse findet auch semantische Fehler Ihres Programms. Ihres Programms. □ C Um eine detaillierte Au swertung swertung der Laufzeitanalyse zu bekommen, ist eine Variante mit der Einstellung "Keine Aggregation" anzulegen und bei Ausführung der Laufzeitanalyse anzugeben. □ D Bei der Ergebnisauswertung sollte auf sollte auf jeden Fall das Messumfeld, d. h. zum Messzeitpunkt herrschende Netz /Systemlast, /Systemlast, Datenvolum Datenvolumen en sowie eventuell eventuell vorhandene vorhandene Tabelle Tabellenpuffer, npuffer, berücksichtigt berücksichtigt werden. werden. 2. Wo bekommt man Tipps und Tricks zur performanten Programmierung in ABAP? 3. Welche der folgenden Aussagen zum Code Inspector treffen zu? Wählen Sie die richtige(n) Antwort(en). □ A Bei Durchführung einer Code -Inspector-Prüfung -Inspector-Prüfung muss stets eine Prüfvariante angegeben werden. □ B Zur Festlegung des Detaillierungsgrads einer Prüfung kann eine kann eine entsprechende Prüfvariante angelegt und zur Inspektion angegeben werden. □ C Die Durchführung einer Code-Inspector-Prüfung über das (Kontext-) Menü des Object Navigator verwendet eine Standardprüfvariante. □ D Prüfvarianten, Objektmengen sowie Inspektionen können über die Transaktion SCI definiert werden. 4. Welche Aspekte werden bei der Untersuchung eines Programms durch den Code Inspector berücksichtigt? Wählen Sie die richtige(n) Antwort(en). □ A Syntaxprüfung □ B Typische Semantikfehler (z. B. AUTHORITY -CHECK-Anweisung ohne anschließende SY-SUBRC-Prüfung) □ C Performance (z. B. geschachtelte SELECT-Anweisungen) □ D Sicherheit (z. B. mandantenübergreifende Datenzugriffe) □ E Formatierung des Quelltextes (z . B. Einrücken der in Schleifen befindlichen Programmzeilen)
2.1.6 Kapitel 7: Unterprogramme in ABAP 1. Zu welchem Zweck soll die Unterprogrammtechnik eingesetzt werden? Wählen Sie die richtige(n) Antwort(en). □ A Zur Performance -Verbesserung -Verbesserung
□ B Zur übersichtlichen Programmgestaltung
□ C Um eine im Programm wiederholt benötigte Funktionalität für die Mehrfachnutzung zu kapseln □ D Um die zentrale Wartbarkeit einer Funktionalität innerhalb eines Programms zu realisieren □ E Um eine Funktionalität systemweit zur Verfügung zu stellen 2. Zu welchem Zweck soll die Parameterübergabe an Unterprogramme verwendet werden? Wählen Sie die richtige(n) Antwort(en). □ A Hauptsächlich zur Übergabe von Benutzereingaben an das Unterprogramm Verbesserung
□ B Zur Performance -
9/34
□ C Zur Flexibilisierung des Unterprogramms
□ D Zur Stabilisierung des Unterprogramms
3. Über welche ABAP-Anweisung wird ein Unterprogramm definiert bzw. aufgerufen? 4. Welche der folgenden Aussagen zu Unterprogrammen sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Bei Aufruf eines Unterprogramms sind Variablen oder Literale als Aktualparameter an entsprechende Formalparameter stellungsbezogen zu übergeben. □ B Beim Aufruf eines Unterprogramms muss auf Namensgleichheit von Formal - und Aktualparameter geachtet werden. □ C Der Übergabemodus eines Formalparameters wird in der Definition des Unterprogramms festgelegt. □ D Es gibt zwei verschiedene Übergabemodi für Formalparameter. □ E USING-Parameter USING -Parameter ohne den VALUE-Zusatz sind Call-by-reference-Parameter. □ F Große interne Tabellen sollen über einen Call -by-value-Parameter Call -by-value-Parameter an das Unterprogramm übergeben werden.
2.1.7 Kapitel 8: Einführung ABAP-Ereignisse 1. Welche der folgenden Aussagen zu Ereignisverarbeitungsblöcken sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Hat ein Programm keine expliziten Ereignisverarbeitungsblöcke, so gehören alle Anweisungen implizit zum AT-SELECTION-SCREEN-Block. □ B Die Reihenfolge der Ereignisverarbeitungsblöcke im Programm hat keine Auswirkung auf den Programmablauf. □ C Ereignisverarbeitungsblöcke können ineinander geschachtelt werden. geschachtelt werden. □ D Ereignisverarbeitungsblöcke müssen jeweils ex plizit abgeschlossen werden. 2. Warum eignet sich das Ereignis INITIALIZATION zur (dynamischen) Vorbelegung von Eingabefeldern des Selektionsbildes? 3. Wie heißt das Ereignis für die Hauptverarbeitung eines ausführbaren Programms?
10/34
2.1.8 Kapitel 9: Benutzerdialoge 1. Was ist der wesentliche Vorteil von Textsymbolen gegenüber Literalen? 2. Mit welcher Syntax gibt man ein Textsymbol namens abc auf der Liste aus? Wählen Sie die richtige(n) Antwort(en). □ A WRITE abc.
□ B WRITE 'abc'.
□ C WRITE 'text -abc'. -abc'.
□ D WRITE WRITE text-abc.
3. Welche der folgenden Aussagen zu Textelementen eines Programms sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Zu den Textelementen gehören neben den Textsymbolen auch die Listen- und Spaltenüberschriften. □ B Textelemente werden Textelemente werden programmbezogen abgelegt.
□ C Nicht alle Textelemente sind übersetzbar.
□ D Textelemente eines Programms müssen zur Nutzung aktiviert werden. □ E Durch die Pflege der Listüberschrift ändert man auch die Kurzbeschreibung die Kurzbeschreibung des Programms. 4. Wie heißt das Ereignis, das bei Doppelklick auf eine Listenzeile ausgelöst wird? 5. Welches Systemfeld enthält die aktuelle Liststufe? WelchenWert hat dieses während der Erstellung und Anzeige der Grundliste? 6. Wozu ist das Selektionsbild hauptsächlich da? 7. Welche der folgenden Aussagen zu Selektionstexten sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Zu Select -Options -Options können keine Selektionstexte gepflegt werden. □ B So wie Listüberschriften direkt auf der Liste pflegbar sind, können Selektionstexte können Selektionstexte direkt auf dem Selektionsbild gepflegt werden. □ C Selektionstexte sind nicht übersetzbar. □ D Selektionstexte gehören wie Textsymbole und Listüberschriften zu den Textelementen eines Programms und sind daher ebenfalls übersetzbar. 8. Welche der folgenden Aussagen zum Selektionsbild sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Alle Eingabefelder eines Selektionsbildes haben eine F1 -Hilfe. □ B Alle Eingabefelder eines Selektionsbildes haben eine F4 -Hilfe. □ C Typischerweise werden Berechtigungspr üfungen üfungen zum Ereignis AT SELECTION-SCREEN realisiert. □ D Eine Benutzernachricht vom Typ E führt zur Anzeige des Nachrichtentextes mit Programmabbruch, falls sie zum Ereignis AT SELECTION-SCREEN gesendet wird. □ E Varianten sind ausgefüllte Selektionsbilder eines Programms und werden programmbezogen abgelegt. 9. Welche der folgenden Aussagen zum Dynpro sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Das statische Folge -Dynpro -Dynpro eines Dynpros kann nicht dynamisch übersteuert werden. □ B Ein Dynpro hat neben hat neben Attributen, Layout und Elementliste vor allem auch eine Ablaufsteuerung. □ C In der Ablaufsteuerung eines Dynpros befinden sich ABAP-Anweisungen. sich ABAP-Anweisungen.
11/34
□ D In der Ablaufsteuerung eines Dynpros befinden sich Verweise auf Module, auf Module, die sich im Programm befinden und ABAP-Anweisungen enthalten. □ E Der automatische Datentransport zwischen programminternen Variablen und Dynpro-Feldern erfolgt nur bei gleichnamigen Feldern. 10. Welches ist das wesentlichste Attribut einer Drucktaste? 11. Wie heißt die Anweisung, die das statische Folge-Dynpro des aktuellen Dynpros übersteuert? 12. Wo werden die Menüs eines Dynpros definiert? 13. Über welche Anweisungen werden GUI-Titel bzw. GUI-Status einem Dynpro zugeordnet?
12/34
2.1.9 Kapitel 10: Reuse-Komponenten 1. Was ist ein Funktionsbaustein? 2. Über welche Anweisung wird ein Funktionsbaustein aufgerufen? 3. Welche der folgenden Aussagen zu Funktionsbausteinen sind korrekt? Wählen Sie die richtige(n) Antwort(en). □
A Beim Aufruf eines Funktionsbausteins sind alle Import-, Export- und CHANGING-Parameter zu versorgen.
B Beim Aufruf eines Funktionsbausteins sollten Ausnahmen abgefangen und behandelt werden, da ein Laufzeitfehler auftritt, wenn eine nicht abgefangene Ausnahme vom Funktionsbaustein ausgelöst wird.
□
C Beim Aufruf eines Funktionsbausteins werden die IMPORT-Parameter unter dem IMPORTING-Zusatz und die EXPORT-Parameter unter dem EXPORTING-Zusatz aufgeführt.
□
D Beim Aufruf eines Funktionsbausteins werden die IMPORT-Parameter unter dem EXPORTING-Zusatz und die EXPORT-Parameter unter IMPORTING-Zusatz aufgeführt.
□
4. Welche der folgenden Aussagen zu Klassen/Methoden sind korrekt? Wählen Sie die r ichtige(n) Antwort(en). □
A Im SAP-Standard sind bereits Klassen mit nützlichen Funktionalitäten enthalten.
B Die Suche nach Klassen kann über die üblichen Suchwerkzeuge "Repository Infosystem" und "SAPAnwendungshierarchie" durchgeführt werden.
□
□
C Zur Ansteuerung des SAP Grid Controls (ALV) kann eine Standardklasse verwendet werden.
D Zur Ansteuerung anderer EnjoySAP-Controls (z. B. Tree-Control) müssen kundeneigene Klassen definiert werden. □
5. Was ist aus Nutzungssicht ein BAPI?
2.1.10 Kapitel 11: Anpassung der SAP-Standardsoftware 1. Was ist eine Modifikation? 2. Warum sollen bei kundenindividuellen Anpassungen der SAP-Software nach Möglichkeit Erweiterungen statt Modifikationen benutzt werden?
13/34
2.2
BC401 ABAP Objects
2.2.1 Kapitel 1: Vervollständigung der prozeduralen Anteile von ABAP Objects 1. Was sollten Sie mit Ihren bereits existenten Programmen tun, nachdem der Upgrade von SAP R/3 4.6C nach SAP Web AS 6.20 durchgeführt worden ist? 2. Für welche der folgenden eingebauten Datentypen sollten Sie die ursprünglichen Varianten der einschlägigen Zeichenkettenverarbeitungsanweisungen oder den optionalen Zusatz IN CHARACTER MODE verwenden? Wählen Sie die richtige(n) Antwort(en). □AD
□ B C
□CX
□EN
□ F STRING
□ G XSTRING
□ D T
3. Für welche der folgenden eingebauten Datentypen sollten Sie bei Vergleichen die neuen Vergleichsoperatoren BYTE-CO, BYTE-CA, etc. verwenden? Wählen Sie die richtige(n) Antwort(en). □AD
□ B C
□CX
□EN
□ F STRING
□ G XSTRING
□ D T
4. Im Prinzip entsteht überhaupt kein Umsetzungsaufwand von SAP R/3 4.6C nach SAP Web AS 6.20 bezüglich bereits existenter Programme, wenn in diesen bei Zeichenkettenverarbeitungen generell immer schon „sicher“ programmiert worden ist (Kopieren von Strukturen nur elementar-komponentenweise, Vermeidung von OffsetLängenzugriff, etc.). Geben Sie an, ob diese Aussage richtig oder falsch ist. □ Richtig
□ Fal sch sch
5. Vor SAPWeb AS 6.10war das Kopieren von gesamten Strukturinhalten per MOVE problemlos möglich und sehr praktisch. Erst wegen der Unicode-Fähigkeit von SAP Web AS 6.20 ergeben sich dabei nun Probleme, so dass so etwas nicht mehr programmiert werden darf. Geben Sie an, ob diese Aussage richtig oder falsch ist. □ Richtig
□ Falsch
6. Ab SAP Web AS 6.10 führt der Offset-Längenzugriff generell zu einem Syntaxfehler, falls das Kennzeichen Unicodeprüfungen aktiv gesetzt ist. Geben Sie an, ob diese Aussage richtig oder falsch ist. □ Richtig
□ Falsch
7. Welche der folgenden Aussagen sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Sortierte Tabellen können nur mehrdeutige Schlüssel besitzen. □ B Standardtabellen können nur mehrdeutige Schlüssel besitzen. Schlüssel besitzen. □ C SortierteundHash -Tabellen -Tabellen sind Indextabellen. □ D Standardtabellen sind Indextabellen. □ E Der Standardschlüssel ist der Schlüssel einer Standardtabelle. einer Standardtabelle. □ F Der Standschlüssel enthält immer alle Komponenten des Zeilentyps. 8. Als generische Typen bezeichnet man Typdefinitionen, bei denen gewisse Angaben fehlen. Diese fehlenden Typeigenschaften werden zur Laufzeit von einem Aktualparameter geerbt, wenn man den generischen Typ zur Typisierung von Schnittstellenparametern verwendet. Geben Sie an, ob diese Aussage richtig oder falsch ist. □ Richtig
□ Falsch
14/34
9. Generische Tabellentypen erlauben dynamische Programmierung, indem z. B. die Tabellenart einer programmglobal definierten internen Tabelle erst zur Laufzeit festgelegt werden kann. Geben Sie an, ob diese Aussage richtig oder falsch ist. □ Richtig
□ Falsch
10. Welche der folgenden Aussagen sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Auf Hash -Taballen -Taballen können nur Schlüsselzugegriffe erfolgen. □ B Schlüsselzugriff bedeutet, dass in der in der Suchklausel nur Schlüsselfelder der internen Tabelle auftauchen dürfen. □ C Indexzugriffe erlauben einen Zugriff über die Zeilennummer. die Zeilennummer. □ D Ein Einzelsatzschlüsselzugriff per READ TABLE kann bei Standardtabellen bei Standardtabellen mehrere Datensätze gleichzeittig gleichzeittig liefern, liefern, da dort dort der Schlüssel prinzipiell prinzipiell immer immer mehrdeutig mehrdeutig ist. □ E Standardtabellen können Sie mit der SORT -Anweisung sortieren. □ F Wenn Sie einen Datensatz per INSERT ... INTO TABLE in eine sortierte Tabelle mit eindeutigem Schlüssel einfügen wollen, so gelingt dies nur, wenn mit der konkreten Wertekombination des Datensatzes für die Schlüsselkomponenten noch kein anderer Datensatz in der internen Tabelle vorhanden ist. Andernfalls wird der Rückgabewert SY-SUBRC auf eine Zahl ungleich null gesetzt. 11. SAP empfiehlt die Verwendung interner Tabellen ohne Kopfzeile, um die Syntax leichter lesbar zu halten. Dies ist vor allem bei geschachtelten internen Tabellen hilfreich. Geben Sie an, ob diese Aussage richtig oder falsch ist. □ Richtig
□ Falsch
12. Welche der folgenden Aussagen sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Bei allen Schlüsselzugriffen wählt das Laufzeitsystem abhängig von der Tabellenart immer die schnellst durchführbare Variante, sofern möglich. □ B Hash -Tabellen -Tabellen sollten nicht eingesetzt werden, wenn sehr
viele ändernde Zugriffe notwendig sind.
□ C Die Verwendung von Feldsymbolen und Referenzen spart vor allem bei geschachtelten internen Tabellen viel Laufzeitbedarf ein. □ D Bei Standardtabellen ist die binäre Suche nicht möglich. □ E Zugriffe über die Zeilennummer sind bei Schleifenverarbeitungen bei Schleifenverarbeitungen in der Regel die schnellste Variante.
2.2.2 Kapitel 2: Einführung in die objektorientierte Programmierung 1. Das objektorientierte Programmiermodell ist deutlich später als das prozedurale entstanden. Es bietet damit mehr Möglichkeiten, d. h. es können damit Anwendungsprobleme gelöst werden, die mit rein prozeduralen Programmiersprachen nicht lösbar waren. Geben Sie an, ob diese Aussage richtig oder falsch ist. □ Richtig
□ Falsch
2. Was ist mit dem Begriff Mehrfachinstanziierbarkeit gemeint? 3. Was ist mit dem Begriff Kapselung gemeint? 4. Was versteht man in ABAP Objects unter einer Klasse?
15/34
5. Worin besteht der Unterschied zwischen statischen Komponenten und Instanzkomponenten einer Klasse? 6. Was versteht man in ABAP Objects unter einem Konstruktor? 7. Angenommen, Sie definieren eine Klasse. Müssen Sie dann auch immer einen Konstruktor definieren?
2.2.3 Kapitel 3: Objektorientierte Konzepte und Programmiertechniken 1. Wie lassen Sie syntaktisch eine lokale Unterklasse von einer Oberklasse erben? 2. Wie redefinieren Sie syntaktisch eine geerbte Methode innerhalb einer lokalen Unterklasse? 3. Angenommen, Sie kopieren eine Unterklassenreferenz auf eine Referenzvariable, die auf die Oberklasse typsiert typsiert ist (Narrowing (Narrowing Cast). Cast). Auf welche Komponen Komponenten ten können können Sie über diese diese Referenzvar Referenzvariable iable zugreifen? zugreifen? Wählen Sie die richtige(n) Antwort(en). □ A redefinierte Komponenten der Oberklasse
□ B neu definierte Komponenten der Unterklasse
□ C geerbte Komponenten der Komponenten der Oberklasse
□ D redefinierte Komponenten der Unterklasse
4. Angenommen, eine Referenzvariable – typisiert auf eine Oberklasse enthält eine Unterklasseneferenz und Sie kopieren diese auf eine Referenzvariable, die auf die Unterklasse typisiert ist (Widening Cast). Auf welche der folgenden folgenden Komponenten Komponenten können können Sie Sie über diese Referenzva Referenzvariable riable zugreifen? zugreifen? Wählen Sie die richtige(n) richtige(n) Antwort(en). □ A redefinierte Komponenten der Oberklasse
□ B neu definierte Komponenten der Unterklasse
□ C geerbte Komponente n der Oberklasse
□ D redefinierte Komponenten der Unterklasse
5. Zu welchem Zweck setzen Sie die Vererbung ein? 6. Hat ein Interface einen Implementationsteil? 7. Angenommen, Sie kopieren eine Instanzreferenz einer Klasse, die ein Interface implementiert, auf eine Referenzvariable, die auf das Interface typisiert ist (Narrowing Cast). Auf welche Komponenten können Sie über diese Referenzvariable zugreifen? Wählen Sie die richtige(n) Antwort(en). □ A auf die Komponenten aus dem Interface □ Interface □ B auf die Komponenten die Komponenten aus der Klasse, die nicht im Interface definiert sind □ C auf alle Komponenten aus der Klasse Namen definiert sind
□ D auf die Komponenten aus dem Interface, für die Alias-
8. Angenommen, eine Referenzvariable – typisiert auf ein Interface – enthält eine Instanzreferenz einer Klasse, die dieses Interface implementiert, und Sie kopieren diese auf eine Referenzvariable, die auf die Klasse typisiert ist (Widening Cast). Auf welche der folgenden Komponenten können Sie über diese Referenzvariable zugreifen? Wählen Sie die richtige(n) Antwort(en). □ A auf die Komponenten aus dem Interface □ Interface □ B auf die Komponenten aus der Klasse, die nicht in dem Interface definiert sind □ C auf alle Komponenten aus der Klasse Namen definiert sind
□ D auf die Komponenten aus dem Interface, für die AliasAlias-
9. Mit welchem Schlüsselwort definieren Sie ein Ereignis? 10. Mit welchem Schlüsselwort lösen Sie ein Ereignis aus? 11. Mit welcher Anweisung definieren Sie eine Behandlermethode M_H für das Ereignis E der Klasse C?
16/34
12. Mit welcher Anweisung registrieren Sie eine Behandlermethode M_H der reagierenden Instanz REF_H bei der auslösenden Instanz REF_R? 13. Können Ereignisse in Interfaces definiert werden? 14. Können Ereignisse in Interfaces ausgelöstwerden?
2.2.4 Kapitel 4: Objektorientierte Repository-Objekte 1. Welche der folgenden Aussagen sind korrekt?
Wählen Sie die richtige(n) Antwort(en).
□ A MitdemClass Builder kann man Funktionsbausteine anlegen. Funktionsbausteine anlegen. □ B Eine globale Klasse kann eine lokale Klasse enthalten. □ C Eine globales In terface kann kann ein ein lokales lokales Interface Interface enthalten. enthalten. □ D Eine globale Klasse kann ein lokales Interface enthalten. □ E Eine lokale Klasse innerhalb einer globalen Klasse stellt eine geschachtelte Definition von Klassen dar. □ F Eine programmlokale Klasse kann mit dem mit dem Class Builder in eine globale Klasse umgewandelt werden. □ G Eine programmlokale Klasse kann mit dem Class Builder kopiert werden. Bei der Kopie handelt es sich dann um eine globale Klasse. □ H MitdemRefactoring Assistent können Sie innerhalb einer innerhalb einer Vererbungshierarchie Methoden in andere Klassen verschieben. □ I MitdemRefactoring Assistent können Sie Modelldiagramme entwerfen. 2. Um den Benutzer eine objektorientierte Anwendung ausführen lassen zu können, muss immer ein ausführbares, ein Modulpool- oder ein Funktionsgruppenprogramm existieren, da andernfalls nirgendwo eine Instanz per CREATE OBJECT erzeugt werden könnte. Geben Sie an, ob diese Aussage richtig oder falsch ist. □ Richtig
□ Falsch
3. Welche der folgenden Aussagen sind korrekt? Wählen Sie die richtige(n) Antwort(en). □ A Eine nicht -abstrakte -abstrakte Klasse kann abstrakte Methoden enthalten. □ B Eine abstrakte Klasse enthält keine Implementationen. □ C Eine abstrakte Methode enthält keine Implementation. □ D Finale Klassen können keine Oberklassen keine Oberklassen innerhalb einer Klassenhierarchie sein. □ E Eine finale Methode muss redefiniert werden. □ F Finale Klassen können nicht -finale Methoden enthalten. □ G Der „Freund“ Der „Freund“ einer Klasse ist auch Freund deren Unterklassen. □ H Die Unterklassen des Freun des des einer Klasse sind ebenfalls Freunde der Klasse. □ I Die Sichtbarkeit eines Instanzkonstruktors kann eingeschränkt werden. □ J Die Definition eines privaten Instanzkonstruktors (Instanziierbarkeit nur durch die Klasse selbst) kann innerhalb des privaten Sichtbarkeitsbereiches vorgenommen werden (PRIVATE SECTION). 4. Wofür wird die Technik der persistenten Objekte verwendet? Wählen Sie die richtige(n) Antwort(en). □ A zur objektorientierten Kapselung von Datenbankzugriffen
17/34
□ B ausschließlich zur Realisier ung ung von Datenbankzugriffen im objektorientierten Kontext (Open-SQL innerhalb von ABAP Objects nicht erlaubt) □ C zur direkten Umsetzung eines objektorientierten Modells für betriebswirtschaftliche Anwendungen (Erzeugen, Verwenden, Schreiben und Lesen von betriebswirtschaftlichen Objekten) □ D zur Erweiterung von SAP-Standardklassen SAP -Standardklassen (zu SAP Web AS 6.10 sind diese generell entsprechend migriert worden) □ E für Berechtigungsprüfungen (Komponentenzugriff bei persistenten bei persistenten Objekten nur über den Agenten möglich)
2.2.5 Kapitel 5: Ausnahmebehandlung und dynamische Programmierung 1. Das neue Ausnahmekonzept löst das alte ab. Alle alten Quelltextstrecken müssen also umgeschrieben werden. Funktionsbausteine aus dem SAP-Standard lösen ab SAP Web AS 6.20 automatisch objektorientierte Ausnahmen aus. Geben Sie an, ob diese Aussage richtig oder falsch ist. □
Richtig
□
Falsch
2. Die Ausnahmen des neuen Konzeptes können im Gegensatz zu denen des alten auch aus Unterprogrammen heraus ausgelöst und propagiert werden. Geben Sie an, ob diese Aussage richtig oder falsch ist. □
Richtig
□
Falsch
3. Die neuen Ausnahmeklassen können nur global definiert werden. Damit soll die zentrale Wartbarkeit und Wiederverwendbarkeit sichergestellt werden. Geben Sie an, ob diese Aussage richtig oder falsch ist. □
Richtig
□
Falsch
4. Bei der Definition von Ausnahmeklassen bestimmt die Angabe der Oberklasse, ob deren Ausnahmen explizit mit TRY-CATCH-ENDTRY abgefangen werden müssen und, wenn ja, wie das System reagiert, falls es versäumt wurde. Geben Sie an, ob diese Aussage richtig oder falsch ist. □
Richtig
□
Falsch
5. Welche der folgenden Aussagen zur dynamischen Programmierung sind korrekt? Wählen Sie die r ichtige(n) Antwort(en). □
A Feldsymbole enthalten zur Laufzeit Adressen von Datenobjekten.
B Wenn man den Inhalt eines Feldsymbols verändert, verändert man also die Adresse des zugewiesenen Datenobjekts. □
C Wenn man den Inhalt eines Feldsymbols verändert, verändert man also eine Adresse. D. h. das Feldsymbol verweist anschließend nicht mehr auf das Datenobjekt.
□
□ D Mit Feldsymbolen können Sie auf Datenobjekte so zugreifen, als hätten diese einen anderen als ihren statischen Typ.
E In ABAP Objects gibt es keine Datenreferenzen, sondern mit den Feldsymbolen nur bereits dereferenzierte Zeiger. □
F Wenn man den Inhalt einer zugewiesenen Datenreferenz verändert, verändert man eine Adresse. D. h. die Referenz verweist anschließend nicht mehr auf das Datenobjekt.
□
18/34
G In ABAP Objects kann man den Typ eines Objekts bei der Referenzdefinition oder auch erst bei der Erzeugung zur Laufzeit festlegen.
□
H In ABAP Objects kann man den Typ eines Datenobjekts bei der Definition oder auch erst bei der Erzeugung zur Laufzeit festlegen.
□
I Eine global typisierte Datenreferenz verweise auf ein Datenobjekt, das mit einem anderen globalen Typ typisiert typisiert wurde. Ferner werde die Datenrefere Datenreferenz nz mit Hilfe Hilfe eines generisch typisierten typisierten Feldsymbols Feldsymbols dereferenziert. dereferenziert. Wenn nun über dieses Feldsymbol auf das Datenobjekt zugegriffen wird, so äußern sich die Typeigenschaften des Datenobjekts . nicht der Datenreferenz. □
J Ist eine Datenreferenzvariable statisch typisiert, so gibt sie ihre Typeigenschaften weiter, wenn sie einer untypisierten Datenreferenz zugewiesen wird.
□
K Mit Hilfe der RTTI-Klassen können in ABAP Objects sämtliche Typeigenschaften eines (Daten-)Objekts zur Laufzeit bestimmt werden.
□
19/34
20/34
3
Antworten
Im folgenden Kapitel befinden sich die Antworten zu den im vorherigen Kapitel gestellten Fragen.
21/34
3.1
Antworten: BC400 ABAP Workbench Grundlagen
3.1.1 Kapitel 2: Einführung in die ABAP Workbench 1. Repository-Objekte sind mandantenspezifisch. Antwort:
Falsch
Repository-Objekte sind mandantenunabhängig und daher systemweit nutzbar. 2. Kundenobjekte können in SAP-Pakete aufgenommen werden. Antwort:
Falsch
Kundenobjekte müssen Kundenpaketen zugeordnet werden. 3. Welche sind die beiden Werkzeuge zur Suche nach Repository-Objekten? Wann soll welches Suchwerkzeug benutzt werden? Repository Infosystem (zur freien, d. h. anwendungsunabhängigen Suche) und SAPAnwendungshierarchie (zur anwendungsbezogenen Suche)
Antwort:
4. Ein Anwendungsprogramm muss für jede im System genutzte Sprache neu angelegt werden. Antwort:
Falsch
Es müssen nur die zum Programm zugehörigen Texte jeweils übersetzt werden. Dies wird noch im weiteren Verlauf der Schulung vermittelt. 5. Was ist ein Kettensatz? Antwort:
Eine abgekürzte Schreibweise für mehrere Anweisungen, die den gleichen Anfang besitzen.
6. Bei welcher Aktion wird der Transport der Entwicklungsobjekte eines Auftrags angestoßen? Antwort:
D
3.1.2 Kapitel 3: Einführung in das ABAP Dictionary 1. Mit Hilfe von Dictionary-Typen (deskriptiven Elementen) können im Programm Variablen definiert werden. Antwort: Richtig
Zur Typisierung von Variablen können Dictionary-Typen verwendet werden. 2. Was stimmt bei Datenelementen und Domänen? Antwort: A, C
3. Datenbanktabellen werden samt Inhalt im ABAP Dictionary abgelegt. Antwort: Falsch
Nur Beschreibungen der Datenbanktabellen werden im ABAP Dictionary abgelegt. 4. Wie nennt man im ABAP Dictionary die Beschreibung einer Datenbanktabelle und welchen Namen hat sie? Antwort : Eine Datenbanktabellenbeschreibung im ABAP Dictionary wird transparente Tabelle genannt.
Sie hat den gleichen Namen wie die Datenbanktabelle. 5. Was wird mit der Anweisung "DATA myvar TYPE dbtab." definiert, wenn dbtab eine transparente Tabelle ist?
22/34
Antwort: D
Mit der angegebenen Syntax wird nur eine Strukturvariable definiert, da als Typisierung eine transparente Tabelle angegeben ist, die im Wesentlichen die Zeilenstruktur der zugehörigen Datenbanktabelle beschreibt. Wie man eine Tabellenvariable mit dem gleichen Aufbau wie eine angegebene Datenbanktabelle definiert, wird im weiteren Verlauf der Schulung vermittelt.
3.1.3 Kapitel 4: Grundlegende ABAP-Sprachelemente 1. Welche der ABAP-Standardtypen sind numerisch? Antwort: I, F, P
N ist kein numerischer Typ, sondern Typ für Zeichenfolgen, die nur Dezimalziffern enthalten können. 2. Ist es möglich, neben den Standardtypen noch weitere Typen zu definieren? Wenn ja, wo? Antwort : Ja, im ABAP Dictionary (globale Typen) und im Programm (lokale Typen).
3. Mit welchem ABAP-Schlüsselwort definiert man lokale Typen ? Antwort: TYPES
4. In welchem Systemfeld befindet sich der Schleifenzähler für die DO- bzw. WHILE-Schleife? Antwort: SY-INDEX
5. Über welche Elemente des ABAP Dictionary kann programmintern eine Strukturvariable typisiert werden? Antwort: C, D
6. Welche Felder werden bei der MOVE-CORRESPONDING-Anweisung, in der zwei Strukturen anzugeben sind, berücksichtigt? Antwort: Felder, die in beiden Strukturen gleichnamig vorhanden sind.
7. Was ist eine interne Tabelle? Antwort: C
8. Über welches Schlüsselwort wird eine interne Tabelle definiert? Antwort: DATA
Eine interne Tabelle ist eine Variable und Variablen werden mit DATA definiert. 9. Welche drei Angaben sind bei der Definition einer internen Tabelle zu machen? Antwort: Zeilentyp, Schlüssel und Art der internen Tabelle
10. Welche drei Arten von internen Tabellen gibt es, über deren Wahl man die Performance der Tabellenzugriffe beeinflussen kann? Antwort: STANDARD, SORTED und HASHED
11. Was ist ein Tabellentyp? Antwort: B
12. SBOOK ist eine Datenbanktabelle. Mit welcher Syntax wird eine interne Tabelle mit dem gleichen Aufbau wie SBOOK angelegt? Antwort: B
23/34
13. Mit welcher Syntax wird ein Arbeitsbereich zu einer bereits definierten internen Tabelle namens itab angelegt? Antwort: DATA wa LIKE LINE OF itab.
14. Mit welcher Anweisung erfolgt das Lesen eines Einzelsatzes aus einer internen Tabelle ? Antwort : C
15. Sollen interne Tabellen mit Kopfzeilen weiterhin in der Programmierung verwendet werden? Antwort: Nein, die dazu vermittelten Kenntnisse sollen nur zum Verständnis älterer Programme
beitragen.
24/34
3.1.4 Kapitel 5: Datenbeschaffung 1. Warum soll im Regelfall für Datenbankzugriffe "Open SQL" statt "Native SQL" verwendet werden? Antwort: Da Open SQL unabhängig vom eingesetzten relationalen
Datenbanksystem ist.
2. Mit welcher Anweisung wird ein Einzelsatz aus einer Datenbanktabelle gelesen? Antwort: SELECT SINGLE
3. Muss in der WHERE-Klausel einer SELECT-Anweisung die Mandantenabgrenzung angegeben werden, wenn die zu lesende Datenbanktabelle das Mandantenfeld besitzt? Antwort : Nein, bei fehlender Mandantenabgrenzung werden nur Sätze des Ausführungsmandanten
gelesen, d. h. des Mandante Mandanten, n, in dem dem das Programm Programm aufgerufen aufgerufen wird. 4. Wie heißt die performante Technik, die man benutzen soll, um den Inhalt einer Datenbanktabelle in eine interne Tabelle zu laden? Antwort: Array Fetch
5. In welchem Systemfeld steht die Anzahl der mittels SELECT gelesenen Sätze? Antwort : C
6. Welche Technik soll zum Lesen zusammengehöriger Sätze aus mehreren Datenbanktabellen eingesetzt werden, da sie meist wesentlich performanter ist als geschachtelte SELECT-Anweisungen? Antwort: Tabellen-Join
7. Welche der folgenden Aussagen zur Berechtigungsprüfung sind korrekt? Antwort : B, C
8. Mit welcher ABAP-Anweisung wird eine Berechtigungsprüfung realisiert und wo steht das Prüfungsergebnis? Antwort: AUTHORITY-CHECK / SY-SUBRC
9. Welche der folgenden Aussagen zu Berechtigung und Berechtigungsobjekten sind korrekt? Antwort : B, D
3.1.5 Kapitel 6: Werkzeuge zur Programmanalyse 1. Welche der folgenden Aussagen zur Laufzeitanalyse sind korrekt? Antwort: C, D
2. Wo bekommt man Tipps und Tricks zur performanten Programmierung in ABAP? Antwort: Über die entsprechende Drucktaste in der Messumgebung der Laufzeitanalyse.
3. Welche der folgenden Aussagen zum Code Inspector treffen zu? Antwort : B, C, D
4. Welche Welche Aspekte werden bei der Untersuchung eines Programms durch den
Code Inspector berücksichtigt?
Antwort : B, C, D
25/34
3.1.6 Kapitel 7: Unterprogramme in ABAP 1. Zu welchem Zweck soll die Unterprogrammtechnik eingesetzt werden? Antwort: B, C, D
Eine zur systemweiten Nutzung vorgesehene Funktionalität sollte nicht in Form eines programmlokalen Unterprogramms, sondern eines Funktionsbausteins realisiert werden, da es für Letzteren eine Suchfunktion gibt. 2. Zu welchem Zweck soll die Parameterübergabe an Unterprogramme verwendet werden? Antwort: C
3. Über welche ABAP-Anweisung wird ein Unterprogramm definiert bzw. aufgerufen? Antwort : Definition: FORM ... ENDFORM.
Aufruf: PERFORM 4. Welche der folgenden Aussagen zu Unterprogrammen sind korrekt? Antwort : A, C, E
3.1.7 Kapitel 8: Einführung ABAP-Ereignisse 1. Welche der folgenden Aussagen zu Ereignisverarbeitungsblöcken sind korrekt? Antwort : B
Der implizite Ereignisverarbeitungsblock heißt START-OF-SELECTION. 2. Warum eignet sich das Ereignis INITIALIZATION zur (dynamischen) Vorbelegung von Eingabefeldern des Selektionsbildes? Antwort : Da dieses Ereignis noch vor Anzeigen des Selektionsbildes prozessiert wird. Bei anschließender
Anzeige des Selektionsbildes werden entsprechende Variableninhalte als Eingabevorbelegungen auf das Selektionsbild transportiert. 3. Wie heißt das Ereignis für die Hauptverarbeitung eines ausführbaren Programms? Antwort: START-OF-SELECTION
3.1.8 Kapitel 9: Benutzerdialoge 1. Was ist der wesentliche Vorteil von Textsymbolen gegenüber Literalen? Antwort: Textsymbole sind in verschiedene Sprachen übersetzbar.
2. Mit welcher Syntax gibt man ein Textsymbol namens abc auf der Liste aus? Antwort: D
3. Welche der folgenden Aussagen zu Textelementen eines Programms sind korrekt? Antwort: A, B, D
4. Wie heißt das Ereignis, das bei Doppelklick auf eine Listenzeile ausgelöst wird? Antwort : AT LINE-SELECTION
26/34
5. Welches Systemfeld enthält die aktuelle Liststufe? WelchenWert hat dieses während der Erstellung und Anzeige der Grundliste? Antwort: SY-LSIND / 0
6. Wozu ist das Selektionsbild hauptsächlich da? Antwort: Zur Eingabe von Abgrenzungen für die Datenselektion
7. Welche der folgenden Aussagen zu Selektionstexten sind korrekt? Antwort : D
Selektionstexte können nicht direkt auf dem Selektionsbild gepflegt werden. Sie gehören zu den Textelementen des Programms und werden dort gepflegt. Diese erreichen Sie im Object Navigator über das Kontextmenü des entsprechenden Programms oder das Menü Springen des Editors. 8. Welche der folgenden Aussagen zum Selektionsbild sind korrekt? Antwort: C, E
9. Welche der folgenden Aussagen zum Dynpro sind korrekt? Antwort: B, D, E
10. Welches ist das wesentlichste Attribut einer Drucktaste? Antwort: Ihr Funktionscode, der bei Betätigung der Drucktaste ans Programm übertragen wird. 11. Wie heißt die Anweisung, die das statische Folge-Dynpro des aktuellen Dynpros übersteuert? Antwort: SET SCREEN
12. Wo werden die Menüs eines Dynpros definiert? Antwort : Im zugehörigen GUI-Status
13. Über welche Anweisungen werden GUI-Titel bzw. GUI-Status einem Dynpro zugeordnet? Antwort: SET TITLEBAR bzw. SET PF-STATUS
3.1.9 Kapitel 10: Reuse-Komponenten 1. Was ist ein Funktionsbaustein? Antwort:
Eine zentral im SAP-System abgelegte, von allen Programmen des Systems nutzbare
Funktionalität. 2. Über welche Anweisung wird ein Funktionsbaustein aufgerufen? Antwort: CALL FUNCTION
3. Welche der folgenden Aussagen zu Funktionsbausteinen sind korrekt? Antwort:
B, D
4. Welche der folgenden Aussagen zu Klassen/Methoden sind korrekt? Antwort:
A, B, C
5. Was ist aus Nutzungssicht ein BAPI? Ein BAPI ist eine im SAP-System realisierte Funktionalität zur Datenselektion bzw. -änderung. Es kann nicht nur von Programmen des selben, sondern auch von solchen eines externen Systems
Antwort:
27/34
aufgerufen werden. Somit erhalten vor allem externe Anwendungen die Möglichkeit, ohne besondere Kenntnisse des SAP-Systems auf darin abgelegte Daten zuzugreifen.
3.1.10 Kapitel 11: Anpassung der SAP-Standardsoftware 1. Was ist eine Modifikation? Antwort:
Die direkte Änderung der SAP-Software
2. Warum sollen bei kundenindividuellen Anpassungen der SAP-Software nach Möglichkeit Erweiterungen statt Modifikationen benutzt werden? Antwort:
Da Erweiterungen bei Release-Wechsel keinen Abgleichaufwand verursachen.
28/34
3.2
Antworten: BC401 ABAP Objects
3.2.1 Kapitel 1: Vervollständigung der prozeduralen Anteile von ABAP Objects 1. Was sollten Sie mit Ihren bereits existenten Programmen tun, nachdem der Upgrade von SAP R/3 4.6C nach SAP Web AS 6.20 durchgeführt worden ist? Unicodeprüfungen aktiv setzen und anschließend für in den Programmattributen das Kennzeichen Unicodeprüfungen erneute syntaktische Korrektheit des Quelltextes sorgen Siehe entsprechenden Abschnitt innerhalb der Lektion. Antwort:
2. Für welche der folgenden eingebauten Datentypen sollten Sie die ursprünglichen Varianten der einschlägigen Zeichenkettenverarbeitungsanweisungen oder den optionalen Zusatz IN CHARACTER MODE verwenden? Antwort:
A, B, D, E, F
Siehe entsprechenden Abschnitt innerhalb der Lektion. 3. Für welche der folgenden eingebauten Datentypen sollten Sie bei Vergleichen die neuen Vergleichsoperatoren BYTE-CO, BYTE-CA, etc. verwenden? Antwort:
C, G
Siehe entsprechenden Abschnitt innerhalb der Lektion. 4. Im Prinzip entsteht überhaupt kein Umsetzungsaufwand von SAP R/3 4.6C nach SAP Web AS 6.20 bezüglich bereits existenter Programme, wenn in diesen bei Zeichenkettenverarbeitungen generell immer schon .sicher. programmiert worden ist (Kopieren von Strukturen nur elementar-komponentenweise, Vermeidung von OffsetLängenzugriff, etc.). Antwort:
Richtig
Siehe entsprechenden Abschnitt innerhalb der Lektion. 5. Vor SAPWeb AS 6.10 war war das Kopieren von gesamten Strukturinhalten per MOVE problemlos möglich und sehr praktisch. Erst wegen der Unicode-Fähigkeit von SAP Web AS 6.20 ergeben sich dabei nun Probleme, so dass so etwas nicht mehr programmiert werden darf. Antwort:
Falsch
Siehe entsprechenden Abschnitt innerhalb der Lektion. 6. Ab SAP Web AS 6.10 führt der der Offset-Längenzugri Offset-Längenzugriff ff generell generell zu einem einem Syntaxfehle Syntaxfehler, r, falls das Kennzeichen Kennzeichen gesetzt ist. Unicodeprüfungen aktiv Antwort:
Falsch
Siehe entsprechenden Abschnitt innerhalb der Lektion. 7. Welche der folgenden Aussagen sind korrekt? Antwort:
B, D
Siehe entsprechenden Abschnitt innerhalb der Lektion. 8. Als generische Typen bezeichnet man Typdefinitionen, bei denen gewisse Angaben fehlen. Diese fehlenden Typeigenschaften werden zur Laufzeit von einem Aktualparameter geerbt, wenn man den generischen Typ zur Typisierung von Schnittstellenparametern verwendet. Antwort:
Richtig
29/34
Siehe entsprechenden Abschnitt innerhalb der Lektion. 9. Generische Tabellentypen erlauben dynamische Programmierung, indem z. B. die Tabellenart einer programmglobal definierten internen Tabelle erst zur Laufzeit festgelegt werden kann. Antwort:
Falsch
Siehe entsprechenden Abschnitt innerhalb der Lektion. 10. Welche der folgenden Aussagen sind korrekt? Antwort:
A, C, E, F
Siehe entsprechenden Abschnitt innerhalb der Lektion. 11. SAP empfiehlt die Verwendung interner Tabellen ohne Kopfzeile, um die Syntax leichter lesbar zu halten. Dies ist vor allem bei geschachtelten internen Tabellen hilfreich. Antwort:
Richtig
Siehe entsprechenden Abschnitt innerhalb der Lektion. 12. Welche der folgenden Aussagen sind korrekt? Antwort:
A, B, C, E
Siehe entsprechenden Abschnitt innerhalb der Lektion
3.2.2
Kapitel 2: Einführung in die objektorientierte Programmierung
1. Das objektorientierte Programmiermodell ist deutlich später als das prozedurale entstanden. Es bietet damit mehr Möglichkeiten, d. h. es können damit Anwendungsprobleme gelöst werden, die mit rein prozeduralen Programmiersprachen nicht lösbar waren. Falsch Siehe entsprechenden Abschnitt innerhalb der Lektion.
Antwort:
2. Was ist mit dem Begriff Mehrfachinstanziierbarkeit gemeint? die Möglichkeit, pro Programmkontext beliebig viele Laufzeitinstanzen desselben Typs zu erzeugen und zu verwalten Siehe entsprechenden Abschnitt innerhalb der Lektion.
Antwort:
3. Was ist mit dem Begriff Kapselung gemeint? die Zusammenfassung von Daten und Funktionen in wiederverwendbare Einheiten, wobei Nutzer dieser Einheiten nur bestimmte Funktionen aufrufen können, ohne Möglichkeit, direkt auf die Daten zugreifen zu können Siehe entsprechenden Abschnitt innerhalb der Lektion.
Antwort:
4. Was versteht man in ABAP Objects unter einer Klasse? Eine Klasse ist die technische Beschreibung gleichartiger Objekte. Sie kann u. a. Attribut- und Methodendefinitionen enthalten sowie i. d. R. auch die Implementationen von Methoden. Siehe entsprechenden Abschnitt innerhalb der Lektion.
Antwort:
5. Worin besteht der Unterschied zwischen statischen Komponenten und Instanzkomponenten einer Klasse? Auf statische Komponenten müssen Sie über die Klasse zugreifen. D. h. es gibt sie pro Programm und Klasse höchstens einmal im Arbeitsspeicher. Es muss dafür kein Objekt instanziiert worden sein. Auf Instanzkomponenten müssen Sie über die Objekte dieser Klasse zugreifen. D. h. es gibt sie pro
Antwort:
30/34
Programm und Klasse beliebig oft im Arbeitsspeicher. Siehe entsprechenden Abschnitt innerhalb der Lektion. 6. Was versteht man in ABAP Objects unter einem Konstruktor? Ein Konstruktor einer Klasse ist eine spezielle Methode mit dem reservierten Namen CONSTRUCTOR. Sie wird i. d. R. nur vom Laufzeitsystem gerufen, und zwar immer dann, wenn ein Objekt dieser Klasse per CREATE OBJECT erzeugt worden ist. Deswegen spricht man etwas genauer oft auch vom Instanzkonstruktor. Siehe entsprechenden Abschnitt innerhalb der Lektion.
Antwort:
7. Angenommen, Sie definieren eine Klasse. Antwort:
Müssen
Sie dann auch immer einen Konstruktor definieren?
nein
3.2.3 Kapitel 3: Objektorientierte Konzepte und Programmiertechniken 1. Wie lassen Sie syntaktisch eine lokale Unterklasse von einer Oberklasse erben? mit Hilfe des Zusatzes INHERITING FROM zur CLASS-DEFINITION-Anweisung Siehe entsprechenden Abschnitt innerhalb der Lektion.
Antwort:
2. Wie redefinieren Sie syntaktisch eine geerbte Methode innerhalb einer lokalen Unterklasse? mit Hilfe des Zusatzes REDEFINITION zur METHODS-Anweisung Siehe entsprechenden Abschnitt innerhalb der Lektion. Antwort:
3. Angenommen, Sie kopieren eine Unterklassenreferenz auf eine Referenzvariable, die auf die Oberklasse typsiert typsiert ist (Narrowing (Narrowing Cast). Cast). Auf welche Komponen Komponenten ten können können Sie Sie über diese diese Referenzva Referenzvariable riable zugreifen? zugreifen? Antwort:
A, C
Siehe entsprechenden Abschnitt innerhalb der Lektion. 4. Angenommen, eine Referenzvariable . typisiert auf eine Oberklasse . enthält eine Unterklasseneferenz und Sie kopieren diese auf eine Referenzvariable, die auf die Unterklasse typisiert ist (Widening Cast). Auf welche der folgenden folgenden Komponenten Komponenten können können Sie Sie über diese Referenzv Referenzvariable ariable zugreifen? zugreifen? Antwort:
A, B, C
Siehe entsprechenden Abschnitt innerhalb der Lektion. 5. Zu welchem Zweck setzen Sie die Vererbung ein? Vererbung ist die programmiertechnische Umsetzung von Generalisierungs /Spezialisierungs /Spezialisierungsbeziehun beziehungen gen zwischen zwischen Klassen. Klassen. Antwort:
Siehe entsprechenden Abschnitt innerhalb der Lektion. 6. Hat ein Interface einen Implementationsteil? Antwort:
nein
Siehe entsprechenden Abschnitt innerhalb der Lektion. 7. Angenommen, Sie kopieren eine Instanzreferenz einer Klasse, die ein Interface implementiert, auf eine Referenzvariable, die auf das Interface typisiert ist (Narrowing Cast). Auf welche Komponenten können Sie über diese Referenzvariable zugreifen? Antwort:
A
Siehe entsprechenden Abschnitt innerhalb der Lektion.
31/34
8. Angenommen, eine Referenzvariable . typisiert auf ein Interface . enthält eine Instanzreferenz einer Klasse, die dieses Interface implementiert, und Sie kopieren diese auf eine Referenzvariable, die auf die Klasse typisiert ist (Widening Cast). Auf welche der folgenden Komponenten können Sie über diese Referenzvariable zugreifen? Antwort:
A, B, C, D
Siehe entsprechenden Abschnitt innerhalb der Lektion. 9. Mit welchem Schlüsselwort definieren Sie ein Ereignis? Antwort:
EVENTS
Siehe entsprechenden Abschnitt innerhalb der Lektion. 10. Mit welchem Schlüsselwort lösen Sie ein Ereignis aus? Antwort:
RAISE EVENT
Siehe entsprechenden Abschnitt innerhalb der Lektion. 11. Mit welcher Anweisung definieren Sie eine Behandlermethode M_H für das Ereignis E der Klasse C? Antwort: METHODS METHODS m_h FOR EVENT e OF c ... .
Siehe entsprechenden Abschnitt innerhalb der Lektion. 12. Mit welcher Anweisung registrieren Sie eine Behandlermethode M_H der reagierenden Instanz REF_H bei der auslösenden Instanz REF_R? Antwort: SET HANDLER ref_h->m_h FOR ref_r .
Siehe entsprechenden Abschnitt innerhalb der Lektion. 13. Können Ereignisse in Interfaces definiert werden? Antwort: ja
Siehe entsprechenden Abschnitt innerhalb der Lektion. 14. Können Ereignisse in Interfaces ausgelöst werden? Antwort:
nein
Siehe entsprechenden Abschnitt innerhalb der Lektion.
3.2.4 Kapitel 4: Objektorientierte Repository-Objekte 1. Welche der folgenden Aussagen sind korrekt? Antwort: B,
D, G, H
Siehe entsprechenden Abschnitt innerhalb der Lektion. 2. Um den Benutzer eine objektorientierte Anwendung ausführen lassen zu können, muss immer ein ausführbares, ein Modulpool- oder ein Funktionsgruppenprogramm existieren, da andernfalls nirgendwo eine Instanz per CREATE OBJECT erzeugt werden könnte. Falsch Die Erzeugung der ersten Instanz und der ersteMethodenaufruf kann über eine OOTransaktion realisiert werden. Allerdings bestehen gewisse Einschränkungen.
Antwort:
Siehe entsprechenden Abschnitt innerhalb der Lektion. 3. Welche der folgenden Aussagen sind korrekt?
32/34
Antwort:
C, D, H, I
Siehe entsprechenden Abschnitt innerhalb der Lektion. 4. Wofür wird die Technik der persistenten Objekte verwendet? Antwort:
A, C
Siehe entsprechenden Abschnitt innerhalb der Lektion.
3.2.5 Kapitel 5: Ausnahmebehandlung und dynamische Programmierung 1. Das neue Ausnahmekonzept löst das alte ab. Alle alten Quelltextstrecken müssen also umgeschrieben werden. Funktionsbausteine aus dem SAP-Standard lösen ab SAP Web AS 6.20 automatisch objektorientierte Ausnahmen aus. Antwort:
Falsch
Siehe entsprechenden Abschnitt innerhalb der Lektion. 2. Die Ausnahmen des neuen Konzeptes können im Gegensatz zu denen des alten auch aus Unterprogrammen heraus ausgelöst und propagiert werden. Antwort:
Richtig
Siehe entsprechenden Abschnitt innerhalb der Lektion. 3. Die neuen Ausnahmeklassen können nur global definiert werden. Damit soll die zentrale Wartbarkeit und Wiederverwendbarkeit sichergestellt werden. Antwort:
Falsch
Siehe entsprechenden Abschnitt innerhalb der Lektion. 4. Bei der Definition von Ausnahmeklassen bestimmt die Angabe der Oberklasse, ob deren Ausnahmen explizit mit TRY-CATCH-ENDTRY abgefangen werden müssen und, wenn ja, wie das System reagiert, falls es versäumt wurde. Antwort:
Richtig
Siehe entsprechenden Abschnitt innerhalb der Lektion. 5. Welche der folgenden Aussagen zur dynamischen Programmierung sind korrekt? Antwort:
A, D, F, G, H, J, K
Siehe entsprechenden Abschnitt innerhalb der Lektion
33/34
4
Quellenverzeichnis
BC400 ABAP Workbench Grundlagen SAP NetWeaver Teilnehmerhandbuch, SAP, Version 2006/Q2. BC401 ABAP Objects mySAP Technology Teilnehmerhandbuch, SAP, Version kein Datum.
34/34