Sie sind auf Seite 1von 9

ABAPGrundkurs~Fragenkatalog

AntwortenzumglichenFragenindermndlichenPrfungimMrz2016beiDozentStefan
Schorn.AlleAngabenvielzuausfhrlichundohneGewhr.

1.WiewirdeineZuweisunginABAPdurchgefhrt?
ZuweisungmitMOVEoder=.Unterschiedgibteswohlkeinen.MOVEisteinfachdieltere
Anweisung.?IstCastingOperator

MOVE source TO destination.


destination = source.

ZuweisungvonunterschiedlichenStrukturenmitgleichenKomponentennamen:

MOVE-CORRESPONDING struc1 TO struc2.

2.MitwelchemZeichenwirdeineZeilebzw.einSatzinABAPabgeschlossen?

JederSatzmussmiteinemPunktabgeschlossenwerden.
StzedrfensichbermehrereZeilenerstrecken.
AnsonstenkannbeieinerMehrfachanweisung(mitDoppelpunkt)aucheinKommadie
Zeilebeenden,soferndannamEndederAnweisungeneinPunktsteht.

3.NennenSieeineSchleifenartinABAP?
EsgibtkeineFORSchleifeninABAP.

WHILE log_exp.
[statement_block]
ENDWHILE.

DO [n TIMES].
[statement_block]
ENDDO.

FIELD-SYMBOLS <ls_person> TYPE tys_person.


LOOP AT lt_person_table ASSIGNING <ls_person>.
WRITE: <ls_person>-firstname, <ls_person>-lastname, /.
ENDLOOP.
4.Wie(mitwelchemBefehl)wirdeinIFStatementabgeschlossen?

ENDIF.

5.NennenSieeine(zwei)Tabellenarten.

DATA:
lt_standard TYPE [STANDARD] TABLE OF tys_person.
lt_sorted TYPE SORTED TABLE OF i WITH NON-UNIQUE KEY table_line,
lt_hashed TYPE HASHED TABLE OF tys_person WITH UNIQUE KEY id.

6.WelchenVorteilbietenFeldsymbole(ineinemLOOP)?

FeldsymbolesindimPrinziptypisiertePointer
WerdeninderPraxishufiginLOOPsverwendet
MankanndamitdirektindieTabellezurckschreiben(imGegensatzzuVariablen)

7.MitwelchemBefehlwirdein(lokaler)Typdeklariert?
MitdemBefehlTYPES,z.B.eineStruktur:

TYPES:
BEGIN OF tys_person,
id TYPE i,
firstname(20) TYPE c,
lastname(20) TYPE c,
age TYPE i,
gender TYPE c,
END OF tys_person.

8.WiewirktdasStatementCHECKineinerSchleifeimGegensatzzumnormalen
Programmablauf?
DieCHECKAnweisungverbindetEXIT,CONTINUEundIF

TrifftdieBedingungzu,passiertgarnichts
AnsonstenwirktsieinSchleifenwieCONTINUE,ansontenwieEXIT
WirdoftalsAssertionmissbraucht

9.MitwelcherTransaktionwirdeinProgrammbzw.Reportangelegt?
MitderTransaktionSE38direktoderindirektberdieTransaktionSE80mitRechtsklickauf
dasPaket.
10.MitwelchemBuchstabenbeginnenblicherweiseglobaleObjektedefinitionen,
wennsienichtvonderSAPangelegtwerden?
MitdemBuchstabvenZ.

11.WasisteinwesentlicherUnterschiedzwischendenBefehlenREADTABLEund
LOOPAT?

READTABLE LOOPAT

Eswirdimmerdieerste
passendeZeile EntsprichteinerforeachSchleifeinanderenSprachen
zurckgegeben

HiersindinderWHEREBedingungallemglichen
EsistnureinVergleich
Vergleichsoperatorenerlaubt,deshalbwirddasLOOPauchoft
aufquivalenzmglich
alsSuchemissbraucht

12.WelchenZustandsollteeineinterneTabellehaben,wenneinsinnvollesErgebnis
beiderAngabeWITHBINARYSEARCHbeieinemREADTABLEerzieltwerdensoll?
MirdemZusatzWITHBINARYSEARCH,kanneineBinrsucheauchbeiunsortiertenTabellen
erzwungenwerden.DieTabellemussdannmanuellentsprechenddengesuchtenSchlsseln
vorsortiertsein.

13.WiewirktderBefehlCOLLECTaufnumerischeFelderimGegensatzzuanderen
Feldern?
MitCOLLECTwerdenZeileneinerTabellehinzugefgt:

EsgibtdanachnureineZeilemitgleichemSchlssel
NumerischeFelderwerdenaddiert(gesammelt>collect)
IstkeinSchlsseldefiniertsindallenichtnumerischenFelderderSchlssel.
DATA: lt_hash_table TYPE HASHED TABLE OF tys_name_value WITH UNIQUE KEY id,
ls_hash_row TYPE tys_name_value.

ls_hash_row-id = 'a'.
ls_hash_row-count = 1.

COLLECT ls_hash_row INTO lt_hash_table.


COLLECT ls_hash_row INTO lt_hash_table.

ls_hash_row-id = 'b'.
COLLECT ls_hash_row INTO lt_hash_table.

" In der Hash-Table steht:


" a:2 b:1

14.MitwelchemBefehlwirdeinFORMaufgerufen?

PERFORM fill_person_table CHANGING lt_person.

15.NennenSieeinenBefehlmitdemdenInhalteinerinternenTabellelschen
knnen?

REFRESH

DergesamteInhaltderinternenTabellewirdgelscht.EinTeildeszuvorbelegten
ArbeitsspeichersbleibtabernochfrerneuteEinfgungenreserviert.

FREE

DergesamteInhaltderinternenTabellewirdgelscht,undderzuvorbelegteArbeitsspeicher
wirdfreigegeben.

CLEAR

ImGegensatzzuallenanderenDatenobjektenwirktdieseAnweisungbeiinternenTabellen
ohneKopfzeilewiedieREFRESHAnweisung.

16.WelcherZusatzleitetdieDeklarationeinesnderbarenParametersbeieinem
Funktionsbaustein,MethodeoderFormein?
DerZusatzCHANGING:
FORM fill_person_table CHANGING lt_table_to_insert TYPE tyt_person.

17.NennenSiezweiMESSAGETypen.

MESSAGE text TYPE message_type

AlsTextkanneineVariableodereineLiteralkonstanteangegebenwerden.Frmessage_type
kanneinederfolgendenWertebergebenwerden:

AAbbruchmeldung(Abort)>Popup
EFehlermeldung>(Error)
IInfomeldung(Info)>Popup
SErfolgsmeldung(Succes)
WWarnmeldung(Warning)
XAusnahme(eXit)>Kurzdump!

DiegebruchlichsteFormderNachrichtenausgabe:

MESSAGE t000(msg_class) WITH text1 text2 ...

t:DerTypderNachricht(i,a,w,)
000:DieNummerderNachricht
msg_class:DerNamederNachrichtenklasse
text1,text2,:TextefrdiePlatzhalter&1..&4

18.NennenSieeineEigenschaftdieFunktionsbausteineimGegensatzzueiner
Methodebesitzenkann.
DasKonzeptderFunktionsgruppeisteinVorluferderObjektorientierung.ImPrinzipisteine
FunktionsgruppeeinereinstatischeKlasse.DieMethodenheienFunktionsbausteine(FuBa).
Funktionsgruppensindimmernochsehrweitverbreitet,umgekapselteFunktionalitten
bereitzustellen.SiehabenfolgendeFunktionalittendieKlassennichthaben:

AsynchroneAusfhrung
RFCFhigkeit
DynProDarstellung

19.MitwelchemBefehlwirdeineExceptionausgelst?
MitdemSchlsselwortRAISE

RAISE EXCEPTION TYPE zcx_person


EXPORTING textid = zcx_person=>LOAD_ERROR person_ID = iv_id.
20.WelcheBefehlesolltenimmermiteinerschreibendenDatenbankoperation
einhergehen?

BeiErfolg:

COMMIT WORK.

oder

COMMIT WORK AND WAIT.

BeiMisserfolg:

ROLLBACK WORK.

21.WasisteinVorteilvon(SAP)OpenSQL?

Quellcodeistbertragbar
SAPEntwicklermssennichtalleSQLDialektekennen
KeineAbhngigkeitzueinembestimmtenSystem
WenigerBefehlemachendenCodelesbarer
ReichtindenallermeistenFllenvollkommenaus
BenutzteinenDatenbankpuffer
Syntaxcheckistverfgbar
IstinderPraxisweitverbreitet

22.WasisteinBefehlfrdieAusgabeeinesEingabefeldesaufeinemSelektionsbild?
EntwederberParameter:

PARAMETERS:
p_first TYPE z_person_firstname,
p_last TYPE z_person_lastname.

oderberSelectOptions(definiereneinenWertebereich/einIntervall,Rangegenannt):

DATA lv_age TYPE z_person_age.

SELECT-OPTIONS:
s_age FOR lv_age.
23.WiewirktsicheineleereSELECTOPTIONbzw.RangebeieinerWHEREBedingung
ineinemSELELCTodergarDELETEStatementaus,diemitdemOperatorIN
qualifiziertist?
EineleereSELECTOPTIONbzw.einleererRangefhrtdazu,dassalleZeilenmitSELECT
ausgewhltbzw.mitDELETEgelschtwerden.DieWHEREBedingungistquasinicht
vorhanden.

24.WiewirktderDatenbankbefehlMODIFYimGegensatzzuUPDATEbzw.INSERT?
MODIFYwirktwieeineINSERT,wenndieZeilenichtexistiert.ExistiertdieZeileschon,wirkt
MODIFYwieeinUPDATE.DamitvermeidetmandieFehler,dieauftreten,wennmaneine
neueTabellenzeilemitUPDATEspeichertodereinebestehendeZeilemitINSERT
berschreibt.

25.KanneineKlassemitmindestenseinerabstraktenMethodeinstanziiertwerden?
Nein!SobaldeineKlassemindestenseineabstrakteMethodehat,istsieautomatischauch
abstraktundkanndamitauchnichtmehrinstanziiertwerden.

26.WasisteinVorteilderPflegevonTextenineinerNachrichtenklasse?
Nachrichtenklassenkannmanleichtbersetzen(lassen).
AuserdemsindsomitalleTexteaneinerzentralenStellegepflegtundmanmussbei
nderungenamTextnichtdengesamtenCodedurchgehen.

27.WasisteinVorteilvonklassenbasiertenExceptions?

DieExceptionmussnichtnachjedemAufrufabgeprftwerden(SYMSGID,SYMSGTY,
SYMSGNOetc.),sondernwirddurchpropagiert.
SieknnenauerdemAttributetragen,diemitderFehlermeldungausgegebenwerden.

28.NennenSieeinZeichendaseinenKommentareinleitet.
*AmZeilenanfangalsallererstes(!)Zeichen:

* Beliebiger Kommentar

oderirgengdwoinderZeile:

WRITE 'Text'. " Kommentar zu WRITE

29.WelcheBedeutunghatderWert0desFeldesSYSUBRCnachdemAusfhren
einesSELECTStatements?
DerSYSUBRCCode0deutetimmeraufeineerfolgreicheOperationhin.ImKontextvon
SELECTbedeutetdas,dasseskeinenFehlergabundmindestenseinErgebnisgefunden
wurde.
30.WarumisteineWertbergabebesondersinBezugaufTabellenundCHANGING
Parameternproblematisch?
CHANGINGParametersindlesundschreibbar.WenneineTabellealsoalsWertbergeben
wird,mssenalleWertenochmalkopiertwerden.BesserverwendetmanfrTabellendie
ReferenzbergabemitTYPEREFTO.DannkanndirektindiebergebeneTabelle
geschriebenwerden.

31.WelchenNachteilhatOpenSQLinBezugaufJOINOperationen?
InOpenSQLsindbestimmtehoheFunktionennichtverfgbar,z.B.OUTERJOINsundINNER
JOINsvermischt.

32.WelchesFeld/SpaltewirdbeiDatenbankoperationenimplizitgesetzt,sofernes
vorhandenist?
DasMandantenFeldwirdimplizitmitdemaktuellangemeldetenMandantenbefllt,fallsesin
derDatenbankTabelledefiniertwurde.

33.MitwelchenZeichenwirdderAufrufeinerstatischenMethodequalifiziert?
StatischeMethodenundKonstantenwerdenmitdem=>Operatoraufgerufen.

lcl_person = zcl_person=>zif_person~load( lv_id ).

34.WelcheArtvonParameternwurdemitKlassenbzw.MethodeninABAPeingefhrt?
MitKlassenwurdederRETURNINGParametereingefhrt.DieserkannimGegensatzzu
EXPORTINGnureineneinzigenWertzurckgebenundzwarnurperCallByValue.

35.WielautetdasSchlsselwortfrdieSelbstreferenzineinerMethode?
DasSchlsselwortlautetME,vgl.thisoderselfinanderenProgrammiersprachen.

METHOD set_firstname.
me->gs_person-firstname = iv_firstname.
ENDMETHOD.

36.MitwelchemOperatorwirdinABAPeinCastdeklariert?
MiteinemFragezeichen:

MOVE source ?TO destination.


destination ?= source.

ZumBeispieleinCastvomInterfaceaufdiekonkreteKlasse:

lcl_person_obj ?= lcl_person=>lif_persist~load( lv_id ).


37.WasunterscheidetdenCASEBefehlinABAPhauptschlichvondeminJava?

EswirdkeineBREAKAnweisungbentigt,dennamEndejedesWHENBlocksspringt
ABAPautomatischausdemCASEBlock
EsknnendeshalbmehrereBedingungenmittelsORzueinemeinzigenCase
zusammengefasstwerden.

CASE lv_number.
WHEN 1 OR 2.

WHEN 3.

WHEN OTHERS.

ENDCASE.