Iteration über Element-Inhalt 
Aktivieren Sie diese Option in der Anzeige Eigenschaften des BSP-Elements, wenn dieses Element wiederholt den eigenen Inhalt durchlaufen, d.h. also eine Schleife implementieren soll.
Zusätzlich zur Aktivierung dieser Option ist die Interface-Methode DO_AT_ITERATION der Elementhandler-Klasse zu redefinieren.
Diese Methode wird jeweils am Ende einer Iteration aufgerufen. Mit Hilfe des Rückgabeparameters RC steuern Sie, ob die Schleife beendet ((RC=CO_ELEMENT_DONE) oder erneut durchlaufen (RC=CO_ELEMENT_CONTINUE) wird.
Angenommen Sie möchten einen wiederholten Text-Aufruf mit einem einfachen <do>-Element. Die Anzahl der Iterationen wird durch das entsprechende Attribut howOften (wieOft) festgelegt.
Beispiel:
Syntax
<loops:do howOften = "10"> Hello World ! </loops:do>
Der Wert des Attributs howOften wird dabei zu Beginn des Element-Aufrufs in der Methode DO_AT_BEGINNING verwendet, um den Schleifenzähler count zu initialisieren:
Syntax
method IF_BSP_ELEMENT~DO_AT_BEGINNING .
if howOften > 0.
count = howOften - 1.
rc = CO_ELEMENT_CONTINUE.
else.
rc = CO_ELEMENT_DONE.
endmethod.
Hinweis
In der Methode DO_AT_BEGINNING sollte bereits geprüft werden, ob der Element-Inhalt überhaupt ausgewertet werden soll. Ist dies erst gar nicht der Fall, dann wird DO_AT_ITERATION übersprungen und nachfolgend die Methode DO_AT_END aufgerufen.
Die Implementierung von DO_AT_ITERATION könnte in diesem Falle etwa so aussehen:
Syntax
method IF_BSP_ELEMENT~DO_AT_ITERATION .
if count <> 0.
count = count - 1.
rc = CO_ELEMENT_CONTINUE.
else.
rc = CO_ELEMENT_DONE.
endif.
endmethod.
Hinweis
Beachten Sie, dass die Methode DO_AT_ITERATION nur dann aufgerufen wird, wenn die Option Iteration Through Element Content (Iteration über Element-Inhalt) als Eigenschaft des Elements explizit vergeben wurde. Siehe auch BSP-Elemente definieren
Der Aufruf von DO_AT_ITERATION erfolgt sobald der Element-Inhalt prozessiert wurde. Die Methode DO_AT_END wird dagegen in jedem Fall und zwar nur einmal aufgerufen; in diesem Falle erfolgt der Aufruf nach Abschluss der Iteration.