Diese Eigenschaft steuert die Instanzierung der Objekt-Plugins bei Ausführung der Anweisung GET BADI. Folgende Angaben sind möglich:
● neu erzeugende Instanzierung
● wieder verwendende Instanzierung
● kontext-abhängige Instanzierung
Die ersten beiden Angaben definieren kontext-freie BAdIs. Bei der neu erzeugenden Instanzierung werden bei jeder Ausführung der Anweisung GET BADI neue Objekt-Plugins erzeugt. Bei der wieder verwendenden Instanzierung wird ein einmal im aktuellen internen Modus verwendetes Objekt-Plugin wieder verwendet, falls es wiederholt benötigt wird.
Bei der kontext-abhängigen Instanzierung müssen Sie für GET BADI einen Kontext angeben. Dieser Kontext steuert die Instanzierung. Pro Kontext und implementierende Klasse wird genau ein Objekt-Plugin erzeugt und bei einem erneuten GET BADI mit demselben Kontext wird dieses wieder verwendet. Ein Kontext ist eine Instanz einer Klasse die das Tag-Interface if_badi_context implementiert. Die Angabe erfolgt in Form einer Referenz auf eine solche Instanz.
Wenn Objekt-Plugins wieder verwendbare Daten enthalten sollen, können nur die Angaben 1 und 2 gemacht werden.
Die folgenden Abbildungen zeigen für kontext-freie BAdIs die Situation nach zwei aufeinander folgenden Anweisungen.
GET BADI bd1.
GET BADI bd2.
Die oberen Rechtecke repräsentieren die BAdI-Objekte. Die gestrichelten Pfeile zeigen an, welche Objekt-Plugins von den BAdI-Objekten referenziert werden, wobei hier der Fall von zwei passenden BAdI-Implementierungsklassen cl_imp1 und cl_imp2 dargestellt wird.
Abbildung 1 zeigt die neu angelegte Instanzierung. Bei der Erzeugung jedes BAdI-Objekts werden neue Objekt-Plugins erzeugt, erst imp1 und imp2, dann imp3 und imp4.
Abbildung 1
Abbildung 2 zeigt die wieder verwendete Instanzierung. Pro BAdI-Implementierungsklasse wird nur eine Instanz erzeugt. Alle BAdI-Objekte verweisen auf die gleich Instanz, unabhängig davon, wo (im internen Modus) und wie das BAdI-Objekt angefordert wird.
Abbildung 2